Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9238babac42c5678ef3b4d8789b729316a9a18ae
      
https://github.com/WebKit/WebKit/commit/9238babac42c5678ef3b4d8789b729316a9a18ae
  Author: Geoffrey Garen <[email protected]>
  Date:   2026-06-03 (Wed, 03 Jun 2026)

  Changed paths:
    M Source/JavaScriptCore/dfg/DFGOperations.cpp
    M Source/JavaScriptCore/heap/BlockDirectory.h
    M Source/JavaScriptCore/heap/BlockDirectoryInlines.h
    M Source/JavaScriptCore/heap/CellContainerInlines.h
    M Source/JavaScriptCore/heap/IncrementalSweeper.cpp
    M Source/JavaScriptCore/heap/MarkedBlock.cpp
    M Source/JavaScriptCore/heap/MarkedBlock.h
    M Source/JavaScriptCore/heap/MarkedBlockInlines.h
    M Source/JavaScriptCore/heap/MarkedSpace.cpp
    M Source/JavaScriptCore/heap/PreciseAllocation.cpp
    M Source/JavaScriptCore/heap/SlotVisitor.cpp
    M Source/JavaScriptCore/heap/WeakSet.cpp
    M Source/JavaScriptCore/heap/WeakSet.h
    M Source/JavaScriptCore/heap/WeakSetInlines.h
    M Source/JavaScriptCore/runtime/CommonSlowPaths.cpp
    M Source/JavaScriptCore/runtime/IndexingType.h
    M Source/JavaScriptCore/runtime/JSDateMath.cpp
    M Source/JavaScriptCore/runtime/JSDateMath.h
    M Source/JavaScriptCore/runtime/JSLock.cpp
    M Source/JavaScriptCore/runtime/JSPromise.cpp
    M Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp
    M Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h
    M Source/JavaScriptCore/runtime/JSPropertyNameEnumeratorInlines.h
    M Source/JavaScriptCore/runtime/NumericStrings.h
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/JavaScriptCore/runtime/VM.h
    M Source/JavaScriptCore/runtime/VMInlines.h
    M Source/JavaScriptCore/runtime/VMTraps.h
    M Source/JavaScriptCore/runtime/VMTrapsInlines.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/WebCoreDOMAndRenderingPrefix.h
    M Source/WebCore/WebCoreJSBindingsPrefix.h
    M Source/WebCore/WebCorePrefix.h
    M Source/WebCore/WebCoreRenderStyleInlinesPrefix.h
    A Source/WebCore/WebCoreStylePrefix.h
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp
    M Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h
    M Source/WebKit/Scripts/generate-message-receiver.py
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp
    M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
    M Source/WebKit/UIProcess/Inspector/WebInspectorBackendProxy.cpp
    M Source/WebKit/UIProcess/Inspector/WebInspectorBackendProxy.h
    M Source/WebKit/UIProcess/ProcessActivityGroup.cpp
    M Source/WebKit/UIProcess/ProcessActivityGroup.h
    M Source/WebKit/UIProcess/SpeechRecognitionServer.cpp
    M Source/WebKit/UIProcess/SpeechRecognitionServer.h
    A Source/WebKit/WebKitGPUProcessPrefix.h
    R Source/WebKit/WebKitMessageReceiversPrefix.h
    A Source/WebKit/WebKitNetworkProcessPrefix.h
    M Source/WebKit/WebKitPrefix.h
    A Source/WebKit/WebKitSharedPrefix.h
    M Source/WebKit/WebKitUIProcessPrefix.h
    M Source/WebKit/WebKitWebProcessPrefix.h
    M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h
    M Source/cmake/WebKitMacros.cmake
    M Tools/Scripts/webkitpy/style/checkers/cpp.py

  Log Message:
  -----------
  [CMake] Tune prefix headers
https://bugs.webkit.org/show_bug.cgi?id=316104
rdar://177465799

Reviewed by Keith Miller.

This is a step toward jumbo unified builds.

For some bundles, first-touch (cold) incremental build is uniquely slow. Tuning
prefix headers helps.

* Source/JavaScriptCore/dfg/DFGOperations.cpp:
* Source/JavaScriptCore/heap/BlockDirectory.h:
(JSC::BlockDirectory::findBlockToSweep): Deleted.
* Source/JavaScriptCore/heap/BlockDirectoryInlines.h:
(JSC::BlockDirectory::findBlockToSweep):
* Source/JavaScriptCore/heap/CellContainerInlines.h: Include 
MarkedBlockInlines.h
now that MarkedBlock::noteMarked() lives there.

* Source/JavaScriptCore/heap/IncrementalSweeper.cpp:
* Source/JavaScriptCore/heap/MarkedBlock.cpp:
* Source/JavaScriptCore/heap/MarkedBlock.h:
(JSC::MarkedBlock::Handle::shrink): Deleted.
(JSC::MarkedBlock::Handle::markCount): Deleted.
(JSC::MarkedBlock::Handle::size): Deleted.
(JSC::MarkedBlock::noteMarked): Deleted.
* Source/JavaScriptCore/heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::Handle::shrink):
(JSC::MarkedBlock::Handle::markCount):
(JSC::MarkedBlock::Handle::size):
(JSC::MarkedBlock::noteMarked):
* Source/JavaScriptCore/heap/MarkedSpace.cpp:
* Source/JavaScriptCore/heap/PreciseAllocation.cpp:
* Source/JavaScriptCore/heap/SlotVisitor.cpp:
* Source/JavaScriptCore/heap/WeakSet.cpp:
(JSC::WeakSet::lastChanceToFinalize):
* Source/JavaScriptCore/heap/WeakSet.h:
(JSC::WeakSet::lastChanceToFinalize): Deleted.
(JSC::WeakSet::reap): Deleted.
* Source/JavaScriptCore/heap/WeakSetInlines.h:
(JSC::WeakSet::reap):
* Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:
* Source/JavaScriptCore/runtime/IndexingType.h:
* Source/JavaScriptCore/runtime/JSDateMath.cpp:
(JSC::DateCache::timeZoneCache):
(JSC::DateCache::localTimeOffset):
* Source/JavaScriptCore/runtime/JSDateMath.h:
(JSC::DateCache::localTimeOffset): Deleted.
(JSC::DateCache::timeZoneCache): Deleted.
* Source/JavaScriptCore/runtime/JSLock.cpp:
* Source/JavaScriptCore/runtime/JSPromise.cpp:
* Source/JavaScriptCore/runtime/JSPromiseConstructor.cpp:
* Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator): Deleted.
* Source/JavaScriptCore/runtime/JSPropertyNameEnumeratorInlines.h: Move
propertyNameEnumerator() (calls VM::emptyPropertyNameEnumerator()) to 
*Inlines.h.

(JSC::propertyNameEnumerator):
* Source/JavaScriptCore/runtime/NumericStrings.h:
* Source/JavaScriptCore/runtime/VM.cpp:
* Source/JavaScriptCore/runtime/VM.h:
(JSC::VM::emptyPropertyNameEnumerator): Deleted.
(JSC::VM::promiseResolvingFunctionResolveExecutable): Deleted.
(JSC::VM::promiseResolvingFunctionRejectExecutable): Deleted.
(JSC::VM::promiseFirstResolvingFunctionResolveExecutable): Deleted.
(JSC::VM::promiseFirstResolvingFunctionRejectExecutable): Deleted.
(JSC::VM::promiseResolvingFunctionResolveWithInternalMicrotaskExecutable): 
Deleted.
(JSC::VM::promiseResolvingFunctionRejectWithInternalMicrotaskExecutable): 
Deleted.
(JSC::VM::promiseCapabilityExecutorExecutable): Deleted.
(JSC::VM::promiseAllFulfillFunctionExecutable): Deleted.
(JSC::VM::promiseAllSlowFulfillFunctionExecutable): Deleted.
(JSC::VM::promiseAllSettledFulfillFunctionExecutable): Deleted.
(JSC::VM::promiseAllSettledRejectFunctionExecutable): Deleted.
(JSC::VM::promiseAllSettledSlowFulfillFunctionExecutable): Deleted.
(JSC::VM::promiseAllSettledSlowRejectFunctionExecutable): Deleted.
(JSC::VM::promiseAnyRejectFunctionExecutable): Deleted.
(JSC::VM::promiseAnySlowRejectFunctionExecutable): Deleted.
* Source/JavaScriptCore/runtime/VMInlines.h:
(JSC::VM::emptyPropertyNameEnumerator):
* Source/JavaScriptCore/runtime/VMTraps.h:
(JSC::VMTraps::notifyGrabAllLocks): Deleted.
(JSC::VMTraps::setStackSoftLimit): Deleted.
(JSC::VMTraps::registerMirror): Deleted.
(JSC::VMTraps::unregisterMirror): Deleted.
(JSC::VMTraps::requestStop): Deleted.
(JSC::VMTraps::cancelStop): Deleted.
* Source/JavaScriptCore/runtime/VMTrapsInlines.h: Moved rarely used inline
functions into *Inlines.h. This helps prefix headers include type definitions
without requiring JSC to export lots of unnecessary functions.

Source/WebCore/CMakeLists.txt: New WebCoreStyle prefix / sub-target.

(JSC::VMTraps::notifyGrabAllLocks):
(JSC::VMTraps::setStackSoftLimit):
(JSC::VMTraps::registerMirror):
(JSC::VMTraps::unregisterMirror):
(JSC::VMTraps::requestStop):
(JSC::VMTraps::cancelStop):
* Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp: Include the
*Inlines.h that now defines a function each calls.
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/WebCoreDOMAndRenderingPrefix.h:
* Source/WebCore/WebCoreJSBindingsPrefix.h:
* Source/WebCore/WebCorePrefix.h:
* Source/WebCore/WebCoreRenderStyleInlinesPrefix.h:
* Source/WebCore/WebCoreStylePrefix.h: Copied from 
Source/WebCore/WebCoreRenderStyleInlinesPrefix.h.
* Source/WebKit/CMakeLists.txt: Separate MessageReceivers into per-topic
sub-directories for better header affinity.

New WebKitGPUProcess, WebKitNetworkProcess, WebKitShared prefixes / sub-targets.

* Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp
* Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.cpp:
* Source/WebKit/NetworkProcess/Notifications/WebPushDaemonConnection.h: 
Out-of-lined
some slow path constructors and destructors to work around a clang vtable bug
(rdar://176736350).

* Source/WebKit/Scripts/generate-message-receiver.py:
(main):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.cpp:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Inspector/WebInspectorBackendProxy.cpp:
* Source/WebKit/UIProcess/Inspector/WebInspectorBackendProxy.h:
* Source/WebKit/UIProcess/ProcessActivityGroup.cpp:
* Source/WebKit/UIProcess/ProcessActivityGroup.h:
(WebKit::ProcessActivityGroupContext::~ProcessActivityGroupContext): Deleted.
* Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:
* Source/WebKit/UIProcess/SpeechRecognitionServer.h:
* Source/WebKit/WebKitGPUProcessPrefix.h: Copied from 
Source/WebKit/WebKitMessageReceiversPrefix.h.
* Source/WebKit/WebKitNetworkProcessPrefix.h: Copied from 
Source/WebKit/WebKitMessageReceiversPrefix.h.
* Source/WebKit/WebKitPrefix.h:
* Source/WebKit/WebKitSharedPrefix.h: Renamed from 
Source/WebKit/WebKitMessageReceiversPrefix.h.
* Source/WebKit/WebKitUIProcessPrefix.h:
* Source/WebKit/WebKitWebProcessPrefix.h:
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h: Removed unused
data (since clang flags it now)

* Source/cmake/WebKitMacros.cmake: Added support for a unified source's 
Sources.txt
being a generated file. When we load a file from 
${_framework}_UNIFIED_SOURCE_LIST_FILES,
we first look in the static source tree, and then fall back to DerivedSources.

MessageReceivers uses this now.

Longer term, maybe we should make these path specifications absolute.

* Tools/Scripts/webkitpy/style/checkers/cpp.py: Exempt *Prefix.h from the
alphabetical / "mixing system and custom headers" include-order check. Prefix
headers have load-bearing include order (export macros must precede project
headers; chain-parent prefix must be first). *Prefix.h is already exempt from
the config.h-first check (line 1012) and the Inlines-in-header check (line 
4226).

(check_include_line):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to