Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f7dd925a68af3c39406f6942a728e1428d00f802
https://github.com/WebKit/WebKit/commit/f7dd925a68af3c39406f6942a728e1428d00f802
Author: Vitaly Dyachkov <[email protected]>
Date: 2026-06-03 (Wed, 03 Jun 2026)
Changed paths:
M LayoutTests/inspector/timeline/resources/timeline-event-utilities.js
A LayoutTests/inspector/timeline/timeline-layout-events-expected.txt
A LayoutTests/inspector/timeline/timeline-layout-events-iframe-expected.txt
A LayoutTests/inspector/timeline/timeline-layout-events-iframe.html
A LayoutTests/inspector/timeline/timeline-layout-events.html
M Source/WebCore/inspector/InspectorInstrumentation.cpp
M Source/WebCore/inspector/InspectorInstrumentation.h
M Source/WebCore/inspector/TimelineRecordFactory.cpp
M Source/WebCore/inspector/TimelineRecordFactory.h
M Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp
M Source/WebCore/inspector/agents/page/PageTimelineAgent.h
M Source/WebCore/page/LocalFrameViewLayoutContext.cpp
M Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js
M Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js
M Source/WebInspectorUI/UserInterface/Views/LayoutTimelineView.js
Log Message:
-----------
Web Inspector: Show a Node associated with layout and rendering events in a
separate column
https://bugs.webkit.org/show_bug.cgi?id=314816
Reviewed by Devin Rousso.
`Layout` and `Largest Contentful Paint` events in the Timeline panel
have associated Nodes. For these events, a little arrow is shown next
to the name of the event. While this lets navigate to the Node in the
Elements panel, it is not very discoverable.
This patch adds a separate column for the Node in the Timeline panel,
making it more visible and navigatable. It also adds a Node to other
layout and rendering events.
* LayoutTests/inspector/timeline/resources/timeline-event-utilities.js:
(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithMarker):
(TestPage.registerInitializer):
* LayoutTests/inspector/timeline/timeline-layout-events-expected.txt: Added.
* LayoutTests/inspector/timeline/timeline-layout-events-iframe-expected.txt:
Added.
* LayoutTests/inspector/timeline/timeline-layout-events-iframe.html: Added.
* LayoutTests/inspector/timeline/timeline-layout-events.html: Added.
* Source/WebCore/inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInvalidateLayoutImpl):
(WebCore::InspectorInstrumentation::didCompositeImpl):
(WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
(WebCore::InspectorInstrumentation::didScheduleStyleRecalculationImpl):
(WebCore::InspectorInstrumentation::didCompleteRenderingFrameImpl):
* Source/WebCore/inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didInvalidateLayout):
(WebCore::InspectorInstrumentation::didComposite):
(WebCore::InspectorInstrumentation::didRecalculateStyle):
(WebCore::InspectorInstrumentation::didCompleteRenderingFrame):
* Source/WebCore/inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::appendLayoutRoot):
(WebCore::TimelineRecordFactory::appendNodeId):
* Source/WebCore/inspector/TimelineRecordFactory.h:
* Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp:
(WebCore::PageTimelineAgent::internalStart):
(WebCore::PageTimelineAgent::didInvalidateLayout):
(WebCore::PageTimelineAgent::didLayout):
(WebCore::PageTimelineAgent::didScheduleStyleRecalculation):
(WebCore::PageTimelineAgent::didRecalculateStyle):
(WebCore::PageTimelineAgent::didComposite):
(WebCore::PageTimelineAgent::didPaint):
(WebCore::PageTimelineAgent::didCompleteRenderingFrame):
(WebCore::PageTimelineAgent::nodeIdForDocument const):
(WebCore::PageTimelineAgent::nodeIdForRenderer const):
* Source/WebCore/inspector/agents/page/PageTimelineAgent.h:
* Source/WebCore/page/LocalFrameViewLayoutContext.cpp:
(WebCore::LocalFrameViewLayoutContext::scheduleLayout):
(WebCore::LocalFrameViewLayoutContext::scheduleSubtreeLayout):
* Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager.prototype._processRecord):
* Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js:
(WI.LayoutTimelineDataGridNode.prototype.get data):
(WI.LayoutTimelineDataGridNode.prototype.createCellContent):
(WI.LayoutTimelineDataGridNode):
* Source/WebInspectorUI/UserInterface/Views/LayoutTimelineView.js:
(WI.LayoutTimelineView):
Canonical link: https://commits.webkit.org/314460@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications