Title: [189816] trunk/Source/WebInspectorUI
- Revision
- 189816
- Author
- commit-qu...@webkit.org
- Date
- 2015-09-15 11:36:04 -0700 (Tue, 15 Sep 2015)
Log Message
Web Inspector: Watch Expressions uncaught exceptions on page reload
https://bugs.webkit.org/show_bug.cgi?id=149150
Patch by Joseph Pecoraro <pecor...@apple.com> on 2015-09-15
Reviewed by Brian Burg.
Instead of waiting 50ms to Resume, when the page navigates
Resume immediately. This ensures nobody is using a stale
activeCallFrame after the navigation.
Also clean up the manager a bit by removing some deletes.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.debuggerDidResume):
(WebInspector.DebuggerManager.prototype._mainResourceDidChange):
(WebInspector.DebuggerManager.prototype._didResumeInternal):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
(WebInspector.DebuggerManager.prototype.debuggerDidResume.delayedWork): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (189815 => 189816)
--- trunk/Source/WebInspectorUI/ChangeLog 2015-09-15 18:26:27 UTC (rev 189815)
+++ trunk/Source/WebInspectorUI/ChangeLog 2015-09-15 18:36:04 UTC (rev 189816)
@@ -1,5 +1,28 @@
2015-09-15 Joseph Pecoraro <pecor...@apple.com>
+ Web Inspector: Watch Expressions uncaught exceptions on page reload
+ https://bugs.webkit.org/show_bug.cgi?id=149150
+
+ Reviewed by Brian Burg.
+
+ Instead of waiting 50ms to Resume, when the page navigates
+ Resume immediately. This ensures nobody is using a stale
+ activeCallFrame after the navigation.
+
+ Also clean up the manager a bit by removing some deletes.
+
+ * UserInterface/Controllers/DebuggerManager.js:
+ (WebInspector.DebuggerManager.restoreBreakpointsSoon):
+ (WebInspector.DebuggerManager.prototype.reset):
+ (WebInspector.DebuggerManager.prototype.debuggerDidPause):
+ (WebInspector.DebuggerManager.prototype.debuggerDidResume):
+ (WebInspector.DebuggerManager.prototype._mainResourceDidChange):
+ (WebInspector.DebuggerManager.prototype._didResumeInternal):
+ (WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
+ (WebInspector.DebuggerManager.prototype.debuggerDidResume.delayedWork): Deleted.
+
+2015-09-15 Joseph Pecoraro <pecor...@apple.com>
+
Web Inspector: Closing the final inspector tab should be allowed
https://bugs.webkit.org/show_bug.cgi?id=149130
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js (189815 => 189816)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js 2015-09-15 18:26:27 UTC (rev 189815)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js 2015-09-15 18:36:04 UTC (rev 189816)
@@ -38,6 +38,8 @@
WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.AutoContinueDidChange, this._breakpointEditablePropertyDidChange, this);
WebInspector.Breakpoint.addEventListener(WebInspector.Breakpoint.Event.ActionsDidChange, this._breakpointEditablePropertyDidChange, this);
+ WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
+
window.addEventListener("pagehide", this._inspectorClosing.bind(this));
this._allExceptionsBreakpointEnabledSetting = new WebInspector.Setting("break-on-all-exceptions", false);
@@ -76,7 +78,7 @@
this._restoringBreakpoints = true;
for (var cookie of this._breakpointsSetting.value)
this.addBreakpoint(new WebInspector.Breakpoint(cookie));
- delete this._restoringBreakpoints;
+ this._restoringBreakpoints = false;
}
// Ensure that all managers learn about restored breakpoints,
@@ -443,7 +445,7 @@
breakpoint.sourceCodeLocation.sourceCode = null;
}
- delete this._ignoreBreakpointDisplayLocationDidChangeEvent;
+ this._ignoreBreakpointDisplayLocationDidChangeEvent = false;
this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.ScriptsCleared);
@@ -457,7 +459,7 @@
if (this._delayedResumeTimeout) {
clearTimeout(this._delayedResumeTimeout);
- delete this._delayedResumeTimeout;
+ this._delayedResumeTimeout = undefined;
}
var wasStillPaused = this._paused;
@@ -497,22 +499,9 @@
{
// Called from WebInspector.DebuggerObserver.
- function delayedWork()
- {
- delete this._delayedResumeTimeout;
-
- this._paused = false;
- this._callFrames = null;
- this._activeCallFrame = null;
-
- this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.Resumed);
- this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.CallFramesDidChange);
- this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.ActiveCallFrameDidChange);
- }
-
// We delay clearing the state and firing events so the user interface does not flash
// between brief steps or successive breakpoints.
- this._delayedResumeTimeout = setTimeout(delayedWork.bind(this), 50);
+ this._delayedResumeTimeout = setTimeout(this._didResumeInternal.bind(this), 50);
}
playBreakpointActionSound(breakpointActionIdentifier)
@@ -810,6 +799,33 @@
}
}
+ _mainResourceDidChange(event)
+ {
+ if (!event.target.isMainFrame())
+ return;
+
+ this._didResumeInternal();
+ }
+
+ _didResumeInternal()
+ {
+ if (!this._activeCallFrame)
+ return;
+
+ if (this._delayedResumeTimeout) {
+ clearTimeout(this._delayedResumeTimeout);
+ this._delayedResumeTimeout = undefined;
+ }
+
+ this._paused = false;
+ this._callFrames = null;
+ this._activeCallFrame = null;
+
+ this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.Resumed);
+ this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.CallFramesDidChange);
+ this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.ActiveCallFrameDidChange);
+ }
+
_updateBreakOnExceptionsState()
{
var state = "none";
@@ -871,7 +887,7 @@
console.assert(breakpoint.sourceCodeLocation.sourceCode === sourceCode || breakpoint.sourceCodeLocation.sourceCode.url ="" sourceCode.url);
}
- delete this._ignoreBreakpointDisplayLocationDidChangeEvent;
+ this._ignoreBreakpointDisplayLocationDidChangeEvent = false;
}
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes