Title: [290183] trunk/Source/WebKit
Revision
290183
Author
pvol...@apple.com
Date
2022-02-18 16:27:04 -0800 (Fri, 18 Feb 2022)

Log Message

Remove unneeded sandbox extension code
https://bugs.webkit.org/show_bug.cgi?id=228777
<rdar://problem/81516828>

Reviewed by Brent Fulgham.

Since the GPU process is now enabled by default, some related sandbox extension code can be removed.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::mediaRelatedMachServices): Deleted.
(WebKit::mediaRelatedIOKitClasses): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
* WebProcess/com.apple.WebProcess.sb.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (290182 => 290183)


--- trunk/Source/WebKit/ChangeLog	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/ChangeLog	2022-02-19 00:27:04 UTC (rev 290183)
@@ -1,5 +1,28 @@
 2022-02-18  Per Arne Vollan  <pvol...@apple.com>
 
+        Remove unneeded sandbox extension code
+        https://bugs.webkit.org/show_bug.cgi?id=228777
+        <rdar://problem/81516828>
+
+        Reviewed by Brent Fulgham.
+
+        Since the GPU process is now enabled by default, some related sandbox extension code can be removed.
+
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode const):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::creationParameters):
+        (WebKit::mediaRelatedMachServices): Deleted.
+        (WebKit::mediaRelatedIOKitClasses): Deleted.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_appHighlightsVisible):
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2022-02-18  Per Arne Vollan  <pvol...@apple.com>
+
         [iOS] Add access to required Mach service in the Network process
         https://bugs.webkit.org/show_bug.cgi?id=236853
         <rdar://89031731>

Modified: trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in (290182 => 290183)


--- trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in	2022-02-19 00:27:04 UTC (rev 290183)
@@ -1091,20 +1091,6 @@
             "com.apple.tccd"
             "com.apple.uikit.viewservice.com.apple.WebContentFilter.remoteUI"
             "com.apple.webinspector"
-
-            ;;; 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.AudioComponentPrefs" "com.apple.audio.AudioComponentRegistrar"
-            "com.apple.audio.AudioQueueServer" "com.apple.audio.AudioSession" "com.apple.coremedia.admin" "com.apple.coremedia.asset.xpc"
-            "com.apple.coremedia.assetimagegenerator.xpc" "com.apple.coremedia.audiodeviceclock.xpc" "com.apple.coremedia.audioprocessingtap.xpc"
-            "com.apple.coremedia.capturesession" "com.apple.coremedia.capturesource" "com.apple.coremedia.compressionsession" "com.apple.coremedia.cpe.xpc"
-            "com.apple.coremedia.cpeprotector.xpc" "com.apple.coremedia.customurlloader.xpc" "com.apple.coremedia.decompressionsession"
-            "com.apple.coremedia.endpoint.xpc" "com.apple.coremedia.figcontentkeysession.xpc" "com.apple.coremedia.figcpecryptor"
-            "com.apple.coremedia.formatreader.xpc" "com.apple.coremedia.player.xpc" "com.apple.coremedia.remaker" "com.apple.coremedia.remotequeue"
-            "com.apple.coremedia.routediscoverer.xpc" "com.apple.coremedia.routingcontext.xpc" "com.apple.coremedia.routingsessionmanager.xpc"
-            "com.apple.coremedia.samplebufferaudiorenderer.xpc" "com.apple.coremedia.samplebufferrendersynchronizer.xpc" "com.apple.coremedia.sandboxserver.xpc"
-            "com.apple.coremedia.sts" "com.apple.coremedia.systemcontroller.xpc" "com.apple.coremedia.videoqueue" "com.apple.coremedia.volumecontroller.xpc"
-            "com.apple.coremedia.visualcontext.xpc" "com.apple.mediaremoted.xpc" "com.apple.accessibility.mediaaccessibilityd"
-            ;;; FIXME(207716): End services to remove.
 )))
 
 ;; Silence warnings about these connections if we have decided not to extend access to them:
@@ -1126,17 +1112,6 @@
     )
 )
 
-(allow mach-lookup
-    (require-all
-        (extension "com.apple.webkit.extension.mach")
-        (xpc-service-name
-            ;;; FIXME(207716): The following should be removed when the GPU process is complete
-            "com.apple.MediaPlayer.RemotePlayerService"
-            ;;; FIXME(207716): End services to remove.
-        )
-    )
-)
-
 (allow iokit-open
     (require-all
         (extension "com.apple.webkit.extension.iokit")

Modified: trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp (290182 => 290183)


--- trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp	2022-02-19 00:27:04 UTC (rev 290183)
@@ -112,9 +112,6 @@
 #if PLATFORM(COCOA)
     encoder << smartInsertDeleteEnabled;
     encoder << additionalSupportedImageTypes;
-    // FIXME(207716): The following should be removed when the GPU process is complete.
-    encoder << mediaExtensionHandles;
-    encoder << mediaIOKitExtensionHandles;
     encoder << gpuIOKitExtensionHandles;
     encoder << gpuMachExtensionHandles;
 #endif
@@ -389,20 +386,6 @@
     if (!decoder.decode(parameters.additionalSupportedImageTypes))
         return std::nullopt;
 
-    // FIXME(207716): The following should be removed when the GPU process is complete.
-    std::optional<Vector<SandboxExtension::Handle>> mediaExtensionHandles;
-    decoder >> mediaExtensionHandles;
-    if (!mediaExtensionHandles)
-        return std::nullopt;
-    parameters.mediaExtensionHandles = WTFMove(*mediaExtensionHandles);
-
-    std::optional<Vector<SandboxExtension::Handle>> mediaIOKitExtensionHandles;
-    decoder >> mediaIOKitExtensionHandles;
-    if (!mediaIOKitExtensionHandles)
-        return std::nullopt;
-    parameters.mediaIOKitExtensionHandles = WTFMove(*mediaIOKitExtensionHandles);
-    // FIXME(207716): End region to remove.
-
     std::optional<Vector<SandboxExtension::Handle>> gpuIOKitExtensionHandles;
     decoder >> gpuIOKitExtensionHandles;
     if (!gpuIOKitExtensionHandles)

Modified: trunk/Source/WebKit/Shared/WebPageCreationParameters.h (290182 => 290183)


--- trunk/Source/WebKit/Shared/WebPageCreationParameters.h	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/Shared/WebPageCreationParameters.h	2022-02-19 00:27:04 UTC (rev 290183)
@@ -172,8 +172,6 @@
 #if PLATFORM(COCOA)
     bool smartInsertDeleteEnabled;
     Vector<String> additionalSupportedImageTypes;
-    Vector<SandboxExtension::Handle> mediaExtensionHandles; // FIXME(207716): Remove when GPU process is complete.
-    Vector<SandboxExtension::Handle> mediaIOKitExtensionHandles;
     Vector<SandboxExtension::Handle> gpuIOKitExtensionHandles;
     Vector<SandboxExtension::Handle> gpuMachExtensionHandles;
 #endif

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (290182 => 290183)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2022-02-19 00:27:04 UTC (rev 290183)
@@ -8191,63 +8191,8 @@
     return services;
 }
 
-// FIXME(207716): The following should be removed when the GPU process is complete.
-static Span<const ASCIILiteral> mediaRelatedMachServices()
-{
-    static constexpr std::array services {
-        "com.apple.audio.AudioComponentPrefs"_s, "com.apple.audio.AudioComponentRegistrar"_s,
-        "com.apple.audio.AudioQueueServer"_s, "com.apple.coremedia.endpoint.xpc"_s,
-        "com.apple.coremedia.routediscoverer.xpc"_s, "com.apple.coremedia.routingcontext.xpc"_s,
-        "com.apple.coremedia.volumecontroller.xpc"_s, "com.apple.accessibility.mediaaccessibilityd"_s,
-        "com.apple.mediaremoted.xpc"_s,
-#if PLATFORM(IOS_FAMILY)
-        "com.apple.audio.AudioSession"_s, "com.apple.MediaPlayer.RemotePlayerService"_s,
-        "com.apple.coremedia.admin"_s,
-        "com.apple.coremedia.asset.xpc"_s, "com.apple.coremedia.assetimagegenerator.xpc"_s,
-        "com.apple.coremedia.audiodeviceclock.xpc"_s, "com.apple.coremedia.audioprocessingtap.xpc"_s,
-        "com.apple.coremedia.capturesession"_s, "com.apple.coremedia.capturesource"_s,
-        "com.apple.coremedia.compressionsession"_s, "com.apple.coremedia.cpe.xpc"_s,
-        "com.apple.coremedia.cpeprotector.xpc"_s, "com.apple.coremedia.customurlloader.xpc"_s,
-        "com.apple.coremedia.decompressionsession"_s, "com.apple.coremedia.figcontentkeysession.xpc"_s,
-        "com.apple.coremedia.figcpecryptor"_s, "com.apple.coremedia.formatreader.xpc"_s,
-        "com.apple.coremedia.player.xpc"_s, "com.apple.coremedia.remaker"_s,
-        "com.apple.coremedia.remotequeue"_s, "com.apple.coremedia.routingsessionmanager.xpc"_s,
-        "com.apple.coremedia.samplebufferaudiorenderer.xpc"_s, "com.apple.coremedia.samplebufferrendersynchronizer.xpc"_s,
-        "com.apple.coremedia.sandboxserver.xpc"_s, "com.apple.coremedia.sts"_s,
-        "com.apple.coremedia.systemcontroller.xpc"_s, "com.apple.coremedia.videoqueue"_s,
-        "com.apple.coremedia.visualcontext.xpc"_s, "com.apple.airplay.apsynccontroller.xpc"_s,
-        "com.apple.audio.AURemoteIOServer"_s,
-#endif
-#if PLATFORM(MAC) || PLATFORM(MACCATALYST)
-        "com.apple.audio.audiohald"_s, "com.apple.audio.SandboxHelper"_s, "com.apple.coremedia.endpointstream.xpc"_s, "com.apple.coremedia.endpointplaybacksession.xpc"_s,
-        "com.apple.coremedia.endpointremotecontrolsession.xpc"_s, "com.apple.coremedia.videodecoder"_s,
-        "com.apple.coremedia.videoencoder"_s, "com.apple.lskdd"_s, "com.apple.trustd.agent"_s,
-#endif
-        // FIXME: Is this also needed in PLATFORM(MACCATALYST)?
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED > 120000
-        "com.apple.coremedia.samplebufferconsumer.xpc"_s,
-#endif
-    };
-    return services;
-}
+#endif // PLATFORM(COCOA)
 
-static Span<const ASCIILiteral> mediaRelatedIOKitClasses()
-{
-#if !(PLATFORM(MAC) || PLATFORM(MACCATALYST))
-    return { };
-#else
-    static constexpr std::array services {
-#if CPU(ARM64)
-        "AppleAVDUserClient"_s,
-#endif
-        "RootDomainUserClient"_s,
-    };
-    return services;
-#endif
-}
-
-#endif
-
 WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& process, DrawingAreaProxy& drawingArea, RefPtr<API::WebsitePolicies>&& websitePolicies)
 {
     WebPageCreationParameters parameters;
@@ -8333,18 +8278,7 @@
 #if PLATFORM(COCOA)
     parameters.smartInsertDeleteEnabled = m_isSmartInsertDeleteEnabled;
     parameters.additionalSupportedImageTypes = m_configuration->additionalSupportedImageTypes();
-    
-    bool needWebProcessExtensions = !preferences().useGPUProcessForMediaEnabled()
-        || !preferences().captureAudioInGPUProcessEnabled()
-        || !preferences().captureVideoInGPUProcessEnabled()
-        || !preferences().webRTCPlatformCodecsInGPUProcessEnabled();
 
-    if (needWebProcessExtensions) {
-        // FIXME(207716): The following should be removed when the GPU process is complete.
-        parameters.mediaExtensionHandles = SandboxExtension::createHandlesForMachLookup(mediaRelatedMachServices(), std::nullopt);
-        parameters.mediaIOKitExtensionHandles = SandboxExtension::createHandlesForIOKitClassExtensions(mediaRelatedIOKitClasses(), std::nullopt);
-    }
-
     if (!preferences().useGPUProcessForMediaEnabled()
         || (!preferences().captureVideoInGPUProcessEnabled() && !preferences().captureVideoInUIProcessEnabled())
         || (!preferences().captureAudioInGPUProcessEnabled() && !preferences().captureAudioInUIProcessEnabled())

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (290182 => 290183)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2022-02-19 00:27:04 UTC (rev 290183)
@@ -657,13 +657,6 @@
 #endif
 
 #if PLATFORM(COCOA)
-    // FIXME(207716): The following should be removed when the GPU process is complete.
-    static bool hasConsumedMediaExtensionHandles = false;
-    if (!hasConsumedMediaExtensionHandles && parameters.mediaExtensionHandles.size()) {
-        SandboxExtension::consumePermanently(parameters.mediaExtensionHandles);
-        SandboxExtension::consumePermanently(parameters.mediaIOKitExtensionHandles);
-        hasConsumedMediaExtensionHandles = true;
-    }
     static bool hasConsumedGPUExtensionHandles = false;
     if (!hasConsumedGPUExtensionHandles) {
         SandboxExtension::consumePermanently(parameters.gpuIOKitExtensionHandles);

Modified: trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (290182 => 290183)


--- trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2022-02-19 00:22:29 UTC (rev 290182)
+++ trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2022-02-19 00:27:04 UTC (rev 290183)
@@ -1773,16 +1773,6 @@
             "com.apple.iconservices"
             "com.apple.iconservices.store"
             "com.apple.tccd"
-
-            ;;; FIXME(207716): The following should be removed when the GPU process is complete
-            "com.apple.accessibility.mediaaccessibilityd"
-            "com.apple.audio.AudioComponentRegistrar" "com.apple.audio.audiohald" "com.apple.coremedia.endpoint.xpc" "com.apple.coremedia.endpointstream.xpc"
-            "com.apple.coremedia.endpointplaybacksession.xpc" "com.apple.coremedia.endpointremotecontrolsession.xpc" "com.apple.coremedia.routediscoverer.xpc"
-            "com.apple.coremedia.routingcontext.xpc" "com.apple.coremedia.volumecontroller.xpc" "com.apple.lskdd" "com.apple.mediaremoted.xpc" "com.apple.trustd.agent"
-#if __MAC_OS_X_VERSION_MIN_REQUIRED > 120000
-            "com.apple.coremedia.samplebufferconsumer.xpc"
-#endif
-            ;;; FIXME(207716): End services to remove.
         )
     )
 )
@@ -1794,19 +1784,6 @@
         (global-name "com.apple.audio.AudioComponentRegistrar")))
 #endif
 
-(allow mach-lookup
-    (require-all
-        (extension "com.apple.webkit.extension.mach")
-        (xpc-service-name
-            ;;; FIXME(207716): The following should be removed when the GPU process is complete
-            "com.apple.audio.SandboxHelper"
-            "com.apple.coremedia.videodecoder"
-            "com.apple.coremedia.videoencoder"
-            ;;; FIXME(207716): End services to remove.
-        )
-    )
-)
-
 ;; Caches for LaunchServices data needs to be able to mark the directory as 'hot'.
 (allow system-fsctl
     (fsctl-command (_IO "h" 47))) ;; See <rdar://74387453>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to