Changeset 82832 in webkit


Ignore:
Timestamp:
Apr 4, 2011 7:27:29 AM (13 years ago)
Author:
caseq@chromium.org
Message:

2011-04-04 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: [Extensions API] add notifications on panels shown/hidden
https://bugs.webkit.org/show_bug.cgi?id=57752

  • http/tests/inspector/extensions-test.js: (initialize_ExtensionsTest.showPanel):
  • http/tests/inspector/resources/extension-main.js: (showPanel):
  • inspector/extensions/extensions-api-expected.txt:
  • inspector/extensions/extensions-events-expected.txt:
  • inspector/extensions/extensions-events.html:
  • inspector/extensions/extensions-expected.txt:

2011-04-04 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: [Extensions API] add notifications on panels shown/hidden
https://bugs.webkit.org/show_bug.cgi?id=57752

  • inspector/front-end/ExtensionAPI.js: (WebInspector.injectedExtensionAPI.PanelImpl):
  • inspector/front-end/ExtensionServer.js: (WebInspector.ExtensionServer.prototype.notifyPanelShown): (WebInspector.ExtensionServer.prototype.notifyPanelHidden):
  • inspector/front-end/Panel.js: (WebInspector.Panel.prototype.show): (WebInspector.Panel.prototype.hide):
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r82829 r82832  
     12011-04-04  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: [Extensions API] add notifications on panels shown/hidden
     6        https://bugs.webkit.org/show_bug.cgi?id=57752
     7
     8        * http/tests/inspector/extensions-test.js:
     9        (initialize_ExtensionsTest.showPanel):
     10        * http/tests/inspector/resources/extension-main.js:
     11        (showPanel):
     12        * inspector/extensions/extensions-api-expected.txt:
     13        * inspector/extensions/extensions-events-expected.txt:
     14        * inspector/extensions/extensions-events.html:
     15        * inspector/extensions/extensions-expected.txt:
     16
    1172011-04-04  Pavel Podivilov  <podivilov@chromium.org>
    218
  • trunk/LayoutTests/http/tests/inspector/extensions-test.js

    r80845 r82832  
    6767InspectorTest.dispatchOnMessage("dump-sidebar-content", dumpSidebarContent, true);
    6868
     69function showPanel(message, port)
     70{
     71    var panelId = message.panelId;
     72    if (panelId === "extension")
     73        panelId = WebInspector.panelOrder[WebInspector.panelOrder.length - 1].name;
     74    WebInspector.showPanel(panelId);
     75    port.postMessage("");
     76}
     77InspectorTest.dispatchOnMessage("show-panel", showPanel, true);
     78
    6979function reloadPage(data, port)
    7080{
  • trunk/LayoutTests/http/tests/inspector/resources/extension-main.js

    r80417 r82832  
    6363}
    6464
     65function showPanel(panelId, callback)
     66{
     67    dispatchOnFrontend({ command: "show-panel", panelId: panelId }, callback);
     68}
     69
    6570function callbackAndNextTest(callback, nextTest)
    6671{
  • trunk/LayoutTests/inspector/extensions/extensions-api-expected.txt

    r82806 r82832  
    2626    panels : {
    2727        elements : {
     28            onShown : {
     29                addListener : <function>
     30                removeListener : <function>
     31            }
     32            onHidden : {
     33                addListener : <function>
     34                removeListener : <function>
     35            }
    2836            createSidebarPane : <function>
    2937            onSelectionChanged : {
  • trunk/LayoutTests/inspector/extensions/extensions-events-expected.txt

    r80416 r82832  
    55RUNNING TEST: extension_testOnResourceFinished
    66onFinished fired
     7RUNNING TEST: extension_testOnSelectionChanged
     8onSelectionChanged fired
    79RUNNING TEST: extension_testPageLoadEvents
    810Page reloaded.
    911onDOMContentLoaded fired: number
    1012onLoaded fired: number
     13RUNNING TEST: extension_testPanelShowHide
     14Got onHidden event for panel elements
     15Got onShown event for panel extension
     16Got onHidden event for panel extension
     17Got onShown event for panel elements
    1118All tests done.
    1219
  • trunk/LayoutTests/inspector/extensions/extensions-events.html

    r82713 r82832  
    55<script type="text/javascript">
    66
    7 /*
    8 FIXME: test should not depend on the sources (use them as testing data).
    97function extension_testOnSelectionChanged(nextTest)
    108{
     
    1816    webInspector.inspectedWindow.eval("inspect(document.body.children[0])");
    1917}
    20 */
    2118
    2219function extension_testOnResourceFinished(nextTest)
     
    6057}
    6158
     59function extension_testPanelShowHide(nextTest)
     60{
     61    var listenersToCleanup = [];
     62    function onPanelEvent(type, panelId)
     63    {
     64        output("Got " + type + " event for panel " + panelId);
     65        if (type !== "onShown")
     66            return;
     67        if (panelId === "extension") {
     68            addListener(webInspector.panels.elements, "elements", "onShown");
     69            showPanel("elements");
     70        } else if (panelId === "elements") {
     71            cleanupListeners();
     72            nextTest();
     73        }
     74    }
     75    function addListener(panel, panelId, type)
     76    {
     77        var listener = bind(onPanelEvent, null, type, panelId);
     78        var event = panel[type];
     79        listenersToCleanup.push({ event: event, listener: listener });
     80        event.addListener(listener);
     81    }
     82    function cleanupListeners()
     83    {
     84        for (var i = 0; i < listenersToCleanup.length; ++i)
     85            listenersToCleanup[i].event.removeListener(listenersToCleanup[i].listener);
     86    }
     87    function onPanelCreated(panel)
     88    {
     89        addListener(panel, "extension", "onShown");
     90        addListener(panel, "extension", "onHidden");
     91        addListener(webInspector.panels.elements, "elements", "onHidden");
     92        showPanel("extension");
     93    }
     94    showPanel("elements");
     95    webInspector.panels.create("Test Panel", "extension-panel.png", "extension-panel.html", onPanelCreated);
     96}
     97
    6298</script>
    6399</head>
  • trunk/LayoutTests/inspector/extensions/extensions-expected.txt

    r82806 r82832  
    77Panel created
    88{
     9    onShown : {
     10        addListener : <function>
     11        removeListener : <function>
     12    }
     13    onHidden : {
     14        addListener : <function>
     15        removeListener : <function>
     16    }
    917    onSearch : {
    1018        addListener : <function>
  • trunk/Source/WebCore/ChangeLog

    r82830 r82832  
     12011-04-04  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: [Extensions API] add notifications on panels shown/hidden
     6        https://bugs.webkit.org/show_bug.cgi?id=57752
     7
     8        * inspector/front-end/ExtensionAPI.js:
     9        (WebInspector.injectedExtensionAPI.PanelImpl):
     10        * inspector/front-end/ExtensionServer.js:
     11        (WebInspector.ExtensionServer.prototype.notifyPanelShown):
     12        (WebInspector.ExtensionServer.prototype.notifyPanelHidden):
     13        * inspector/front-end/Panel.js:
     14        (WebInspector.Panel.prototype.show):
     15        (WebInspector.Panel.prototype.hide):
     16
    1172011-04-04  Pavel Podivilov  <podivilov@chromium.org>
    218
  • trunk/Source/WebCore/inspector/front-end/ExtensionAPI.js

    r82814 r82832  
    183183{
    184184    this._id = id;
     185    this.onShown = new EventSink("panel-shown-" + id);
     186    this.onHidden = new EventSink("panel-hidden-" + id);
    185187}
    186188
  • trunk/Source/WebCore/inspector/front-end/ExtensionServer.js

    r82814 r82832  
    6060
    6161WebInspector.ExtensionServer.prototype = {
    62     notifyPanelShown: function(panelName)
    63     {
    64         this._postNotification("panel-shown-" + panelName);
    65     },
    66 
    6762    notifyObjectSelected: function(panelId, objectId)
    6863    {
     
    7368    {
    7469        this._postNotification("panel-search-" + panelId, action, searchString);
     70    },
     71
     72    notifyPanelShown: function(panelId)
     73    {
     74        this._postNotification("panel-shown-" + panelId);
     75    },
     76
     77    notifyPanelHidden: function(panelId)
     78    {
     79        this._postNotification("panel-hidden-" + panelId);
    7580    },
    7681
  • trunk/Source/WebCore/inspector/front-end/Panel.js

    r82830 r82832  
    7575        this.restoreSidebarWidth();
    7676        this._restoreScrollPositions();
     77        WebInspector.extensionServer.notifyPanelShown(this.name);
    7778    },
    7879
     
    8788        if ("_toolbarItem" in this)
    8889            this._toolbarItem.removeStyleClass("toggled-on");
     90        WebInspector.extensionServer.notifyPanelHidden(this.name);
    8991    },
    9092
Note: See TracChangeset for help on using the changeset viewer.