Title: [257886] branches/safari-610.1.6-branch/Source
Revision
257886
Author
kocsen_ch...@apple.com
Date
2020-03-04 15:27:59 -0800 (Wed, 04 Mar 2020)

Log Message

Cherry-pick r257875. rdar://problem/60057110

    [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.6-branch/Source/WTF/ChangeLog (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WTF/ChangeLog	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WTF/ChangeLog	2020-03-04 23:27:59 UTC (rev 257886)
@@ -1,3 +1,49 @@
+2020-03-04  Kocsen Chung  <kocsen_ch...@apple.com>
+
+        Cherry-pick r257875. rdar://problem/60057110
+
+    [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-03-03  Alan Coon  <alanc...@apple.com>
 
         Cherry-pick r257779. rdar://problem/60019706

Modified: branches/safari-610.1.6-branch/Source/WTF/wtf/PlatformEnable.h (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WTF/wtf/PlatformEnable.h	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WTF/wtf/PlatformEnable.h	2020-03-04 23:27:59 UTC (rev 257886)
@@ -871,3 +871,5 @@
 #if ENABLE(WEBGL2) && !ENABLE(WEBGL)
 #error "ENABLE(WEBGL2) requires ENABLE(WEBGL)"
 #endif
+
+#define ENABLE_CFPREFS_DIRECT_MODE 0

Modified: branches/safari-610.1.6-branch/Source/WebKit/ChangeLog (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/ChangeLog	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/ChangeLog	2020-03-04 23:27:59 UTC (rev 257886)
@@ -1,3 +1,65 @@
+2020-03-04  Kocsen Chung  <kocsen_ch...@apple.com>
+
+        Cherry-pick r257875. rdar://problem/60057110
+
+    [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-03  Alan Coon  <alanc...@apple.com>
 
         Cherry-pick r257779. rdar://problem/60019706

Modified: branches/safari-610.1.6-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb	2020-03-04 23:27:59 UTC (rev 257886)
@@ -846,7 +846,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" "com.apple.PowerManagement.control"
+        (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.PowerManagement.control" "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.6-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm	2020-03-04 23:27:59 UTC (rev 257886)
@@ -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.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.cpp	2020-03-04 23:27:59 UTC (rev 257886)
@@ -184,7 +184,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)
@@ -493,7 +496,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.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.h (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.h	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/Shared/WebProcessCreationParameters.h	2020-03-04 23:27:59 UTC (rev 257886)
@@ -225,7 +225,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.6-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2020-03-04 23:27:59 UTC (rev 257886)
@@ -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)
@@ -438,6 +440,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.6-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2020-03-04 23:27:59 UTC (rev 257886)
@@ -285,7 +285,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.6-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (257885 => 257886)


--- branches/safari-610.1.6-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2020-03-04 23:21:33 UTC (rev 257885)
+++ branches/safari-610.1.6-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2020-03-04 23:27:59 UTC (rev 257886)
@@ -845,6 +845,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