[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

caseq at chromium.org caseq at chromium.org
Wed Dec 22 12:54:38 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b1a34f71045a37afc7b5b7b2bd60060062e51056
Author: caseq at chromium.org <caseq at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 1 14:19:34 2010 +0000

    2010-09-01  Andrey Kosyakov  <caseq at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            Web Inspector, Extension API: Panel.onSelectionChanged event is never fired
            Added command line API to the lexical context of code evaluated by webInspector.inspectedWindow.evaluate()
            Fixed webInspector.inspectedWindow.evaluate() to return object rather than its stringified representation
            https://bugs.webkit.org/show_bug.cgi?id=44957
    
            Test: inspector/extensions-eval.html
    
            * inspector/front-end/ExtensionAPI.js:
            (WebInspector.injectedExtensionAPI.InspectedWindow.prototype.evaluate):
            * inspector/front-end/ExtensionServer.js:
            (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
    
    2010-09-01  Andrey Kosyakov  <caseq at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            Web Inspector, Extension API: Panel.onSelectionChanged event is never fired
            Added tests for webInspector.inspectedWindow.eval() and event dispatchers.
            https://bugs.webkit.org/show_bug.cgi?id=44957
    
            * inspector/extensions-eval-expected.txt: Added.
            * inspector/extensions-eval.html: Added.
            * inspector/extensions-expected.txt:
            * inspector/extensions.html:
            * inspector/resources/extension-main.js:
            (fetchTests.callback):
            (fetchTests):
            * platform/chromium/test_expectations.txt:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66601 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index fb0510f..48d887e 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,20 @@
+2010-09-01  Andrey Kosyakov  <caseq at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        Web Inspector, Extension API: Panel.onSelectionChanged event is never fired
+        Added tests for webInspector.inspectedWindow.eval() and event dispatchers.
+        https://bugs.webkit.org/show_bug.cgi?id=44957
+
+        * inspector/extensions-eval-expected.txt: Added.
+        * inspector/extensions-eval.html: Added.
+        * inspector/extensions-expected.txt:
+        * inspector/extensions.html:
+        * inspector/resources/extension-main.js:
+        (fetchTests.callback):
+        (fetchTests):
+        * platform/chromium/test_expectations.txt:
+
 2010-09-01  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Dirk Schulze.
diff --git a/LayoutTests/inspector/extensions-eval-expected.txt b/LayoutTests/inspector/extensions-eval-expected.txt
new file mode 100644
index 0000000..4c589f5
--- /dev/null
+++ b/LayoutTests/inspector/extensions-eval-expected.txt
@@ -0,0 +1,19 @@
+Tests WebInspector extension API
+
+Page reloaded.
+Started extension.
+Running tests...
+RUNNING TEST: extension_testEvalConsoleAPI
+Evaluate: "function" (exception: undefined)
+RUNNING TEST: extension_testEvalDefinesGlobalSymbols
+Evaluate: {"func":"function","variable":42} (exception: undefined)
+RUNNING TEST: extension_testEvalFailed
+Evaluate: "TypeError: JSON.stringify cannot serialize cyclic structures." (exception: true)
+RUNNING TEST: extension_testEvalOk
+Evaluate: {"str":"foo","num":42} (exception: undefined)
+RUNNING TEST: extension_testEvalStatement
+Evaluate: 0 (exception: undefined)
+RUNNING TEST: extension_testEvalUndefined
+Evaluate: undefined (exception: undefined)
+All tests done.
+
diff --git a/LayoutTests/inspector/extensions-eval.html b/LayoutTests/inspector/extensions-eval.html
new file mode 100755
index 0000000..ed54e8a
--- /dev/null
+++ b/LayoutTests/inspector/extensions-eval.html
@@ -0,0 +1,51 @@
+<html>
+<head>
+<script src="../http/tests/inspector/inspector-test2.js"></script>
+<script src="extensions-test.js"></script>
+<script type="text/javascript">
+
+window.inspectedValue = { str: "foo", num: 42 };
+
+function extension_testEvalOk(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("inspectedValue", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_testEvalFailed(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("document.body", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_testEvalDefinesGlobalSymbols(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("function extensionFunc() {}");
+    webInspector.inspectedWindow.evaluate("extensionVar = 42;");
+    webInspector.inspectedWindow.evaluate("({ func: typeof window.extensionFunc, variable: window.extensionVar })", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_testEvalStatement(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("var x = 3; while (--x); x", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_testEvalUndefined(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("undefined", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_testEvalConsoleAPI(nextTest)
+{
+    webInspector.inspectedWindow.evaluate("typeof inspect", callbackAndNextTest(extension_onEvaluate, nextTest));
+}
+
+function extension_onEvaluate(result)
+{
+    output("Evaluate: " + JSON.stringify(result.value) + " (exception: " + result.isException + ")");
+}
+
+</script>
+</head>
+<body onload="runTest()">
+<p>Tests WebInspector extension API</p>
+</body>
+</html>
diff --git a/LayoutTests/inspector/extensions-events-expected.txt b/LayoutTests/inspector/extensions-events-expected.txt
new file mode 100644
index 0000000..6b1ba0a
--- /dev/null
+++ b/LayoutTests/inspector/extensions-events-expected.txt
@@ -0,0 +1,23 @@
+CONSOLE MESSAGE: line 663: [object HTMLParagraphElement]
+Tests WebInspector extension API
+
+Page reloaded.
+Started extension.
+Running tests...
+RUNNING TEST: extension_testOnResourceFinished
+Got callback, arguments dump follows:
+{
+    0 : {
+        id : <number>
+        type : 7
+        har : <object>
+    }
+}
+RUNNING TEST: extension_testOnSelectionChanged
+Got callback, arguments dump follows:
+{
+    0 : "DOMNode"
+    1 : undefined
+}
+All tests done.
+
diff --git a/LayoutTests/inspector/extensions-events.html b/LayoutTests/inspector/extensions-events.html
new file mode 100755
index 0000000..99fe534
--- /dev/null
+++ b/LayoutTests/inspector/extensions-events.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+<script src="../http/tests/inspector/inspector-test2.js"></script>
+<script src="extensions-test.js"></script>
+<script type="text/javascript">
+
+function extension_callback(nondetermenisticProps)
+{
+    output("Got callback, arguments dump follows:");
+    dumpObject(Array.prototype.slice.call(arguments, 1), nondetermenisticProps);
+}
+
+function extension_testOnSelectionChanged(nextTest)
+{
+    webInspector.panels.elements.onSelectionChanged.addListener(callbackAndNextTest(bind(extension_callback, null, null), nextTest));
+    webInspector.inspectedWindow.evaluate("inspect(document.body.children[0])");
+}
+
+function extension_testOnResourceFinished(nextTest)
+{
+    var nondetermenisticProps = {
+        har: 1,
+        id: 1
+    };
+    webInspector.resources.onFinished.addListener(callbackAndNextTest(bind(extension_callback, null, nondetermenisticProps), nextTest));
+    webInspector.inspectedWindow.evaluate("var xhr = new XMLHttpRequest(); xhr.open('GET', '" + location.href + "', false); xhr.send(null);");
+}
+
+</script>
+</head>
+<body onload="runTest()">
+<p>Tests WebInspector extension API</p>
+</body>
+</html>
diff --git a/LayoutTests/inspector/extensions-expected.txt b/LayoutTests/inspector/extensions-expected.txt
index be5706c..a088f40 100644
--- a/LayoutTests/inspector/extensions-expected.txt
+++ b/LayoutTests/inspector/extensions-expected.txt
@@ -23,10 +23,6 @@ Sidebar created
     setHeight : <function>
     setExpanded : <function>
 }
-RUNNING TEST: extension_testEvalFailed
-Evaluate: TypeError: JSON.stringify cannot serialize cyclic structures.(exception: true)
-RUNNING TEST: extension_testEvalOk
-Evaluate: {"str":"foo","num":42}(exception: undefined)
 RUNNING TEST: extension_testGetAllResources
 resource: .../tests/inspector/inspector-test2.js
 resource: .../LayoutTests/inspector/extensions-test.js
diff --git a/LayoutTests/inspector/extensions.html b/LayoutTests/inspector/extensions.html
index 9259b94..ef8996c 100644
--- a/LayoutTests/inspector/extensions.html
+++ b/LayoutTests/inspector/extensions.html
@@ -6,16 +6,6 @@
 
 window.inspectedValue = { str: "foo", num: 42 };
 
-function extension_testEvalOk(nextTest)
-{
-    webInspector.inspectedWindow.evaluate("inspectedValue", callbackAndNextTest(extension_onEvaluate, nextTest));
-}
-
-function extension_testEvalFailed(nextTest)
-{
-    webInspector.inspectedWindow.evaluate("document.body", callbackAndNextTest(extension_onEvaluate, nextTest));
-}
-
 function extension_testGetAllResources(nextTest)
 {
     function compareResources(a, b)
@@ -74,11 +64,6 @@ function extension_testResourceNotification(nextTest)
     webInspector.inspectedWindow.evaluate("var xhr = new XMLHttpRequest(); xhr.open('GET', '" + location.href + "', false); xhr.send(null);");
 }
 
-function extension_onEvaluate(result)
-{
-    output("Evaluate: " + result.value + "(exception: " + result.isException + ")");
-}
-
 </script>
 </head>
 <body onload="runTest()">
diff --git a/LayoutTests/inspector/resources/extension-main.js b/LayoutTests/inspector/resources/extension-main.js
index f439960..1669733 100644
--- a/LayoutTests/inspector/resources/extension-main.js
+++ b/LayoutTests/inspector/resources/extension-main.js
@@ -2,8 +2,7 @@ function fetchTests()
 {
     function callback(result)
     {
-         var functions = JSON.parse(result.value);
-         window.eval(functions);
+         window.eval(result.value);
          runTests();
     }
     webInspector.inspectedWindow.evaluate("extensionFunctions()", callback);
diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt
index f8f49a1..d2cd37a 100644
--- a/LayoutTests/platform/chromium/test_expectations.txt
+++ b/LayoutTests/platform/chromium/test_expectations.txt
@@ -202,6 +202,8 @@ WONTFIX SKIP : inspector/extensions.html = FAIL
 WONTFIX SKIP : inspector/extensions-api.html = FAIL
 WONTFIX SKIP : inspector/extensions-audits.html = FAIL
 WONTFIX SKIP : inspector/extensions-audits-api.html = FAIL
+WONTFIX SKIP : inspector/extensions-events.html = FAIL
+WONTFIX SKIP : inspector/extensions-eval.html = FAIL
 
 // Implement java testing harness.
 BUG36681 DEFER SKIP : java = TEXT
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a2a721e..69a3e58 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-09-01  Andrey Kosyakov  <caseq at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        Web Inspector, Extension API: Panel.onSelectionChanged event is never fired
+        Added command line API to the lexical context of code evaluated by webInspector.inspectedWindow.evaluate()
+        Fixed webInspector.inspectedWindow.evaluate() to return object rather than its stringified representation
+        https://bugs.webkit.org/show_bug.cgi?id=44957
+
+        Test: inspector/extensions-eval.html
+
+        * inspector/front-end/ExtensionAPI.js:
+        (WebInspector.injectedExtensionAPI.InspectedWindow.prototype.evaluate):
+        * inspector/front-end/ExtensionServer.js:
+        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
+
 2010-08-27  Philippe Normand  <pnormand at igalia.com>
 
         Reviewed by Xan Lopez.
diff --git a/WebCore/inspector/front-end/ElementsPanel.js b/WebCore/inspector/front-end/ElementsPanel.js
index d81933e..e1bc637 100644
--- a/WebCore/inspector/front-end/ElementsPanel.js
+++ b/WebCore/inspector/front-end/ElementsPanel.js
@@ -58,7 +58,7 @@ WebInspector.ElementsPanel = function()
 
         if (this._focusedDOMNode) {
             InspectorBackend.addInspectedNode(this._focusedDOMNode.id);
-            WebInspector.extensionServer.notifyObjectSelected(this.name, "DOMNode");
+            WebInspector.extensionServer.notifyObjectSelected(this.panel.name, "DOMNode");
         }
     };
 
diff --git a/WebCore/inspector/front-end/ExtensionAPI.js b/WebCore/inspector/front-end/ExtensionAPI.js
index 9d996bf..fd1df6e 100644
--- a/WebCore/inspector/front-end/ExtensionAPI.js
+++ b/WebCore/inspector/front-end/ExtensionAPI.js
@@ -365,7 +365,13 @@ InspectedWindow.prototype = {
 
     evaluate: function(expression, callback)
     {
-        return extensionServer.sendRequest({ command: "evaluateOnInspectedPage", expression: expression }, callback);
+        function callbackWrapper(result)
+        {
+            if (result && !result.isException)
+                result.value = result.value === "undefined" ? undefined : JSON.parse(result.value);
+            callback(result);
+        }
+        return extensionServer.sendRequest({ command: "evaluateOnInspectedPage", expression: expression }, callbackWrapper);
     }
 }
 
diff --git a/WebCore/inspector/front-end/ExtensionServer.js b/WebCore/inspector/front-end/ExtensionServer.js
index 0ff035c..f410d8c 100644
--- a/WebCore/inspector/front-end/ExtensionServer.js
+++ b/WebCore/inspector/front-end/ExtensionServer.js
@@ -210,7 +210,6 @@ WebInspector.ExtensionServer.prototype = {
 
     _onEvaluateOnInspectedPage: function(message, port)
     {
-        var escapedMessage = escape(message.expression);
         function callback(resultPayload)
         {
             var resultObject = WebInspector.RemoteObject.fromPayload(resultPayload);
@@ -220,7 +219,10 @@ WebInspector.ExtensionServer.prototype = {
             result.value = resultObject.description;
             this._dispatchCallback(message.requestId, port, result);
         }
-        InjectedScriptAccess.getDefault().evaluate("(function() { var a = window.eval(unescape(\"" + escapedMessage + "\")); return JSON.stringify(a); })();", "", callback.bind(this));
+        var evalExpression = "JSON.stringify(eval('" +
+            "with (window.console._commandLineAPI) with (window) {' + unescape('" + escape(message.expression) +
+            "') + '}'));";
+        InjectedScriptAccess.getDefault().evaluate(evalExpression, callback.bind(this));
     },
 
     _onRevealAndSelect: function(message)
diff --git a/WebCore/inspector/front-end/Panel.js b/WebCore/inspector/front-end/Panel.js
index 8cbdebb..2a4104f 100644
--- a/WebCore/inspector/front-end/Panel.js
+++ b/WebCore/inspector/front-end/Panel.js
@@ -72,6 +72,11 @@ WebInspector.Panel.prototype = {
         return this._toolbarItem;
     },
 
+    get name()
+    {
+        return this._panelName;
+    },
+
     show: function()
     {
         WebInspector.View.prototype.show.call(this);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list