diff options
Diffstat (limited to 'WebKit/chromium/src/js')
-rw-r--r-- | WebKit/chromium/src/js/DebuggerScript.js | 271 | ||||
-rw-r--r-- | WebKit/chromium/src/js/DevTools.js | 4 | ||||
-rw-r--r-- | WebKit/chromium/src/js/DevToolsHostStub.js | 38 | ||||
-rw-r--r-- | WebKit/chromium/src/js/Tests.js | 224 |
4 files changed, 0 insertions, 537 deletions
diff --git a/WebKit/chromium/src/js/DebuggerScript.js b/WebKit/chromium/src/js/DebuggerScript.js deleted file mode 100644 index 5a8a7bf..0000000 --- a/WebKit/chromium/src/js/DebuggerScript.js +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -(function () { - -var DebuggerScript = {}; -DebuggerScript._breakpoints = {}; - -DebuggerScript.PauseOnExceptionsState = { - DontPauseOnExceptions : 0, - PauseOnAllExceptions : 1, - PauseOnUncaughtExceptions: 2 -}; - -DebuggerScript.ScriptWorldType = { - MainWorld : 0, - ExtensionsWorld : 1 -}; - -DebuggerScript._pauseOnExceptionsState = DebuggerScript.PauseOnExceptionsState.DontPauseOnExceptions; -Debug.clearBreakOnException(); -Debug.clearBreakOnUncaughtException(); - -DebuggerScript.getAfterCompileScript = function(eventData) -{ - return DebuggerScript._formatScript(eventData.script_.script_); -} - -DebuggerScript.getScripts = function(contextData) -{ - var result = []; - - if (!contextData) - return result; - var comma = contextData.indexOf(","); - if (comma === -1) - return result; - // Context data is a string in the following format: - // ("page"|"injected")","<page id> - var idSuffix = contextData.substring(comma); // including the comma - - var scripts = Debug.scripts(); - for (var i = 0; i < scripts.length; ++i) { - var script = scripts[i]; - if (script.context_data && script.context_data.lastIndexOf(idSuffix) != -1) - result.push(DebuggerScript._formatScript(script)); - } - return result; -} - -DebuggerScript._formatScript = function(script) -{ - var scriptWorldType = DebuggerScript.ScriptWorldType.MainWorld; - if (script.context_data && script.context_data.indexOf("injected") == 0) - scriptWorldType = DebuggerScript.ScriptWorldType.ExtensionsWorld; - return { - id: script.id, - name: script.nameOrSourceURL(), - source: script.source, - lineOffset: DebuggerScript._v8ToWebkitLineNumber(script.line_offset), - lineCount: script.lineCount(), - scriptWorldType: scriptWorldType - }; -} - -DebuggerScript.setBreakpoint = function(execState, args) -{ - args.lineNumber = DebuggerScript._webkitToV8LineNumber(args.lineNumber); - var breakId = Debug.setScriptBreakPointById(args.scriptId, args.lineNumber, 0 /* column */, args.condition); - if (!args.enabled) - Debug.disableScriptBreakPoint(breakId); - - var locations = Debug.findBreakPointActualLocations(breakId); - var actualLineNumber = locations.length ? locations[0].line : args.lineNumber; - - var key = args.scriptId + ":" + actualLineNumber; - if (key in DebuggerScript._breakpoints) { - // Remove old breakpoint. - Debug.findBreakPoint(DebuggerScript._breakpoints[key], true); - } - DebuggerScript._breakpoints[key] = breakId; - return DebuggerScript._v8ToWebkitLineNumber(actualLineNumber); -} - -DebuggerScript.removeBreakpoint = function(execState, args) -{ - args.lineNumber = DebuggerScript._webkitToV8LineNumber(args.lineNumber); - var key = args.scriptId + ":" + args.lineNumber; - var breakId = DebuggerScript._breakpoints[key]; - if (breakId) - Debug.findBreakPoint(breakId, true); - delete DebuggerScript._breakpoints[key]; -} - -DebuggerScript.pauseOnExceptionsState = function() -{ - return DebuggerScript._pauseOnExceptionsState; -} - -DebuggerScript.setPauseOnExceptionsState = function(newState) -{ - DebuggerScript._pauseOnExceptionsState = newState; - - if (DebuggerScript.PauseOnExceptionsState.PauseOnAllExceptions === newState) - Debug.setBreakOnException(); - else - Debug.clearBreakOnException(); - - if (DebuggerScript.PauseOnExceptionsState.PauseOnUncaughtExceptions === newState) - Debug.setBreakOnUncaughtException(); - else - Debug.clearBreakOnUncaughtException(); -} - -DebuggerScript.currentCallFrame = function(execState, args) -{ - var frameCount = execState.frameCount(); - if (frameCount === 0) - return undefined; - - var topFrame; - for (var i = frameCount - 1; i >= 0; i--) { - var frameMirror = execState.frame(i); - topFrame = DebuggerScript._frameMirrorToJSCallFrame(frameMirror, topFrame); - } - return topFrame; -} - -DebuggerScript.stepIntoStatement = function(execState) -{ - execState.prepareStep(Debug.StepAction.StepIn, 1); -} - -DebuggerScript.stepOverStatement = function(execState) -{ - execState.prepareStep(Debug.StepAction.StepNext, 1); -} - -DebuggerScript.stepOutOfFunction = function(execState) -{ - execState.prepareStep(Debug.StepAction.StepOut, 1); -} - -DebuggerScript.editScriptSource = function(scriptId, newSource) -{ - var scripts = Debug.scripts(); - var scriptToEdit = null; - for (var i = 0; i < scripts.length; i++) { - if (scripts[i].id == scriptId) { - scriptToEdit = scripts[i]; - break; - } - } - if (!scriptToEdit) - throw("Script not found"); - - var changeLog = []; - Debug.LiveEdit.SetScriptSource(scriptToEdit, newSource, false, changeLog); - return scriptToEdit.source; -} - -DebuggerScript.clearBreakpoints = function(execState, args) -{ - for (var key in DebuggerScript._breakpoints) { - var breakId = DebuggerScript._breakpoints[key]; - Debug.findBreakPoint(breakId, true); - } - DebuggerScript._breakpoints = {}; -} - -DebuggerScript.setBreakpointsActivated = function(execState, args) -{ - Debug.debuggerFlags().breakPointsActive.setValue(args.enabled); -} - -DebuggerScript._frameMirrorToJSCallFrame = function(frameMirror, callerFrame) -{ - // Get function name. - var func; - try { - func = frameMirror.func(); - } catch(e) { - } - var functionName; - if (func) - functionName = func.name() || func.inferredName(); - - // Get script ID. - var script = func.script(); - var sourceID = script && script.id(); - - // Get line number. - var line = DebuggerScript._v8ToWebkitLineNumber(frameMirror.sourceLine()); - - // Get this object. - var thisObject = frameMirror.details_.receiver(); - - // Get scope chain array in format: [<scope type>, <scope object>, <scope type>, <scope object>,...] - var scopeChain = []; - var scopeType = []; - for (var i = 0; i < frameMirror.scopeCount(); i++) { - var scopeMirror = frameMirror.scope(i); - var scopeObjectMirror = scopeMirror.scopeObject(); - var properties = scopeObjectMirror.properties(); - var scopeObject = {}; - for (var j = 0; j < properties.length; j++) - scopeObject[properties[j].name()] = properties[j].value_; - // Reset scope object prototype to null so that the proto properties - // don't appear in th local scope section. - scopeObject.__proto__ = null; - scopeType.push(scopeMirror.scopeType()); - scopeChain.push(scopeObject); - } - - function evaluate(expression) { - return frameMirror.evaluate(expression, false).value(); - } - - return { - "sourceID": sourceID, - "line": line, - "functionName": functionName, - "type": "function", - "thisObject": thisObject, - "scopeChain": scopeChain, - "scopeType": scopeType, - "evaluate": evaluate, - "caller": callerFrame - }; -} - -DebuggerScript._webkitToV8LineNumber = function(line) -{ - return line - 1; -}; - -DebuggerScript._v8ToWebkitLineNumber = function(line) -{ - return line + 1; -}; - -return DebuggerScript; - -})(); diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js index f55be4e..0c7241d 100644 --- a/WebKit/chromium/src/js/DevTools.js +++ b/WebKit/chromium/src/js/DevTools.js @@ -162,7 +162,3 @@ WebInspector.resetToolbarColors = function() } -// TODO(yurys): should be removed when eclipse debugger stops using it. -if (window.RemoteDebuggerAgent) { - RemoteDebuggerAgent.setContextId = function() {}; -} diff --git a/WebKit/chromium/src/js/DevToolsHostStub.js b/WebKit/chromium/src/js/DevToolsHostStub.js deleted file mode 100644 index d3333e2..0000000 --- a/WebKit/chromium/src/js/DevToolsHostStub.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2010 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * @fileoverview These stubs emulate backend functionality and allows - * DevTools frontend to function as a standalone web app. - */ - -if (!window["RemoteDebuggerCommandExecutor"]) { - window["RemoteDebuggerCommandExecutor"] = {}; -} diff --git a/WebKit/chromium/src/js/Tests.js b/WebKit/chromium/src/js/Tests.js index 2233463..5cebb52 100644 --- a/WebKit/chromium/src/js/Tests.js +++ b/WebKit/chromium/src/js/Tests.js @@ -953,230 +953,6 @@ TestSuite.prototype._waitUntilScriptsAreParsed = function(expectedScripts, callb /** - * Gets a XPathResult matching given xpath. - * @param {string} xpath - * @param {number} resultType - * @param {Node} opt_ancestor Context node. If not specified documentElement - * will be used - * @return {XPathResult} Type of returned value is determined by "resultType" parameter - */ - -TestSuite.prototype._evaluateXpath = function(xpath, resultType, opt_ancestor) -{ - if (!opt_ancestor) - opt_ancestor = document.documentElement; - try { - return document.evaluate(xpath, opt_ancestor, null, resultType, null); - } catch(e) { - this.fail('Error in expression: "' + xpath + '".' + e); - } -}; - - -/** - * Gets first Node matching given xpath. - * @param {string} xpath - * @param {Node} opt_ancestor Context node. If not specified documentElement - * will be used - * @return {?Node} - */ -TestSuite.prototype._findNode = function(xpath, opt_ancestor) -{ - var result = this._evaluateXpath(xpath, XPathResult.FIRST_ORDERED_NODE_TYPE, opt_ancestor).singleNodeValue; - this.assertTrue(!!result, "Cannot find node on path: " + xpath); - return result; -}; - - -/** - * Gets a text matching given xpath. - * @param {string} xpath - * @param {Node} opt_ancestor Context node. If not specified documentElement - * will be used - * @return {?string} - */ -TestSuite.prototype._findText = function(xpath, opt_ancestor) -{ - var result = this._evaluateXpath(xpath, XPathResult.STRING_TYPE, opt_ancestor).stringValue; - this.assertTrue(!!result, "Cannot find text on path: " + xpath); - return result; -}; - - -/** - * Gets an iterator over nodes matching given xpath. - * @param {string} xpath - * @param {Node} opt_ancestor Context node. If not specified, documentElement - * will be used - * @return {XPathResult} Iterator over the nodes - */ -TestSuite.prototype._nodeIterator = function(xpath, opt_ancestor) -{ - return this._evaluateXpath(xpath, XPathResult.ORDERED_NODE_ITERATOR_TYPE, opt_ancestor); -}; - - -/** - * Checks the scopeSectionDiv against the expectations. - * @param {Node} scopeSectionDiv The section div - * @param {Object} expectations Expectations dictionary - */ -TestSuite.prototype._checkScopeSectionDiv = function(scopeSectionDiv, expectations) -{ - var scopeTitle = this._findText('./div[@class="header"]/div[@class="title"]/text()', scopeSectionDiv); - this.assertEquals(expectations.title, scopeTitle, "Unexpected scope section title."); - if (!expectations.properties) - return; - this.assertTrue(scopeSectionDiv.hasStyleClass("expanded"), 'Section "' + scopeTitle + '" is collapsed.'); - - var propertyIt = this._nodeIterator("./ol/li", scopeSectionDiv); - var propertyLi; - var foundProps = []; - while (propertyLi = propertyIt.iterateNext()) { - var name = this._findText('./span[@class="name"]/text()', propertyLi); - var value = this._findText('./span[@class="value"]/text()', propertyLi); - this.assertTrue(!!name, 'Invalid variable name: "' + name + '"'); - this.assertTrue(name in expectations.properties, "Unexpected property: " + name); - this.assertEquals(expectations.properties[name], value, 'Unexpected "' + name + '" property value.'); - delete expectations.properties[name]; - foundProps.push(name + " = " + value); - } - - // Check that all expected properties were found. - for (var p in expectations.properties) - this.fail('Property "' + p + '" was not found in scope "' + scopeTitle + '". Found properties: "' + foundProps.join(",") + '"'); -}; - - -/** - * Expands scope sections matching the filter and invokes the callback on - * success. - * @param {function(WebInspector.ObjectPropertiesSection, number):boolean} - * filter - * @param {Function} callback - */ -TestSuite.prototype._expandScopeSections = function(filter, callback) -{ - var sections = WebInspector.currentPanel.sidebarPanes.scopechain.sections; - - var toBeUpdatedCount = 0; - function updateListener() { - --toBeUpdatedCount; - if (toBeUpdatedCount === 0) { - // Report when all scopes are expanded and populated. - callback(); - } - } - - // Global scope is always the last one. - for (var i = 0; i < sections.length - 1; i++) { - var section = sections[i]; - if (!filter(sections, i)) - continue; - ++toBeUpdatedCount; - var populated = section.populated; - - this._hookGetPropertiesCallback(updateListener, - function() { - section.expand(); - if (populated) { - // Make sure "updateProperties" callback will be called at least once - // after it was overridden. - section.update(); - } - }); - } -}; - - -/** - * Tests that scopes can be expanded and contain expected data. - */ -TestSuite.prototype.testExpandScope = function() -{ - this.showPanel("scripts"); - var test = this; - - this._executeCodeWhenScriptsAreParsed("handleClick()", ["debugger_closure.html"]); - - this._waitForScriptPause( - { - functionsOnStack: ["innerFunction", "handleClick", ""], - lineNumber: 8, - lineText: " debugger;" - }, - expandAllSectionsExceptGlobal); - - // Expanding Global scope takes for too long so we skeep it. - function expandAllSectionsExceptGlobal() { - test._expandScopeSections(function(sections, i) { - return i < sections.length - 1; - }, - examineScopes /* When all scopes are expanded and populated check them. */); - } - - // Check scope sections contents. - function examineScopes() { - var scopeVariablesSection = test._findNode('//div[@id="scripts-sidebar"]/div[div[@class="title"]/text()="Scope Variables"]'); - var expectedScopes = [ - { - title: "Local", - properties: { - x:"2009", - innerFunctionLocalVar:"2011", - "this": "DOMWindow", - } - }, - { - title: "Closure", - properties: { - n: '"TextParam"', - makeClosureLocalVar: '"local.TextParam"', - } - }, - { - title: "Global", - }, - ]; - var it = test._nodeIterator('./div[@class="body"]/div', scopeVariablesSection); - var scopeIndex = 0; - var scopeDiv; - while (scopeDiv = it.iterateNext()) { - test.assertTrue(scopeIndex < expectedScopes.length, "Too many scopes."); - test._checkScopeSectionDiv(scopeDiv, expectedScopes[scopeIndex]); - ++scopeIndex; - } - test.assertEquals(expectedScopes.length, scopeIndex, "Unexpected number of scopes."); - - test.releaseControl(); - } - - test.takeControl(); -}; - - -/** - * Returns child tree element for a property with given name. - * @param {TreeElement} parent Parent tree element. - * @param {string} childName - * @param {string} objectPath Path to the object. Will be printed in the case - * of failure. - * @return {TreeElement} - */ -TestSuite.prototype._findChildProperty = function(parent, childName, objectPath) -{ - var children = parent.children; - for (var i = 0; i < children.length; i++) { - var treeElement = children[i]; - var property = treeElement.property; - if (property.name === childName) - return treeElement; - } - this.fail('Cannot find property "' + childName + '" in ' + objectPath); -}; - - -/** * Executes the 'code' with InjectedScriptAccess.getProperties overriden * so that all callbacks passed to InjectedScriptAccess.getProperties are * extended with the "hook". |