Title: [294428] trunk/Source/WebKit/UIProcess
- Revision
- 294428
- Author
- pvol...@apple.com
- Date
- 2022-05-18 13:39:03 -0700 (Wed, 18 May 2022)
Log Message
Audit token for font sandbox extension is sometimes wrong
https://bugs.webkit.org/show_bug.cgi?id=240547
Reviewed by Chris Dumez.
Audit token for font sandbox extension is sometimes wrong. We must get the audit token from the correct WebProcessProxy.
(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry):
(WebKit::WebPageProxy::fontdMachExtensionHandle): Deleted.
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::fontdMachExtensionHandle):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.h:
Canonical link: https://commits.webkit.org/250710@main
Modified Paths
Diff
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (294427 => 294428)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2022-05-18 20:01:09 UTC (rev 294427)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2022-05-18 20:39:03 UTC (rev 294428)
@@ -859,17 +859,9 @@
void WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry()
{
- process().send(Messages::WebProcess::SwitchFromStaticFontRegistryToUserFontRegistry(fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions::EnableMachBootstrap)), 0);
+ process().send(Messages::WebProcess::SwitchFromStaticFontRegistryToUserFontRegistry(process().fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions::EnableMachBootstrap)), 0);
}
-SandboxExtension::Handle WebPageProxy::fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions machBootstrapOptions)
-{
- SandboxExtension::Handle fontMachExtensionHandle;
- if (auto handle = SandboxExtension::createHandleForMachLookup("com.apple.fonts"_s, process().auditToken(), machBootstrapOptions))
- fontMachExtensionHandle = WTFMove(*handle);
- return fontMachExtensionHandle;
-}
-
NSDictionary *WebPageProxy::contentsOfUserInterfaceItem(NSString *userInterfaceItem)
{
#if ENABLE(CONTEXT_MENUS)
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm (294427 => 294428)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2022-05-18 20:01:09 UTC (rev 294427)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2022-05-18 20:39:03 UTC (rev 294428)
@@ -333,4 +333,9 @@
return connection()->getAuditToken();
}
+SandboxExtension::Handle WebProcessProxy::fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions machBootstrapOptions) const
+{
+ return SandboxExtension::createHandleForMachLookup("com.apple.fonts"_s, auditToken(), machBootstrapOptions).value_or(SandboxExtension::Handle { });
}
+
+}
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (294427 => 294428)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2022-05-18 20:01:09 UTC (rev 294427)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2022-05-18 20:39:03 UTC (rev 294428)
@@ -8411,7 +8411,7 @@
#endif
#if HAVE(STATIC_FONT_REGISTRY)
if (preferences().shouldAllowUserInstalledFonts())
- parameters.fontMachExtensionHandle = fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions::DoNotEnableMachBootstrap);
+ parameters.fontMachExtensionHandle = process.fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions::DoNotEnableMachBootstrap);
#endif
#if HAVE(APP_ACCENT_COLORS)
parameters.accentColor = pageClient().accentColor();
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (294427 => 294428)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2022-05-18 20:01:09 UTC (rev 294427)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2022-05-18 20:39:03 UTC (rev 294428)
@@ -2656,8 +2656,6 @@
static Vector<SandboxExtension::Handle> createNetworkExtensionsSandboxExtensions(WebProcessProxy&);
#endif
- SandboxExtension::Handle fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions);
-
void didUpdateEditorState(const EditorState& oldEditorState, const EditorState& newEditorState);
void runModalJavaScriptDialog(RefPtr<WebFrameProxy>&&, FrameInfoData&&, const String& message, CompletionHandler<void(WebPageProxy&, WebFrameProxy*, FrameInfoData&&, const String&, CompletionHandler<void()>&&)>&&);
Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (294427 => 294428)
--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h 2022-05-18 20:01:09 UTC (rev 294427)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h 2022-05-18 20:39:03 UTC (rev 294428)
@@ -435,6 +435,7 @@
#if PLATFORM(COCOA)
std::optional<audit_token_t> auditToken() const;
+ SandboxExtension::Handle fontdMachExtensionHandle(SandboxExtension::MachBootstrapOptions) const;
#endif
protected:
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes