Changeset 142485 in webkit


Ignore:
Timestamp:
Feb 11, 2013 10:01:01 AM (11 years ago)
Author:
caseq@chromium.org
Message:

Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
https://bugs.webkit.org/show_bug.cgi?id=109443

Reviewed by Vsevolod Vlasov.

Source/WebCore:

Promote extensionServer var to the outer closure, so it may be accessed by platform-specific (or test) code.

  • inspector/front-end/ExtensionAPI.js:

(buildExtensionAPIInjectedScript):

LayoutTests:

  • replace additional message ports used for evaluating code in front-end with normal extension transport.
  • http/tests/inspector/extensions-test.js:

(initialize_ExtensionsTest.window.buildPlatformExtensionAPI):
(initialize_ExtensionsTest.InspectorTest._replyToExtension):
(initialize_ExtensionsTest.onEvaluate):

  • http/tests/inspector/resources/extension-main.js:
  • inspector/extensions/extensions-audits.html:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r142483 r142485  
     12013-02-11  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
     4        https://bugs.webkit.org/show_bug.cgi?id=109443
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        - replace additional message ports used for evaluating code in front-end with normal extension transport.
     9
     10        * http/tests/inspector/extensions-test.js:
     11        (initialize_ExtensionsTest.window.buildPlatformExtensionAPI):
     12        (initialize_ExtensionsTest.InspectorTest._replyToExtension):
     13        (initialize_ExtensionsTest.onEvaluate):
     14        * http/tests/inspector/resources/extension-main.js:
     15        * inspector/extensions/extensions-audits.html:
     16
    1172013-02-11  Joshua Bell  <jsbell@chromium.org>
    218
  • trunk/LayoutTests/http/tests/inspector/extensions-test.js

    r125871 r142485  
    1313{
    1414
    15 InspectorTest._replyToExtension = function(port, data)
     15window.buildPlatformExtensionAPI = function(extensionInfo)
    1616{
    17     port.postMessage({ response: data });
     17    function platformExtensionAPI(coreAPI)
     18    {
     19        window.webInspector = coreAPI;
     20        window._extensionServerForTests = extensionServer;
     21    }
     22    return platformExtensionAPI.toString();
    1823}
    1924
    20 function onMessage(event)
     25InspectorTest._replyToExtension = function(requestId, port)
    2126{
    22     if (typeof event.data !== "object" || !event.data.expression)
    23         return;
    24     if (event.ports && event.ports[0])
    25         var reply = InspectorTest._replyToExtension.bind(null, event.ports[0]); // reply() is intended to be used by the code being evaluated.
     27    WebInspector.extensionServer._dispatchCallback(requestId, port);
     28}
     29
     30function onEvaluate(message, port)
     31{
     32    var reply = WebInspector.extensionServer._dispatchCallback.bind(WebInspector.extensionServer, message.requestId, port);
    2633    try {
    27         var result = eval(event.data.expression);
     34        eval(message.expression);
    2835    } catch (e) {
    29         InspectorTest.addResult("Exception while running: " + event.data.expression + "\n" + (e.stack || e));
     36        InspectorTest.addResult("Exception while running: " + message.expression + "\n" + (e.stack || e));
    3037        InspectorTest.completeTest();
    3138    }
    3239}
    3340
    34 window.addEventListener("message", InspectorTest.safeWrap(onMessage), false);
     41WebInspector.extensionServer._registerHandler("evaluateForTestInFrontEnd", onEvaluate);
    3542
    3643InspectorTest.showPanel = function(panelId)
  • trunk/LayoutTests/http/tests/inspector/resources/extension-main.js

    r127147 r142485  
    4646function evaluateOnFrontend(expression, callback)
    4747{
    48     function callbackWrapper(event)
    49     {
    50         channel.port1.removeEventListener("message", callbackWrapper, false);
    51         callback(event.data.response);
    52     }
    53     var channel = new MessageChannel();
    54     channel.port1.start();
    55     if (callback)
    56         channel.port1.addEventListener("message", callbackWrapper, false);
    57     webInspector.inspectedWindow.eval("", function() {
    58         top.postMessage({ expression: expression }, [ channel.port2 ], "*");
    59     });
     48    window._extensionServerForTests.sendRequest({ command: "evaluateForTestInFrontEnd", expression: expression }, callback);
    6049}
    6150
  • trunk/LayoutTests/inspector/extensions/extensions-audits.html

    r128875 r142485  
    6262        nextTest();
    6363    }
    64     webInspector.inspectedWindow.eval("", function() {
    65         extension_runAudits(auditsDone);
    66     });
     64    extension_runAudits(auditsDone);
    6765}
    6866
  • trunk/Source/WebCore/ChangeLog

    r142484 r142485  
     12013-02-11  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
     4        https://bugs.webkit.org/show_bug.cgi?id=109443
     5
     6        Reviewed by Vsevolod Vlasov.
     7
     8        Promote extensionServer var to the outer closure, so it may be accessed by platform-specific (or test) code.
     9
     10        * inspector/front-end/ExtensionAPI.js:
     11        (buildExtensionAPIInjectedScript):
     12
    1132013-02-11  Eric Seidel  <eric@webkit.org>
    214
  • trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js

    r139880 r142485  
    864864var Timeline = declareInterfaceClass(TimelineImpl);
    865865
    866 var extensionServer = new ExtensionServerClient();
     866// Closure variable defined by the glue below.
     867extensionServer = new ExtensionServerClient();
    867868
    868869return new InspectorExtensionAPI();
     
    883884{
    884885    return "(function(injectedScriptHost, inspectedWindow, injectedScriptId){ " +
     886        "var extensionServer;" +
    885887        defineCommonExtensionSymbols.toString() + ";" +
    886888        injectedExtensionAPI.toString() + ";" +
Note: See TracChangeset for help on using the changeset viewer.