Skip to content

Assert Lockdown Mode flag has been set before queried#32441

Merged
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
pvollan:eng/Assert-Lockdown-Mode-flag-has-been-set-before-queried
Aug 21, 2024
Merged

Assert Lockdown Mode flag has been set before queried#32441
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
pvollan:eng/Assert-Lockdown-Mode-flag-has-been-set-before-queried

Conversation

@pvollan
Copy link
Contributor

@pvollan pvollan commented Aug 20, 2024

3357b1f

Assert Lockdown Mode flag has been set before queried
https://bugs.webkit.org/show_bug.cgi?id=278128
rdar://133884110

Reviewed by Chris Dumez.

Assert that Lockdown Mode flag has been set before queried in the WebContent process. This patch also
initializes the Lockdown Mode flag in WebProcess earlier by using the value from the XPC initialization
message, which is sent in the XPC extra initialization data. This patch also asserts that JSC options
are set before JSC::initialize() is called. Setting JSC options after this call can lead to crashes.

* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):
(WebKit::setJSCOptions):
* Source/WebKit/Shared/WebProcessCreationParameters.h:
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
* Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::finishLaunchingProcess):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
(WebKit::WebProcess::initializeWebProcess):
* Source/WebKit/WebProcess/WebProcess.h:
(WebKit::WebProcess::isLockdownModeEnabled const):

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

47ecfdd

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows
✅ 🧪 style ✅ 🛠 ios ✅ 🛠 mac ✅ 🛠 wpe ✅ 🛠 wincairo
✅ 🛠 ios-sim ✅ 🛠 mac-AS-debug ✅ 🧪 wpe-wk2 ✅ 🧪 wincairo-tests
✅ 🧪 webkitperl ✅ 🧪 ios-wk2 ✅ 🧪 api-mac ✅ 🧪 api-wpe
✅ 🧪 ios-wk2-wpt ✅ 🛠 wpe-cairo
✅ 🧪 api-ios ✅ 🧪 mac-wk2 ✅ 🛠 gtk
✅ 🛠 vision ✅ 🧪 mac-AS-debug-wk2 ✅ 🧪 gtk-wk2
✅ 🛠 vision-sim ✅ 🧪 mac-wk2-stress ✅ 🧪 api-gtk
✅ 🧪 vision-wk2
✅ 🛠 🧪 unsafe-merge ✅ 🛠 tv
✅ 🛠 tv-sim
✅ 🛠 watch
✅ 🛠 watch-sim

@pvollan pvollan force-pushed the eng/Assert-Lockdown-Mode-flag-has-been-set-before-queried branch from 28654e3 to 47ecfdd Compare August 20, 2024 04:01
@pvollan pvollan requested a review from cdumez as a code owner August 20, 2024 04:01
@pvollan pvollan self-assigned this Aug 20, 2024
@pvollan pvollan added the WebKit Process Model Bugs related to WebKit's multi-process architecture label Aug 20, 2024
@pvollan pvollan requested a review from MenloDorian August 20, 2024 04:02
@pvollan
Copy link
Contributor Author

pvollan commented Aug 20, 2024

Thanks for reviewing!

@pvollan pvollan added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Aug 21, 2024
https://bugs.webkit.org/show_bug.cgi?id=278128
rdar://133884110

Reviewed by Chris Dumez.

Assert that Lockdown Mode flag has been set before queried in the WebContent process. This patch also
initializes the Lockdown Mode flag in WebProcess earlier by using the value from the XPC initialization
message, which is sent in the XPC extra initialization data. This patch also asserts that JSC options
are set before JSC::initialize() is called. Setting JSC options after this call can lead to crashes.

* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):
(WebKit::setJSCOptions):
* Source/WebKit/Shared/WebProcessCreationParameters.h:
* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
* Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::finishLaunchingProcess):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
(WebKit::WebProcess::initializeWebProcess):
* Source/WebKit/WebProcess/WebProcess.h:
(WebKit::WebProcess::isLockdownModeEnabled const):

Canonical link: https://commits.webkit.org/282562@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Assert-Lockdown-Mode-flag-has-been-set-before-queried branch from 47ecfdd to 3357b1f Compare August 21, 2024 16:36
@webkit-commit-queue
Copy link
Collaborator

Committed 282562@main (3357b1f): https://commits.webkit.org/282562@main

Reviewed commits have been landed. Closing PR #32441 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 3357b1f into WebKit:main Aug 21, 2024
@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

WebKit Process Model Bugs related to WebKit's multi-process architecture

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments