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

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

Issue 341803002: DevTools: Support properly multiple targets in sources panel (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address vsevik's comments Created 6 years, 6 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 | Annotate | Revision Log
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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 this.sidebarPanes.scopechain = new WebInspector.ScopeChainSidebarPane(); 118 this.sidebarPanes.scopechain = new WebInspector.ScopeChainSidebarPane();
119 this.sidebarPanes.jsBreakpoints = new WebInspector.JavaScriptBreakpointsSide barPane(WebInspector.debuggerModel, WebInspector.breakpointManager, this.showUIS ourceCode.bind(this)); 119 this.sidebarPanes.jsBreakpoints = new WebInspector.JavaScriptBreakpointsSide barPane(WebInspector.debuggerModel, WebInspector.breakpointManager, this.showUIS ourceCode.bind(this));
120 this.sidebarPanes.domBreakpoints = WebInspector.domBreakpointsSidebarPane.cr eateProxy(this); 120 this.sidebarPanes.domBreakpoints = WebInspector.domBreakpointsSidebarPane.cr eateProxy(this);
121 this.sidebarPanes.xhrBreakpoints = new WebInspector.XHRBreakpointsSidebarPan e(); 121 this.sidebarPanes.xhrBreakpoints = new WebInspector.XHRBreakpointsSidebarPan e();
122 this.sidebarPanes.eventListenerBreakpoints = new WebInspector.EventListenerB reakpointsSidebarPane(); 122 this.sidebarPanes.eventListenerBreakpoints = new WebInspector.EventListenerB reakpointsSidebarPane();
123 123
124 if (Capabilities.isMainFrontend) 124 if (Capabilities.isMainFrontend)
125 this.sidebarPanes.workerList = new WebInspector.WorkersSidebarPane(); 125 this.sidebarPanes.workerList = new WebInspector.WorkersSidebarPane();
126 126
127 this._extensionSidebarPanes = []; 127 this._extensionSidebarPanes = [];
128
129 this._installDebuggerSidebarController(); 128 this._installDebuggerSidebarController();
130 129
131 WebInspector.dockController.addEventListener(WebInspector.DockController.Eve nts.DockSideChanged, this._dockSideChanged.bind(this)); 130 WebInspector.dockController.addEventListener(WebInspector.DockController.Eve nts.DockSideChanged, this._dockSideChanged.bind(this));
132 WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(thi s._dockSideChanged.bind(this)); 131 WebInspector.settings.splitVerticallyWhenDockedToRight.addChangeListener(thi s._dockSideChanged.bind(this));
133 this._dockSideChanged(); 132 this._dockSideChanged();
134 133
135 this._updateDebuggerButtons(); 134 this._updateDebuggerButtons();
136 this._pauseOnExceptionEnabledChanged(); 135 this._pauseOnExceptionEnabledChanged();
137 if (WebInspector.debuggerModel.isPaused())
138 this._showDebuggerPausedDetails(WebInspector.debuggerModel.debuggerPause dDetails());
139
140 WebInspector.settings.pauseOnExceptionEnabled.addChangeListener(this._pauseO nExceptionEnabledChanged, this); 136 WebInspector.settings.pauseOnExceptionEnabled.addChangeListener(this._pauseO nExceptionEnabledChanged, this);
141 WebInspector.targetManager.observeTargets(this); 137 WebInspector.targetManager.observeTargets(this);
138 this._setTarget(WebInspector.context.flavor(WebInspector.Target));
139 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._onCu rrentTargetChanged, this);
142 } 140 }
143 141
144 WebInspector.SourcesPanel.minToolbarWidth = 215; 142 WebInspector.SourcesPanel.minToolbarWidth = 215;
145 143
146 WebInspector.SourcesPanel.prototype = { 144 WebInspector.SourcesPanel.prototype = {
147 /** 145 /**
148 * @param {!WebInspector.Target} target 146 * @param {!WebInspector.Target} target
149 */ 147 */
150 targetAdded: function(target) { 148 targetAdded: function(target)
149 {
151 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerWasEnabled, this._debuggerWasEnabled, this); 150 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerWasEnabled, this._debuggerWasEnabled, this);
152 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerWasDisabled, this._debuggerWasDisabled, this); 151 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerWasDisabled, this._debuggerReset, this);
153 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerPaused, this._debuggerPaused, this); 152 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerPaused, this._debuggerPaused, this);
154 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerResumed, this._debuggerResumed, this); 153 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. DebuggerResumed, this._debuggerResumed, this);
155 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. CallFrameSelected, this._callFrameSelected, this); 154 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. CallFrameSelected, this._callFrameSelected, this);
156 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. ConsoleCommandEvaluatedInSelectedCallFrame, this._consoleCommandEvaluatedInSelec tedCallFrame, this); 155 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. ConsoleCommandEvaluatedInSelectedCallFrame, this._consoleCommandEvaluatedInSelec tedCallFrame, this);
157 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, this); 156 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, this);
158 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. GlobalObjectCleared, this._debuggerReset, this); 157 target.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events. GlobalObjectCleared, this._debuggerReset, this);
159 }, 158 },
160 159
161 /** 160 /**
162 * @param {!WebInspector.Target} target 161 * @param {!WebInspector.Target} target
163 */ 162 */
164 targetRemoved: function(target) { 163 targetRemoved: function(target)
164 {
165 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerWasEnabled, this._debuggerWasEnabled, this); 165 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerWasEnabled, this._debuggerWasEnabled, this);
166 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerWasDisabled, this._debuggerWasDisabled, this); 166 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerWasDisabled, this._debuggerReset, this);
167 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerPaused, this._debuggerPaused, this); 167 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerPaused, this._debuggerPaused, this);
168 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerResumed, this._debuggerResumed, this); 168 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.DebuggerResumed, this._debuggerResumed, this);
169 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.CallFrameSelected, this._callFrameSelected, this); 169 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.CallFrameSelected, this._callFrameSelected, this);
170 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.ConsoleCommandEvaluatedInSelectedCallFrame, this._consoleCommandEvaluatedInSe lectedCallFrame, this); 170 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.ConsoleCommandEvaluatedInSelectedCallFrame, this._consoleCommandEvaluatedInSe lectedCallFrame, this);
171 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, this); 171 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.BreakpointsActiveStateChanged, this._breakpointsActiveStateChanged, this);
172 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.GlobalObjectCleared, this._debuggerReset, this); 172 target.debuggerModel.removeEventListener(WebInspector.DebuggerModel.Even ts.GlobalObjectCleared, this._debuggerReset, this);
173
174 }, 173 },
175 174
176 /** 175 /**
176 * @param {?WebInspector.Target} target
177 */
178 _setTarget: function(target)
179 {
180 if (!target)
181 return;
182
183 if (target.debuggerModel.isPaused()) {
184 this._showDebuggerPausedDetails(/** @type {!WebInspector.DebuggerPau sedDetails} */ (target.debuggerModel.debuggerPausedDetails()));
185 var callFrame = target.debuggerModel.selectedCallFrame();
186 if (callFrame)
187 this._selectCallFrame(callFrame);
188 } else {
189 this._paused = false;
190 this._clearInterface();
191 this._toggleDebuggerSidebarButton.setEnabled(true);
192 }
193 },
194
195 /**
196 * @param {!WebInspector.Event} event
197 */
198 _onCurrentTargetChanged: function(event)
199 {
200 var target = /** @type {?WebInspector.Target} */ (event.data);
201 this._setTarget(target);
202 },
203
204 /**
177 * @return {!Element} 205 * @return {!Element}
178 */ 206 */
179 defaultFocusedElement: function() 207 defaultFocusedElement: function()
180 { 208 {
181 return this._sourcesView.defaultFocusedElement() || this._navigator.view .defaultFocusedElement(); 209 return this._sourcesView.defaultFocusedElement() || this._navigator.view .defaultFocusedElement();
182 }, 210 },
183 211
184 get paused() 212 /**
213 * @return {boolean}
214 */
215 paused: function()
185 { 216 {
186 return this._paused; 217 return this._paused;
187 }, 218 },
188 219
189 /** 220 /**
190 * @return {!WebInspector.SourcesPanel.DrawerEditor} 221 * @return {!WebInspector.SourcesPanel.DrawerEditor}
191 */ 222 */
192 _drawerEditor: function() 223 _drawerEditor: function()
193 { 224 {
194 var drawerEditorInstance = WebInspector.moduleManager.instance(WebInspec tor.DrawerEditor); 225 var drawerEditorInstance = WebInspector.moduleManager.instance(WebInspec tor.DrawerEditor);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 { 259 {
229 this.sidebarPanes.scopechain.update(WebInspector.debuggerModel.selectedC allFrame()); 260 this.sidebarPanes.scopechain.update(WebInspector.debuggerModel.selectedC allFrame());
230 }, 261 },
231 262
232 /** 263 /**
233 * @param {!WebInspector.Event} event 264 * @param {!WebInspector.Event} event
234 */ 265 */
235 _debuggerPaused: function(event) 266 _debuggerPaused: function(event)
236 { 267 {
237 var details = /** @type {!WebInspector.DebuggerPausedDetails} */ (event. data); 268 var details = /** @type {!WebInspector.DebuggerPausedDetails} */ (event. data);
238 WebInspector.inspectorView.setCurrentPanel(this); 269 if (!this._paused)
239 this._showDebuggerPausedDetails(details); 270 WebInspector.inspectorView.setCurrentPanel(this);
271
272 if (WebInspector.context.flavor(WebInspector.Target) === details.target( ))
273 this._showDebuggerPausedDetails(details);
274 else if (!this._paused)
275 WebInspector.context.setFlavor(WebInspector.Target, details.target() );
240 }, 276 },
241 277
242 /** 278 /**
243 * @param {?WebInspector.DebuggerPausedDetails} details 279 * @param {!WebInspector.DebuggerPausedDetails} details
244 */ 280 */
245 _showDebuggerPausedDetails: function(details) 281 _showDebuggerPausedDetails: function(details)
246 { 282 {
247 this._paused = true; 283 this._paused = true;
248 this._waitingToPause = false;
249
250 this._updateDebuggerButtons(); 284 this._updateDebuggerButtons();
251 285
252 this.sidebarPanes.callstack.update(details); 286 this.sidebarPanes.callstack.update(details);
253 287
254 /** 288 /**
255 * @param {!Element} element 289 * @param {!Element} element
256 * @this {WebInspector.SourcesPanel} 290 * @this {WebInspector.SourcesPanel}
257 */ 291 */
258 function didCreateBreakpointHitStatusMessage(element) 292 function didCreateBreakpointHitStatusMessage(element)
259 { 293 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 else 333 else
300 console.warn("ScriptsPanel paused, but callFrames.length is zero ."); // TODO remove this once we understand this case better 334 console.warn("ScriptsPanel paused, but callFrames.length is zero ."); // TODO remove this once we understand this case better
301 } 335 }
302 336
303 this._splitView.showBoth(true); 337 this._splitView.showBoth(true);
304 this._toggleDebuggerSidebarButton.setEnabled(false); 338 this._toggleDebuggerSidebarButton.setEnabled(false);
305 window.focus(); 339 window.focus();
306 InspectorFrontendHost.bringToFront(); 340 InspectorFrontendHost.bringToFront();
307 }, 341 },
308 342
309 _debuggerResumed: function() 343 /**
344 * @param {!WebInspector.Event} event
345 */
346 _debuggerResumed: function(event)
310 { 347 {
348 var target = /** @type {!WebInspector.Target} */ (event.target.target() );
349 if (WebInspector.context.flavor(WebInspector.Target) !== target)
350 return;
311 this._paused = false; 351 this._paused = false;
312 this._waitingToPause = false;
313
314 this._clearInterface(); 352 this._clearInterface();
315 this._toggleDebuggerSidebarButton.setEnabled(true); 353 this._toggleDebuggerSidebarButton.setEnabled(true);
316 }, 354 },
317 355
318 _debuggerWasEnabled: function() 356 /**
357 * @param {!WebInspector.Event} event
358 */
359 _debuggerWasEnabled: function(event)
319 { 360 {
361 var target = /** @type {!WebInspector.Target} */ (event.target.target() );
362 if (WebInspector.context.flavor(WebInspector.Target) !== target)
363 return;
364
320 this._updateDebuggerButtons(); 365 this._updateDebuggerButtons();
321 }, 366 },
322 367
323 _debuggerWasDisabled: function() 368 /**
369 * @param {!WebInspector.Event} event
370 */
371 _debuggerReset: function(event)
324 { 372 {
325 this._debuggerReset(); 373 this._debuggerResumed(event);
326 },
327
328 _debuggerReset: function()
329 {
330 this._debuggerResumed();
331 this.sidebarPanes.watchExpressions.reset();
332 delete this._skipExecutionLineRevealing; 374 delete this._skipExecutionLineRevealing;
333 }, 375 },
334 376
335 /** 377 /**
336 * @return {!WebInspector.View} 378 * @return {!WebInspector.View}
337 */ 379 */
338 get visibleView() 380 get visibleView()
339 { 381 {
340 return this._sourcesView.visibleView(); 382 return this._sourcesView.visibleView();
341 }, 383 },
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 _executionLineChanged: function(uiLocation) 433 _executionLineChanged: function(uiLocation)
392 { 434 {
393 this._sourcesView.clearCurrentExecutionLine(); 435 this._sourcesView.clearCurrentExecutionLine();
394 this._sourcesView.setExecutionLine(uiLocation); 436 this._sourcesView.setExecutionLine(uiLocation);
395 if (this._skipExecutionLineRevealing) 437 if (this._skipExecutionLineRevealing)
396 return; 438 return;
397 this._skipExecutionLineRevealing = true; 439 this._skipExecutionLineRevealing = true;
398 this._sourcesView.showSourceLocation(uiLocation.uiSourceCode, uiLocation .lineNumber, 0, undefined, true); 440 this._sourcesView.showSourceLocation(uiLocation.uiSourceCode, uiLocation .lineNumber, 0, undefined, true);
399 }, 441 },
400 442
443 /**
444 * @param {!WebInspector.Event} event
445 */
401 _callFrameSelected: function(event) 446 _callFrameSelected: function(event)
402 { 447 {
403 var callFrame = event.data; 448 var callFrame = /** @type {?WebInspector.DebuggerModel.CallFrame} */ (ev ent.data);
404 449
405 if (!callFrame) 450 if (!callFrame || callFrame.target() !== WebInspector.context.flavor(Web Inspector.Target))
406 return; 451 return;
407 452
453 this._selectCallFrame(callFrame);
454 },
455
456 /**
457 * @param {!WebInspector.DebuggerModel.CallFrame} callFrame
458 */
459 _selectCallFrame: function(callFrame)
460 {
408 this.sidebarPanes.scopechain.update(callFrame); 461 this.sidebarPanes.scopechain.update(callFrame);
409 this.sidebarPanes.watchExpressions.refreshExpressions(); 462 this.sidebarPanes.watchExpressions.refreshExpressions();
410 this.sidebarPanes.callstack.setSelectedCallFrame(callFrame); 463 this.sidebarPanes.callstack.setSelectedCallFrame(callFrame);
411 callFrame.createLiveLocation(this._executionLineChanged.bind(this)); 464 callFrame.createLiveLocation(this._executionLineChanged.bind(this));
412 }, 465 },
413 466
414 /** 467 /**
415 * @param {!WebInspector.Event} event 468 * @param {!WebInspector.Event} event
416 */ 469 */
417 _sourceSelected: function(event) 470 _sourceSelected: function(event)
(...skipping 14 matching lines...) Expand all
432 _pauseOnExceptionEnabledChanged: function() 485 _pauseOnExceptionEnabledChanged: function()
433 { 486 {
434 var enabled = WebInspector.settings.pauseOnExceptionEnabled.get(); 487 var enabled = WebInspector.settings.pauseOnExceptionEnabled.get();
435 this._pauseOnExceptionButton.toggled = enabled; 488 this._pauseOnExceptionButton.toggled = enabled;
436 this._pauseOnExceptionButton.title = WebInspector.UIString(enabled ? "Do n't pause on exceptions." : "Pause on exceptions."); 489 this._pauseOnExceptionButton.title = WebInspector.UIString(enabled ? "Do n't pause on exceptions." : "Pause on exceptions.");
437 this._debugToolbarDrawer.classList.toggle("expanded", enabled); 490 this._debugToolbarDrawer.classList.toggle("expanded", enabled);
438 }, 491 },
439 492
440 _updateDebuggerButtons: function() 493 _updateDebuggerButtons: function()
441 { 494 {
495 var currentTarget = WebInspector.context.flavor(WebInspector.Target);
496 if (!currentTarget)
497 return;
498
442 if (this._paused) { 499 if (this._paused) {
443 this._updateButtonTitle(this._pauseButton, WebInspector.UIString("Re sume script execution (%s).")) 500 this._updateButtonTitle(this._pauseButton, WebInspector.UIString("Re sume script execution (%s)."))
444 this._pauseButton.state = true; 501 this._pauseButton.state = true;
445 this._pauseButton.setLongClickOptionsEnabled((function() { return [ this._longResumeButton ] }).bind(this)); 502 this._pauseButton.setLongClickOptionsEnabled((function() { return [ this._longResumeButton ] }).bind(this));
446 503
447 this._pauseButton.setEnabled(true); 504 this._pauseButton.setEnabled(true);
448 this._stepOverButton.setEnabled(true); 505 this._stepOverButton.setEnabled(true);
449 this._stepIntoButton.setEnabled(true); 506 this._stepIntoButton.setEnabled(true);
450 this._stepOutButton.setEnabled(true); 507 this._stepOutButton.setEnabled(true);
451 } else { 508 } else {
452 this._updateButtonTitle(this._pauseButton, WebInspector.UIString("Pa use script execution (%s).")) 509 this._updateButtonTitle(this._pauseButton, WebInspector.UIString("Pa use script execution (%s)."))
453 this._pauseButton.state = false; 510 this._pauseButton.state = false;
454 this._pauseButton.setLongClickOptionsEnabled(null); 511 this._pauseButton.setLongClickOptionsEnabled(null);
455 512
456 this._pauseButton.setEnabled(!this._waitingToPause); 513 this._pauseButton.setEnabled(!currentTarget.debuggerModel.isPausing( ));
457 this._stepOverButton.setEnabled(false); 514 this._stepOverButton.setEnabled(false);
458 this._stepIntoButton.setEnabled(false); 515 this._stepIntoButton.setEnabled(false);
459 this._stepOutButton.setEnabled(false); 516 this._stepOutButton.setEnabled(false);
460 } 517 }
461 }, 518 },
462 519
463 _clearInterface: function() 520 _clearInterface: function()
464 { 521 {
465 this.sidebarPanes.callstack.update(null); 522 this.sidebarPanes.callstack.update(null);
466 this.sidebarPanes.scopechain.update(null); 523 this.sidebarPanes.scopechain.update(null);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 { 578 {
522 var isSnippet = uiSourceCode && uiSourceCode.project().type() === WebIns pector.projectTypes.Snippets; 579 var isSnippet = uiSourceCode && uiSourceCode.project().type() === WebIns pector.projectTypes.Snippets;
523 this._runSnippetButton.element.classList.toggle("hidden", !isSnippet); 580 this._runSnippetButton.element.classList.toggle("hidden", !isSnippet);
524 }, 581 },
525 582
526 /** 583 /**
527 * @return {boolean} 584 * @return {boolean}
528 */ 585 */
529 togglePause: function() 586 togglePause: function()
530 { 587 {
588 var target = WebInspector.context.flavor(WebInspector.Target);
589 if (!target)
590 return true;
591
531 if (this._paused) { 592 if (this._paused) {
532 delete this._skipExecutionLineRevealing; 593 delete this._skipExecutionLineRevealing;
533 this._paused = false; 594 this._paused = false;
534 this._waitingToPause = false; 595 target.debuggerModel.resume();
535 WebInspector.debuggerModel.resume();
536 } else { 596 } else {
537 this._waitingToPause = true;
538 // Make sure pauses didn't stick skipped. 597 // Make sure pauses didn't stick skipped.
539 WebInspector.debuggerModel.skipAllPauses(false); 598 target.debuggerModel.pause();
540 DebuggerAgent.pause();
541 } 599 }
542 600
543 this._clearInterface(); 601 this._clearInterface();
544 return true; 602 return true;
545 }, 603 },
546 604
547 /** 605 /**
606 * @return {?WebInspector.DebuggerModel}
607 */
608 _prepareToResume: function()
609 {
610 if (!this._paused)
611 return null;
612
613 delete this._skipExecutionLineRevealing;
614 this._paused = false;
615
616 this._clearInterface();
617 var target = WebInspector.context.flavor(WebInspector.Target);
618 return target ? target.debuggerModel : null;
619 },
620
621 /**
548 * @return {boolean} 622 * @return {boolean}
549 */ 623 */
550 _longResume: function() 624 _longResume: function()
551 { 625 {
552 if (!this._paused) 626 var debuggerModel = this._prepareToResume();
627 if (!debuggerModel)
553 return true; 628 return true;
554 629
555 this._paused = false; 630 debuggerModel.skipAllPausesUntilReloadOrTimeout(500);
556 this._waitingToPause = false; 631 debuggerModel.resume();
557 WebInspector.debuggerModel.skipAllPausesUntilReloadOrTimeout(500);
558 WebInspector.debuggerModel.resume();
559
560 this._clearInterface();
561 return true; 632 return true;
562 }, 633 },
563 634
564 /** 635 /**
565 * @return {boolean} 636 * @return {boolean}
566 */ 637 */
567 _stepOverClicked: function() 638 _stepOverClicked: function()
568 { 639 {
569 if (!this._paused) 640 var debuggerModel = this._prepareToResume();
641 if (!debuggerModel)
570 return true; 642 return true;
571 643
572 delete this._skipExecutionLineRevealing; 644 debuggerModel.stepOver();
573 this._paused = false;
574
575 this._clearInterface();
576
577 WebInspector.debuggerModel.stepOver();
578 return true; 645 return true;
579 }, 646 },
580 647
581 /** 648 /**
582 * @return {boolean} 649 * @return {boolean}
583 */ 650 */
584 _stepIntoClicked: function() 651 _stepIntoClicked: function()
585 { 652 {
586 if (!this._paused) 653 var debuggerModel = this._prepareToResume();
654 if (!debuggerModel)
587 return true; 655 return true;
588 656
589 delete this._skipExecutionLineRevealing; 657 debuggerModel.stepInto();
590 this._paused = false;
591
592 this._clearInterface();
593
594 WebInspector.debuggerModel.stepInto();
595 return true; 658 return true;
596 }, 659 },
597 660
598 /** 661 /**
599 * @return {boolean} 662 * @return {boolean}
600 */ 663 */
601 _stepOutClicked: function() 664 _stepOutClicked: function()
602 { 665 {
603 if (!this._paused) 666 var debuggerModel = this._prepareToResume();
667 if (!debuggerModel)
604 return true; 668 return true;
605 669
606 delete this._skipExecutionLineRevealing; 670 debuggerModel.stepOut();
607 this._paused = false;
608
609 this._clearInterface();
610
611 WebInspector.debuggerModel.stepOut();
612 return true; 671 return true;
613 }, 672 },
614 673
615 /** 674 /**
616 * @param {!WebInspector.Event} event 675 * @param {!WebInspector.Event} event
617 */ 676 */
618 _callFrameSelectedInSidebar: function(event) 677 _callFrameSelectedInSidebar: function(event)
619 { 678 {
620 var callFrame = /** @type {!WebInspector.DebuggerModel.CallFrame} */ (ev ent.data); 679 var callFrame = /** @type {!WebInspector.DebuggerModel.CallFrame} */ (ev ent.data);
621 delete this._skipExecutionLineRevealing; 680 delete this._skipExecutionLineRevealing;
622 WebInspector.debuggerModel.setSelectedCallFrame(callFrame); 681 callFrame.target().debuggerModel.setSelectedCallFrame(callFrame);
623 }, 682 },
624 683
625 _callFrameRestartedInSidebar: function() 684 _callFrameRestartedInSidebar: function()
626 { 685 {
627 delete this._skipExecutionLineRevealing; 686 delete this._skipExecutionLineRevealing;
628 }, 687 },
629 688
630 /** 689 /**
631 * @param {!WebInspector.DebuggerModel.Location} rawLocation 690 * @param {!WebInspector.DebuggerModel.Location} rawLocation
632 */ 691 */
633 continueToLocation: function(rawLocation) 692 continueToLocation: function(rawLocation)
634 { 693 {
635 if (!this._paused) 694 if (!this._prepareToResume())
636 return; 695 return;
637 696
638 delete this._skipExecutionLineRevealing;
639 this._paused = false;
640 this._clearInterface();
641 rawLocation.continueToLocation(); 697 rawLocation.continueToLocation();
642 }, 698 },
643 699
644 _toggleBreakpointsClicked: function(event) 700 _toggleBreakpointsClicked: function(event)
645 { 701 {
646 WebInspector.debuggerModel.setBreakpointsActive(!WebInspector.debuggerMo del.breakpointsActive()); 702 WebInspector.debuggerModel.setBreakpointsActive(!WebInspector.debuggerMo del.breakpointsActive());
647 }, 703 },
648 704
649 _breakpointsActiveStateChanged: function(event) 705 _breakpointsActiveStateChanged: function(event)
650 { 706 {
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 } 1047 }
992 target.consoleModel.showErrorMessage(message); 1048 target.consoleModel.showErrorMessage(message);
993 } 1049 }
994 }, 1050 },
995 1051
996 /** 1052 /**
997 * @param {!WebInspector.RemoteObject} remoteObject 1053 * @param {!WebInspector.RemoteObject} remoteObject
998 */ 1054 */
999 _showFunctionDefinition: function(remoteObject) 1055 _showFunctionDefinition: function(remoteObject)
1000 { 1056 {
1057 var target = remoteObject.target();
1058
1001 /** 1059 /**
1002 * @param {?Protocol.Error} error 1060 * @param {?Protocol.Error} error
1003 * @param {!DebuggerAgent.FunctionDetails} response 1061 * @param {!DebuggerAgent.FunctionDetails} response
1004 * @this {WebInspector.SourcesPanel} 1062 * @this {WebInspector.SourcesPanel}
1005 */ 1063 */
1006 function didGetFunctionDetails(error, response) 1064 function didGetFunctionDetails(error, response)
1007 { 1065 {
1008 if (error) { 1066 if (error) {
1009 console.error(error); 1067 console.error(error);
1010 return; 1068 return;
1011 } 1069 }
1012 1070
1013 var uiLocation = WebInspector.debuggerModel.rawLocationToUILocation( response.location); 1071 var uiLocation = target.debuggerModel.rawLocationToUILocation(respon se.location);
1014 if (!uiLocation) 1072 if (!uiLocation)
1015 return; 1073 return;
1016 1074
1017 this.showUILocation(uiLocation, true); 1075 this.showUILocation(uiLocation, true);
1018 } 1076 }
1019 DebuggerAgent.getFunctionDetails(remoteObject.objectId, didGetFunctionDe tails.bind(this)); 1077 target.debuggerAgent().getFunctionDetails(remoteObject.objectId, didGetF unctionDetails.bind(this));
1020 }, 1078 },
1021 1079
1022 showGoToSourceDialog: function() 1080 showGoToSourceDialog: function()
1023 { 1081 {
1024 this._sourcesView.showOpenResourceDialog(); 1082 this._sourcesView.showOpenResourceDialog();
1025 }, 1083 },
1026 1084
1027 _dockSideChanged: function() 1085 _dockSideChanged: function()
1028 { 1086 {
1029 var vertically = WebInspector.dockController.isVertical() && WebInspecto r.settings.splitVerticallyWhenDockedToRight.get(); 1087 var vertically = WebInspector.dockController.isVertical() && WebInspecto r.settings.splitVerticallyWhenDockedToRight.get();
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
1412 WebInspector.SourcesPanel.TogglePauseActionDelegate.prototype = { 1470 WebInspector.SourcesPanel.TogglePauseActionDelegate.prototype = {
1413 /** 1471 /**
1414 * @return {boolean} 1472 * @return {boolean}
1415 */ 1473 */
1416 handleAction: function() 1474 handleAction: function()
1417 { 1475 {
1418 /** @type {!WebInspector.SourcesPanel} */ (WebInspector.inspectorView.sh owPanel("sources")).togglePause(); 1476 /** @type {!WebInspector.SourcesPanel} */ (WebInspector.inspectorView.sh owPanel("sources")).togglePause();
1419 return true; 1477 return true;
1420 } 1478 }
1421 } 1479 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698