Title: [192771] trunk/Source/WebInspectorUI
- Revision
- 192771
- Author
- [email protected]
- Date
- 2015-11-25 12:53:51 -0800 (Wed, 25 Nov 2015)
Log Message
Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified
https://bugs.webkit.org/show_bug.cgi?id=151581
Reviewed by Timothy Hatcher.
Serialize all breakpoints to the "breakpoints" Setting in local storage
whenever any breakpoint model object is added, removed, or modified.
Remove the old listener that attempted to save breakpoints on the
pagehide event. It did not fire in important scenarios like exiting
the browser via Cmd-Q or killing the process via Ctrl-C / SIGKILL.
This is not expected to be a performance problem because most people
do not keep thousands of breakpoints active, and breakpoints are not
set very often. If it's a problem, we can mitigate it with coalescing.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WebInspector.DebuggerManager.prototype._saveBreakpoints):
(WebInspector.DebuggerManager.prototype._inspectorClosing): Deleted.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (192770 => 192771)
--- trunk/Source/WebInspectorUI/ChangeLog 2015-11-25 19:04:03 UTC (rev 192770)
+++ trunk/Source/WebInspectorUI/ChangeLog 2015-11-25 20:53:51 UTC (rev 192771)
@@ -1,5 +1,30 @@
2015-11-24 Brian Burg <[email protected]>
+ Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified
+ https://bugs.webkit.org/show_bug.cgi?id=151581
+
+ Reviewed by Timothy Hatcher.
+
+ Serialize all breakpoints to the "breakpoints" Setting in local storage
+ whenever any breakpoint model object is added, removed, or modified.
+
+ Remove the old listener that attempted to save breakpoints on the
+ pagehide event. It did not fire in important scenarios like exiting
+ the browser via Cmd-Q or killing the process via Ctrl-C / SIGKILL.
+
+ This is not expected to be a performance problem because most people
+ do not keep thousands of breakpoints active, and breakpoints are not
+ set very often. If it's a problem, we can mitigate it with coalescing.
+
+ * UserInterface/Controllers/DebuggerManager.js:
+ (WebInspector.DebuggerManager.prototype.addBreakpoint):
+ (WebInspector.DebuggerManager.prototype.removeBreakpoint):
+ (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
+ (WebInspector.DebuggerManager.prototype._saveBreakpoints):
+ (WebInspector.DebuggerManager.prototype._inspectorClosing): Deleted.
+
+2015-11-24 Brian Burg <[email protected]>
+
Web Inspector: Cmd-1 to Cmd-9 shortcuts should select tabs by ordinal
https://bugs.webkit.org/show_bug.cgi?id=151577
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js (192770 => 192771)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js 2015-11-25 19:04:03 UTC (rev 192770)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js 2015-11-25 20:53:51 UTC (rev 192771)
@@ -41,8 +41,6 @@
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);
this._allUncaughtExceptionsBreakpointEnabledSetting = new WebInspector.Setting("break-on-all-uncaught-exceptions", false);
@@ -362,6 +360,8 @@
if (!breakpoint.disabled)
this._setBreakpoint(breakpoint, shouldSpeculativelyResolve ? speculativelyResolveBreakpoint.bind(null, breakpoint) : null);
+ this._saveBreakpoints();
+
if (!skipEventDispatch)
this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.BreakpointAdded, {breakpoint});
}
@@ -403,6 +403,8 @@
breakpoint.disabled = true;
breakpoint.clearActions();
+ this._saveBreakpoints();
+
this.dispatchEventToListeners(WebInspector.DebuggerManager.Event.BreakpointRemoved, {breakpoint});
}
@@ -764,8 +766,9 @@
_breakpointDisabledStateDidChange(event)
{
- var breakpoint = event.target;
+ this._saveBreakpoints();
+ let breakpoint = event.target;
if (breakpoint === this._allExceptionsBreakpoint) {
if (!breakpoint.disabled)
this.breakpointsEnabled = true;
@@ -790,7 +793,9 @@
_breakpointEditablePropertyDidChange(event)
{
- var breakpoint = event.target;
+ this._saveBreakpoints();
+
+ let breakpoint = event.target;
if (breakpoint.disabled)
return;
@@ -862,26 +867,14 @@
DebuggerAgent.setPauseOnExceptions(state);
}
- _inspectorClosing(event)
- {
- this._saveBreakpoints();
- }
-
_saveBreakpoints()
{
- var savedBreakpoints = [];
+ if (this._restoringBreakpoints)
+ return;
- for (var i = 0; i < this._breakpoints.length; ++i) {
- var breakpoint = this._breakpoints[i];
-
- // Only breakpoints with URLs can be saved. Breakpoints for transient scripts can't.
- if (!breakpoint.url)
- continue;
-
- savedBreakpoints.push(breakpoint.info);
- }
-
- this._breakpointsSetting.value = savedBreakpoints;
+ let breakpointsToSave = this._breakpoints.filter((breakpoint) => !!breakpoint.url);
+ let serializedBreakpoints = breakpointsToSave.map((breakpoint) => breakpoint.info);
+ this._breakpointsSetting.value = serializedBreakpoints;
}
_associateBreakpointsWithSourceCode(breakpoints, sourceCode)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes