Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @extends {WebInspector.App} | 7 * @extends {WebInspector.App} |
| 8 */ | 8 */ |
| 9 WebInspector.AdvancedApp = function() | 9 WebInspector.AdvancedApp = function() |
| 10 { | 10 { |
| 11 WebInspector.App.call(this); | 11 WebInspector.App.call(this); |
| 12 WebInspector.dockController.addEventListener(WebInspector.DockController.Eve nts.BeforeDockSideChanged, this._openToolboxWindow, this); | |
| 12 }; | 13 }; |
| 13 | 14 |
| 14 WebInspector.AdvancedApp.prototype = { | 15 WebInspector.AdvancedApp.prototype = { |
| 15 createGlobalStatusBarItems: function() | 16 createGlobalStatusBarItems: function() |
| 16 { | 17 { |
| 17 this.appendInspectStatusBarItem(); | 18 this.appendInspectStatusBarItem(); |
| 18 | 19 |
| 19 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) { | 20 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) { |
| 20 this._toggleResponsiveDesignButton = new WebInspector.StatusBarButto n(WebInspector.UIString("Responsive design mode."), "responsive-design-status-ba r-item"); | 21 this._toggleResponsiveDesignButton = new WebInspector.StatusBarButto n(WebInspector.UIString("Responsive design mode."), "responsive-design-status-ba r-item"); |
| 21 this._toggleResponsiveDesignButton.toggled = WebInspector.settings.r esponsiveDesignMode.get(); | 22 this._toggleResponsiveDesignButton.toggled = WebInspector.settings.r esponsiveDesignMode.get(); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 41 createRootView: function() | 42 createRootView: function() |
| 42 { | 43 { |
| 43 var rootView = new WebInspector.RootView(); | 44 var rootView = new WebInspector.RootView(); |
| 44 | 45 |
| 45 this._rootSplitView = new WebInspector.SplitView(false, true, WebInspect or.dockController.canDock() ? "InspectorView.splitViewState" : "InspectorView.du mmySplitViewState", 300, 300); | 46 this._rootSplitView = new WebInspector.SplitView(false, true, WebInspect or.dockController.canDock() ? "InspectorView.splitViewState" : "InspectorView.du mmySplitViewState", 300, 300); |
| 46 this._rootSplitView.show(rootView.element); | 47 this._rootSplitView.show(rootView.element); |
| 47 | 48 |
| 48 WebInspector.inspectorView.show(this._rootSplitView.sidebarElement()); | 49 WebInspector.inspectorView.show(this._rootSplitView.sidebarElement()); |
| 49 | 50 |
| 50 this._inspectedPagePlaceholder = new WebInspector.InspectedPagePlacehold er(); | 51 this._inspectedPagePlaceholder = new WebInspector.InspectedPagePlacehold er(); |
| 51 this._inspectedPagePlaceholder.addEventListener(WebInspector.InspectedPa gePlaceholder.Events.Update, this._onSetInspectedPageBounds, this); | 52 this._inspectedPagePlaceholder.addEventListener(WebInspector.InspectedPa gePlaceholder.Events.Update, this._onSetInspectedPageBounds.bind(this, false), t his); |
| 52 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) { | 53 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) { |
| 53 var responsiveDesignView = new WebInspector.ResponsiveDesignView(thi s._inspectedPagePlaceholder); | 54 this._responsiveDesignView = new WebInspector.ResponsiveDesignView(t his._inspectedPagePlaceholder); |
| 54 responsiveDesignView.show(this._rootSplitView.mainElement()); | 55 this._responsiveDesignView.show(this._rootSplitView.mainElement()); |
| 55 } else | 56 } else |
| 56 this._inspectedPagePlaceholder.show(this._rootSplitView.mainElement( )); | 57 this._inspectedPagePlaceholder.show(this._rootSplitView.mainElement( )); |
| 57 | 58 |
| 58 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.BeforeDockSideChanged, this._onBeforeDockSideChange, this); | 59 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.BeforeDockSideChanged, this._onBeforeDockSideChange, this); |
| 59 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.DockSideChanged, this._onDockSideChange, this); | 60 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.DockSideChanged, this._onDockSideChange, this); |
| 60 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.AfterDockSideChanged, this._onAfterDockSideChange, this); | 61 WebInspector.dockController.addEventListener(WebInspector.DockController .Events.AfterDockSideChanged, this._onAfterDockSideChange, this); |
| 61 this._onDockSideChange(); | 62 this._onDockSideChange(); |
| 62 | 63 |
| 63 rootView.attachToBody(); | 64 rootView.attachToBody(); |
| 64 }, | 65 }, |
| 65 | 66 |
| 66 _onBeforeDockSideChange: function() | 67 /** |
| 68 * @param {!WebInspector.Event} event | |
| 69 */ | |
| 70 _openToolboxWindow: function(event) | |
| 67 { | 71 { |
| 72 if (/** @type {string} */ (event.data) !== WebInspector.DockController.S tate.Undocked) | |
| 73 return; | |
| 74 | |
| 75 if (this._toolboxWindow || !WebInspector.experimentsSettings.responsiveD esign.isEnabled()) | |
| 76 return; | |
| 77 | |
| 78 var toolbox = (window.location.search ? "&" : "?") + "toolbox=true"; | |
| 79 var hash = window.location.hash; | |
| 80 var url = window.location.href.replace(hash, "") + toolbox + hash; | |
| 81 this._toolboxWindow = window.open(url, undefined); | |
| 82 }, | |
| 83 | |
| 84 /** | |
| 85 * @param {!WebInspector.ToolboxApp} toolbox | |
| 86 */ | |
| 87 _toolboxLoaded: function(toolbox) | |
| 88 { | |
| 89 this._toolbox = toolbox; | |
| 90 this._updatePageResizer(); | |
| 91 }, | |
| 92 | |
| 93 _updatePageResizer: function() | |
| 94 { | |
| 95 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) | |
| 96 WebInspector.overridesSupport.setPageResizer(this._isDocked() ? this ._responsiveDesignView : (this._toolbox ? this._toolbox._responsiveDesignView : null)); | |
| 97 }, | |
| 98 | |
| 99 /** | |
| 100 * @param {!WebInspector.Event} event | |
| 101 */ | |
| 102 _onBeforeDockSideChange: function(event) | |
| 103 { | |
| 104 if (/** @type {string} */ (event.data) === WebInspector.DockController.S tate.Undocked && this._toolbox) { | |
| 105 // Hide inspectorView and force layout to mimic the undocked state. | |
| 106 this._rootSplitView.hideSidebar(); | |
| 107 this._inspectedPagePlaceholder.update(); | |
| 108 } | |
| 109 | |
| 68 this._changingDockSide = true; | 110 this._changingDockSide = true; |
| 69 }, | 111 }, |
| 70 | 112 |
| 71 _onDockSideChange: function() | 113 /** |
| 114 * @param {!WebInspector.Event=} event | |
| 115 */ | |
| 116 _onDockSideChange: function(event) | |
| 72 { | 117 { |
| 73 var dockSide = WebInspector.dockController.dockSide(); | 118 this._updatePageResizer(); |
| 74 if (dockSide === WebInspector.DockController.State.Undocked) { | 119 |
| 75 this._rootSplitView.toggleResizer(this._rootSplitView.resizerElement (), false); | 120 if (!this._isDocked()) { |
| 76 this._rootSplitView.toggleResizer(WebInspector.inspectorView.topResi zerElement(), false); | 121 this._updateForUndocked(); |
| 77 this._rootSplitView.hideMain(); | 122 } else if (this._toolbox && event && /** @type {string} */ (event.data) === WebInspector.DockController.State.Undocked) { |
| 78 return; | 123 // Don't update yet for smooth transition. |
| 124 this._rootSplitView.hideSidebar(); | |
| 125 } else { | |
| 126 this._updateForDocked(WebInspector.dockController.dockSide()); | |
| 79 } | 127 } |
| 128 }, | |
| 80 | 129 |
| 130 /** | |
| 131 * @param {!WebInspector.Event} event | |
| 132 */ | |
| 133 _onAfterDockSideChange: function(event) | |
| 134 { | |
| 135 if (this._changingDockSide) { | |
|
apavlov
2014/06/04 09:04:25
We prefer early returns:
if (!this._changingDocSi
dgozman
2014/06/04 11:16:18
Done.
| |
| 136 this._changingDockSide = false; | |
| 137 if (/** @type {string} */ (event.data) === WebInspector.DockControll er.State.Undocked) { | |
| 138 // Restore docked layout in case of smooth transition. | |
| 139 this._updateForDocked(WebInspector.dockController.dockSide()); | |
| 140 } | |
| 141 this._inspectedPagePlaceholder.update(); | |
| 142 } | |
| 143 }, | |
| 144 | |
| 145 /** | |
| 146 * @param {string} dockSide | |
| 147 */ | |
| 148 _updateForDocked: function(dockSide) | |
| 149 { | |
| 81 this._rootSplitView.setVertical(dockSide === WebInspector.DockController .State.DockedToLeft || dockSide === WebInspector.DockController.State.DockedToRi ght); | 150 this._rootSplitView.setVertical(dockSide === WebInspector.DockController .State.DockedToLeft || dockSide === WebInspector.DockController.State.DockedToRi ght); |
| 82 this._rootSplitView.setSecondIsSidebar(dockSide === WebInspector.DockCon troller.State.DockedToRight || dockSide === WebInspector.DockController.State.Do ckedToBottom); | 151 this._rootSplitView.setSecondIsSidebar(dockSide === WebInspector.DockCon troller.State.DockedToRight || dockSide === WebInspector.DockController.State.Do ckedToBottom); |
| 83 this._rootSplitView.toggleResizer(this._rootSplitView.resizerElement(), true); | 152 this._rootSplitView.toggleResizer(this._rootSplitView.resizerElement(), true); |
| 84 this._rootSplitView.toggleResizer(WebInspector.inspectorView.topResizerE lement(), dockSide === WebInspector.DockController.State.DockedToBottom); | 153 this._rootSplitView.toggleResizer(WebInspector.inspectorView.topResizerE lement(), dockSide === WebInspector.DockController.State.DockedToBottom); |
| 85 this._rootSplitView.showBoth(); | 154 this._rootSplitView.showBoth(); |
| 86 }, | 155 }, |
| 87 | 156 |
| 88 _onAfterDockSideChange: function() | 157 _updateForUndocked: function() |
| 89 { | 158 { |
| 90 this._changingDockSide = false; | 159 this._rootSplitView.toggleResizer(this._rootSplitView.resizerElement(), false); |
| 91 this._inspectedPagePlaceholder.update(); | 160 this._rootSplitView.toggleResizer(WebInspector.inspectorView.topResizerE lement(), false); |
| 161 this._rootSplitView.hideMain(); | |
| 92 }, | 162 }, |
| 93 | 163 |
| 94 _isDocked: function() | 164 _isDocked: function() |
| 95 { | 165 { |
| 96 return WebInspector.dockController.dockSide() !== WebInspector.DockContr oller.State.Undocked; | 166 return WebInspector.dockController.dockSide() !== WebInspector.DockContr oller.State.Undocked; |
| 97 }, | 167 }, |
| 98 | 168 |
| 99 /** | 169 /** |
| 170 * @param {boolean} toolbox | |
| 100 * @param {!WebInspector.Event} event | 171 * @param {!WebInspector.Event} event |
| 101 */ | 172 */ |
| 102 _onSetInspectedPageBounds: function(event) | 173 _onSetInspectedPageBounds: function(toolbox, event) |
| 103 { | 174 { |
| 104 if (this._changingDockSide || !this._isDocked()) | 175 if (this._changingDockSide || (this._isDocked() === toolbox)) |
| 105 return; | 176 return; |
| 106 var bounds = /** @type {{x: number, y: number, width: number, height: nu mber}} */ (event.data); | 177 var bounds = /** @type {{x: number, y: number, width: number, height: nu mber}} */ (event.data); |
| 107 InspectorFrontendHost.setInspectedPageBounds(bounds); | 178 InspectorFrontendHost.setInspectedPageBounds(bounds); |
| 108 }, | 179 }, |
| 109 | 180 |
| 110 __proto__: WebInspector.App.prototype | 181 __proto__: WebInspector.App.prototype |
| 111 }; | 182 }; |
| 183 | |
| 184 | |
| 185 /** | |
| 186 * @constructor | |
| 187 */ | |
| 188 WebInspector.ToolboxApp = function() | |
|
apavlov
2014/06/04 09:04:25
Shouldn't this extend WebInspector.App?
dgozman
2014/06/04 11:16:19
Not really. Renamed to just WebInspector.Toolbox.
| |
| 189 { | |
| 190 if (!window.opener) | |
| 191 return; | |
| 192 | |
| 193 WebInspector.zoomManager = window.opener.WebInspector.zoomManager; | |
| 194 WebInspector.overridesSupport = window.opener.WebInspector.overridesSupport; | |
| 195 WebInspector.settings = window.opener.WebInspector.settings; | |
| 196 WebInspector.experimentsSettings = window.opener.WebInspector.experimentsSet tings; | |
| 197 WebInspector.installPortStyles(); | |
| 198 | |
| 199 var main = window.opener.WebInspector.app; | |
|
apavlov
2014/06/04 09:04:25
mainApp?
dgozman
2014/06/04 11:16:19
Renamed to |advancedApp| and added typecast.
| |
| 200 var rootView = new WebInspector.RootView(); | |
| 201 this._inspectedPagePlaceholder = new WebInspector.InspectedPagePlaceholder() ; | |
| 202 this._inspectedPagePlaceholder.addEventListener(WebInspector.InspectedPagePl aceholder.Events.Update, main._onSetInspectedPageBounds.bind(main, true), main); | |
|
apavlov
2014/06/04 09:04:24
You don't need the last argument (main), since the
dgozman
2014/06/04 11:16:19
Done.
| |
| 203 if (WebInspector.experimentsSettings.responsiveDesign.isEnabled()) { | |
| 204 this._responsiveDesignView = new WebInspector.ResponsiveDesignView(this. _inspectedPagePlaceholder); | |
| 205 this._responsiveDesignView.show(rootView.element); | |
| 206 } else | |
|
apavlov
2014/06/04 09:04:24
braces around the else-arm
dgozman
2014/06/04 11:16:18
Done.
| |
| 207 this._inspectedPagePlaceholder.show(rootView.element); | |
| 208 rootView.attachToBody(); | |
| 209 main._toolboxLoaded(this); | |
| 210 }; | |
|
apavlov
2014/06/04 09:04:25
we don't normally place ';' after function literal
dgozman
2014/06/04 11:16:18
Done.
| |
| 211 | |
| 212 WebInspector.ToolboxApp.prototype = { | |
|
apavlov
2014/06/04 09:04:24
If there's no inheritance, this is not needed
dgozman
2014/06/04 11:16:19
Done.
| |
| 213 }; | |
| OLD | NEW |