Title: [257884] branches/safari-610.1.5-branch/Source
Revision
257884
Author
kocsen_ch...@apple.com
Date
2020-03-04 15:19:33 -0800 (Wed, 04 Mar 2020)

Log Message

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

Modified Paths

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"
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to