Diff
Modified: trunk/Source/WTF/ChangeLog (258556 => 258557)
--- trunk/Source/WTF/ChangeLog 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WTF/ChangeLog 2020-03-17 16:59:32 UTC (rev 258557)
@@ -1,3 +1,16 @@
+2020-03-17 Per Arne Vollan <pvol...@apple.com>
+
+ [Cocoa] Disable CF prefs direct mode
+ https://bugs.webkit.org/show_bug.cgi?id=209166
+ <rdar://problem/60517387>
+
+ Reviewed by Brent Fulgham.
+
+ Revert <https://trac.webkit.org/changeset/258064> by disabling the CF prefs direct mode feature,
+ since it caused performance regressions.
+
+ * wtf/PlatformEnable.h:
+
2020-03-17 Philippe Normand <pnorm...@igalia.com>
RELEASE_LOG should not be Cocoa specific
Modified: trunk/Source/WTF/wtf/PlatformEnable.h (258556 => 258557)
--- trunk/Source/WTF/wtf/PlatformEnable.h 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WTF/wtf/PlatformEnable.h 2020-03-17 16:59:32 UTC (rev 258557)
@@ -871,4 +871,4 @@
#error "ENABLE(WEBGL2) requires ENABLE(WEBGL)"
#endif
-#define ENABLE_CFPREFS_DIRECT_MODE 1
+#define ENABLE_CFPREFS_DIRECT_MODE 0
Modified: trunk/Source/WebKit/ChangeLog (258556 => 258557)
--- trunk/Source/WebKit/ChangeLog 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/ChangeLog 2020-03-17 16:59:32 UTC (rev 258557)
@@ -1,3 +1,27 @@
+2020-03-17 Per Arne Vollan <pvol...@apple.com>
+
+ [Cocoa] Disable CF prefs direct mode
+ https://bugs.webkit.org/show_bug.cgi?id=209166
+ <rdar://problem/60517387>
+
+ Reviewed by Brent Fulgham.
+
+ Revert <https://trac.webkit.org/changeset/258064> by disabling the CF prefs direct mode feature,
+ since it caused performance regressions.
+
+ * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+ * Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
+ (WebKit::XPCServiceMain):
+ * UIProcess/Cocoa/PreferenceObserver.mm:
+ * UIProcess/Cocoa/WebPageProxyCocoa.mm:
+ (WebKit::WebPageProxy::grantAccessToPreferenceService):
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ * UIProcess/Cocoa/WebProcessProxyCocoa.mm:
+ * UIProcess/WebProcessPool.h:
+ * UIProcess/WebProcessProxy.h:
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.messages.in:
+
2020-03-17 Commit Queue <commit-qu...@webkit.org>
Unreviewed, reverting r258339.
Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb (258556 => 258557)
--- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb 2020-03-17 16:59:32 UTC (rev 258557)
@@ -536,6 +536,7 @@
(allow mach-lookup
(global-name "com.apple.logd")
(global-name "com.apple.logd.events")
+ (global-name "com.apple.cfprefsd.daemon")
)
(deny mach-lookup (with telemetry)
Modified: trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm (258556 => 258557)
--- trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm 2020-03-17 16:59:32 UTC (rev 258557)
@@ -114,6 +114,9 @@
// Enable CFPrefs direct mode to avoid unsuccessfully attempting to connect to the daemon and getting blocked by the sandbox.
_CFPrefsSetDirectModeEnabled(YES);
}
+#else
+ UNUSED_PARAM(argc);
+ UNUSED_PARAM(argv);
#endif
auto bootstrap = adoptOSObject(xpc_copy_bootstrap());
Modified: trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/Cocoa/PreferenceObserver.mm 2020-03-17 16:59:32 UTC (rev 258557)
@@ -220,10 +220,12 @@
- (void)preferenceDidChange:(NSString *)domain key:(NSString *)key encodedValue:(NSString *)encodedValue
{
+#if ENABLE(CFPREFS_DIRECT_MODE)
Optional<String> encodedString;
if (encodedValue)
encodedString = String(encodedValue);
for (auto* processPool : WebKit::WebProcessPool::allProcessPools())
processPool->notifyPreferencesChanged(domain, key, encodedString);
+#endif
}
@end
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm 2020-03-17 16:59:32 UTC (rev 258557)
@@ -352,7 +352,9 @@
void WebPageProxy::grantAccessToPreferenceService()
{
+#if ENABLE(CFPREFS_DIRECT_MODE)
process().unblockPreferenceServiceIfNeeded();
+#endif
}
} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2020-03-17 16:59:32 UTC (rev 258557)
@@ -851,10 +851,12 @@
return m_classesForParameterCoder.get();
}
+#if ENABLE(CFPREFS_DIRECT_MODE)
void WebProcessPool::notifyPreferencesChanged(const String& domain, const String& key, const Optional<String>& encodedValue)
{
for (auto process : m_processes)
process->send(Messages::WebProcess::NotifyPreferencesChanged(domain, key, encodedValue), 0);
}
+#endif
} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm 2020-03-17 16:59:32 UTC (rev 258557)
@@ -229,6 +229,7 @@
m_hasSentMessageToUnblockAccessibilityServer = true;
}
+#if ENABLE(CFPREFS_DIRECT_MODE)
void WebProcessProxy::unblockPreferenceServiceIfNeeded()
{
if (m_hasSentMessageToUnblockPreferenceService)
@@ -245,5 +246,6 @@
send(Messages::WebProcess::UnblockPreferenceService(handle), 0);
m_hasSentMessageToUnblockPreferenceService = true;
}
+#endif
}
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.h 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h 2020-03-17 16:59:32 UTC (rev 258557)
@@ -541,7 +541,7 @@
void setUseSeparateServiceWorkerProcess(bool);
bool useSeparateServiceWorkerProcess() const { return m_useSeparateServiceWorkerProcess; }
-#if PLATFORM(COCOA)
+#if ENABLE(CFPREFS_DIRECT_MODE)
void notifyPreferencesChanged(const String& domain, const String& key, const Optional<String>& encodedValue);
#endif
Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (258556 => 258557)
--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h 2020-03-17 16:59:32 UTC (rev 258557)
@@ -338,8 +338,10 @@
#if PLATFORM(COCOA)
void unblockAccessibilityServerIfNeeded();
+#if ENABLE(CFPREFS_DIRECT_MODE)
void unblockPreferenceServiceIfNeeded();
#endif
+#endif
void webPageMediaStateDidChange(WebPageProxy&);
Modified: trunk/Source/WebKit/WebProcess/WebProcess.h (258556 => 258557)
--- trunk/Source/WebKit/WebProcess/WebProcess.h 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/WebProcess/WebProcess.h 2020-03-17 16:59:32 UTC (rev 258557)
@@ -302,10 +302,12 @@
#if ENABLE(REMOTE_INSPECTOR)
void enableRemoteWebInspector(const SandboxExtension::Handle&);
#endif
+ void unblockAccessibilityServer(const SandboxExtension::Handle&);
+#if ENABLE(CFPREFS_DIRECT_MODE)
void notifyPreferencesChanged(const String& domain, const String& key, const Optional<String>& encodedValue);
- void unblockAccessibilityServer(const SandboxExtension::Handle&);
void unblockPreferenceService(const SandboxExtension::Handle&);
#endif
+#endif
bool areAllPagesThrottleable() const;
Modified: trunk/Source/WebKit/WebProcess/WebProcess.messages.in (258556 => 258557)
--- trunk/Source/WebKit/WebProcess/WebProcess.messages.in 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/WebProcess/WebProcess.messages.in 2020-03-17 16:59:32 UTC (rev 258557)
@@ -167,8 +167,10 @@
#endif
#if PLATFORM(COCOA)
+ UnblockAccessibilityServer(WebKit::SandboxExtension::Handle handle)
+#if ENABLE(CFPREFS_DIRECT_MODE)
NotifyPreferencesChanged(String domain, String key, Optional<String> encodedValue)
- UnblockAccessibilityServer(WebKit::SandboxExtension::Handle handle)
UnblockPreferenceService(WebKit::SandboxExtension::Handle handle)
#endif
+#endif
}
Modified: trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (258556 => 258557)
--- trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in 2020-03-17 16:50:50 UTC (rev 258556)
+++ trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in 2020-03-17 16:59:32 UTC (rev 258557)
@@ -678,9 +678,7 @@
(with report) (with telemetry)
#endif
(global-name "com.apple.PowerManagement.control")
-#if !ENABLE(CFPREFS_DIRECT_MODE)
(global-name "com.apple.cfprefsd.daemon")
-#endif
(global-name "com.apple.coreservices.launchservicesd")
(global-name "com.apple.lsd.mapdb")
(global-name "com.apple.trustd.agent")