OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 this._splitWidget.show(this.element); | 57 this._splitWidget.show(this.element); |
58 | 58 |
59 // Create scripts navigator | 59 // Create scripts navigator |
60 const initialNavigatorWidth = 225; | 60 const initialNavigatorWidth = 225; |
61 this.editorView = new WebInspector.SplitWidget(true, false, "sourcesPanelNav igatorSplitViewState", initialNavigatorWidth); | 61 this.editorView = new WebInspector.SplitWidget(true, false, "sourcesPanelNav igatorSplitViewState", initialNavigatorWidth); |
62 this.editorView.enableShowModeSaving(); | 62 this.editorView.enableShowModeSaving(); |
63 this.editorView.element.tabIndex = 0; | 63 this.editorView.element.tabIndex = 0; |
64 this._splitWidget.setMainWidget(this.editorView); | 64 this._splitWidget.setMainWidget(this.editorView); |
65 | 65 |
66 // Create navigator tabbed pane with toolbar. | 66 // Create navigator tabbed pane with toolbar. |
67 this._navigatorTabbedLocation = WebInspector.viewManager.createTabbedLocatio n(this._setAsCurrentPanel.bind(this), "navigator-view", true); | 67 this._navigatorTabbedLocation = WebInspector.viewManager.createTabbedLocatio n(this._revealNavigatorSidebar.bind(this), "navigator-view", true); |
68 var tabbedPane = this._navigatorTabbedLocation.tabbedPane(); | 68 var tabbedPane = this._navigatorTabbedLocation.tabbedPane(); |
69 tabbedPane.setMinimumSize(100, 25); | 69 tabbedPane.setMinimumSize(100, 25); |
70 tabbedPane.setShrinkableTabs(true); | 70 tabbedPane.setShrinkableTabs(true); |
71 tabbedPane.element.classList.add("navigator-tabbed-pane"); | 71 tabbedPane.element.classList.add("navigator-tabbed-pane"); |
72 var navigatorToolbar = new WebInspector.Toolbar(""); | 72 var navigatorToolbar = new WebInspector.Toolbar(""); |
73 var navigatorMenuButton = new WebInspector.ToolbarMenuButton(this._populateN avigatorMenu.bind(this), true); | 73 var navigatorMenuButton = new WebInspector.ToolbarMenuButton(this._populateN avigatorMenu.bind(this), true); |
74 navigatorMenuButton.setTitle(WebInspector.UIString("More options")); | 74 navigatorMenuButton.setTitle(WebInspector.UIString("More options")); |
75 navigatorToolbar.appendToolbarItem(navigatorMenuButton); | 75 navigatorToolbar.appendToolbarItem(navigatorMenuButton); |
76 tabbedPane.appendAfterTabStrip(navigatorToolbar.element); | 76 tabbedPane.appendAfterTabStrip(navigatorToolbar.element); |
77 this.editorView.setSidebarWidget(tabbedPane); | 77 this.editorView.setSidebarWidget(tabbedPane); |
78 | 78 |
79 this._sourcesView = new WebInspector.SourcesView(); | 79 this._sourcesView = new WebInspector.SourcesView(); |
80 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorSel ected, this._editorSelected.bind(this)); | 80 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorSel ected, this._editorSelected.bind(this)); |
81 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorClo sed, this._editorClosed.bind(this)); | 81 this._sourcesView.addEventListener(WebInspector.SourcesView.Events.EditorClo sed, this._editorClosed.bind(this)); |
82 this._sourcesView.registerShortcuts(this.registerShortcuts.bind(this)); | 82 this._sourcesView.registerShortcuts(this.registerShortcuts.bind(this)); |
83 this.editorView.setMainWidget(this._sourcesView); | 83 this.editorView.setMainWidget(this._sourcesView); |
84 this._editorChanged(this._sourcesView.currentUISourceCode()); | 84 this._editorChanged(this._sourcesView.currentUISourceCode()); |
85 | 85 |
86 this.sidebarPanes = {}; | 86 this._threadsSidebarPane = null; |
87 this.sidebarPanes.threads = null; | 87 this._watchSidebarPane = /** @type {!WebInspector.View} */ (WebInspector.vie wManager.view("sources.watch")); |
88 this.sidebarPanes.watchExpressions = new WebInspector.WatchExpressionsSideba rPane(); | 88 // TODO: Force installing listeners from the model, not the UI. |
89 this.sidebarPanes.callstack = new WebInspector.CallStackSidebarPane(); | 89 self.runtime.sharedInstance(WebInspector.XHRBreakpointsSidebarPane); |
90 this.sidebarPanes.callstack.registerShortcuts(this.registerShortcuts.bind(th is)); | 90 this._callstackPane = self.runtime.sharedInstance(WebInspector.CallStackSide barPane); |
91 | 91 this._callstackPane.registerShortcuts(this.registerShortcuts.bind(this)); |
92 this.sidebarPanes.scopechain = new WebInspector.ScopeChainSidebarPane(); | |
93 this.sidebarPanes.jsBreakpoints = new WebInspector.JavaScriptBreakpointsSide barPane(WebInspector.breakpointManager, this.showUISourceCode.bind(this)); | |
94 | 92 |
95 this._installDebuggerSidebarController(); | 93 this._installDebuggerSidebarController(); |
96 | 94 |
97 WebInspector.moduleSetting("sidebarPosition").addChangeListener(this._update SidebarPosition.bind(this)); | 95 WebInspector.moduleSetting("sidebarPosition").addChangeListener(this._update SidebarPosition.bind(this)); |
98 this._updateSidebarPosition(); | 96 this._updateSidebarPosition(); |
99 | 97 |
100 this._updateDebuggerButtons(); | 98 this._updateDebuggerButtons(); |
101 this._pauseOnExceptionEnabledChanged(); | 99 this._pauseOnExceptionEnabledChanged(); |
102 WebInspector.moduleSetting("pauseOnExceptionEnabled").addChangeListener(this ._pauseOnExceptionEnabledChanged, this); | 100 WebInspector.moduleSetting("pauseOnExceptionEnabled").addChangeListener(this ._pauseOnExceptionEnabledChanged, this); |
103 | 101 |
104 this._liveLocationPool = new WebInspector.LiveLocationPool(); | 102 this._liveLocationPool = new WebInspector.LiveLocationPool(); |
105 | 103 |
106 this._setTarget(WebInspector.context.flavor(WebInspector.Target)); | 104 this._setTarget(WebInspector.context.flavor(WebInspector.Target)); |
107 WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManag er.Events.BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, th is); | 105 WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManag er.Events.BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, th is); |
108 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._onCu rrentTargetChanged, this); | 106 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._onCu rrentTargetChanged, this); |
107 WebInspector.context.addFlavorChangeListener(WebInspector.DebuggerModel.Call Frame, this._callFrameChanged, this); | |
109 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerWasEnabled, this ); | 108 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerWasEnabled, this._debuggerWasEnabled, this ); |
110 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this); | 109 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerPaused, this._debuggerPaused, this); |
111 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this); | 110 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.DebuggerResumed, this._debuggerResumed, this); |
112 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.CallFrameSelected, this._callFrameSelectedOnModel, this); | |
113 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this); | 111 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this); |
114 new WebInspector.WorkspaceMappingTip(this, this._workspace); | 112 new WebInspector.WorkspaceMappingTip(this, this._workspace); |
115 WebInspector.extensionServer.addEventListener(WebInspector.ExtensionServer.E vents.SidebarPaneAdded, this._extensionSidebarPaneAdded, this); | 113 WebInspector.extensionServer.addEventListener(WebInspector.ExtensionServer.E vents.SidebarPaneAdded, this._extensionSidebarPaneAdded, this); |
116 WebInspector.DataSaverInfobar.maybeShowInPanel(this); | 114 WebInspector.DataSaverInfobar.maybeShowInPanel(this); |
117 WebInspector.targetManager.observeTargets(this); | 115 WebInspector.targetManager.observeTargets(this); |
118 } | 116 } |
119 | 117 |
120 WebInspector.SourcesPanel._lastModificationTimeout = 200; | 118 WebInspector.SourcesPanel._lastModificationTimeout = 200; |
121 | 119 |
122 WebInspector.SourcesPanel.minToolbarWidth = 215; | 120 WebInspector.SourcesPanel.minToolbarWidth = 215; |
123 | 121 |
124 WebInspector.SourcesPanel.prototype = { | 122 WebInspector.SourcesPanel.prototype = { |
125 /** | 123 /** |
126 * @override | 124 * @override |
127 */ | 125 */ |
128 focus: function() | 126 focus: function() |
129 { | 127 { |
130 this._sourcesView.focus(); | 128 this._sourcesView.focus(); |
131 }, | 129 }, |
132 | 130 |
133 /** | 131 /** |
134 * @override | 132 * @override |
135 * @param {!WebInspector.Target} target | 133 * @param {!WebInspector.Target} target |
136 */ | 134 */ |
137 targetAdded: function(target) | 135 targetAdded: function(target) |
138 { | 136 { |
139 var hasThreads = WebInspector.targetManager.targets(WebInspector.Target. Capability.JS).length > 1; | 137 var hasThreads = WebInspector.targetManager.targets(WebInspector.Target. Capability.JS).length > 1; |
140 if (hasThreads && !this.sidebarPanes.threads) { | 138 if (hasThreads && !this._threadsSidebarPane) { |
141 this.sidebarPanes.threads = new WebInspector.ThreadsSidebarPane(); | 139 this._threadsSidebarPane = /** @type {!WebInspector.View} */ (WebIns pector.viewManager.view("sources.threads")); |
142 if (this._sidebarPaneStack) { | 140 if (this._sidebarPaneStack) { |
143 this._sidebarPaneStack.showView(this.sidebarPanes.threads, this. _splitWidget.isVertical() ? this.sidebarPanes.watchExpressions : this.sidebarPan es.callstack); | 141 this._sidebarPaneStack.showView(this._threadsSidebarPane, this._ splitWidget.isVertical() ? this._watchSidebarPane : this._callstackPane); |
144 } | 142 } |
145 } | 143 } |
146 }, | 144 }, |
147 | 145 |
148 /** | 146 /** |
149 * @override | 147 * @override |
150 * @param {!WebInspector.Target} target | 148 * @param {!WebInspector.Target} target |
151 */ | 149 */ |
152 targetRemoved: function(target) | 150 targetRemoved: function(target) |
153 { | 151 { |
154 }, | 152 }, |
155 | 153 |
156 /** | 154 /** |
157 * @param {?WebInspector.Target} target | 155 * @param {?WebInspector.Target} target |
158 */ | 156 */ |
159 _setTarget: function(target) | 157 _setTarget: function(target) |
160 { | 158 { |
161 if (!target) | 159 if (!target) |
162 return; | 160 return; |
163 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); | 161 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
164 if (!debuggerModel) | 162 if (!debuggerModel) |
165 return; | 163 return; |
166 | 164 |
167 if (debuggerModel.isPaused()) { | 165 if (debuggerModel.isPaused()) { |
168 this._showDebuggerPausedDetails(/** @type {!WebInspector.DebuggerPau sedDetails} */ (debuggerModel.debuggerPausedDetails())); | 166 this._showDebuggerPausedDetails(/** @type {!WebInspector.DebuggerPau sedDetails} */ (debuggerModel.debuggerPausedDetails())); |
169 var callFrame = debuggerModel.selectedCallFrame(); | |
170 if (callFrame) | |
171 this._selectCallFrameInUI(callFrame); | |
172 } else { | 167 } else { |
173 this._paused = false; | 168 this._paused = false; |
174 this._clearInterface(); | 169 this._clearInterface(); |
175 this._toggleDebuggerSidebarButton.disabled = false; | 170 this._toggleDebuggerSidebarButton.disabled = false; |
176 } | 171 } |
177 }, | 172 }, |
178 | 173 |
179 /** | 174 /** |
180 * @param {!WebInspector.Event} event | 175 * @param {!WebInspector.Event} event |
181 */ | 176 */ |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
268 WebInspector.context.setFlavor(WebInspector.Target, details.target() ); | 263 WebInspector.context.setFlavor(WebInspector.Target, details.target() ); |
269 }, | 264 }, |
270 | 265 |
271 /** | 266 /** |
272 * @param {!WebInspector.DebuggerPausedDetails} details | 267 * @param {!WebInspector.DebuggerPausedDetails} details |
273 */ | 268 */ |
274 _showDebuggerPausedDetails: function(details) | 269 _showDebuggerPausedDetails: function(details) |
275 { | 270 { |
276 this._paused = true; | 271 this._paused = true; |
277 this._updateDebuggerButtons(); | 272 this._updateDebuggerButtons(); |
278 | 273 WebInspector.context.setFlavor(WebInspector.DebuggerPausedDetails, detai ls); |
279 /** | |
280 * @param {!WebInspector.LiveLocation} liveLocation | |
281 * @this {WebInspector.SourcesPanel} | |
282 */ | |
283 function didGetUILocation(liveLocation) | |
284 { | |
285 var uiLocation = liveLocation.uiLocation(); | |
286 if (!uiLocation) | |
287 return; | |
288 var breakpoint = WebInspector.breakpointManager.findBreakpointOnLine (uiLocation.uiSourceCode, uiLocation.lineNumber); | |
289 if (!breakpoint) | |
290 return; | |
291 this.sidebarPanes.jsBreakpoints.highlightBreakpoint(breakpoint); | |
292 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a JavaScript breakpoint.")); | |
293 } | |
294 | |
295 if (details.reason === WebInspector.DebuggerModel.BreakReason.DOM) { | |
296 this.sidebarPanes.callstack.setStatus(WebInspector.domBreakpointsSid ebarPane.createBreakpointHitStatusMessage(details)); | |
297 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Eve ntListener) { | |
298 var eventName = details.auxData["eventName"]; | |
299 var eventNameForUI = WebInspector.EventListenerBreakpointsSidebarPan e.eventNameForUI(eventName, details.auxData); | |
300 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a \"%s\" Event Listener.", eventNameForUI)); | |
301 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.XHR ) { | |
302 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a XMLHttpRequest.")); | |
303 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Exc eption) { | |
304 var description = details.auxData["description"] || ""; | |
305 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on exception: '%s'.", description.split("\n", 1)[0])); | |
306 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Pro miseRejection) { | |
307 var description = details.auxData["description"] || ""; | |
308 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on promise rejection: '%s'.", description.split("\n", 1)[0])); | |
309 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Ass ert) { | |
310 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on assertion.")); | |
311 } else if (details.reason === WebInspector.DebuggerModel.BreakReason.Deb ugCommand) { | |
312 this.sidebarPanes.callstack.setStatus(WebInspector.UIString("Paused on a debugged function.")); | |
313 } else { | |
314 if (details.callFrames.length) | |
315 WebInspector.debuggerWorkspaceBinding.createCallFrameLiveLocatio n(details.callFrames[0].location(), didGetUILocation.bind(this), this._liveLocat ionPool); | |
316 else | |
317 console.warn("ScriptsPanel paused, but callFrames.length is zero ."); // TODO remove this once we understand this case better | |
318 } | |
319 | |
320 this._splitWidget.showBoth(true); | |
321 this._toggleDebuggerSidebarButton.disabled = true; | 274 this._toggleDebuggerSidebarButton.disabled = true; |
322 window.focus(); | 275 window.focus(); |
323 InspectorFrontendHost.bringToFront(); | 276 InspectorFrontendHost.bringToFront(); |
324 }, | 277 }, |
325 | 278 |
326 /** | 279 /** |
327 * @param {!WebInspector.Event} event | 280 * @param {!WebInspector.Event} event |
328 */ | 281 */ |
329 _debuggerResumed: function(event) | 282 _debuggerResumed: function(event) |
330 { | 283 { |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
465 _lastModificationTimeoutPassedForTest: function() | 418 _lastModificationTimeoutPassedForTest: function() |
466 { | 419 { |
467 WebInspector.SourcesPanel._lastModificationTimeout = Number.MIN_VALUE; | 420 WebInspector.SourcesPanel._lastModificationTimeout = Number.MIN_VALUE; |
468 }, | 421 }, |
469 | 422 |
470 _updateLastModificationTimeForTest: function() | 423 _updateLastModificationTimeForTest: function() |
471 { | 424 { |
472 WebInspector.SourcesPanel._lastModificationTimeout = Number.MAX_VALUE; | 425 WebInspector.SourcesPanel._lastModificationTimeout = Number.MAX_VALUE; |
473 }, | 426 }, |
474 | 427 |
475 /** | 428 _callFrameChanged: function() |
476 * @param {!WebInspector.Event} event | |
477 */ | |
478 _callFrameSelectedOnModel: function(event) | |
479 { | 429 { |
480 var callFrame = /** @type {?WebInspector.DebuggerModel.CallFrame} */ (ev ent.data); | 430 var callFrame = WebInspector.context.flavor(WebInspector.DebuggerModel.C allFrame); |
481 if (!callFrame || callFrame.target() !== WebInspector.context.flavor(Web Inspector.Target)) | 431 if (!callFrame) |
482 return; | 432 return; |
483 this._selectCallFrameInUI(callFrame); | 433 if (this._executionLineLocation) |
484 }, | 434 this._executionLineLocation.dispose(); |
485 | 435 this._executionLineLocation = WebInspector.debuggerWorkspaceBinding.crea teCallFrameLiveLocation(callFrame.location(), this._executionLineChanged.bind(th is), this._liveLocationPool); |
486 /** | |
487 * @param {!WebInspector.DebuggerModel.CallFrame} callFrame | |
488 */ | |
489 _selectCallFrameInUI: function(callFrame) | |
490 { | |
491 WebInspector.context.setFlavor(WebInspector.DebuggerModel.CallFrame, cal lFrame); | |
492 WebInspector.debuggerWorkspaceBinding.createCallFrameLiveLocation(callFr ame.location(), this._executionLineChanged.bind(this), this._liveLocationPool); | |
493 }, | 436 }, |
494 | 437 |
495 _pauseOnExceptionEnabledChanged: function() | 438 _pauseOnExceptionEnabledChanged: function() |
496 { | 439 { |
497 var enabled = WebInspector.moduleSetting("pauseOnExceptionEnabled").get( ); | 440 var enabled = WebInspector.moduleSetting("pauseOnExceptionEnabled").get( ); |
498 this._pauseOnExceptionButton.setToggled(enabled); | 441 this._pauseOnExceptionButton.setToggled(enabled); |
499 this._pauseOnExceptionButton.setTitle(WebInspector.UIString(enabled ? "D on't pause on exceptions" : "Pause on exceptions")); | 442 this._pauseOnExceptionButton.setTitle(WebInspector.UIString(enabled ? "D on't pause on exceptions" : "Pause on exceptions")); |
500 this._debugToolbarDrawer.classList.toggle("expanded", enabled); | 443 this._debugToolbarDrawer.classList.toggle("expanded", enabled); |
501 }, | 444 }, |
502 | 445 |
(...skipping 16 matching lines...) Expand all Loading... | |
519 this._togglePauseAction.setToggled(false); | 462 this._togglePauseAction.setToggled(false); |
520 this._togglePauseAction.setEnabled(!currentDebuggerModel.isPausing() ); | 463 this._togglePauseAction.setEnabled(!currentDebuggerModel.isPausing() ); |
521 this._stepOverAction.setEnabled(false); | 464 this._stepOverAction.setEnabled(false); |
522 this._stepIntoAction.setEnabled(false); | 465 this._stepIntoAction.setEnabled(false); |
523 this._stepOutAction.setEnabled(false); | 466 this._stepOutAction.setEnabled(false); |
524 } | 467 } |
525 }, | 468 }, |
526 | 469 |
527 _clearInterface: function() | 470 _clearInterface: function() |
528 { | 471 { |
529 this.sidebarPanes.jsBreakpoints.clearBreakpointHighlight(); | |
530 | |
531 this._sourcesView.clearCurrentExecutionLine(); | 472 this._sourcesView.clearCurrentExecutionLine(); |
532 this._updateDebuggerButtons(); | 473 this._updateDebuggerButtons(); |
474 WebInspector.context.setFlavor(WebInspector.DebuggerPausedDetails, null) ; | |
533 | 475 |
534 if (this._switchToPausedTargetTimeout) | 476 if (this._switchToPausedTargetTimeout) |
535 clearTimeout(this._switchToPausedTargetTimeout); | 477 clearTimeout(this._switchToPausedTargetTimeout); |
536 this._liveLocationPool.disposeAll(); | 478 this._liveLocationPool.disposeAll(); |
537 }, | 479 }, |
538 | 480 |
539 /** | 481 /** |
540 * @param {!WebInspector.DebuggerModel} debuggerModel | 482 * @param {!WebInspector.DebuggerModel} debuggerModel |
541 */ | 483 */ |
542 _switchToPausedTarget: function(debuggerModel) | 484 _switchToPausedTarget: function(debuggerModel) |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
720 | 662 |
721 _toggleBreakpointsActive: function() | 663 _toggleBreakpointsActive: function() |
722 { | 664 { |
723 WebInspector.breakpointManager.setBreakpointsActive(!WebInspector.breakp ointManager.breakpointsActive()); | 665 WebInspector.breakpointManager.setBreakpointsActive(!WebInspector.breakp ointManager.breakpointsActive()); |
724 }, | 666 }, |
725 | 667 |
726 _breakpointsActiveStateChanged: function(event) | 668 _breakpointsActiveStateChanged: function(event) |
727 { | 669 { |
728 var active = event.data; | 670 var active = event.data; |
729 this._toggleBreakpointsActiveAction.setToggled(!active); | 671 this._toggleBreakpointsActiveAction.setToggled(!active); |
730 this.sidebarPanes.jsBreakpoints.listElement.classList.toggle("breakpoint s-list-deactivated", !active); | |
731 this._sourcesView.toggleBreakpointsActiveState(active); | 672 this._sourcesView.toggleBreakpointsActiveState(active); |
732 }, | 673 }, |
733 | 674 |
734 /** | 675 /** |
735 * @return {!WebInspector.Toolbar} | 676 * @return {!WebInspector.Toolbar} |
736 */ | 677 */ |
737 _createDebugToolbar: function() | 678 _createDebugToolbar: function() |
738 { | 679 { |
739 var debugToolbar = new WebInspector.Toolbar("scripts-debug-toolbar"); | 680 var debugToolbar = new WebInspector.Toolbar("scripts-debug-toolbar"); |
740 | 681 |
(...skipping 25 matching lines...) Expand all Loading... | |
766 { | 707 { |
767 var debugToolbarDrawer = createElementWithClass("div", "scripts-debug-to olbar-drawer"); | 708 var debugToolbarDrawer = createElementWithClass("div", "scripts-debug-to olbar-drawer"); |
768 | 709 |
769 var label = WebInspector.UIString("Pause On Caught Exceptions"); | 710 var label = WebInspector.UIString("Pause On Caught Exceptions"); |
770 var setting = WebInspector.moduleSetting("pauseOnCaughtException"); | 711 var setting = WebInspector.moduleSetting("pauseOnCaughtException"); |
771 debugToolbarDrawer.appendChild(WebInspector.SettingsUI.createSettingChec kbox(label, setting, true)); | 712 debugToolbarDrawer.appendChild(WebInspector.SettingsUI.createSettingChec kbox(label, setting, true)); |
772 | 713 |
773 return debugToolbarDrawer; | 714 return debugToolbarDrawer; |
774 }, | 715 }, |
775 | 716 |
776 addToWatch: function(expression) | |
777 { | |
778 this.sidebarPanes.watchExpressions.addExpression(expression); | |
779 }, | |
780 | |
781 _installDebuggerSidebarController: function() | 717 _installDebuggerSidebarController: function() |
782 { | 718 { |
783 this.editorView.displayShowHideSidebarButton("navigator"); | 719 this.editorView.displayShowHideSidebarButton("navigator"); |
784 this._toggleDebuggerSidebarButton = this._splitWidget.displayShowHideSid ebarButton("debugger", "scripts-debugger-show-hide-button"); | 720 this._toggleDebuggerSidebarButton = this._splitWidget.displayShowHideSid ebarButton("debugger", "scripts-debugger-show-hide-button"); |
785 }, | 721 }, |
786 | 722 |
787 /** | 723 /** |
788 * @param {!WebInspector.UISourceCode} uiSourceCode | 724 * @param {!WebInspector.UISourceCode} uiSourceCode |
789 */ | 725 */ |
790 _showLocalHistory: function(uiSourceCode) | 726 _showLocalHistory: function(uiSourceCode) |
791 { | 727 { |
792 WebInspector.RevisionHistoryView.showHistory(uiSourceCode); | 728 WebInspector.RevisionHistoryView.showHistory(uiSourceCode); |
793 }, | 729 }, |
794 | 730 |
795 /** | 731 /** |
796 * @override | 732 * @override |
797 * @param {!Event} event | 733 * @param {!Event} event |
798 * @param {!WebInspector.ContextMenu} contextMenu | 734 * @param {!WebInspector.ContextMenu} contextMenu |
799 * @param {!Object} target | 735 * @param {!Object} target |
800 */ | 736 */ |
801 appendApplicableItems: function(event, contextMenu, target) | 737 appendApplicableItems: function(event, contextMenu, target) |
802 { | 738 { |
803 this._appendUISourceCodeItems(event, contextMenu, target); | 739 this._appendUISourceCodeItems(event, contextMenu, target); |
804 this.appendUILocationItems(contextMenu, target); | 740 this.appendUILocationItems(contextMenu, target); |
805 this._appendRemoteObjectItems(contextMenu, target); | 741 this._appendRemoteObjectItems(contextMenu, target); |
806 this._appendNetworkRequestItems(contextMenu, target); | 742 this._appendNetworkRequestItems(contextMenu, target); |
743 contextMenu.appendAction("debugger.evaluate-selection"); | |
807 }, | 744 }, |
808 | 745 |
809 /** | 746 /** |
810 * @param {!WebInspector.UISourceCode} uiSourceCode | 747 * @param {!WebInspector.UISourceCode} uiSourceCode |
811 */ | 748 */ |
812 mapFileSystemToNetwork: function(uiSourceCode) | 749 mapFileSystemToNetwork: function(uiSourceCode) |
813 { | 750 { |
814 WebInspector.SelectUISourceCodeForProjectTypesDialog.show(uiSourceCode.n ame(), [WebInspector.projectTypes.Network, WebInspector.projectTypes.ContentScri pts], mapFileSystemToNetwork.bind(this)); | 751 WebInspector.SelectUISourceCodeForProjectTypesDialog.show(uiSourceCode.n ame(), [WebInspector.projectTypes.Network, WebInspector.projectTypes.ContentScri pts], mapFileSystemToNetwork.bind(this)); |
815 | 752 |
816 /** | 753 /** |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
920 | 857 |
921 var contentType = uiSourceCode.contentType(); | 858 var contentType = uiSourceCode.contentType(); |
922 if (contentType.hasScripts()) { | 859 if (contentType.hasScripts()) { |
923 var target = WebInspector.context.flavor(WebInspector.Target); | 860 var target = WebInspector.context.flavor(WebInspector.Target); |
924 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); | 861 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
925 if (debuggerModel && debuggerModel.isPaused()) | 862 if (debuggerModel && debuggerModel.isPaused()) |
926 contextMenu.appendItem(WebInspector.UIString.capitalize("Continu e to ^here"), this._continueToLocation.bind(this, uiLocation)); | 863 contextMenu.appendItem(WebInspector.UIString.capitalize("Continu e to ^here"), this._continueToLocation.bind(this, uiLocation)); |
927 } | 864 } |
928 | 865 |
929 if (contentType.hasScripts() && projectType !== WebInspector.projectType s.Snippets) | 866 if (contentType.hasScripts() && projectType !== WebInspector.projectType s.Snippets) |
930 this.sidebarPanes.callstack.appendBlackboxURLContextMenuItems(contex tMenu, uiSourceCode); | 867 this._callstackPane.appendBlackboxURLContextMenuItems(contextMenu, u iSourceCode); |
931 }, | 868 }, |
932 | 869 |
933 /** | 870 /** |
934 * @param {!WebInspector.UISourceCode} uiSourceCode | 871 * @param {!WebInspector.UISourceCode} uiSourceCode |
935 */ | 872 */ |
936 _handleContextMenuReveal: function(uiSourceCode) | 873 _handleContextMenuReveal: function(uiSourceCode) |
937 { | 874 { |
938 this.editorView.showBoth(); | 875 this.editorView.showBoth(); |
939 this._revealInNavigator(uiSourceCode); | 876 this._revealInNavigator(uiSourceCode); |
940 }, | 877 }, |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1057 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(location); | 994 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(location); |
1058 if (uiLocation) | 995 if (uiLocation) |
1059 this.showUILocation(uiLocation); | 996 this.showUILocation(uiLocation); |
1060 }, | 997 }, |
1061 | 998 |
1062 showGoToSourceDialog: function() | 999 showGoToSourceDialog: function() |
1063 { | 1000 { |
1064 this._sourcesView.showOpenResourceDialog(); | 1001 this._sourcesView.showOpenResourceDialog(); |
1065 }, | 1002 }, |
1066 | 1003 |
1004 _revealNavigatorSidebar: function() | |
1005 { | |
1006 this._setAsCurrentPanel(); | |
1007 this.editorView.showBoth(true); | |
1008 }, | |
1009 | |
1010 _revealDebuggerSidebar: function() | |
1011 { | |
1012 this._setAsCurrentPanel(); | |
1013 this._splitWidget.showBoth(true); | |
1014 }, | |
1015 | |
1067 _updateSidebarPosition: function() | 1016 _updateSidebarPosition: function() |
1068 { | 1017 { |
1069 var vertically; | 1018 var vertically; |
1070 var position = WebInspector.moduleSetting("sidebarPosition").get(); | 1019 var position = WebInspector.moduleSetting("sidebarPosition").get(); |
1071 if (position === "right") | 1020 if (position === "right") |
1072 vertically = false; | 1021 vertically = false; |
1073 else if (position === "bottom") | 1022 else if (position === "bottom") |
1074 vertically = true; | 1023 vertically = true; |
1075 else | 1024 else |
1076 vertically = WebInspector.inspectorView.element.offsetWidth < 680; | 1025 vertically = WebInspector.inspectorView.element.offsetWidth < 680; |
1077 | 1026 |
1078 if (this.sidebarPaneView && vertically === !this._splitWidget.isVertical ()) | 1027 if (this.sidebarPaneView && vertically === !this._splitWidget.isVertical ()) |
1079 return; | 1028 return; |
1080 | 1029 |
1081 if (this.sidebarPaneView && this.sidebarPaneView.shouldHideOnDetach()) | 1030 if (this.sidebarPaneView && this.sidebarPaneView.shouldHideOnDetach()) |
1082 return; // We can't reparent extension iframes. | 1031 return; // We can't reparent extension iframes. |
1083 | 1032 |
1084 if (this.sidebarPaneView) | 1033 if (this.sidebarPaneView) |
1085 this.sidebarPaneView.detach(); | 1034 this.sidebarPaneView.detach(); |
1086 | 1035 |
1087 this._splitWidget.setVertical(!vertically); | 1036 this._splitWidget.setVertical(!vertically); |
1088 this._splitWidget.element.classList.toggle("sources-split-view-vertical" , vertically); | 1037 this._splitWidget.element.classList.toggle("sources-split-view-vertical" , vertically); |
1089 | 1038 |
1090 WebInspector.SourcesPanel.updateResizer(this); | 1039 WebInspector.SourcesPanel.updateResizer(this); |
1091 | 1040 |
1092 // Create vertical box with stack. | 1041 // Create vertical box with stack. |
1093 var vbox = new WebInspector.VBox(); | 1042 var vbox = new WebInspector.VBox(); |
1094 vbox.element.appendChild(this._debugToolbarDrawer); | 1043 vbox.element.appendChild(this._debugToolbarDrawer); |
1095 vbox.setMinimumAndPreferredSizes(25, 25, WebInspector.SourcesPanel.minTo olbarWidth, 100); | 1044 vbox.setMinimumAndPreferredSizes(25, 25, WebInspector.SourcesPanel.minTo olbarWidth, 100); |
1096 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(th is._setAsCurrentPanel.bind(this)); | 1045 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(th is._revealDebuggerSidebar.bind(this)); |
1097 this._sidebarPaneStack.widget().element.classList.add("overflow-auto"); | 1046 this._sidebarPaneStack.widget().element.classList.add("overflow-auto"); |
1098 this._sidebarPaneStack.widget().show(vbox.element); | 1047 this._sidebarPaneStack.widget().show(vbox.element); |
1099 vbox.element.appendChild(this._debugToolbar.element); | 1048 vbox.element.appendChild(this._debugToolbar.element); |
1100 | 1049 |
1101 if (this.sidebarPanes.threads) | 1050 if (this._threadsSidebarPane) |
1102 this._sidebarPaneStack.showView(this.sidebarPanes.threads); | 1051 this._sidebarPaneStack.showView(this._threadsSidebarPane); |
1103 | 1052 |
1104 if (!vertically) { | 1053 if (!vertically) |
1105 if (this.sidebarPanes.watchExpressions.hasExpressions()) | 1054 this._sidebarPaneStack.appendView(this._watchSidebarPane); |
1106 this._sidebarPaneStack.showView(this.sidebarPanes.watchExpressio ns); | |
1107 else | |
1108 this._sidebarPaneStack.appendView(this.sidebarPanes.watchExpress ions); | |
1109 } | |
1110 | 1055 |
1111 this._sidebarPaneStack.showView(this.sidebarPanes.callstack); | 1056 this._sidebarPaneStack.showView(this._callstackPane); |
1057 var jsBreakpoints = /** @type {!WebInspector.View} */ (WebInspector.view Manager.view("sources.jsBreakpoints")); | |
1058 var scopeChainView = /** @type {!WebInspector.View} */ (WebInspector.vie wManager.view("sources.scopeChain")); | |
1112 | 1059 |
1113 if (!vertically) { | 1060 if (!vertically) { |
1114 // Populate the rest of the stack. | 1061 // Populate the rest of the stack. |
1115 this._sidebarPaneStack.showView(this.sidebarPanes.scopechain); | 1062 this._sidebarPaneStack.showView(scopeChainView); |
1116 this._sidebarPaneStack.showView(this.sidebarPanes.jsBreakpoints); | 1063 this._sidebarPaneStack.showView(jsBreakpoints); |
1117 for (var pane in this.sidebarPanes) { | |
1118 if (this.sidebarPanes[pane]) | |
1119 this._sidebarPaneStack.appendView(this.sidebarPanes[pane]); | |
1120 } | |
1121 this._extensionSidebarPanesContainer = this._sidebarPaneStack; | 1064 this._extensionSidebarPanesContainer = this._sidebarPaneStack; |
1122 this.sidebarPaneView = vbox; | 1065 this.sidebarPaneView = vbox; |
1123 } else { | 1066 } else { |
1124 var splitWidget = new WebInspector.SplitWidget(true, true, "sourcesP anelDebuggerSidebarSplitViewState", 0.5); | 1067 var splitWidget = new WebInspector.SplitWidget(true, true, "sourcesP anelDebuggerSidebarSplitViewState", 0.5); |
1125 splitWidget.setMainWidget(vbox); | 1068 splitWidget.setMainWidget(vbox); |
1126 | 1069 |
1127 // Populate the left stack. | 1070 // Populate the left stack. |
1128 this._sidebarPaneStack.showView(this.sidebarPanes.jsBreakpoints); | 1071 this._sidebarPaneStack.showView(jsBreakpoints); |
1129 | 1072 |
1130 var tabbedLocation = WebInspector.viewManager.createTabbedLocation(t his._setAsCurrentPanel.bind(this)); | 1073 var tabbedLocation = WebInspector.viewManager.createTabbedLocation(t his._revealDebuggerSidebar.bind(this)); |
1131 splitWidget.setSidebarWidget(tabbedLocation.tabbedPane()); | 1074 splitWidget.setSidebarWidget(tabbedLocation.tabbedPane()); |
1132 tabbedLocation.appendView(this.sidebarPanes.scopechain); | 1075 tabbedLocation.appendView(scopeChainView); |
1133 tabbedLocation.appendView(this.sidebarPanes.watchExpressions); | 1076 tabbedLocation.appendView(this._watchSidebarPane); |
1134 this._extensionSidebarPanesContainer = tabbedLocation; | 1077 this._extensionSidebarPanesContainer = tabbedLocation; |
1135 this.sidebarPaneView = splitWidget; | 1078 this.sidebarPaneView = splitWidget; |
1136 } | 1079 } |
1137 | 1080 |
1138 this._sidebarPaneStack.appendApplicableItems("sources-sidebar"); | 1081 this._sidebarPaneStack.appendApplicableItems("sources-sidebar"); |
1139 var extensionSidebarPanes = WebInspector.extensionServer.sidebarPanes(); | 1082 var extensionSidebarPanes = WebInspector.extensionServer.sidebarPanes(); |
1140 for (var i = 0; i < extensionSidebarPanes.length; ++i) | 1083 for (var i = 0; i < extensionSidebarPanes.length; ++i) |
1141 this._addExtensionSidebarPane(extensionSidebarPanes[i]); | 1084 this._addExtensionSidebarPane(extensionSidebarPanes[i]); |
1142 | 1085 |
1143 this._splitWidget.setSidebarWidget(this.sidebarPaneView); | 1086 this._splitWidget.setSidebarWidget(this.sidebarPaneView); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1186 if (!entry.isDirectory) | 1129 if (!entry.isDirectory) |
1187 return; | 1130 return; |
1188 InspectorFrontendHost.upgradeDraggedFileSystemPermissions(entry.filesyst em); | 1131 InspectorFrontendHost.upgradeDraggedFileSystemPermissions(entry.filesyst em); |
1189 }, | 1132 }, |
1190 | 1133 |
1191 __proto__: WebInspector.Panel.prototype | 1134 __proto__: WebInspector.Panel.prototype |
1192 } | 1135 } |
1193 | 1136 |
1194 /** | 1137 /** |
1195 * @constructor | 1138 * @constructor |
1196 * @implements {WebInspector.ContextMenu.Provider} | |
1197 */ | |
1198 WebInspector.SourcesPanel.ContextMenuProvider = function() | |
1199 { | |
1200 } | |
1201 | |
1202 WebInspector.SourcesPanel.ContextMenuProvider.prototype = { | |
1203 /** | |
1204 * @override | |
1205 * @param {!Event} event | |
1206 * @param {!WebInspector.ContextMenu} contextMenu | |
1207 * @param {!Object} target | |
1208 */ | |
1209 appendApplicableItems: function(event, contextMenu, target) | |
1210 { | |
1211 WebInspector.SourcesPanel.instance().appendApplicableItems(event, contex tMenu, target); | |
1212 } | |
1213 } | |
1214 | |
1215 /** | |
1216 * @constructor | |
1217 * @implements {WebInspector.Revealer} | 1139 * @implements {WebInspector.Revealer} |
1218 */ | 1140 */ |
1219 WebInspector.SourcesPanel.UILocationRevealer = function() | 1141 WebInspector.SourcesPanel.UILocationRevealer = function() |
1220 { | 1142 { |
1221 } | 1143 } |
1222 | 1144 |
1223 WebInspector.SourcesPanel.UILocationRevealer.prototype = { | 1145 WebInspector.SourcesPanel.UILocationRevealer.prototype = { |
1224 /** | 1146 /** |
1225 * @override | 1147 * @override |
1226 * @param {!Object} uiLocation | 1148 * @param {!Object} uiLocation |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1362 return true; | 1284 return true; |
1363 case "debugger.step-out": | 1285 case "debugger.step-out": |
1364 panel._stepOut(); | 1286 panel._stepOut(); |
1365 return true; | 1287 return true; |
1366 case "debugger.run-snippet": | 1288 case "debugger.run-snippet": |
1367 panel._runSnippet(); | 1289 panel._runSnippet(); |
1368 return true; | 1290 return true; |
1369 case "debugger.toggle-breakpoints-active": | 1291 case "debugger.toggle-breakpoints-active": |
1370 panel._toggleBreakpointsActive(); | 1292 panel._toggleBreakpointsActive(); |
1371 return true; | 1293 return true; |
1294 case "debugger.evaluate-selection": | |
1295 var frame = WebInspector.context.flavor(WebInspector.UISourceCodeFra me); | |
1296 if (frame) { | |
1297 var text = frame.textEditor.copyRange(frame.textEditor.selection ()); | |
1298 var executionContext = WebInspector.context.flavor(WebInspector. ExecutionContext); | |
1299 if (executionContext) | |
dgozman
2016/08/16 01:05:10
Let's check for context before copying the text?
| |
1300 WebInspector.ConsoleModel.evaluateCommandInConsole(execution Context, text); | |
1301 } | |
1302 return true; | |
1372 } | 1303 } |
1373 return false; | 1304 return false; |
1374 } | 1305 } |
1375 } | 1306 } |
1376 | 1307 |
1377 WebInspector.SourcesPanel.show = function() | 1308 WebInspector.SourcesPanel.show = function() |
1378 { | 1309 { |
1379 WebInspector.inspectorView.setCurrentPanel(WebInspector.SourcesPanel.instanc e()); | 1310 WebInspector.inspectorView.setCurrentPanel(WebInspector.SourcesPanel.instanc e()); |
1380 } | 1311 } |
1381 | 1312 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1436 __proto__: WebInspector.VBox.prototype | 1367 __proto__: WebInspector.VBox.prototype |
1437 } | 1368 } |
1438 | 1369 |
1439 /** | 1370 /** |
1440 * @return {boolean} | 1371 * @return {boolean} |
1441 */ | 1372 */ |
1442 WebInspector.SourcesPanel.WrapperView.isShowing = function() | 1373 WebInspector.SourcesPanel.WrapperView.isShowing = function() |
1443 { | 1374 { |
1444 return !!WebInspector.SourcesPanel.WrapperView._instance && WebInspector.Sou rcesPanel.WrapperView._instance.isShowing(); | 1375 return !!WebInspector.SourcesPanel.WrapperView._instance && WebInspector.Sou rcesPanel.WrapperView._instance.isShowing(); |
1445 } | 1376 } |
OLD | NEW |