Title: [275367] trunk/Source/WebKit
- Revision
- 275367
- Author
- pvol...@apple.com
- Date
- 2021-04-01 10:38:27 -0700 (Thu, 01 Apr 2021)
Log Message
[GPU process] Enable CFPrefs direct mode
https://bugs.webkit.org/show_bug.cgi?id=223817
<rdar://74748933>
Reviewed by Brent Fulgham.
Enable CFPrefs direct mode in the GPU process.
* GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
* Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
* Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::shouldEnableCFPrefsDirectMode):
(WebKit::XPCServiceMain):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (275366 => 275367)
--- trunk/Source/WebKit/ChangeLog 2021-04-01 17:25:35 UTC (rev 275366)
+++ trunk/Source/WebKit/ChangeLog 2021-04-01 17:38:27 UTC (rev 275367)
@@ -1,3 +1,19 @@
+2021-04-01 Per Arne <pvol...@apple.com>
+
+ [GPU process] Enable CFPrefs direct mode
+ https://bugs.webkit.org/show_bug.cgi?id=223817
+ <rdar://74748933>
+
+ Reviewed by Brent Fulgham.
+
+ Enable CFPrefs direct mode in the GPU process.
+
+ * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
+ * Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
+ * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+ (WebKit::shouldEnableCFPrefsDirectMode):
+ (WebKit::XPCServiceMain):
+
2021-04-01 Alex Christensen <achristen...@webkit.org>
Use sendWithAsyncReply for NetworkProcess messages with async replies
Modified: trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in (275366 => 275367)
--- trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in 2021-04-01 17:25:35 UTC (rev 275366)
+++ trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in 2021-04-01 17:38:27 UTC (rev 275367)
@@ -575,6 +575,42 @@
"pbs" ;; Needed for NSAttributedString <rdar://problem/10844321>
))
+#if ENABLE(CFPREFS_DIRECT_MODE)
+(allow file-read*
+ (literal "/Library/Preferences/.GlobalPreferences.plist")
+ (home-subpath "/Library/Preferences/.GlobalPreferences.plist")
+ (home-subpath "/Library/Preferences/.GlobalPreferences_m.plist")
+ (home-subpath "/Library/Preferences/com.apple.security.plist")
+ (home-subpath "/Library/Preferences/com.apple.Accessibility.plist")
+ (home-subpath "/Library/Preferences/com.apple.ATS.plist")
+ (home-subpath "/Library/Preferences/com.apple.CoreGraphics.plist")
+ (home-subpath "/Library/Preferences/com.apple.DownloadAssessment.plist")
+ (home-subpath "/Library/Preferences/com.apple.HIToolbox.plist")
+ (home-subpath "/Library/Preferences/com.apple.LaunchServices.plist")
+ (home-subpath "/Library/Preferences/com.apple.MultitouchSupport.plist")
+ (home-subpath "/Library/Preferences/com.apple.ServicesMenu.Services.plist")
+ (home-subpath "/Library/Preferences/com.apple.ViewBridge.plist")
+ (home-subpath "/Library/Preferences/com.apple.WebKit.plist")
+ (home-subpath "/Library/Preferences/com.apple.WebFoundation.plist")
+ (home-subpath "/Library/Preferences/com.apple.avfoundation.plist")
+ (home-subpath "/Library/Preferences/com.apple.avfoundation.frecents.plist")
+ (home-subpath "/Library/Preferences/com.apple.avfoundation.videoperformancehud.plist")
+ (home-subpath "/Library/Preferences/com.apple.coremedia.plist")
+ (home-subpath "/Library/Preferences/com.apple.crypto.plist")
+ (home-subpath "/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.mouse.plist")
+ (home-subpath "/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.trackpad.plist")
+ (home-subpath "/Library/Preferences/com.apple.driver.AppleHIDMouse.plist")
+ (home-subpath "/Library/Preferences/com.apple.lookup.shared.plist")
+ (home-subpath "/Library/Preferences/com.apple.mediaaccessibility.plist")
+ (home-subpath "/Library/Preferences/com.apple.networkConnect.plist")
+ (home-subpath "/Library/Preferences/com.apple.speech.voice.prefs.plist")
+ (home-subpath "/Library/Preferences/com.apple.systemsound.plist")
+ (home-subpath "/Library/Preferences/com.apple.universalaccess.plist")
+ (home-subpath "/Library/Preferences/edu.mit.Kerberos.plist")
+ (home-subpath "/Library/Preferences/pbs.plist")
+)
+#endif
+
; (Temporary) backward compatibility with non-CFPreferences readers.
(allow file-read*
(literal "/Library/Preferences/com.apple.ViewBridge.plist"))
@@ -646,7 +682,9 @@
#endif
(global-name "com.apple.audio.AudioComponentRegistrar")
(global-name "com.apple.awdd")
+#if !ENABLE(CFPREFS_DIRECT_MODE)
(global-name "com.apple.cfprefsd.agent")
+#endif
(global-name "com.apple.cookied")
(global-name "com.apple.iconservices")
(global-name "com.apple.iconservices.store")
@@ -670,7 +708,9 @@
(global-name "com.apple.audio.toolbox.reporting.service")
(global-name "com.apple.audio.SystemSoundServer-OSX")
(global-name "com.apple.audio.audiohald")
+#if !ENABLE(CFPREFS_DIRECT_MODE)
(global-name "com.apple.cfprefsd.daemon")
+#endif
(global-name "com.apple.coreservices.launchservicesd")
(global-name "com.apple.fonts")
(global-name "com.apple.mediaremoted.xpc")
Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb (275366 => 275367)
--- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb 2021-04-01 17:25:35 UTC (rev 275366)
+++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb 2021-04-01 17:38:27 UTC (rev 275367)
@@ -568,7 +568,7 @@
(global-name "com.apple.logd.events")
(global-name "com.apple.distributed_notifications@1v3")
(global-name "com.apple.aggregated")
- (global-name "com.apple.cfprefsd.daemon"))
+)
(allow mach-lookup (with report) (with telemetry)
(global-name "com.apple.tccd"))
@@ -758,6 +758,52 @@
;;; End UIKit-apps.sb content
;;;
+;; In CFPrefs direct mode, access to preference files is required.
+(allow file-read*
+ (home-literal
+ "/Library/Preferences/com.apple.Accessibility.plist"
+ "/Library/Preferences/com.apple.AdLib.plist"
+ "/Library/Preferences/com.apple.EmojiPreferences.plist"
+ "/Library/Preferences/com.apple.InputModePreferences.plist"
+ "/Library/Preferences/com.apple.LaunchServices.plist"
+ "/Library/Preferences/com.apple.Metal.plist"
+ "/Library/Preferences/com.apple.MobileAsset.plist"
+ "/Library/Preferences/com.apple.Preferences.plist"
+ "/Library/Preferences/com.apple.PrototypeTools.plist"
+ "/Library/Preferences/com.apple.SpeakSelection.plist"
+ "/Library/Preferences/com.apple.UIKit.plist"
+ "/Library/Preferences/com.apple.VoiceOverTouch.plist"
+ "/Library/Preferences/com.apple.WebFoundation.plist"
+ "/Library/Preferences/com.apple.WebUI.plist"
+ "/Library/Preferences/com.apple.airplay.plist"
+ "/Library/Preferences/com.apple.audio.virtualaudio.plist"
+ "/Library/Preferences/com.apple.avfoundation.plist"
+ "/Library/Preferences/com.apple.avfoundation.frecents.plist"
+ "/Library/Preferences/com.apple.avfoundation.videoperformancehud.plist"
+ "/Library/Preferences/com.apple.avkit.plist"
+ "/Library/Preferences/com.apple.coreanimation.plist"
+ "/Library/Preferences/com.apple.coreaudio.plist"
+ "/Library/Preferences/com.apple.coremedia.plist"
+ "/Library/Preferences/com.apple.corevideo.plist"
+ "/Library/Preferences/com.apple.da.plist"
+ "/Library/Preferences/com.apple.keyboard.plist"
+ "/Library/Preferences/com.apple.lookup.shared.plist"
+ "/Library/Preferences/com.apple.mediaaccessibility.plist"
+ "/Library/Preferences/com.apple.mediaaccessibility.public.plist"
+ "/Library/Preferences/com.apple.mediaremote.plist"
+ "/Library/Preferences/com.apple.mobileipod.plist"
+ "/Library/Preferences/com.apple.mt.plist"
+ "/Library/Preferences/com.apple.hangtracer.plist"
+ "/Library/Preferences/com.apple.iokit.IOMobileGraphicsFamily.plist"
+ "/Library/Preferences/com.apple.itunesstored.plist"
+ "/Library/Preferences/com.apple.opengl.plist"
+ "/Library/Preferences/com.apple.preferences.sounds.plist"
+ "/Library/Preferences/com.apple.security.plist"
+ "/Library/Preferences/com.apple.voiceservices.plist"
+ "/Library/Preferences/com.apple.voiceservices.logging.plist"
+ )
+)
+
(deny sysctl*)
(allow sysctl-read
(sysctl-name
Modified: trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm (275366 => 275367)
--- trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2021-04-01 17:25:35 UTC (rev 275366)
+++ trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2021-04-01 17:38:27 UTC (rev 275367)
@@ -148,12 +148,25 @@
#endif // PLATFORM(MAC)
+#if ENABLE(CFPREFS_DIRECT_MODE)
+static bool shouldEnableCFPrefsDirectMode(int argc, const char** argv)
+{
+ if (argc <= 0 || !argv[0])
+ return false;
+ if (strstr(argv[0], "com.apple.WebKit.WebContent"))
+ return true;
+ if (strstr(argv[0], "com.apple.WebKit.GPU"))
+ return true;
+ return false;
+}
+#endif
+
int XPCServiceMain(int argc, const char** argv)
{
ASSERT(argc >= 1);
ASSERT(argv[0]);
#if ENABLE(CFPREFS_DIRECT_MODE)
- if (argc >= 1 && argv[0] && strstr(argv[0], "com.apple.WebKit.WebContent")) {
+ if (shouldEnableCFPrefsDirectMode(argc, argv)) {
// Enable CFPrefs direct mode to avoid unsuccessfully attempting to connect to the daemon and getting blocked by the sandbox.
_CFPrefsSetDirectModeEnabled(YES);
#if HAVE(CF_PREFS_SET_READ_ONLY)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes