Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b29b3cee5dbfd8fd6facbed5c9a87ed1bf2daffe
https://github.com/WebKit/WebKit/commit/b29b3cee5dbfd8fd6facbed5c9a87ed1bf2daffe
Author: Devin Rousso <[email protected]>
Date: 2024-08-26 (Mon, 26 Aug 2024)
Changed paths:
M LayoutTests/inspector/debugger/resources/log-pause-location.js
A LayoutTests/inspector/debugger/resources/source-map.js
A LayoutTests/inspector/debugger/resources/source-map.js.map
A
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-inner-expected.txt
A LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-inner.html
A
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-middle-expected.txt
A LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-middle.html
A
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-outer-expected.txt
A LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-outer.html
M Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js
M Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js
M Source/WebInspectorUI/UserInterface/Models/CallFrame.js
M Source/WebInspectorUI/UserInterface/Models/SourceCode.js
M Source/WebInspectorUI/UserInterface/Models/SourceMap.js
M Source/WebInspectorUI/UserInterface/Models/SourceMapResource.js
M Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
Log Message:
-----------
Web Inspector: allow sourcemaps to be blackboxed
https://bugs.webkit.org/show_bug.cgi?id=277668
Reviewed by Yusuke Suzuki.
As of 281634@main it's now possible to blackbox a (sub)range of a `.js` file.
This change allows developers to leverage that by automatically blackboxing
only the affected range(s) if they blackbox a resource within a sourcemap.
* Source/WebInspectorUI/UserInterface/Models/SourceMapResource.js:
(WI.SourceMapResource.prototype.get supportsScriptBlackboxing):
* Source/WebInspectorUI/UserInterface/Models/SourceMap.js:
(WI.SourceMap):
(WI.SourceMap.get instances): Added.
(WI.SourceMap.prototype.get sourceMappingURL): Added.
(WI.SourceMap.prototype.calculateBlackboxSourceRangesForProtocol): Added.
Add helper methods to get all sourcemap instances and to determine all blackbox
ranges for a given sourcemap.
* Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype.async initializeTarget):
(WI.DebuggerManager.prototype.setShouldBlackboxScript):
(WI.DebuggerManager.prototype.setShouldBlackboxPattern):
(WI.DebuggerManager.prototype._updateBlackbox): Added.
(WI.DebuggerManager.prototype._handleSourceCodeSourceMapAdded): Added.
In addition to allowing `.js` files to be entirely blackboxed, also support
looking at all relevant sourcemap to see if just parts are blackboxed.
Check each time a new sourcemap is added, as well as if the relevant `.js` file
is unblackboxed as resources within the sourcemap may still be blackboxed.
* Source/WebInspectorUI/UserInterface/Models/CallFrame.js:
(WI.CallFrame.fromDebuggerPayload):
(WI.CallFrame.fromPayload):
* Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForSourceCode):
Use the `displaySourceCode` so that if the developer right-clicks on a resource
within a sourcemap they're able to blackbox just that instead of the entire
underlying `.js` file.
Drive-by: also allow developers to set breakpoints in and save resources within
a sourcemap instead of only for the entire underlying `.js` file.
* Source/WebInspectorUI/UserInterface/Models/SourceCode.js:
(WI.SourceCode.prototype.addSourceMap):
Include the sourcemap object when dispatching
`WI.SourceCode.Event.SourceMapAdded` for tests.
* Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager.prototype._loadAndParseSourceMap.sourceMapLoaded):
Drive-by: Reorder constructor arguments for clarity.
* LayoutTests/inspector/debugger/resources/log-pause-location.js:
(isSourceAvailable): Added.
(getLineContent): Added.
(logLinesWithContext):
(logPauseLocation):
Allow for resources within a sourcemap to be printed since they are created
with the content already available (instead of having to fetch it from the
backend).
Additionally, prefer the display location wherever possible (instead of the
actual location according to JSC).
* LayoutTests/inspector/debugger/resources/source-map.js: Added.
* LayoutTests/inspector/debugger/resources/source-map.js.map: Added.
* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-inner.html:
Added.
*
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-inner-expected.txt:
Added.
* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-middle.html:
Added.
*
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-middle-expected.txt:
Added.
* LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-outer.html:
Added.
*
LayoutTests/inspector/debugger/setShouldBlackboxURL-source-map-outer-expected.txt:
Added.
Canonical link: https://commits.webkit.org/282740@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes