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 |