Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(406)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js

Issue 2238003002: DevTools: migrate sources panel sidebar to views. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: followed up on the watch test. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 /** @type {!WebInspector.View} */ (WebInspector.viewManager.view("sources.xh rBreakpoints")).widget();
dgozman 2016/08/15 21:31:03 Should we use sharedInstance(XHRBreakpointsSidebar
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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 250
256 /** 251 /**
257 * @param {!WebInspector.Event} event 252 * @param {!WebInspector.Event} event
258 */ 253 */
259 _debuggerPaused: function(event) 254 _debuggerPaused: function(event)
260 { 255 {
261 var details = /** @type {!WebInspector.DebuggerPausedDetails} */ (event. data); 256 var details = /** @type {!WebInspector.DebuggerPausedDetails} */ (event. data);
262 if (!this._paused) 257 if (!this._paused)
263 WebInspector.inspectorView.setCurrentPanel(this); 258 WebInspector.inspectorView.setCurrentPanel(this);
264 259
265 if (WebInspector.context.flavor(WebInspector.Target) === details.target( )) 260 if (WebInspector.context.flavor(WebInspector.Target) === details.target( )) {
266 this._showDebuggerPausedDetails(details); 261 this._showDebuggerPausedDetails(details);
267 else if (!this._paused) 262 } else if (!this._paused) {
dgozman 2016/08/15 21:31:03 nit: let's remove {}
268 WebInspector.context.setFlavor(WebInspector.Target, details.target() ); 263 WebInspector.context.setFlavor(WebInspector.Target, details.target() );
264 }
269 }, 265 },
270 266
271 /** 267 /**
272 * @param {!WebInspector.DebuggerPausedDetails} details 268 * @param {!WebInspector.DebuggerPausedDetails} details
273 */ 269 */
274 _showDebuggerPausedDetails: function(details) 270 _showDebuggerPausedDetails: function(details)
275 { 271 {
276 this._paused = true; 272 this._paused = true;
277 this._updateDebuggerButtons(); 273 this._updateDebuggerButtons();
278 274 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); 275 this._splitWidget.showBoth(true);
dgozman 2016/08/15 21:31:03 Do it in the revealLocation callback.
321 this._toggleDebuggerSidebarButton.disabled = true; 276 this._toggleDebuggerSidebarButton.disabled = true;
322 window.focus(); 277 window.focus();
323 InspectorFrontendHost.bringToFront(); 278 InspectorFrontendHost.bringToFront();
324 }, 279 },
325 280
326 /** 281 /**
327 * @param {!WebInspector.Event} event 282 * @param {!WebInspector.Event} event
328 */ 283 */
329 _debuggerResumed: function(event) 284 _debuggerResumed: function(event)
330 { 285 {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 _lastModificationTimeoutPassedForTest: function() 420 _lastModificationTimeoutPassedForTest: function()
466 { 421 {
467 WebInspector.SourcesPanel._lastModificationTimeout = Number.MIN_VALUE; 422 WebInspector.SourcesPanel._lastModificationTimeout = Number.MIN_VALUE;
468 }, 423 },
469 424
470 _updateLastModificationTimeForTest: function() 425 _updateLastModificationTimeForTest: function()
471 { 426 {
472 WebInspector.SourcesPanel._lastModificationTimeout = Number.MAX_VALUE; 427 WebInspector.SourcesPanel._lastModificationTimeout = Number.MAX_VALUE;
473 }, 428 },
474 429
475 /** 430 _callFrameChanged: function()
476 * @param {!WebInspector.Event} event
477 */
478 _callFrameSelectedOnModel: function(event)
479 { 431 {
480 var callFrame = /** @type {?WebInspector.DebuggerModel.CallFrame} */ (ev ent.data); 432 var callFrame = WebInspector.context.flavor(WebInspector.DebuggerModel.C allFrame);
481 if (!callFrame || callFrame.target() !== WebInspector.context.flavor(Web Inspector.Target)) 433 if (callFrame)
482 return; 434 WebInspector.debuggerWorkspaceBinding.createCallFrameLiveLocation(ca llFrame.location(), this._executionLineChanged.bind(this), this._liveLocationPoo l);
dgozman 2016/08/15 21:31:03 Let's dispose previous one.
483 this._selectCallFrameInUI(callFrame);
484 },
485
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 }, 435 },
494 436
495 _pauseOnExceptionEnabledChanged: function() 437 _pauseOnExceptionEnabledChanged: function()
496 { 438 {
497 var enabled = WebInspector.moduleSetting("pauseOnExceptionEnabled").get( ); 439 var enabled = WebInspector.moduleSetting("pauseOnExceptionEnabled").get( );
498 this._pauseOnExceptionButton.setToggled(enabled); 440 this._pauseOnExceptionButton.setToggled(enabled);
499 this._pauseOnExceptionButton.setTitle(WebInspector.UIString(enabled ? "D on't pause on exceptions" : "Pause on exceptions")); 441 this._pauseOnExceptionButton.setTitle(WebInspector.UIString(enabled ? "D on't pause on exceptions" : "Pause on exceptions"));
500 this._debugToolbarDrawer.classList.toggle("expanded", enabled); 442 this._debugToolbarDrawer.classList.toggle("expanded", enabled);
501 }, 443 },
502 444
(...skipping 16 matching lines...) Expand all
519 this._togglePauseAction.setToggled(false); 461 this._togglePauseAction.setToggled(false);
520 this._togglePauseAction.setEnabled(!currentDebuggerModel.isPausing() ); 462 this._togglePauseAction.setEnabled(!currentDebuggerModel.isPausing() );
521 this._stepOverAction.setEnabled(false); 463 this._stepOverAction.setEnabled(false);
522 this._stepIntoAction.setEnabled(false); 464 this._stepIntoAction.setEnabled(false);
523 this._stepOutAction.setEnabled(false); 465 this._stepOutAction.setEnabled(false);
524 } 466 }
525 }, 467 },
526 468
527 _clearInterface: function() 469 _clearInterface: function()
528 { 470 {
529 this.sidebarPanes.jsBreakpoints.clearBreakpointHighlight();
530
531 this._sourcesView.clearCurrentExecutionLine(); 471 this._sourcesView.clearCurrentExecutionLine();
532 this._updateDebuggerButtons(); 472 this._updateDebuggerButtons();
473 WebInspector.context.setFlavor(WebInspector.DebuggerPausedDetails, null) ;
533 474
534 if (this._switchToPausedTargetTimeout) 475 if (this._switchToPausedTargetTimeout)
535 clearTimeout(this._switchToPausedTargetTimeout); 476 clearTimeout(this._switchToPausedTargetTimeout);
536 this._liveLocationPool.disposeAll(); 477 this._liveLocationPool.disposeAll();
537 }, 478 },
538 479
539 /** 480 /**
540 * @param {!WebInspector.DebuggerModel} debuggerModel 481 * @param {!WebInspector.DebuggerModel} debuggerModel
541 */ 482 */
542 _switchToPausedTarget: function(debuggerModel) 483 _switchToPausedTarget: function(debuggerModel)
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 661
721 _toggleBreakpointsActive: function() 662 _toggleBreakpointsActive: function()
722 { 663 {
723 WebInspector.breakpointManager.setBreakpointsActive(!WebInspector.breakp ointManager.breakpointsActive()); 664 WebInspector.breakpointManager.setBreakpointsActive(!WebInspector.breakp ointManager.breakpointsActive());
724 }, 665 },
725 666
726 _breakpointsActiveStateChanged: function(event) 667 _breakpointsActiveStateChanged: function(event)
727 { 668 {
728 var active = event.data; 669 var active = event.data;
729 this._toggleBreakpointsActiveAction.setToggled(!active); 670 this._toggleBreakpointsActiveAction.setToggled(!active);
730 this.sidebarPanes.jsBreakpoints.listElement.classList.toggle("breakpoint s-list-deactivated", !active);
731 this._sourcesView.toggleBreakpointsActiveState(active); 671 this._sourcesView.toggleBreakpointsActiveState(active);
732 }, 672 },
733 673
734 /** 674 /**
735 * @return {!WebInspector.Toolbar} 675 * @return {!WebInspector.Toolbar}
736 */ 676 */
737 _createDebugToolbar: function() 677 _createDebugToolbar: function()
738 { 678 {
739 var debugToolbar = new WebInspector.Toolbar("scripts-debug-toolbar"); 679 var debugToolbar = new WebInspector.Toolbar("scripts-debug-toolbar");
740 680
(...skipping 25 matching lines...) Expand all
766 { 706 {
767 var debugToolbarDrawer = createElementWithClass("div", "scripts-debug-to olbar-drawer"); 707 var debugToolbarDrawer = createElementWithClass("div", "scripts-debug-to olbar-drawer");
768 708
769 var label = WebInspector.UIString("Pause On Caught Exceptions"); 709 var label = WebInspector.UIString("Pause On Caught Exceptions");
770 var setting = WebInspector.moduleSetting("pauseOnCaughtException"); 710 var setting = WebInspector.moduleSetting("pauseOnCaughtException");
771 debugToolbarDrawer.appendChild(WebInspector.SettingsUI.createSettingChec kbox(label, setting, true)); 711 debugToolbarDrawer.appendChild(WebInspector.SettingsUI.createSettingChec kbox(label, setting, true));
772 712
773 return debugToolbarDrawer; 713 return debugToolbarDrawer;
774 }, 714 },
775 715
776 addToWatch: function(expression)
777 {
778 this.sidebarPanes.watchExpressions.addExpression(expression);
779 },
780
781 _installDebuggerSidebarController: function() 716 _installDebuggerSidebarController: function()
782 { 717 {
783 this.editorView.displayShowHideSidebarButton("navigator"); 718 this.editorView.displayShowHideSidebarButton("navigator");
784 this._toggleDebuggerSidebarButton = this._splitWidget.displayShowHideSid ebarButton("debugger", "scripts-debugger-show-hide-button"); 719 this._toggleDebuggerSidebarButton = this._splitWidget.displayShowHideSid ebarButton("debugger", "scripts-debugger-show-hide-button");
785 }, 720 },
786 721
787 /** 722 /**
788 * @param {!WebInspector.UISourceCode} uiSourceCode 723 * @param {!WebInspector.UISourceCode} uiSourceCode
789 */ 724 */
790 _showLocalHistory: function(uiSourceCode) 725 _showLocalHistory: function(uiSourceCode)
791 { 726 {
792 WebInspector.RevisionHistoryView.showHistory(uiSourceCode); 727 WebInspector.RevisionHistoryView.showHistory(uiSourceCode);
793 }, 728 },
794 729
795 /** 730 /**
796 * @override 731 * @override
797 * @param {!Event} event 732 * @param {!Event} event
798 * @param {!WebInspector.ContextMenu} contextMenu 733 * @param {!WebInspector.ContextMenu} contextMenu
799 * @param {!Object} target 734 * @param {!Object} target
800 */ 735 */
801 appendApplicableItems: function(event, contextMenu, target) 736 appendApplicableItems: function(event, contextMenu, target)
802 { 737 {
803 this._appendUISourceCodeItems(event, contextMenu, target); 738 this._appendUISourceCodeItems(event, contextMenu, target);
804 this.appendUILocationItems(contextMenu, target); 739 this.appendUILocationItems(contextMenu, target);
805 this._appendRemoteObjectItems(contextMenu, target); 740 this._appendRemoteObjectItems(contextMenu, target);
806 this._appendNetworkRequestItems(contextMenu, target); 741 this._appendNetworkRequestItems(contextMenu, target);
742
743 if (target instanceof WebInspector.TextRangeWithContent)
744 contextMenu.appendAction("debugger.evaluate-selection");
807 }, 745 },
808 746
809 /** 747 /**
810 * @param {!WebInspector.UISourceCode} uiSourceCode 748 * @param {!WebInspector.UISourceCode} uiSourceCode
811 */ 749 */
812 mapFileSystemToNetwork: function(uiSourceCode) 750 mapFileSystemToNetwork: function(uiSourceCode)
813 { 751 {
814 WebInspector.SelectUISourceCodeForProjectTypesDialog.show(uiSourceCode.n ame(), [WebInspector.projectTypes.Network, WebInspector.projectTypes.ContentScri pts], mapFileSystemToNetwork.bind(this)); 752 WebInspector.SelectUISourceCodeForProjectTypesDialog.show(uiSourceCode.n ame(), [WebInspector.projectTypes.Network, WebInspector.projectTypes.ContentScri pts], mapFileSystemToNetwork.bind(this));
815 753
816 /** 754 /**
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 858
921 var contentType = uiSourceCode.contentType(); 859 var contentType = uiSourceCode.contentType();
922 if (contentType.hasScripts()) { 860 if (contentType.hasScripts()) {
923 var target = WebInspector.context.flavor(WebInspector.Target); 861 var target = WebInspector.context.flavor(WebInspector.Target);
924 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 862 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
925 if (debuggerModel && debuggerModel.isPaused()) 863 if (debuggerModel && debuggerModel.isPaused())
926 contextMenu.appendItem(WebInspector.UIString.capitalize("Continu e to ^here"), this._continueToLocation.bind(this, uiLocation)); 864 contextMenu.appendItem(WebInspector.UIString.capitalize("Continu e to ^here"), this._continueToLocation.bind(this, uiLocation));
927 } 865 }
928 866
929 if (contentType.hasScripts() && projectType !== WebInspector.projectType s.Snippets) 867 if (contentType.hasScripts() && projectType !== WebInspector.projectType s.Snippets)
930 this.sidebarPanes.callstack.appendBlackboxURLContextMenuItems(contex tMenu, uiSourceCode); 868 this._callstackPane.appendBlackboxURLContextMenuItems(contextMenu, u iSourceCode);
931 }, 869 },
932 870
933 /** 871 /**
934 * @param {!WebInspector.UISourceCode} uiSourceCode 872 * @param {!WebInspector.UISourceCode} uiSourceCode
935 */ 873 */
936 _handleContextMenuReveal: function(uiSourceCode) 874 _handleContextMenuReveal: function(uiSourceCode)
937 { 875 {
938 this.editorView.showBoth(); 876 this.editorView.showBoth();
939 this._revealInNavigator(uiSourceCode); 877 this._revealInNavigator(uiSourceCode);
940 }, 878 },
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1091 1029
1092 // Create vertical box with stack. 1030 // Create vertical box with stack.
1093 var vbox = new WebInspector.VBox(); 1031 var vbox = new WebInspector.VBox();
1094 vbox.element.appendChild(this._debugToolbarDrawer); 1032 vbox.element.appendChild(this._debugToolbarDrawer);
1095 vbox.setMinimumAndPreferredSizes(25, 25, WebInspector.SourcesPanel.minTo olbarWidth, 100); 1033 vbox.setMinimumAndPreferredSizes(25, 25, WebInspector.SourcesPanel.minTo olbarWidth, 100);
1096 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(th is._setAsCurrentPanel.bind(this)); 1034 this._sidebarPaneStack = WebInspector.viewManager.createStackLocation(th is._setAsCurrentPanel.bind(this));
1097 this._sidebarPaneStack.widget().element.classList.add("overflow-auto"); 1035 this._sidebarPaneStack.widget().element.classList.add("overflow-auto");
1098 this._sidebarPaneStack.widget().show(vbox.element); 1036 this._sidebarPaneStack.widget().show(vbox.element);
1099 vbox.element.appendChild(this._debugToolbar.element); 1037 vbox.element.appendChild(this._debugToolbar.element);
1100 1038
1101 if (this.sidebarPanes.threads) 1039 if (this._threadsSidebarPane)
1102 this._sidebarPaneStack.showView(this.sidebarPanes.threads); 1040 this._sidebarPaneStack.showView(this._threadsSidebarPane);
1103 1041
1104 if (!vertically) { 1042 if (!vertically)
1105 if (this.sidebarPanes.watchExpressions.hasExpressions()) 1043 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 1044
1111 this._sidebarPaneStack.showView(this.sidebarPanes.callstack); 1045 this._sidebarPaneStack.showView(this._callstackPane);
1046 var jsBreakpoints = /** @type {!WebInspector.View} */ (WebInspector.view Manager.view("sources.jsBreakpoints"));
1047 var scopeChainView = /** @type {!WebInspector.View} */ (WebInspector.vie wManager.view("sources.scopeChain"));
1112 1048
1113 if (!vertically) { 1049 if (!vertically) {
1114 // Populate the rest of the stack. 1050 // Populate the rest of the stack.
1115 this._sidebarPaneStack.showView(this.sidebarPanes.scopechain); 1051 this._sidebarPaneStack.showView(scopeChainView);
1116 this._sidebarPaneStack.showView(this.sidebarPanes.jsBreakpoints); 1052 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; 1053 this._extensionSidebarPanesContainer = this._sidebarPaneStack;
1122 this.sidebarPaneView = vbox; 1054 this.sidebarPaneView = vbox;
1123 } else { 1055 } else {
1124 var splitWidget = new WebInspector.SplitWidget(true, true, "sourcesP anelDebuggerSidebarSplitViewState", 0.5); 1056 var splitWidget = new WebInspector.SplitWidget(true, true, "sourcesP anelDebuggerSidebarSplitViewState", 0.5);
1125 splitWidget.setMainWidget(vbox); 1057 splitWidget.setMainWidget(vbox);
1126 1058
1127 // Populate the left stack. 1059 // Populate the left stack.
1128 this._sidebarPaneStack.showView(this.sidebarPanes.jsBreakpoints); 1060 this._sidebarPaneStack.showView(jsBreakpoints);
1129 1061
1130 var tabbedLocation = WebInspector.viewManager.createTabbedLocation(t his._setAsCurrentPanel.bind(this)); 1062 var tabbedLocation = WebInspector.viewManager.createTabbedLocation(t his._setAsCurrentPanel.bind(this));
1131 splitWidget.setSidebarWidget(tabbedLocation.tabbedPane()); 1063 splitWidget.setSidebarWidget(tabbedLocation.tabbedPane());
1132 tabbedLocation.appendView(this.sidebarPanes.scopechain); 1064 tabbedLocation.appendView(scopeChainView);
1133 tabbedLocation.appendView(this.sidebarPanes.watchExpressions); 1065 tabbedLocation.appendView(this._watchSidebarPane);
1134 this._extensionSidebarPanesContainer = tabbedLocation; 1066 this._extensionSidebarPanesContainer = tabbedLocation;
1135 this.sidebarPaneView = splitWidget; 1067 this.sidebarPaneView = splitWidget;
1136 } 1068 }
1137 1069
1138 this._sidebarPaneStack.appendApplicableItems("sources-sidebar"); 1070 this._sidebarPaneStack.appendApplicableItems("sources-sidebar");
1139 var extensionSidebarPanes = WebInspector.extensionServer.sidebarPanes(); 1071 var extensionSidebarPanes = WebInspector.extensionServer.sidebarPanes();
1140 for (var i = 0; i < extensionSidebarPanes.length; ++i) 1072 for (var i = 0; i < extensionSidebarPanes.length; ++i)
1141 this._addExtensionSidebarPane(extensionSidebarPanes[i]); 1073 this._addExtensionSidebarPane(extensionSidebarPanes[i]);
1142 1074
1143 this._splitWidget.setSidebarWidget(this.sidebarPaneView); 1075 this._splitWidget.setSidebarWidget(this.sidebarPaneView);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 if (!entry.isDirectory) 1118 if (!entry.isDirectory)
1187 return; 1119 return;
1188 InspectorFrontendHost.upgradeDraggedFileSystemPermissions(entry.filesyst em); 1120 InspectorFrontendHost.upgradeDraggedFileSystemPermissions(entry.filesyst em);
1189 }, 1121 },
1190 1122
1191 __proto__: WebInspector.Panel.prototype 1123 __proto__: WebInspector.Panel.prototype
1192 } 1124 }
1193 1125
1194 /** 1126 /**
1195 * @constructor 1127 * @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} 1128 * @implements {WebInspector.Revealer}
1218 */ 1129 */
1219 WebInspector.SourcesPanel.UILocationRevealer = function() 1130 WebInspector.SourcesPanel.UILocationRevealer = function()
1220 { 1131 {
1221 } 1132 }
1222 1133
1223 WebInspector.SourcesPanel.UILocationRevealer.prototype = { 1134 WebInspector.SourcesPanel.UILocationRevealer.prototype = {
1224 /** 1135 /**
1225 * @override 1136 * @override
1226 * @param {!Object} uiLocation 1137 * @param {!Object} uiLocation
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1362 return true; 1273 return true;
1363 case "debugger.step-out": 1274 case "debugger.step-out":
1364 panel._stepOut(); 1275 panel._stepOut();
1365 return true; 1276 return true;
1366 case "debugger.run-snippet": 1277 case "debugger.run-snippet":
1367 panel._runSnippet(); 1278 panel._runSnippet();
1368 return true; 1279 return true;
1369 case "debugger.toggle-breakpoints-active": 1280 case "debugger.toggle-breakpoints-active":
1370 panel._toggleBreakpointsActive(); 1281 panel._toggleBreakpointsActive();
1371 return true; 1282 return true;
1283 case "debugger.evaluate-selection":
1284 var currentExecutionContext = WebInspector.context.flavor(WebInspect or.ExecutionContext);
1285 if (currentExecutionContext) {
1286 var range = context.flavor(WebInspector.TextRangeWithContent);
1287 WebInspector.ConsoleModel.evaluateCommandInConsole(currentExecut ionContext, range.content);
1288 }
1289 return true;
1372 } 1290 }
1373 return false; 1291 return false;
1374 } 1292 }
1375 } 1293 }
1376 1294
1377 WebInspector.SourcesPanel.show = function() 1295 WebInspector.SourcesPanel.show = function()
1378 { 1296 {
1379 WebInspector.inspectorView.setCurrentPanel(WebInspector.SourcesPanel.instanc e()); 1297 WebInspector.inspectorView.setCurrentPanel(WebInspector.SourcesPanel.instanc e());
1380 } 1298 }
1381 1299
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1436 __proto__: WebInspector.VBox.prototype 1354 __proto__: WebInspector.VBox.prototype
1437 } 1355 }
1438 1356
1439 /** 1357 /**
1440 * @return {boolean} 1358 * @return {boolean}
1441 */ 1359 */
1442 WebInspector.SourcesPanel.WrapperView.isShowing = function() 1360 WebInspector.SourcesPanel.WrapperView.isShowing = function()
1443 { 1361 {
1444 return !!WebInspector.SourcesPanel.WrapperView._instance && WebInspector.Sou rcesPanel.WrapperView._instance.isShowing(); 1362 return !!WebInspector.SourcesPanel.WrapperView._instance && WebInspector.Sou rcesPanel.WrapperView._instance.isShowing();
1445 } 1363 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698