Changeset 295560 in webkit
- Timestamp:
- Jun 15, 2022 8:39:17 AM (2 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/wtf/PlatformHave.h
r295557 r295560 1237 1237 #endif 1238 1238 1239 #if !defined(HAVE_AUDIO_COMPONENT_SERVER_REGISTRATIONS) && PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 120000 1240 #define HAVE_AUDIO_COMPONENT_SERVER_REGISTRATIONS 1 1241 #endif 1242 1239 1243 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 130000) 1240 1244 #define HAVE_SHARING_SERVICE_PICKER_POPOVER_SPI 1 -
trunk/Source/WebKit/GPUProcess/GPUProcess.messages.in
r295530 r295560 92 92 #endif 93 93 94 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 95 ConsumeAudioComponentRegistrations(IPC::SharedBufferReference registrationData) 96 #endif 97 94 98 #if HAVE(POWERLOG_TASK_MODE_QUERY) 95 99 EnablePowerLogging(WebKit::SandboxExtension::Handle handle) -
trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in
r295530 r295560 643 643 (ipc-posix-name-prefix "AudioIO")) 644 644 645 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 646 (deny mach-lookup (with telemetry) 647 (global-name "com.apple.audio.AudioComponentRegistrar")) 648 #else 645 649 (allow mach-lookup 646 650 (global-name "com.apple.audio.AudioComponentRegistrar")) 651 #endif 647 652 648 653 #if !ENABLE(CFPREFS_DIRECT_MODE) -
trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in
r295235 r295560 694 694 (xpc-service-name "com.apple.audio.toolbox.reporting.service") 695 695 ) 696 697 (deny mach-lookup (with no-log) (with telemetry) 698 (global-name "com.apple.audio.AudioComponentRegistrar")) 696 699 697 700 (deny mach-lookup (with telemetry) -
trunk/Source/WebKit/Shared/AuxiliaryProcess.h
r295270 r295560 45 45 OBJC_CLASS NSDictionary; 46 46 47 namespace IPC { 48 class SharedBufferReference; 49 } 50 47 51 namespace WebKit { 48 52 … … 153 157 void populateMobileGestaltCache(std::optional<SandboxExtension::Handle>&& mobileGestaltExtensionHandle); 154 158 159 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 160 void consumeAudioComponentRegistrations(const IPC::SharedBufferReference&); 161 #endif 162 155 163 private: 156 164 virtual bool shouldOverrideQuarantine() { return true; } -
trunk/Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm
r295510 r295560 47 47 #endif 48 48 49 #import <pal/cf/AudioToolboxSoftLink.h> 50 49 51 #if HAVE(UPDATE_WEB_ACCESSIBILITY_SETTINGS) && ENABLE(CFPREFS_DIRECT_MODE) 50 52 SOFT_LINK_LIBRARY_OPTIONAL(libAccessibility) … … 239 241 } 240 242 243 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 244 void AuxiliaryProcess::consumeAudioComponentRegistrations(const IPC::SharedBufferReference& data) 245 { 246 using namespace PAL; 247 248 if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentApplyServerRegistrations()) 249 return; 250 251 if (data.isNull()) 252 return; 253 auto registrations = data.unsafeBuffer()->createCFData(); 254 255 auto err = AudioComponentApplyServerRegistrations(registrations.get()); 256 if (noErr != err) 257 RELEASE_LOG_ERROR(Process, "Could not apply AudioComponent registrations, err(%ld)", static_cast<long>(err)); 258 } 259 #endif 260 241 261 } // namespace WebKit -
trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h
r295087 r295560 178 178 bool mayBecomeUnresponsive() override; 179 179 180 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 181 static RefPtr<WebCore::SharedBuffer> fetchAudioComponentServerRegistrations(); 182 #endif 183 180 184 private: 181 185 virtual void connectionWillOpen(IPC::Connection&); -
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm
r294852 r295560 41 41 #import "WebProcessPool.h" 42 42 #import <WebCore/RuntimeApplicationChecks.h> 43 #import <WebCore/WebMAudioUtilitiesCocoa.h>44 43 #import <sys/sysctl.h> 45 44 #import <wtf/NeverDestroyed.h> … … 67 66 #endif 68 67 69 #import <pal/cf/AudioToolboxSoftLink.h>70 71 68 namespace WebKit { 72 69 … … 271 268 #endif 272 269 270 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 273 271 void WebProcessProxy::sendAudioComponentRegistrations() 274 272 { 275 using namespace PAL;276 277 if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentFetchServerRegistrations())278 return;279 280 273 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), [weakThis = WeakPtr { *this }] () mutable { 281 CFDataRef registrations { nullptr }; 282 283 WebCore::registerOpusDecoderIfNeeded(); 284 WebCore::registerVorbisDecoderIfNeeded(); 285 if (noErr != AudioComponentFetchServerRegistrations(®istrations) || !registrations) 274 275 auto registrations = fetchAudioComponentServerRegistrations(); 276 if (!registrations) 286 277 return; 287 288 RunLoop::main().dispatch([weakThis = WTFMove(weakThis), registrations = adoptCF(registrations)] (){278 279 RunLoop::main().dispatch([weakThis = WTFMove(weakThis), registrations = WTFMove(registrations)] () mutable { 289 280 if (!weakThis) 290 281 return; 291 282 292 auto registrationData = WebCore::SharedBuffer::create(registrations.get()); 293 weakThis->send(Messages::WebProcess::ConsumeAudioComponentRegistrations(IPC::SharedBufferReference(WTFMove(registrationData))), 0); 283 weakThis->send(Messages::WebProcess::ConsumeAudioComponentRegistrations(IPC::SharedBufferReference(WTFMove(registrations))), 0); 294 284 }); 295 285 }); 296 286 } 287 #endif 297 288 298 289 bool WebProcessProxy::messageSourceIsValidWebContentProcess() -
trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
r295530 r295560 170 170 // Initialize the GPU process. 171 171 send(Messages::GPUProcess::InitializeGPUProcess(parameters), 0); 172 173 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 174 auto registrations = fetchAudioComponentServerRegistrations(); 175 if (registrations) 176 send(Messages::GPUProcess::ConsumeAudioComponentRegistrations(IPC::SharedBufferReference(WTFMove(registrations))), 0); 177 #endif 178 172 179 updateProcessAssertion(); 173 180 } -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r295365 r295560 912 912 #endif 913 913 914 #if PLATFORM(COCOA)914 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 915 915 process.sendAudioComponentRegistrations(); 916 916 #endif -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r295443 r295560 2246 2246 E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = E1E552C316AE065E004ED653 /* SandboxInitializationParameters.h */; }; 2247 2247 E1EE53E311F8CFC000CCBEE4 /* InjectedBundlePageEditorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EE53DC11F8CF9F00CCBEE4 /* InjectedBundlePageEditorClient.h */; }; 2248 E326E357284E580E00157372 /* AuxiliaryProcessProcyCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = E326E356284E580E00157372 /* AuxiliaryProcessProcyCocoa.mm */; }; 2248 2249 E36FF00327F36FBD004BE21A /* SandboxStateVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = E36FF00127F36FBD004BE21A /* SandboxStateVariables.h */; }; 2249 2250 E36FF00427F36FBD004BE21A /* preferences.sb in Resources */ = {isa = PBXBuildFile; fileRef = E36FF00227F36FBD004BE21A /* preferences.sb */; }; … … 7020 7021 E30CFB9D2660663C0094D9C0 /* com.apple.WebKit.WebContent.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = com.apple.WebKit.WebContent.sb; path = DerivedSources/WebKit/com.apple.WebKit.WebContent.sb; sourceTree = BUILT_PRODUCTS_DIR; }; 7021 7022 E313664D265EE5AF0051084F /* com.apple.WebKit.WebContent.sb.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.WebContent.sb.in; sourceTree = "<group>"; }; 7023 E326E356284E580E00157372 /* AuxiliaryProcessProcyCocoa.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = AuxiliaryProcessProcyCocoa.mm; sourceTree = "<group>"; }; 7022 7024 E3439B632345463A0011DE0B /* NetworkProcessConnectionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NetworkProcessConnectionInfo.h; path = Network/NetworkProcessConnectionInfo.h; sourceTree = "<group>"; }; 7023 7025 E34B110C27C46BC6006D2F2E /* libWebCoreTestShim.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libWebCoreTestShim.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; … … 8230 8232 2DC6D9C218C44A610043BAD4 /* WKWebViewContentProviderRegistry.mm */, 8231 8233 C1710CF224A7BD0300D7C112 /* XPCEventHandler.h */, 8234 E326E356284E580E00157372 /* AuxiliaryProcessProcyCocoa.mm */, 8232 8235 ); 8233 8236 path = Cocoa; … … 16801 16804 2D11B7622126A282006F8878 /* UnifiedSource9.cpp in Sources */, 16802 16805 2D11B7632126A282006F8878 /* UnifiedSource10-mm.mm in Sources */, 16806 E326E357284E580E00157372 /* AuxiliaryProcessProcyCocoa.mm in Sources */, 16803 16807 2D11B7642126A282006F8878 /* UnifiedSource10.cpp in Sources */, 16804 16808 2D11B7652126A282006F8878 /* UnifiedSource11-mm.mm in Sources */, -
trunk/Source/WebKit/WebProcess/WebProcess.h
r294802 r295560 79 79 } 80 80 81 namespace IPC {82 class SharedBufferReference;83 }84 85 81 namespace PAL { 86 82 class SessionID; … … 534 530 #endif 535 531 536 #if PLATFORM(COCOA)537 void consumeAudioComponentRegistrations(const IPC::SharedBufferReference&);538 #endif539 540 532 void platformInitializeProcess(const AuxiliaryProcessInitializationParameters&); 541 533 -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r294802 r295560 195 195 #endif 196 196 197 #if PLATFORM(COCOA)197 #if HAVE(AUDIO_COMPONENT_SERVER_REGISTRATIONS) 198 198 ConsumeAudioComponentRegistrations(IPC::SharedBufferReference registrationData) 199 #endif 200 201 #if PLATFORM(COCOA) 199 202 AccessibilityPreferencesDidChange(struct WebKit::AccessibilityPreferences accessibilityPreferences) 200 203 #endif -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r295476 r295560 162 162 163 163 #import <WebCore/MediaAccessibilitySoftLink.h> 164 #import <pal/cf/AudioToolboxSoftLink.h>165 164 #import <pal/cf/VideoToolboxSoftLink.h> 166 165 #import <pal/cocoa/AVFoundationSoftLink.h> … … 1256 1255 #endif 1257 1256 1258 void WebProcess::consumeAudioComponentRegistrations(const IPC::SharedBufferReference& data)1259 {1260 using namespace PAL;1261 1262 if (!PAL::isAudioToolboxCoreFrameworkAvailable() || !PAL::canLoad_AudioToolboxCore_AudioComponentApplyServerRegistrations())1263 return;1264 1265 if (data.isNull())1266 return;1267 auto registrations = data.unsafeBuffer()->createCFData();1268 1269 auto err = AudioComponentApplyServerRegistrations(registrations.get());1270 if (noErr != err)1271 WEBPROCESS_RELEASE_LOG_ERROR(Process, "Could not apply AudioComponent registrations, err(%ld)", static_cast<long>(err));1272 }1273 1274 1257 #if PLATFORM(MAC) 1275 1258 void WebProcess::openDirectoryCacheInvalidated(SandboxExtension::Handle&& handle)
Note: See TracChangeset
for help on using the changeset viewer.