[webkit-changes] [WebKit/WebKit] d59dce: Reduce some costly includes from WebPage.h

Commit Queue noreply at github.com
Wed Mar 15 13:39:56 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d59dce7984adc9a703e58dc2ed19999ff89a2a21
      https://github.com/WebKit/WebKit/commit/d59dce7984adc9a703e58dc2ed19999ff89a2a21
  Author: Brent Fulgham <bfulgham at webkit.org>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm
    M Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp
    M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
    M Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
    M Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp
    M Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp
    M Source/WebKit/WebProcess/WebPage/DrawingArea.h
    M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp
    M Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    A Source/WebKit/WebProcess/WebPage/WebPageInlines.h
    M Source/WebKit/WebProcess/WebPage/mac/PageBannerMac.mm
    M Source/WebKit/WebProcess/WebPage/mac/RemoteLayerTreeDrawingAreaMac.mm
    M Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
    M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp
    M Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp
    M Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp

  Log Message:
  -----------
  Reduce some costly includes from WebPage.h
https://bugs.webkit.org/show_bug.cgi?id=253837
<rdar://problem/106655602>

Reviewed by Ryosuke Niwa.

Benchmarking shows that WebPage.h is very costly to parse due to a few heavyweight includes.
We can improve build time by using more specific includes where appropriate, and forward
declare classes when possible.

Before change:
  Compilation (10204 times):
  Parsing (frontend): 9250.1 s
  Codegen & opts (backend): 3311.8 s

After change:
  Compilation (10196 times):
  Parsing (frontend): 9047.9 s
  Codegen & opts (backend): 3239.5 s

* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm:
* Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:
* Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:
* Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
* Source/WebKit/WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
* Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:
* Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp:
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
* Source/WebKit/WebProcess/WebPage/DrawingArea.h:
* Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp:
* Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::sessionStorageNamespaceIdentifier const): Deleted.
(WebKit::WebPage::bounds const): Deleted.
(WebKit::WebPage::setHiddenPageDOMTimerThrottlingIncreaseLimit): Deleted.
(WebKit::WebPage::isVisible const): Deleted.
(WebKit::WebPage::isVisibleOrOccluded const): Deleted.
(WebKit::WebPage::userContentControllerIdentifier const): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPageInlines.h: Added.
(WebKit::WebPage::bounds const):
(WebKit::WebPage::sessionStorageNamespaceIdentifier const):
(WebKit::WebPage::setHiddenPageDOMTimerThrottlingIncreaseLimit):
(WebKit::WebPage::isVisible const):
(WebKit::WebPage::isVisibleOrOccluded const):
(WebKit::WebPage::userContentControllerIdentifier const):
* Source/WebKit/WebProcess/WebPage/mac/PageBannerMac.mm:
* Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
* Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp:
* Source/WebKit/WebProcess/WebProcess.cpp:
* Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:
* Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp:
* Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:

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




More information about the webkit-changes mailing list