Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0635672c86b4a255ce06cea8223b248703ee6151
https://github.com/WebKit/WebKit/commit/0635672c86b4a255ce06cea8223b248703ee6151
Author: Jer Noble <[email protected]>
Date: 2025-10-04 (Sat, 04 Oct 2025)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/SaferCPPExpectations/ForwardDeclCheckerExpectations
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/ViewTransition.h
M Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm
M Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp
M Source/WebCore/inspector/InspectorCanvas.cpp
M Source/WebCore/inspector/InspectorCanvas.h
M Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp
M Source/WebCore/loader/EmptyClients.h
M Source/WebCore/page/ChromeClient.h
M Source/WebCore/page/DebugPageOverlays.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/PageOverlayController.cpp
M Source/WebCore/page/PageOverlayController.h
M Source/WebCore/page/TextIndicator.cpp
M Source/WebCore/page/cocoa/ResourceUsageOverlayCocoa.mm
M Source/WebCore/page/mac/ServicesOverlayController.h
M Source/WebCore/platform/graphics/GraphicsLayer.cpp
M Source/WebCore/platform/graphics/GraphicsLayer.h
M Source/WebCore/platform/graphics/GraphicsLayerContentsDisplayDelegate.cpp
M Source/WebCore/platform/graphics/GraphicsLayerContentsDisplayDelegate.h
A Source/WebCore/platform/graphics/GraphicsLayerEnums.h
M Source/WebCore/platform/graphics/GraphicsLayerFactory.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
M Source/WebCore/platform/graphics/ca/PlatformCALayer.h
M Source/WebCore/platform/graphics/ca/PlatformCALayer.mm
M Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h
M Source/WebCore/platform/graphics/ca/TileController.h
M Source/WebCore/platform/graphics/ca/TileCoverageMap.h
M Source/WebCore/platform/graphics/ca/TileGrid.cpp
M Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm
M Source/WebCore/platform/graphics/cg/ImageUtilitiesCG.cpp
M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerAsyncContentsDisplayDelegateCoordinated.h
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerContentsDisplayDelegateCoordinated.h
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h
M Source/WebCore/platform/mac/DataDetectorHighlight.h
M Source/WebCore/rendering/CSSFilterRenderer.h
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerBacking.h
M Source/WebCore/rendering/RenderObject.cpp
M Source/WebCore/rendering/RenderTreeAsText.cpp
M Source/WebCore/rendering/RenderView.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
M Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/ModelElementController.h
M Source/WebKit/WebProcess/GPU/graphics/RemoteSnapshotRecorderProxy.h
M
Source/WebKit/WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm
M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginBase.mm
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm
M
Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFDataDetectorOverlayController.h
M
Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/PDFPresentationController.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.h
M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/UnifiedPDFPlugin.mm
M
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemoteProperties.h
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h
M Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h
Log Message:
-----------
[Build Speed] Make GraphicsLayer.h less expensive
rdar://161829723
https://bugs.webkit.org/show_bug.cgi?id=300033
Reviewed by Ryosuke Niwa.
Prior to this patch, GraphicsLayer.h was the 3rd most expensive header used in
WebCore; it is included 268 times in a WebCore Unified build, and on this
machine, each include of that file took the compiler on avegare 1.3s to parse,
for a total of 5.9m CPU minutes of time spent parsing this header.
The primary cause of GraphicsLayer.h being included in a compliation unit was
that it was included by GraphicsLayerContentsDisplayDelegate.h, which only
needed a forward declaration of an enum defined within the GraphicsLayer class
itself. This enum–along with every other enum defined within GraphicsLayer–was
moved into a new GraphicsLayerEnums.h header, and those enums were pulled back
into GraphicsLayer via a using statement. I then looked at every header which
included GraphicsLayer.h and: converted every use of GraphicsLayer enums to use
the new enums defined in GraphicsLayerEnums.h, added a forward declaration for
GraphicsLayer, and removed the GraphicsLayer.h header where possible.
After this patch, GraphicsLayer.h is now the 67th most expensive header used in
WebCore; it is included 37 times, for a total of 49s CPU seconds of time spent
parsing this header, a reduction of 5.1m.
Canonical link: https://commits.webkit.org/301010@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