Title: [214956] trunk
Revision
214956
Author
[email protected]
Date
2017-04-05 11:57:35 -0700 (Wed, 05 Apr 2017)

Log Message

Web Inspector: XHR breakpoints should be global
https://bugs.webkit.org/show_bug.cgi?id=170033

Source/WebInspectorUI:

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:
Shorten XHR breakpoint tree element "URL contains:" title to "URL".

* UserInterface/Controllers/DOMDebuggerManager.js:
Change storage of XHR breakpoints from a map to a simple array.
(WebInspector.DOMDebuggerManager):
(WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
(WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
Dispatch the "breakpoint added" event immediately after adding the
breakpoint, rather than waiting for it to resolve.

(WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):

* UserInterface/Models/XHRBreakpoint.js:
An XHR breakpoint should not be associated with a particular document.
(WebInspector.XHRBreakpoint):
(WebInspector.XHRBreakpoint.prototype.get serializableInfo):
(WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
(WebInspector.XHRBreakpoint.prototype.get documentURL): Deleted.

* UserInterface/Views/DebuggerSidebarPanel.css:
Use default emdash-separated title/subtitle style instead of the
custom "URL contains:" labeling.

(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle):
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle:before): Deleted.
(body[dir=ltr] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
(body[dir=rtl] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
(WebInspector.DebuggerSidebarPanel):

* UserInterface/Views/XHRBreakpointTreeElement.js:
(WebInspector.XHRBreakpointTreeElement):

LayoutTests:

Reviewed by Joseph Pecoraro..

* inspector/dom-debugger/xhr-breakpoints.html:
Update for XHRBreakpoint constructor change.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (214955 => 214956)


--- trunk/LayoutTests/ChangeLog	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/LayoutTests/ChangeLog	2017-04-05 18:57:35 UTC (rev 214956)
@@ -1,3 +1,13 @@
+2017-04-05  Matt Baker  <[email protected]>
+
+        Web Inspector: XHR breakpoints should be global
+        https://bugs.webkit.org/show_bug.cgi?id=170033
+
+        Reviewed by Joseph Pecoraro..
+
+        * inspector/dom-debugger/xhr-breakpoints.html:
+        Update for XHRBreakpoint constructor change.
+
 2017-04-05  Chris Dumez  <[email protected]>
 
         <input type="range"> changing to disabled while active breaks all pointer events

Modified: trunk/LayoutTests/inspector/dom-debugger/xhr-breakpoints.html (214955 => 214956)


--- trunk/LayoutTests/inspector/dom-debugger/xhr-breakpoints.html	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/LayoutTests/inspector/dom-debugger/xhr-breakpoints.html	2017-04-05 18:57:35 UTC (rev 214956)
@@ -48,7 +48,7 @@
             if (!mainFrame)
                 reject();
 
-            let breakpoint = new WebInspector.XHRBreakpoint(mainFrame.url, url);
+            let breakpoint = new WebInspector.XHRBreakpoint(url);
             WebInspector.domDebuggerManager.awaitEvent(WebInspector.DOMDebuggerManager.Event.XHRBreakpointAdded)
             .then(() => {
                 InspectorTest.expectFalse(breakpoint.disabled, "Breakpoint should not be disabled initially.");

Modified: trunk/Source/WebInspectorUI/ChangeLog (214955 => 214956)


--- trunk/Source/WebInspectorUI/ChangeLog	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/ChangeLog	2017-04-05 18:57:35 UTC (rev 214956)
@@ -1,3 +1,50 @@
+2017-04-05  Matt Baker  <[email protected]>
+
+        Web Inspector: XHR breakpoints should be global
+        https://bugs.webkit.org/show_bug.cgi?id=170033
+
+        Reviewed by Joseph Pecoraro.
+
+        * Localizations/en.lproj/localizedStrings.js:
+        Shorten XHR breakpoint tree element "URL contains:" title to "URL".
+
+        * UserInterface/Controllers/DOMDebuggerManager.js:
+        Change storage of XHR breakpoints from a map to a simple array.
+        (WebInspector.DOMDebuggerManager):
+        (WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
+        (WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
+        Dispatch the "breakpoint added" event immediately after adding the
+        breakpoint, rather than waiting for it to resolve.
+
+        (WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
+        (WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
+        (WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
+        (WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
+        (WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
+
+        * UserInterface/Models/XHRBreakpoint.js:
+        An XHR breakpoint should not be associated with a particular document.
+        (WebInspector.XHRBreakpoint):
+        (WebInspector.XHRBreakpoint.prototype.get serializableInfo):
+        (WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
+        (WebInspector.XHRBreakpoint.prototype.get documentURL): Deleted.
+
+        * UserInterface/Views/DebuggerSidebarPanel.css:
+        Use default emdash-separated title/subtitle style instead of the
+        custom "URL contains:" labeling.
+
+        (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle):
+        (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle:before): Deleted.
+        (body[dir=ltr] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
+        (body[dir=rtl] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
+
+        * UserInterface/Views/DebuggerSidebarPanel.js:
+        (WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
+        (WebInspector.DebuggerSidebarPanel):
+
+        * UserInterface/Views/XHRBreakpointTreeElement.js:
+        (WebInspector.XHRBreakpointTreeElement):
+
 2017-04-04  Brian Burg  <[email protected]>
 
         Web Inspector: RTL: layout issues in Type Profiler popovers

Modified: trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js (214955 => 214956)


--- trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js	2017-04-05 18:57:35 UTC (rev 214956)
@@ -864,7 +864,7 @@
 localizedStrings["Type"] = "Type";
 localizedStrings["Type Issue"] = "Type Issue";
 localizedStrings["Type information for variable: %s"] = "Type information for variable: %s";
-localizedStrings["URL contains:"] = "URL contains:";
+localizedStrings["URL"] = "URL";
 localizedStrings["Unable to determine path to property from root"] = "Unable to determine path to property from root";
 localizedStrings["Uncaught Exceptions"] = "Uncaught Exceptions";
 localizedStrings["Unchanged"] = "Unchanged";

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js (214955 => 214956)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js	2017-04-05 18:57:35 UTC (rev 214956)
@@ -34,11 +34,11 @@
         this._domBreakpointFrameIdentifierMap = new Map;
 
         this._xhrBreakpointsSetting = new WebInspector.Setting("xhr-breakpoints", []);
-        this._xhrBreakpointURLMap = new Map;
+        this._xhrBreakpoints = [];
         this._allRequestsBreakpointEnabledSetting = new WebInspector.Setting("break-on-all-requests", false);
 
         const emptyURL = "";
-        this._allRequestsBreakpoint = new WebInspector.XHRBreakpoint(null, emptyURL, !this._allRequestsBreakpointEnabledSetting.value);
+        this._allRequestsBreakpoint = new WebInspector.XHRBreakpoint(emptyURL, !this._allRequestsBreakpointEnabledSetting.value);
 
         WebInspector.DOMBreakpoint.addEventListener(WebInspector.DOMBreakpoint.Event.DisabledStateDidChange, this._domBreakpointDisabledStateDidChange, this);
         WebInspector.XHRBreakpoint.addEventListener(WebInspector.XHRBreakpoint.Event.DisabledStateDidChange, this._xhrBreakpointDisabledStateDidChange, this);
@@ -60,7 +60,7 @@
             }
 
             for (let cookie of this._xhrBreakpointsSetting.value) {
-                let breakpoint = new WebInspector.XHRBreakpoint(cookie.documentURL, cookie.url, cookie.disabled);
+                let breakpoint = new WebInspector.XHRBreakpoint(cookie.url, cookie.disabled);
                 this.addXHRBreakpoint(breakpoint);
             }
 
@@ -100,19 +100,8 @@
         return resolvedBreakpoints;
     }
 
-    get xhrBreakpoints()
-    {
-        let mainFrame = WebInspector.frameResourceManager.mainFrame;
-        if (!mainFrame)
-            return [];
+    get xhrBreakpoints() { return this._xhrBreakpoints; }
 
-        let breakpoints = this._xhrBreakpointURLMap.get(mainFrame.url)
-        if (!breakpoints)
-            return [];
-
-        return breakpoints.slice();
-    }
-
     isBreakpointRemovable(breakpoint)
     {
         return breakpoint !== this._allRequestsBreakpoint;
@@ -186,17 +175,20 @@
     addXHRBreakpoint(breakpoint)
     {
         console.assert(breakpoint instanceof WebInspector.XHRBreakpoint);
-        if (!breakpoint || !breakpoint.documentURL)
+        if (!breakpoint)
             return;
 
-        let url = ""
-        let breakpoints = this._xhrBreakpointURLMap.get(url);
-        if (!breakpoints) {
-            breakpoints = [breakpoint];
-            this._xhrBreakpointURLMap.set(url, breakpoints);
-        } else
-            breakpoints.push(breakpoint);
+        console.assert(!this._xhrBreakpoints.includes(breakpoint), "Already added XHR breakpoint.", breakpoint);
+        if (this._xhrBreakpoints.includes(breakpoint))
+            return;
 
+        if (this._xhrBreakpoints.some((entry) => entry.url ="" breakpoint.url))
+            return;
+
+        this._xhrBreakpoints.push(breakpoint);
+
+        this.dispatchEventToListeners(WebInspector.DOMDebuggerManager.Event.XHRBreakpointAdded, {breakpoint});
+
         this._resolveXHRBreakpoint(breakpoint);
         this._saveXHRBreakpoints();
     }
@@ -207,17 +199,14 @@
         if (!breakpoint)
             return;
 
-        let url = ""
-        let breakpoints = this._xhrBreakpointURLMap.get(url);
-        breakpoints.remove(breakpoint, true);
+        if (!this._xhrBreakpoints.includes(breakpoint))
+            return;
 
-        this._detachXHRBreakpoint(breakpoint);
+        this._xhrBreakpoints.remove(breakpoint, true);
 
-        if (!breakpoints.length)
-            this._xhrBreakpointURLMap.delete(url);
-
         this.dispatchEventToListeners(WebInspector.DOMDebuggerManager.Event.DOMBreakpointRemoved, {breakpoint});
 
+        this._detachXHRBreakpoint(breakpoint);
         this._saveXHRBreakpoints();
     }
 
@@ -288,11 +277,8 @@
             }
         }
 
-        let xhrBreakpoints = this._xhrBreakpointURLMap.get(mainFrame.url);
-        if (xhrBreakpoints) {
-            for (let breakpoint of xhrBreakpoints)
-                this._resolveXHRBreakpoint(breakpoint);
-        }
+        for (let breakpoint of this._xhrBreakpoints)
+            this._resolveXHRBreakpoint(breakpoint);
     }
 
     _resolveDOMBreakpoint(breakpoint, nodeIdentifier)
@@ -374,7 +360,7 @@
             return;
 
         this._updateXHRBreakpoint(breakpoint, () => {
-            this.dispatchEventToListeners(WebInspector.DOMDebuggerManager.Event.XHRBreakpointAdded, {breakpoint});
+            breakpoint.dispatchEventToListeners(WebInspector.XHRBreakpoint.Event.ResolvedStateDidChange);
         });
     }
 
@@ -395,11 +381,7 @@
         if (this._restoringBreakpoints)
             return;
 
-        let breakpointsToSave = [];
-        for (let breakpoints of this._xhrBreakpointURLMap.values())
-            breakpointsToSave = breakpointsToSave.concat(breakpoints);
-
-        this._xhrBreakpointsSetting.value = breakpointsToSave.map((breakpoint) => breakpoint.serializableInfo);
+        this._xhrBreakpointsSetting.value = this._xhrBreakpoints.map((breakpoint) => breakpoint.serializableInfo);
     }
 
     _domBreakpointDisabledStateDidChange(event)
@@ -440,11 +422,8 @@
 
             this._domBreakpointFrameIdentifierMap.clear();
 
-            let xhrBreakpoints = this._xhrBreakpointURLMap.get(frame.url);
-            if (xhrBreakpoints) {
-                for (let breakpoint of xhrBreakpoints)
-                    this._detachXHRBreakpoint(breakpoint);
-            }
+            for (let breakpoint of this._xhrBreakpoints)
+                this._detachXHRBreakpoint(breakpoint);
         } else
             this._detachBreakpointsForFrame(frame);
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js (214955 => 214956)


--- trunk/Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js	2017-04-05 18:57:35 UTC (rev 214956)
@@ -25,11 +25,10 @@
 
 WebInspector.XHRBreakpoint = class XHRBreakpoint extends WebInspector.Object
 {
-    constructor(documentURL, url, disabled)
+    constructor(url, disabled)
     {
         super();
 
-        this._documentURL = documentURL;
         this._url = url;
         this._disabled = disabled || false;
     }
@@ -36,7 +35,6 @@
 
     // Public
 
-    get documentURL() { return this._documentURL; }
     get url() { return this._url; }
 
     get disabled()
@@ -56,7 +54,7 @@
 
     get serializableInfo()
     {
-        let info = {documentURL: this._documentURL, url: this._url};
+        let info = {url: this._url};
         if (this._disabled)
             info.disabled = true;
 
@@ -65,12 +63,10 @@
 
     saveIdentityToCookie(cookie)
     {
-        cookie[WebInspector.XHRBreakpoint.DocumentURLCookieKey] = this._documentURL;
         cookie[WebInspector.XHRBreakpoint.URLCookieKey] = this._url;
     }
 };
 
-WebInspector.XHRBreakpoint.DocumentURLCookieKey = "xhr-breakpoint-document-url";
 WebInspector.XHRBreakpoint.URLCookieKey = "xhr-breakpoint-url";
 
 WebInspector.XHRBreakpoint.Event = {

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.css (214955 => 214956)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.css	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.css	2017-04-05 18:57:35 UTC (rev 214956)
@@ -120,21 +120,6 @@
     display: none;
 }
 
-.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle:before {
-    content: "";
-}
-
 .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle {
-    padding-left: 5px;
     font-family: Menlo, monospace;
-
-    --subtitle-padding-start: 6px;
 }
-
-body[dir=ltr] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle {
-    padding-left: var(--subtitle-padding-start);
-}
-
-body[dir=rtl] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle {
-    padding-right: var(--subtitle-padding-start);
-}

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js (214955 => 214956)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js	2017-04-05 18:57:35 UTC (rev 214956)
@@ -1171,8 +1171,7 @@
         if (!url)
             return;
 
-        let documentURL = WebInspector.frameResourceManager.mainFrame.url;
-        WebInspector.domDebuggerManager.addXHRBreakpoint(new WebInspector.XHRBreakpoint(documentURL, url));
+        WebInspector.domDebuggerManager.addXHRBreakpoint(new WebInspector.XHRBreakpoint(url));
     }
 };
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js (214955 => 214956)


--- trunk/Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js	2017-04-05 18:47:39 UTC (rev 214955)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js	2017-04-05 18:57:35 UTC (rev 214956)
@@ -34,8 +34,8 @@
 
         let subtitle;
         if (!title) {
-            title = WebInspector.UIString("URL contains:");
-            subtitle = breakpoint.url;
+            title = WebInspector.UIString("URL");
+            subtitle = doubleQuotedString(breakpoint.url);
         }
 
         super(["breakpoint", className], title, subtitle, breakpoint);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to