Diff
Modified: branches/safari-610.1.5-branch/Source/WTF/ChangeLog (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WTF/ChangeLog 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WTF/ChangeLog 2020-03-04 23:19:33 UTC (rev 257884)
@@ -1,3 +1,47 @@
+2020-03-04 Kocsen Chung <kocsen_ch...@apple.com>
+
+ Cherry-pick r257875. rdar://problem/60055569
+
+ [Cocoa] Add enable flag to disable direct mode for preferences
+ https://bugs.webkit.org/show_bug.cgi?id=208588
+
+ Reviewed by Brent Fulgham.
+
+ Source/WebKit:
+
+ Add an enable flag for this feature so it can be toggled, and turn it off.
+
+ No new tests, since this patch is reverting to previous behavior covered by existing tests.
+
+ * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+ * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+ (WebKit::XPCServiceMain):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode const):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
+ (WebKit::WebProcessPool::platformInitializeWebProcess):
+ * WebProcess/cocoa/WebProcessCocoa.mm:
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+ Source/WTF:
+
+ * wtf/PlatformEnable.h:
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2020-03-04 Per Arne Vollan <pvol...@apple.com>
+
+ [Cocoa] Add enable flag to disable direct mode for preferences
+ https://bugs.webkit.org/show_bug.cgi?id=208588
+
+ Reviewed by Brent Fulgham.
+
+ * wtf/PlatformEnable.h:
+
2020-02-26 Alan Coon <alanc...@apple.com>
Revert r256784. rdar://problem/59818035
Modified: branches/safari-610.1.5-branch/Source/WTF/wtf/PlatformEnable.h (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WTF/wtf/PlatformEnable.h 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WTF/wtf/PlatformEnable.h 2020-03-04 23:19:33 UTC (rev 257884)
@@ -859,3 +859,5 @@
#if ENABLE(WEBGL2) && !ENABLE(WEBGL)
#error "ENABLE(WEBGL2) requires ENABLE(WEBGL)"
#endif
+
+#define ENABLE_CFPREFS_DIRECT_MODE 0
Modified: branches/safari-610.1.5-branch/Source/WebKit/ChangeLog (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/ChangeLog 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/ChangeLog 2020-03-04 23:19:33 UTC (rev 257884)
@@ -1,5 +1,65 @@
2020-03-04 Kocsen Chung <kocsen_ch...@apple.com>
+ Cherry-pick r257875. rdar://problem/60055569
+
+ [Cocoa] Add enable flag to disable direct mode for preferences
+ https://bugs.webkit.org/show_bug.cgi?id=208588
+
+ Reviewed by Brent Fulgham.
+
+ Source/WebKit:
+
+ Add an enable flag for this feature so it can be toggled, and turn it off.
+
+ No new tests, since this patch is reverting to previous behavior covered by existing tests.
+
+ * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+ * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+ (WebKit::XPCServiceMain):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode const):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
+ (WebKit::WebProcessPool::platformInitializeWebProcess):
+ * WebProcess/cocoa/WebProcessCocoa.mm:
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+ Source/WTF:
+
+ * wtf/PlatformEnable.h:
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2020-03-04 Per Arne Vollan <pvol...@apple.com>
+
+ [Cocoa] Add enable flag to disable direct mode for preferences
+ https://bugs.webkit.org/show_bug.cgi?id=208588
+
+ Reviewed by Brent Fulgham.
+
+ Add an enable flag for this feature so it can be toggled, and turn it off.
+
+ No new tests, since this patch is reverting to previous behavior covered by existing tests.
+
+ * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+ * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+ (WebKit::XPCServiceMain):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode const):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
+ (WebKit::WebProcessPool::platformInitializeWebProcess):
+ * WebProcess/cocoa/WebProcessCocoa.mm:
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2020-03-04 Kocsen Chung <kocsen_ch...@apple.com>
+
Cherry-pick r257879. rdar://problem/60055569
Partially revert r256756, since it introduced bugs related to Accessibility.
Modified: branches/safari-610.1.5-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2020-03-04 23:19:33 UTC (rev 257884)
@@ -848,7 +848,7 @@
(allow mach-lookup
(require-all
(extension "com.apple.webkit.extension.mach")
- (global-name "com.apple.iphone.axserver-systemwide" "com.apple.tccd" "com.apple.nehelper" "com.apple.nesessionmanager.content-filter" "com.apple.uikit.viewservice.com.apple.WebContentFilter.remoteUI" "com.apple.diagnosticd" "com.apple.lsd.open" "com.apple.mobileassetd" "com.apple.mobileassetd.v2" "com.apple.frontboard.systemappservices" "com.apple.iconservices" "com.apple.webinspector"
+ (global-name "com.apple.iphone.axserver-systemwide" "com.apple.tccd" "com.apple.nehelper" "com.apple.nesessionmanager.content-filter" "com.apple.uikit.viewservice.com.apple.WebContentFilter.remoteUI" "com.apple.diagnosticd" "com.apple.lsd.open" "com.apple.mobileassetd" "com.apple.mobileassetd.v2" "com.apple.frontboard.systemappservices" "com.apple.iconservices" "com.apple.webinspector" "com.apple.cfprefsd.daemon"
;;; FIXME(207716): The following should be removed when the GPU process is complete
"com.apple.airplay.apsynccontroller.xpc" "com.apple.audio.AURemoteIOServer" "com.apple.audio.AudioComponentRegistrar"
Modified: branches/safari-610.1.5-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2020-03-04 23:19:33 UTC (rev 257884)
@@ -117,8 +117,10 @@
});
#endif
+#if ENABLE(CFPREFS_DIRECT_MODE)
// Enable CF prefs direct mode to avoid connecting to the CF prefs daemon.
_CFPrefsSetDirectModeEnabled(YES);
+#endif
if (bootstrap) {
#if PLATFORM(MAC)
Modified: branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2020-03-04 23:19:33 UTC (rev 257884)
@@ -181,7 +181,10 @@
#if PLATFORM(COCOA)
// FIXME(207716): The following should be removed when the GPU process is complete.
encoder << mediaExtensionHandles;
+#if !ENABLE(CFPREFS_DIRECT_MODE)
+ encoder << preferencesExtensionHandle;
#endif
+#endif
}
bool WebProcessCreationParameters::decode(IPC::Decoder& decoder, WebProcessCreationParameters& parameters)
@@ -488,7 +491,15 @@
return false;
parameters.mediaExtensionHandles = WTFMove(*mediaExtensionHandles);
// FIXME(207716): End region to remove.
+
+#if !ENABLE(CFPREFS_DIRECT_MODE)
+ Optional<Optional<SandboxExtension::Handle>> preferencesExtensionHandle;
+ decoder >> preferencesExtensionHandle;
+ if (!preferencesExtensionHandle)
+ return false;
+ parameters.preferencesExtensionHandle = WTFMove(*preferencesExtensionHandle);
#endif
+#endif
return true;
}
Modified: branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.h (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.h 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/Shared/WebProcessCreationParameters.h 2020-03-04 23:19:33 UTC (rev 257884)
@@ -222,7 +222,10 @@
#if PLATFORM(COCOA)
SandboxExtension::HandleArray mediaExtensionHandles; // FIXME(207716): Remove when GPU process is complete.
+#if !ENABLE(CFPREFS_DIRECT_MODE)
+ Optional<SandboxExtension::Handle> preferencesExtensionHandle;
#endif
+#endif
};
} // namespace WebKit
Modified: branches/safari-610.1.5-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2020-03-04 23:19:33 UTC (rev 257884)
@@ -197,8 +197,10 @@
m_resolvedPaths.containerTemporaryDirectory = resolveAndCreateReadWriteDirectoryForSandboxExtension(WebProcessPool::containerTemporaryDirectory());
#endif
+#if ENABLE(CFPREFS_DIRECT_MODE)
// Start observing preference changes.
[WKPreferenceObserver sharedInstance];
+#endif
}
#if PLATFORM(IOS)
@@ -426,6 +428,11 @@
for (size_t i = 0, size = services.size(); i < size; ++i)
SandboxExtension::createHandleForMachLookup(services[i], WTF::nullopt, parameters.mediaExtensionHandles[i]);
}
+#if !ENABLE(CFPREFS_DIRECT_MODE)
+ SandboxExtension::Handle preferencesExtensionHandle;
+ SandboxExtension::createHandleForMachLookup("com.apple.cfprefsd.daemon", WTF::nullopt, preferencesExtensionHandle);
+ parameters.preferencesExtensionHandle = WTFMove(preferencesExtensionHandle);
+#endif
}
void WebProcessPool::platformInitializeNetworkProcess(NetworkProcessCreationParameters& parameters)
Modified: branches/safari-610.1.5-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm 2020-03-04 23:19:33 UTC (rev 257884)
@@ -283,7 +283,12 @@
// FIXME(207716): The following should be removed when the GPU process is complete.
for (size_t i = 0, size = parameters.mediaExtensionHandles.size(); i < size; ++i)
SandboxExtension::consumePermanently(parameters.mediaExtensionHandles[i]);
+
+#if !ENABLE(CFPREFS_DIRECT_MODE)
+ if (parameters.preferencesExtensionHandle)
+ SandboxExtension::consumePermanently(*parameters.preferencesExtensionHandle);
#endif
+#endif
}
void WebProcess::platformSetWebsiteDataStoreParameters(WebProcessDataStoreParameters&& parameters)
Modified: branches/safari-610.1.5-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (257883 => 257884)
--- branches/safari-610.1.5-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in 2020-03-04 23:19:28 UTC (rev 257883)
+++ branches/safari-610.1.5-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in 2020-03-04 23:19:33 UTC (rev 257884)
@@ -846,6 +846,7 @@
"com.apple.nesessionmanager"
#endif
"com.apple.webinspector"
+ "com.apple.cfprefsd.daemon"
;;; FIXME(207716): The following should be removed when the GPU process is complete
"com.apple.audio.AudioComponentRegistrar" "com.apple.coremedia.endpoint.xpc" "com.apple.coremedia.endpointstream.xpc"