Changeset 285479 in webkit


Ignore:
Timestamp:
Nov 8, 2021, 8:23:23 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, reverting r285432.
https://bugs.webkit.org/show_bug.cgi?id=232864

Introduced audio capture regression

Reverted changeset:

"[macOS][GPUP] Remove access in sandbox to
com.apple.audio.AudioComponentRegistrar"
https://bugs.webkit.org/show_bug.cgi?id=231694
https://commits.webkit.org/r285432

Location:
trunk/Source/WebKit
Files:
2 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r285477 r285479  
     12021-11-08  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r285432.
     4        https://bugs.webkit.org/show_bug.cgi?id=232864
     5
     6        Introduced audio capture regression
     7
     8        Reverted changeset:
     9
     10        "[macOS][GPUP] Remove access in sandbox to
     11        com.apple.audio.AudioComponentRegistrar"
     12        https://bugs.webkit.org/show_bug.cgi?id=231694
     13        https://commits.webkit.org/r285432
     14
    1152021-11-08  Wenson Hsieh  <wenson_hsieh@apple.com>
    216
  • trunk/Source/WebKit/GPUProcess/GPUProcess.h

    r285432 r285479  
    2929
    3030#include "AuxiliaryProcess.h"
    31 #include "DataReference.h"
    3231#include "SandboxExtension.h"
    3332#include "WebPageProxyIdentifier.h"
     
    110109
    111110    const String& applicationVisibleName() const { return m_applicationVisibleName; }
    112 
    113 #if PLATFORM(COCOA)
    114     void consumeAudioComponentRegistrations(const IPC::DataReference&);
    115 #endif
    116111
    117112    void webProcessConnectionCountForTesting(CompletionHandler<void(uint64_t)>&&);
  • trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in

    r285432 r285479  
    7777#endif
    7878
    79 #if PLATFORM(COCOA)
    80     ConsumeAudioComponentRegistrations(IPC::SharedBufferDataReference registrationData)
    81 #endif
    82 
    8379    WebProcessConnectionCountForTesting() -> (uint64_t count) Async
    8480}
  • trunk/Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm

    r285432 r285479  
    3131#if ENABLE(GPU_PROCESS) && PLATFORM(COCOA)
    3232
    33 #import "AudioComponentRegistration.h"
    3433#import "GPUConnectionToWebProcess.h"
    3534#import "RemoteRenderingBackend.h"
     
    7776#endif // ENABLE(CFPREFS_DIRECT_MODE)
    7877
    79 void GPUProcess::consumeAudioComponentRegistrations(const IPC::DataReference& data)
    80 {
    81     WebKit::consumeAudioComponentRegistrations(data);
    82 }
    83 
    8478} // namespace WebKit
    8579
  • trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in

    r285434 r285479  
    688688    (ipc-posix-name-prefix "AudioIO"))
    689689
    690 #if __MAC_OS_X_VERSION_MIN_REQUIRED < 120000
    691690(allow mach-lookup
    692691    (global-name "com.apple.audio.AudioComponentRegistrar"))
    693 #endif
    694692
    695693#if !ENABLE(CFPREFS_DIRECT_MODE)
  • trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm

    r285432 r285479  
    4040#import "WebProcessPool.h"
    4141#import <WebCore/RuntimeApplicationChecks.h>
     42#import <WebCore/WebMAudioUtilitiesCocoa.h>
    4243#import <sys/sysctl.h>
    4344#import <wtf/NeverDestroyed.h>
     
    6465#endif
    6566
     67#import <pal/cf/AudioToolboxSoftLink.h>
     68
    6669namespace WebKit {
    6770
     
    287290#endif
    288291
     292void WebProcessProxy::sendAudioComponentRegistrations()
     293{
     294    using namespace PAL;
     295
     296    if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentFetchServerRegistrations())
     297        return;
     298
     299    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), [weakThis = WeakPtr { *this }] () mutable {
     300        CFDataRef registrations { nullptr };
     301
     302        WebCore::registerOpusDecoderIfNeeded();
     303        WebCore::registerVorbisDecoderIfNeeded();
     304        if (noErr != AudioComponentFetchServerRegistrations(&registrations) || !registrations)
     305            return;
     306
     307        RunLoop::main().dispatch([weakThis = WTFMove(weakThis), registrations = adoptCF(registrations)] () mutable {
     308            if (!weakThis)
     309                return;
     310
     311            auto registrationData = WebCore::SharedBuffer::create(registrations.get());
     312            weakThis->send(Messages::WebProcess::ConsumeAudioComponentRegistrations({ registrationData }), 0);
     313        });
     314    });
     315}
     316
    289317bool WebProcessProxy::messageSourceIsValidWebContentProcess()
    290318{
  • trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp

    r285477 r285479  
    6464#endif
    6565
    66 #if PLATFORM(COCOA)
    67 #include "AudioComponentRegistration.h"
    68 #endif
    69 
    7066#define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, this->connection())
    7167
     
    453449        return;
    454450    m_hasSentNetworkProcessXPCEndpoint = store->sendNetworkProcessXPCEndpointToProcess(*this);
    455 
    456     sendAudioComponentRegistrations<Messages::GPUProcess::ConsumeAudioComponentRegistrations>(*this);
    457451#endif
    458452}
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r285477 r285479  
    131131
    132132#if PLATFORM(COCOA)
    133 #include "AudioComponentRegistration.h"
    134133#include "DefaultWebBrowserChecks.h"
    135134#include <WebCore/GameControllerGamepadProvider.h>
     
    871870
    872871#if PLATFORM(COCOA)
    873     sendAudioComponentRegistrations<Messages::WebProcess::ConsumeAudioComponentRegistrations>(process);
     872    process.sendAudioComponentRegistrations();
    874873#endif
    875874
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.h

    r285432 r285479  
    339339    void grantAudioCaptureExtension() { m_mediaCaptureSandboxExtensions |= Audio; }
    340340    void revokeAudioCaptureExtension() { m_mediaCaptureSandboxExtensions &= ~Audio; }
     341
     342    void sendAudioComponentRegistrations();
    341343#endif
    342344
  • trunk/Source/WebKit/WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in

    r285432 r285479  
    328328    (with report) (with telemetry)
    329329#endif
     330    (global-name "com.apple.audio.AudioComponentRegistrar")
    330331    (global-name "com.apple.awdd")
    331332#if !ENABLE(CFPREFS_DIRECT_MODE)
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r285444 r285479  
    19421942                E39628DD23960CC600658ECD /* WebDeviceOrientationUpdateProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = E39628DB23960CC500658ECD /* WebDeviceOrientationUpdateProvider.h */; };
    19431943                E39628DE23960CC600658ECD /* WebDeviceOrientationUpdateProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E39628DC23960CC600658ECD /* WebDeviceOrientationUpdateProvider.cpp */; };
    1944                 E3C2396D2721C9C200E37537 /* AudioComponentRegistration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */; };
    1945                 E3C2396E2721C9C200E37537 /* AudioComponentRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */; };
    19461944                E3CAAA442413279900CED2E2 /* AccessibilitySupportSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E3CAAA432413278A00CED2E2 /* AccessibilitySupportSPI.h */; };
    19471945                E413F59D1AC1ADC400345360 /* NetworkCacheEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = E413F59B1AC1ADB600345360 /* NetworkCacheEntry.h */; };
     
    58635861                E3BCE877267252120011D8DB /* AccessibilityPreferences.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityPreferences.cpp; sourceTree = "<group>"; };
    58645862                E3BCE878267252120011D8DB /* AccessibilityPreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilityPreferences.h; sourceTree = "<group>"; };
    5865                 E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioComponentRegistration.cpp; sourceTree = "<group>"; };
    5866                 E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioComponentRegistration.h; sourceTree = "<group>"; };
    58675863                E3CAAA432413278A00CED2E2 /* AccessibilitySupportSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySupportSPI.h; sourceTree = "<group>"; };
    58685864                E3EFB02C2550617C003C2F96 /* WebSystemSoundDelegate.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WebSystemSoundDelegate.cpp; sourceTree = "<group>"; };
     
    81558151                                A175C44921AA3170000037D0 /* ArgumentCodersCocoa.h */,
    81568152                                A175C44B21AA331B000037D0 /* ArgumentCodersCocoa.mm */,
    8157                                 E3C2396B2721C9C100E37537 /* AudioComponentRegistration.cpp */,
    8158                                 E3C2396C2721C9C200E37537 /* AudioComponentRegistration.h */,
    81598153                                1A698F171E4910220064E881 /* AuxiliaryProcessCocoa.mm */,
    81608154                                CE11AD511CBC482F00681EE5 /* CodeSigning.h */,
     
    1188311877                                AAFA634F234F7C6400FFA864 /* AsyncRevalidation.h in Headers */,
    1188411878                                BCEE966D112FAF57006BCC24 /* Attachment.h in Headers */,
    11885                                 E3C2396E2721C9C200E37537 /* AudioComponentRegistration.h in Headers */,
    1188611879                                512F589712A8838800629530 /* AuthenticationChallengeProxy.h in Headers */,
    1188711880                                512F589912A8838800629530 /* AuthenticationDecisionListener.h in Headers */,
     
    1413414127                                2DEB1D2E2127473600933906 /* ArgumentCodersCF.cpp in Sources */,
    1413514128                                2D92A77C212B6A7100F493FD /* Attachment.cpp in Sources */,
    14136                                 E3C2396D2721C9C200E37537 /* AudioComponentRegistration.cpp in Sources */,
    1413714129                                CD4570D424411D0F00A3DCEB /* AudioSessionRoutingArbitrator.cpp in Sources */,
    1413814130                                CD4570D3244113B500A3DCEB /* AudioSessionRoutingArbitratorProxyMessageReceiver.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.