Title: [285432] trunk/Source/WebKit
Revision
285432
Author
pvol...@apple.com
Date
2021-11-08 14:28:21 -0800 (Mon, 08 Nov 2021)

Log Message

[macOS][GPUP] Remove access in sandbox to com.apple.audio.AudioComponentRegistrar
https://bugs.webkit.org/show_bug.cgi?id=231694
<rdar://75225923>

Reviewed by Brent Fulgham.

After https://trac.webkit.org/changeset/274435/webkit, there is no need to allow access to this service. This patch also implements sending
the Audio component registrations to the GPU process, which is a requirement before blocking the service in the GPU process.

* GPUProcess/GPUProcess.h:
* GPUProcess/GPUProcess.messages.in:
* GPUProcess/cocoa/GPUProcessCocoa.mm:
(WebKit::GPUProcess::consumeAudioComponentRegistrations):
* GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
* Shared/Cocoa/AudioComponentRegistration.cpp: Added.
(WebKit::consumeAudioComponentRegistrations):
* Shared/Cocoa/AudioComponentRegistration.h: Added.
(WebKit::sendAudioComponentRegistrations):
* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations): Deleted.
* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::revokeAudioCaptureExtension):
* WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (285431 => 285432)


--- trunk/Source/WebKit/ChangeLog	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/ChangeLog	2021-11-08 22:28:21 UTC (rev 285432)
@@ -1,3 +1,36 @@
+2021-11-08  Per Arne Vollan <pvol...@apple.com>
+
+        [macOS][GPUP] Remove access in sandbox to com.apple.audio.AudioComponentRegistrar
+        https://bugs.webkit.org/show_bug.cgi?id=231694
+        <rdar://75225923>
+
+        Reviewed by Brent Fulgham.
+
+        After https://trac.webkit.org/changeset/274435/webkit, there is no need to allow access to this service. This patch also implements sending
+        the Audio component registrations to the GPU process, which is a requirement before blocking the service in the GPU process.
+
+        * GPUProcess/GPUProcess.h:
+        * GPUProcess/GPUProcess.messages.in:
+        * GPUProcess/cocoa/GPUProcessCocoa.mm:
+        (WebKit::GPUProcess::consumeAudioComponentRegistrations):
+        * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
+        * Shared/Cocoa/AudioComponentRegistration.cpp: Added.
+        (WebKit::consumeAudioComponentRegistrations):
+        * Shared/Cocoa/AudioComponentRegistration.h: Added.
+        (WebKit::sendAudioComponentRegistrations):
+        * UIProcess/Cocoa/WebProcessProxyCocoa.mm:
+        (WebKit::WebProcessProxy::sendAudioComponentRegistrations): Deleted.
+        * UIProcess/GPU/GPUProcessProxy.cpp:
+        (WebKit::GPUProcessProxy::didFinishLaunching):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::initializeNewWebProcess):
+        * UIProcess/WebProcessProxy.h:
+        (WebKit::WebProcessProxy::revokeAudioCaptureExtension):
+        * WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::consumeAudioComponentRegistrations):
+
 2021-11-08  Wenson Hsieh  <wenson_hs...@apple.com>
 
         WKSyntheticTapGestureRecognizer's action targets should be weak pointers

Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.h (285431 => 285432)


--- trunk/Source/WebKit/GPUProcess/GPUProcess.h	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.h	2021-11-08 22:28:21 UTC (rev 285432)
@@ -28,6 +28,7 @@
 #if ENABLE(GPU_PROCESS)
 
 #include "AuxiliaryProcess.h"
+#include "DataReference.h"
 #include "SandboxExtension.h"
 #include "WebPageProxyIdentifier.h"
 #include <WebCore/LibWebRTCEnumTraits.h>
@@ -109,6 +110,10 @@
 
     const String& applicationVisibleName() const { return m_applicationVisibleName; }
 
+#if PLATFORM(COCOA)
+    void consumeAudioComponentRegistrations(const IPC::DataReference&);
+#endif
+
     void webProcessConnectionCountForTesting(CompletionHandler<void(uint64_t)>&&);
 
 private:

Modified: trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in (285431 => 285432)


--- trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in	2021-11-08 22:28:21 UTC (rev 285432)
@@ -76,6 +76,10 @@
     NotifyPreferencesChanged(String domain, String key, std::optional<String> encodedValue)
 #endif
 
+#if PLATFORM(COCOA)
+    ConsumeAudioComponentRegistrations(IPC::SharedBufferDataReference registrationData)
+#endif
+
     WebProcessConnectionCountForTesting() -> (uint64_t count) Async
 }
 

Modified: trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm (285431 => 285432)


--- trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm	2021-11-08 22:28:21 UTC (rev 285432)
@@ -30,6 +30,7 @@
 
 #if ENABLE(GPU_PROCESS) && PLATFORM(COCOA)
 
+#import "AudioComponentRegistration.h"
 #import "GPUConnectionToWebProcess.h"
 #import "RemoteRenderingBackend.h"
 #import <wtf/RetainPtr.h>
@@ -75,6 +76,11 @@
 
 #endif // ENABLE(CFPREFS_DIRECT_MODE)
 
+void GPUProcess::consumeAudioComponentRegistrations(const IPC::DataReference& data)
+{
+    WebKit::consumeAudioComponentRegistrations(data);
+}
+
 } // namespace WebKit
 
 #endif // ENABLE(GPU_PROCESS) && PLATFORM(COCOA)

Modified: trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in (285431 => 285432)


--- trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in	2021-11-08 22:28:21 UTC (rev 285432)
@@ -717,8 +717,10 @@
 (allow ipc-posix-shm-read* ipc-posix-shm-write-data (with telemetry)
     (ipc-posix-name-prefix "AudioIO"))
 
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 120000
 (allow mach-lookup
     (global-name "com.apple.audio.AudioComponentRegistrar"))
+#endif
 
 #if !ENABLE(CFPREFS_DIRECT_MODE)
 (allow mach-lookup (with telemetry)

Added: trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.cpp (0 => 285432)


--- trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.cpp	                        (rev 0)
+++ trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.cpp	2021-11-08 22:28:21 UTC (rev 285432)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "AudioComponentRegistration.h"
+
+#include "Logging.h"
+
+namespace WebKit {
+
+void consumeAudioComponentRegistrations(const IPC::DataReference& data)
+{
+    if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentApplyServerRegistrations())
+        return;
+
+    auto registrations = adoptCF(CFDataCreate(kCFAllocatorDefault, data.data(), data.size()));
+    if (!registrations)
+        return;
+
+    auto err = PAL::AudioComponentApplyServerRegistrations(registrations.get());
+    if (noErr == err)
+        return;
+    
+    RELEASE_LOG_ERROR(Process, "Could not apply AudioComponent registrations, err(%ld)", static_cast<long>(err));
+}
+
+} // namespace WebKit
+

Added: trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.h (0 => 285432)


--- trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.h	                        (rev 0)
+++ trunk/Source/WebKit/Shared/Cocoa/AudioComponentRegistration.h	2021-11-08 22:28:21 UTC (rev 285432)
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2021 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#import "AuxiliaryProcessProxy.h"
+#import "DataReference.h"
+#import <WebCore/WebMAudioUtilitiesCocoa.h>
+#import <wtf/BlockPtr.h>
+#import <pal/cf/AudioToolboxSoftLink.h>
+
+namespace WebKit {
+
+template<typename T> void sendAudioComponentRegistrations(AuxiliaryProcessProxy& process)
+{
+    if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentFetchServerRegistrations())
+        return;
+
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), makeBlockPtr([weakThis = WeakPtr { process }] () mutable {
+        CFDataRef registrations { nullptr };
+
+        WebCore::registerOpusDecoderIfNeeded();
+        WebCore::registerVorbisDecoderIfNeeded();
+        if (noErr != PAL::AudioComponentFetchServerRegistrations(&registrations) || !registrations)
+            return;
+
+        RunLoop::main().dispatch([weakThis = WTFMove(weakThis), registrations = adoptCF(registrations)] () mutable {
+            if (!weakThis)
+                return;
+            auto registrationData = WebCore::SharedBuffer::create(registrations.get());
+            weakThis->send(T({ registrationData }), 0);
+        });
+    }).get());
+}
+
+void consumeAudioComponentRegistrations(const IPC::DataReference&);
+
+} // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm (285431 => 285432)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm	2021-11-08 22:28:21 UTC (rev 285432)
@@ -39,7 +39,6 @@
 #import "WebProcessMessages.h"
 #import "WebProcessPool.h"
 #import <WebCore/RuntimeApplicationChecks.h>
-#import <WebCore/WebMAudioUtilitiesCocoa.h>
 #import <sys/sysctl.h>
 #import <wtf/NeverDestroyed.h>
 #import <wtf/Scope.h>
@@ -64,8 +63,6 @@
 #include "TCCSoftLink.h"
 #endif
 
-#import <pal/cf/AudioToolboxSoftLink.h>
-
 namespace WebKit {
 
 static const Seconds unexpectedActivityDuration = 10_s;
@@ -289,31 +286,6 @@
 }
 #endif
 
-void WebProcessProxy::sendAudioComponentRegistrations()
-{
-    using namespace PAL;
-
-    if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentFetchServerRegistrations())
-        return;
-
-    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), [weakThis = WeakPtr { *this }] () mutable {
-        CFDataRef registrations { nullptr };
-
-        WebCore::registerOpusDecoderIfNeeded();
-        WebCore::registerVorbisDecoderIfNeeded();
-        if (noErr != AudioComponentFetchServerRegistrations(&registrations) || !registrations)
-            return;
-
-        RunLoop::main().dispatch([weakThis = WTFMove(weakThis), registrations = adoptCF(registrations)] () mutable {
-            if (!weakThis)
-                return;
-
-            auto registrationData = WebCore::SharedBuffer::create(registrations.get());
-            weakThis->send(Messages::WebProcess::ConsumeAudioComponentRegistrations({ registrationData }), 0);
-        });
-    });
-}
-
 bool WebProcessProxy::messageSourceIsValidWebContentProcess()
 {
     if (!hasConnection()) {

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (285431 => 285432)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2021-11-08 22:28:21 UTC (rev 285432)
@@ -63,6 +63,10 @@
 #include <wtf/FileSystem.h>
 #endif
 
+#if PLATFORM(COCOA)
+#include "AudioComponentRegistration.h"
+#endif
+
 #define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, this->connection())
 
 namespace WebKit {
@@ -449,6 +453,8 @@
     if (!store)
         return;
     m_hasSentNetworkProcessXPCEndpoint = store->sendNetworkProcessXPCEndpointToProcess(*this);
+
+    sendAudioComponentRegistrations<Messages::GPUProcess::ConsumeAudioComponentRegistrations>(*this);
 #endif
 }
 

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (285431 => 285432)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2021-11-08 22:28:21 UTC (rev 285432)
@@ -130,6 +130,7 @@
 #endif
 
 #if PLATFORM(COCOA)
+#include "AudioComponentRegistration.h"
 #include "DefaultWebBrowserChecks.h"
 #include <WebCore/GameControllerGamepadProvider.h>
 #include <WebCore/HIDGamepadProvider.h>
@@ -865,7 +866,7 @@
 #endif
 
 #if PLATFORM(COCOA)
-    process.sendAudioComponentRegistrations();
+    sendAudioComponentRegistrations<Messages::WebProcess::ConsumeAudioComponentRegistrations>(process);
 #endif
 
 #if PLATFORM(MAC)

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (285431 => 285432)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2021-11-08 22:28:21 UTC (rev 285432)
@@ -338,8 +338,6 @@
     bool hasAudioCaptureExtension() const { return m_mediaCaptureSandboxExtensions & Audio; }
     void grantAudioCaptureExtension() { m_mediaCaptureSandboxExtensions |= Audio; }
     void revokeAudioCaptureExtension() { m_mediaCaptureSandboxExtensions &= ~Audio; }
-
-    void sendAudioComponentRegistrations();
 #endif
 
 #if ENABLE(REMOTE_INSPECTOR) && PLATFORM(COCOA)

Modified: trunk/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in (285431 => 285432)


--- trunk/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in	2021-11-08 22:28:21 UTC (rev 285432)
@@ -327,7 +327,6 @@
 #if PLATFORM(MAC)
     (with report) (with telemetry)
 #endif
-    (global-name "com.apple.audio.AudioComponentRegistrar")
     (global-name "com.apple.awdd")
 #if !ENABLE(CFPREFS_DIRECT_MODE)
     (global-name "com.apple.cfprefsd.agent")

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (285431 => 285432)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-11-08 22:16:44 UTC (rev 285431)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2021-11-08 22:28:21 UTC (rev 285432)
@@ -1939,6 +1939,8 @@
 		E38A1FC023A551BF00D2374F /* UserInterfaceIdiom.mm in Sources */ = {isa = PBXBuildFile; fileRef = E38A1FBF23A551BF00D2374F /* UserInterfaceIdiom.mm */; };
 		E39628DD23960CC600658ECD /* WebDeviceOrientationUpdateProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = E39628DB23960CC500658ECD /* WebDeviceOrientationUpdateProvider.h */; };
 		E39628DE23960CC600658ECD /* WebDeviceOrientationUpdateProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E39628DC23960CC600658ECD /* WebDeviceOrientationUpdateProvider.cpp */; };
+		E3C2396D2721C9C200E37537 /* AudioComponentRegistration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */; };
+		E3C2396E2721C9C200E37537 /* AudioComponentRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */; };
 		E3CAAA442413279900CED2E2 /* AccessibilitySupportSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E3CAAA432413278A00CED2E2 /* AccessibilitySupportSPI.h */; };
 		E413F59D1AC1ADC400345360 /* NetworkCacheEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = E413F59B1AC1ADB600345360 /* NetworkCacheEntry.h */; };
 		E42E06101AA7523B00B11699 /* NetworkCacheIOChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = E42E060B1AA7440D00B11699 /* NetworkCacheIOChannel.h */; };
@@ -5856,6 +5858,8 @@
 		E3A86FBC26958E330059264D /* WebCaptionPreferencesDelegate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebCaptionPreferencesDelegate.cpp; sourceTree = "<group>"; };
 		E3BCE877267252120011D8DB /* AccessibilityPreferences.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityPreferences.cpp; sourceTree = "<group>"; };
 		E3BCE878267252120011D8DB /* AccessibilityPreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilityPreferences.h; sourceTree = "<group>"; };
+		E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioComponentRegistration.cpp; sourceTree = "<group>"; };
+		E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioComponentRegistration.h; sourceTree = "<group>"; };
 		E3CAAA432413278A00CED2E2 /* AccessibilitySupportSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySupportSPI.h; sourceTree = "<group>"; };
 		E3EFB02C2550617C003C2F96 /* WebSystemSoundDelegate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebSystemSoundDelegate.cpp; sourceTree = "<group>"; };
 		E3EFB02D2550617C003C2F96 /* WebSystemSoundDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebSystemSoundDelegate.h; sourceTree = "<group>"; };
@@ -8144,6 +8148,8 @@
 				378E1A3B181ED6FF0031007A /* APIObject.mm */,
 				A175C44921AA3170000037D0 /* ArgumentCodersCocoa.h */,
 				A175C44B21AA331B000037D0 /* ArgumentCodersCocoa.mm */,
+				E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */,
+				E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */,
 				1A698F171E4910220064E881 /* AuxiliaryProcessCocoa.mm */,
 				CE11AD511CBC482F00681EE5 /* CodeSigning.h */,
 				CE11AD4F1CBC47F800681EE5 /* CodeSigning.mm */,
@@ -11868,6 +11874,7 @@
 				7B1DB26625668CE1000E26BC /* ArrayReference.h in Headers */,
 				AAFA634F234F7C6400FFA864 /* AsyncRevalidation.h in Headers */,
 				BCEE966D112FAF57006BCC24 /* Attachment.h in Headers */,
+				E3C2396E2721C9C200E37537 /* AudioComponentRegistration.h in Headers */,
 				512F589712A8838800629530 /* AuthenticationChallengeProxy.h in Headers */,
 				512F589912A8838800629530 /* AuthenticationDecisionListener.h in Headers */,
 				518E8EF916B2091C00E91429 /* AuthenticationManager.h in Headers */,
@@ -14118,6 +14125,7 @@
 				2D92A77B212B6A7100F493FD /* ArgumentCoders.cpp in Sources */,
 				2DEB1D2E2127473600933906 /* ArgumentCodersCF.cpp in Sources */,
 				2D92A77C212B6A7100F493FD /* Attachment.cpp in Sources */,
+				E3C2396D2721C9C200E37537 /* AudioComponentRegistration.cpp in Sources */,
 				CD4570D424411D0F00A3DCEB /* AudioSessionRoutingArbitrator.cpp in Sources */,
 				CD4570D3244113B500A3DCEB /* AudioSessionRoutingArbitratorProxyMessageReceiver.cpp in Sources */,
 				512F58A212A883AD00629530 /* AuthenticationManagerMessageReceiver.cpp in Sources */,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to