Changeset 147105 in webkit


Ignore:
Timestamp:
Mar 28, 2013 6:25:50 AM (11 years ago)
Author:
caseq@chromium.org
Message:

Web Inspector: factor out node search controller from inspector.js
https://bugs.webkit.org/show_bug.cgi?id=112689

Reviewed by Pavel Feldman.

This just extracts the existing logic of toggling node search
from inspector.js into a class of its own, InspectElementModeController.
Drive-by: add CtrlOrMeta+Shift+C to help screen.

  • English.lproj/localizedStrings.js:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • inspector/compile-front-end.py:
  • inspector/front-end/InspectElementModeController.js: Added.

(WebInspector.InspectElementModeController):
(WebInspector.InspectElementModeController.createShortcut):
(WebInspector.InspectElementModeController.prototype.enabled):
(WebInspector.InspectElementModeController.prototype.disable):
(WebInspector.InspectElementModeController.prototype.toggleSearch.callback):
(WebInspector.InspectElementModeController.prototype.toggleSearch):
(WebInspector.InspectElementModeController.prototype.handleShortcut):

  • inspector/front-end/InspectorFrontendAPI.js:

(InspectorFrontendAPI.enterInspectElementMode):

  • inspector/front-end/WebKit.qrc:
  • inspector/front-end/inspector.html:
  • inspector/front-end/inspector.js:

(WebInspector._createGlobalStatusBarItems):
(WebInspector._registerShortcuts):
(WebInspector.documentKeyDown):
(WebInspector._updateFocusedNode):

Location:
trunk/Source/WebCore
Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r147104 r147105  
     12013-03-22  Andrey Kosyakov  <caseq@chromium.org>
     2
     3        Web Inspector: factor out node search controller from inspector.js
     4        https://bugs.webkit.org/show_bug.cgi?id=112689
     5
     6        Reviewed by Pavel Feldman.
     7
     8        This just extracts the existing logic of toggling node search
     9        from inspector.js into a class of its own, InspectElementModeController.
     10        Drive-by: add CtrlOrMeta+Shift+C to help screen.
     11
     12        * English.lproj/localizedStrings.js:
     13        * WebCore.gypi:
     14        * WebCore.vcproj/WebCore.vcproj:
     15        * WebCore.vcxproj/WebCore.vcxproj:
     16        * WebCore.vcxproj/WebCore.vcxproj.filters:
     17        * inspector/compile-front-end.py:
     18        * inspector/front-end/InspectElementModeController.js: Added.
     19        (WebInspector.InspectElementModeController):
     20        (WebInspector.InspectElementModeController.createShortcut):
     21        (WebInspector.InspectElementModeController.prototype.enabled):
     22        (WebInspector.InspectElementModeController.prototype.disable):
     23        (WebInspector.InspectElementModeController.prototype.toggleSearch.callback):
     24        (WebInspector.InspectElementModeController.prototype.toggleSearch):
     25        (WebInspector.InspectElementModeController.prototype.handleShortcut):
     26        * inspector/front-end/InspectorFrontendAPI.js:
     27        (InspectorFrontendAPI.enterInspectElementMode):
     28        * inspector/front-end/WebKit.qrc:
     29        * inspector/front-end/inspector.html:
     30        * inspector/front-end/inspector.js:
     31        (WebInspector._createGlobalStatusBarItems):
     32        (WebInspector._registerShortcuts):
     33        (WebInspector.documentKeyDown):
     34        (WebInspector._updateFocusedNode):
     35
    1362013-03-28  Eugene Klyuchnikov  <eustas@chromium.org>
    237
  • trunk/Source/WebCore/English.lproj/localizedStrings.js

    r147031 r147105  
    918918localizedStrings["Limit number of captured JS stack frames"] = "Limit number of captured JS stack frames";
    919919localizedStrings["Frames to capture"] = "Frames to capture";
     920localizedStrings["Select node to inspect"] = "Select node to inspect";
  • trunk/Source/WebCore/WebCore.gypi

    r146908 r147105  
    50615061            'inspector/front-end/NetworkRequest.js',
    50625062            'inspector/front-end/NetworkUISourceCodeProvider.js',
     5063            'inspector/front-end/InspectElementModeController.js',
    50635064            'inspector/front-end/Object.js',
    50645065            'inspector/front-end/ObjectPopoverHelper.js',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r146908 r147105  
    7770777707                                </File>
    7770877708                                <File
     77709                                        RelativePath="..\inspector\front-end\InspectElementModeController.js"
     77710                                        >
     77711                                </File>
     77712                                <File
    7770977713                                        RelativePath="..\inspector\front-end\Object.js"
    7771077714                                        >
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r146908 r147105  
    1350413504    <None Include="..\inspector\front-end\NetworkRequest.js" />
    1350513505    <None Include="..\inspector\front-end\NetworkUISourceCodeProvider.js" />
     13506    <None Include="..\inspector\front-end\InspectElementModeController.js" />
    1350613507    <None Include="..\inspector\front-end\Object.js" />
    1350713508    <None Include="..\inspector\front-end\ObjectPopoverHelper.js" />
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters

    r146908 r147105  
    1487614876      <Filter>inspector\front-end</Filter>
    1487714877    </None>
     14878    <None Include="..\inspector\front-end\InspectElementModeController.js">
     14879      <Filter>inspector\front-end</Filter>
     14880    </None>
    1487814881    <None Include="..\inspector\front-end\Object.js">
    1487914882      <Filter>inspector\front-end</Filter>
  • trunk/Source/WebCore/inspector/compile-front-end.py

    r146204 r147105  
    185185            "ImageView.js",
    186186            "NativeBreakpointsSidebarPane.js",
     187            "InspectElementModeController.js",
    187188            "ObjectPopoverHelper.js",
    188189            "ObjectPropertiesSection.js",
  • trunk/Source/WebCore/inspector/front-end/InspectorFrontendAPI.js

    r142976 r147105  
    108108    enterInspectElementMode: function()
    109109    {
    110         WebInspector.toggleSearchingForNode();
     110        if (WebInspector.inspectElementModeController)
     111            WebInspector.inspectElementModeController.toggleSearch();
    111112    },
    112113
  • trunk/Source/WebCore/inspector/front-end/WebKit.qrc

    r146204 r147105  
    133133    <file>NetworkRequest.js</file>
    134134    <file>NetworkUISourceCodeProvider.js</file>
     135    <file>InspectElementModeController.js</file>
    135136    <file>Object.js</file>
    136137    <file>ObjectPopoverHelper.js</file>
  • trunk/Source/WebCore/inspector/front-end/inspector.html

    r146319 r147105  
    169169    <script type="text/javascript" src="Toolbar.js"></script>
    170170    <script type="text/javascript" src="SearchController.js"></script>
     171    <script type="text/javascript" src="InspectElementModeController.js"></script>
    171172    <script type="text/javascript" src="WorkerManager.js"></script>
    172173    <script type="text/javascript" src="UserMetrics.js"></script>
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r146198 r147105  
    9494        mainStatusBar.insertBefore(this._toggleConsoleButton.element, bottomStatusBarContainer);
    9595
    96         if (!WebInspector.WorkerManager.isWorkerFrontend()) {
    97             this._nodeSearchButton = new WebInspector.StatusBarButton(WebInspector.UIString("Select an element in the page to inspect it."), "node-search-status-bar-item");
    98             this._nodeSearchButton.addEventListener("click", this.toggleSearchingForNode, this);
    99             mainStatusBar.insertBefore(this._nodeSearchButton.element, bottomStatusBarContainer);
    100         }
     96        if (this.inspectElementModeController)
     97            mainStatusBar.insertBefore(this.inspectElementModeController.toggleSearchButton.element, bottomStatusBarContainer);
    10198
    10299        mainStatusBar.appendChild(this.settingsController.statusBarItem);
     
    274271    },
    275272
    276     toggleSearchingForNode: function()
    277     {
    278         var enabled = !this._nodeSearchButton.toggled;
    279         /**
    280          * @param {?Protocol.Error} error
    281          */
    282         function callback(error)
    283         {
    284             if (!error)
    285                 this._nodeSearchButton.toggled = enabled;
    286         }
    287         WebInspector.domAgent.setInspectModeEnabled(enabled, callback.bind(this));
    288     },
    289 
    290273    _debuggerPaused: function()
    291274    {
     
    457440    this.searchController = new WebInspector.SearchController();
    458441    this.advancedSearchController = new WebInspector.AdvancedSearchController();
     442    if (!WebInspector.WorkerManager.isWorkerFrontend())
     443        this.inspectElementModeController = new WebInspector.InspectElementModeController();
     444
    459445    this.settingsController = new WebInspector.SettingsController();
    460446
     
    688674    section.addKey(advancedSearchShortcut, WebInspector.UIString("Search across all sources"));
    689675
     676    var inspectElementModeShortcut = WebInspector.InspectElementModeController.createShortcut();
     677    section.addKey(inspectElementModeShortcut, WebInspector.UIString("Select node to inspect"));
     678
    690679    var openResourceShortcut = WebInspector.KeyboardShortcut.makeDescriptor("o", WebInspector.KeyboardShortcut.Modifiers.CtrlOrMeta);
    691680    section.addKey(openResourceShortcut, WebInspector.UIString("Go to source"));
     
    742731        return;
    743732    if (WebInspector.advancedSearchController.handleShortcut(event))
     733        return;
     734    if (WebInspector.inspectElementModeController && WebInspector.inspectElementModeController.handleShortcut(event))
    744735        return;
    745736
     
    795786            break;
    796787    }
    797 
    798     // Cmd/Control + Shift + C should be a shortcut to clicking the Node Search Button.
    799     // This shortcut matches Firebug.
    800     if (event.keyIdentifier === "U+0043") { // C key
    801         if (WebInspector.isMac())
    802             var isNodeSearchKey = event.metaKey && !event.ctrlKey && !event.altKey && event.shiftKey;
    803         else
    804             var isNodeSearchKey = event.ctrlKey && !event.metaKey && !event.altKey && event.shiftKey;
    805 
    806         if (isNodeSearchKey) {
    807             this.toggleSearchingForNode();
    808             event.consume(true);
    809             return;
    810         }
    811         return;
    812     }
    813788}
    814789
     
    992967WebInspector._updateFocusedNode = function(nodeId)
    993968{
    994     if (WebInspector._nodeSearchButton.toggled) {
     969    if (WebInspector.inspectElementModeController && WebInspector.inspectElementModeController.enabled()) {
    995970        InspectorFrontendHost.bringToFront();
    996         WebInspector._nodeSearchButton.toggled = false;
     971        WebInspector.inspectElementModeController.disable();
    997972    }
    998973    WebInspector.showPanel("elements").revealAndSelectNode(nodeId);
Note: See TracChangeset for help on using the changeset viewer.