[webkit-changes] [WebKit/WebKit] 7ad021: Web Inspector: URL breakpoints should also pause w...

Devin Rousso noreply at github.com
Wed Sep 14 12:47:37 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7ad0216f7c41bea64fd4d315e9df4d020c9f0830
      https://github.com/WebKit/WebKit/commit/7ad0216f7c41bea64fd4d315e9df4d020c9f0830
  Author: Devin Rousso <drousso at apple.com>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    A LayoutTests/inspector/dom-debugger/resources/dataDOM.json
    R LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt
    R LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests.html
    R LayoutTests/inspector/dom-debugger/url-breakpoints-containing-expected.txt
    R LayoutTests/inspector/dom-debugger/url-breakpoints-containing.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-all-requests-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-all-requests.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-containing-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-containing.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-matching-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom-matching.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-dom.html
    R LayoutTests/inspector/dom-debugger/url-breakpoints-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-all-requests-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-all-requests.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-containing-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-containing.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-matching-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-matching.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-fetch.html
    R LayoutTests/inspector/dom-debugger/url-breakpoints-matching-expected.txt
    R LayoutTests/inspector/dom-debugger/url-breakpoints-matching.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-all-requests-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-all-requests.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-containing-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-containing.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-matching-expected.txt
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-matching.html
    A LayoutTests/inspector/dom-debugger/url-breakpoints-xhr.html
    R LayoutTests/inspector/dom-debugger/url-breakpoints.html
    R LayoutTests/inspector/worker/dom-debugger-url-breakpoints-expected.txt
    A LayoutTests/inspector/worker/dom-debugger-url-breakpoints-fetch-expected.txt
    A LayoutTests/inspector/worker/dom-debugger-url-breakpoints-fetch.html
    A LayoutTests/inspector/worker/dom-debugger-url-breakpoints-xhr-expected.txt
    A LayoutTests/inspector/worker/dom-debugger-url-breakpoints-xhr.html
    R LayoutTests/inspector/worker/dom-debugger-url-breakpoints.html
    A LayoutTests/inspector/worker/resources/dataDOM.json
    M LayoutTests/inspector/worker/resources/resource-utilities.js
    M LayoutTests/inspector/worker/resources/worker-dom-debugger.js
    M Source/JavaScriptCore/inspector/protocol/Debugger.json
    M Source/WebCore/dom/EventTarget.cpp
    M Source/WebCore/dom/ScriptDisallowedScope.h
    M Source/WebCore/inspector/InspectorInstrumentation.cpp
    M Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp
    M Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp
    M Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js
    M Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js

  Log Message:
  -----------
  Web Inspector: URL breakpoints should also pause when HTML attributes that trigger loads are set
https://bugs.webkit.org/show_bug.cgi?id=218140
<rdar://problem/70636814>

Reviewed by Patrick Angle.

This will give developers even more power over understanding the cause of network requests.

It's still the case that by the time the URL breakpoint pauses, we've already configured the network
request (i.e. it cannot be changed), but at least this way a developer can pause when the request is
made, rather than inferring that by looking at the backtrace afterwards.

* Source/WebCore/inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willSendRequestImpl):
(WebCore::InspectorInstrumentation::willSendRequestOfTypeImpl):
* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h:
* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::willSendRequest): Added.
(WebCore::InspectorDOMDebuggerAgent::willSendRequestOfType): Added.
(WebCore::InspectorDOMDebuggerAgent::breakOnURLIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
(WebCore::InspectorDOMDebuggerAgent::willFetch):
Leverage existing instrumentation to notify the `DOMDebugger` whenever a new network request is made,
at which point the it can check for any existing URL breakpoints and pause if one is found.

* Source/JavaScriptCore/inspector/protocol/Debugger.json:
* Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.pauseReasonFromPayload):
* Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
Merge the `"XHR"` and `"Fetch"` pause reasons into a single `"URL"` since URL breakpoints can now be
triggered by more than just those two APIs (i.e. DOM APIs too).

* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
Make sure to also copy over the `ResourceRequest::Requester`.

* Source/WebCore/dom/ScriptDisallowedScope.h:
(WebCore::ScriptDisallowedScope::isScriptAllowedInMainThread): Renamed from `isEventAllowedInMainThread`.
* Source/WebCore/dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
Drive-by: Rename to make it less specific to events, as the same logic can be useful elsewhere.

* LayoutTests/inspector/dom-debugger/resources/dataDOM.json: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-all-requests.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-all-requests-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-containing.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-containing-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-matching.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-matching-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-dom-expected.txt: Added.

* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-all-requests.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-all-requests-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-containing.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-containing-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-matching.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-matching-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-fetch-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-all-requests.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-all-requests-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-containing.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-containing-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-matching.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-matching-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr.html: Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-xhr-expected.txt: Added.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints-fetch.html: Added.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints-fetch-expected.txt: Added.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints-xhr.html: Added.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints-xhr-expected.txt: Added.
* LayoutTests/inspector/worker/resources/dataDOM.json: Added.
* LayoutTests/inspector/worker/resources/resource-utilities.js:
(loadResourceDOM): Added.
* LayoutTests/inspector/worker/resources/worker-dom-debugger.js:
(const.functions.triggerXHRRequest): Renamed from `triggerXHR`.
(const.functions.triggerFetchRequest): Renamed from `triggerFetch`.
(const.functions.triggerDOMRequest): Added.
* LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests.html: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-containing.html: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-containing-expected.txt: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-matching.html: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-matching-expected.txt: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints.html: Removed.
* LayoutTests/inspector/dom-debugger/url-breakpoints-expected.txt: Removed.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints.html: Removed.
* LayoutTests/inspector/worker/dom-debugger-url-breakpoints-expected.txt: Removed.
Split URL breakpoint tests into separate files for each API (i.e. one for XHR, one for `fetch`, etc.).

Canonical link: https://commits.webkit.org/254488@main




More information about the webkit-changes mailing list