[webkit-changes] [WebKit/WebKit] fcd2b3: Web Inspector: DOMDebugger: event breakpoints shou...

Devin Rousso noreply at github.com
Wed Oct 5 15:15:32 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fcd2b36fa9f947a3182686b28c5af0f3f553b188
      https://github.com/WebKit/WebKit/commit/fcd2b36fa9f947a3182686b28c5af0f3f553b188
  Author: Devin Rousso <drousso at apple.com>
  Date:   2022-10-05 (Wed, 05 Oct 2022)

  Changed paths:
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-all-events-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-all-events.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-insensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-insensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-sensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-sensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-insensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-insensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-sensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-sensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-insensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-insensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-sensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-sensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-insensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-insensitive.html
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-sensitive-expected.txt
    A LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-sensitive.html
    M LayoutTests/inspector/dom-debugger/event-listener-breakpoints-expected.txt
    M LayoutTests/inspector/dom-debugger/event-listener-breakpoints.html
    M LayoutTests/inspector/dom-debugger/resources/event-breakpoint-utilities.js
    M Source/JavaScriptCore/inspector/protocol/DOMDebugger.json
    M Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp
    M Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h
    M Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorCompletionController.js
    M Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js
    M Source/WebInspectorUI/UserInterface/Main.html
    M Source/WebInspectorUI/UserInterface/Models/EventBreakpoint.js
    M Source/WebInspectorUI/UserInterface/Views/BreakpointPopover.css
    M Source/WebInspectorUI/UserInterface/Views/BreakpointPopover.js
    R Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.css
    M Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js
    M Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js
    R Source/WebInspectorUI/UserInterface/Views/SymbolicBreakpointPopover.css
    R Source/WebInspectorUI/UserInterface/Views/URLBreakpointPopover.css

  Log Message:
  -----------
  Web Inspector: DOMDebugger: event breakpoints should support case insensitive and regex matching
https://bugs.webkit.org/show_bug.cgi?id=246090

Reviewed by Patrick Angle.

This allows developers to create breakpoints for entire groups of events (e.g. `mouse*`) instead of
having to create separate ones for each item in the group (e.g. `mousedown`, `mouseup`, etc.). This
also allows for easier sharing of any actions since there's only one breakpoint instead of multiple.

* Source/JavaScriptCore/inspector/protocol/DOMDebugger.json:
* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.h:
(WebCore::InspectorDOMDebuggerAgent::EventBreakpoint::operator== const): Added.
* Source/WebCore/inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::mainFrameNavigated):
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::didHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::EventBreakpoint::matches): Added.
* Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.prototype.listenerBreakpointsForEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype._commandArgumentsForEventBreakpoint):
(WI.DOMDebuggerManager.prototype.listenerBreakpointForEventName): Deleted.
* Source/WebInspectorUI/UserInterface/Models/EventBreakpoint.js:
(WI.EventBreakpoint):
(WI.EventBreakpoint.get supportsCaseSensitive): Added.
(WI.EventBreakpoint.get supportsIsRegex): Added.
(WI.EventBreakpoint.fromJSON):
(WI.EventBreakpoint.prototype.get caseSensitive): Added.
(WI.EventBreakpoint.prototype.get isRegex): Added.
(WI.EventBreakpoint.prototype.get displayName):
(WI.EventBreakpoint.prototype.matches): Added.
(WI.EventBreakpoint.prototype.equals): Added.
(WI.EventBreakpoint.prototype.saveIdentityToCookie):
(WI.EventBreakpoint.prototype.toJSON):

* Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js:
(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.completionControllerCompletionsNeeded): Added.
(WI.EventBreakpointPopover.prototype.populateContent):
(WI.EventBreakpointPopover.prototype.createBreakpoint):
(WI.EventBreakpointPopover.prototype._updateDOMEventNameCodeMirrorMode): Added.
(WI.EventBreakpointPopover.prototype.dismiss): Deleted.
(WI.EventBreakpointPopover.prototype.completionSuggestionsClickedCompletion): Deleted.
(WI.EventBreakpointPopover.prototype._showSuggestionsView): Deleted.
(WI.EventBreakpointPopover.prototype._handleEventInputKeydown): Deleted.
(WI.EventBreakpointPopover.prototype._handleEventInputInput): Deleted.
(WI.EventBreakpointPopover.prototype._handleEventInputBlur): Deleted.
Rework how builtin event name autocomplete works now that the event name input is a CodeMirror.

* Source/WebInspectorUI/UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
It's now possible for multiple `WI.EventBreakpoint` to match a given event name.

* Source/WebInspectorUI/UserInterface/Views/BreakpointPopover.css:
(.popover .edit-breakpoint-popover-content > table > tr > td > .editor): Added.
(.popover .edit-breakpoint-popover-content > table > tr:last-child > td > .editor): Added.
(.popover .edit-breakpoint-popover-content > table > tr > td > .editor > .CodeMirror): Added.
(.popover .edit-breakpoint-popover-content.wide > table > tr > td > .editor > .CodeMirror): Added.
(.popover .edit-breakpoint-popover-content > table > tr > td > .editor + label + label): Added.
(@media (prefers-color-scheme: dark) .popover .edit-breakpoint-popover-content > table > tr > td > .editor): Added.
(.popover .edit-breakpoint-popover-content > table > tr.condition > td > .editor): Deleted.
(.popover .edit-breakpoint-popover-content > table > tr.condition > td > .editor > .CodeMirror): Deleted.
(.popover .edit-breakpoint-popover-content.wide .condition > .CodeMirror): Deleted.
* Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.css: Removed.
* Source/WebInspectorUI/UserInterface/Views/SymbolicBreakpointPopover.css: Removed.
* Source/WebInspectorUI/UserInterface/Views/URLBreakpointPopover.css: Removed.
* Source/WebInspectorUI/UserInterface/Main.html:
Unify the styling across all `WI.BreakpointPopover` subclasses.

* Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorCompletionController.js:
(WI.CodeMirrorCompletionController.prototype.commitCurrentCompletion): Added.
(WI.CodeMirrorCompletionController.prototype.get _currentReplacementText):
(WI.CodeMirrorCompletionController.prototype._commitCompletionHint):
(WI.CodeMirrorCompletionController.prototype._commitCompletionHint.update): Deleted.
Drive-by: Add utility methods for forcing the current completion to commit, as well as fixing a bug
          where unset variables would result in a completion of `"undefined"`.

* Source/WebInspectorUI/UserInterface/Views/BreakpointPopover.js:
(WI.BreakpointPopover.prototype._handleAddActionButtonClick):
Drive-by: Wait to `update` so that CodeMirror has a chance to render first (which avoids scrollbars).

* LayoutTests/inspector/dom-debugger/event-listener-breakpoints.html:
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-expected.txt:
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-all-events.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-all-events-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-insensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-insensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-sensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-exact-case-sensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-insensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-insensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-sensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-builtin-regex-case-sensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-insensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-insensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-sensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-exact-case-sensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-insensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-insensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-sensitive.html: Added.
* LayoutTests/inspector/dom-debugger/event-listener-breakpoints-custom-regex-case-sensitive-expected.txt: Added.
* LayoutTests/inspector/dom-debugger/resources/event-breakpoint-utilities.js:
(TestPage.registerInitializer.InspectorTest.EventBreakpoint.createBreakpoint):
Split tests for `WI.EventBreakpoint` into multiple files for better sharding.

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




More information about the webkit-changes mailing list