Create AVFoundationSoftLink.{h,mm} to reduce dirty memory pages and duplicate code. There are currently 34 source files that appear to soft-link AVFoundation.framework, which means each contains duplicate code to do the symlinking as well as duplicate globals that will cause the memory pages that contain them to become dirty. Consolidating these into one source file will reduce the duplicate code, and should minimize dirty pages. $ grep -r 'SOFT_LINK_FRAMEWORK.*(' Source | grep -v '_FOR_SOURCE' | grep -v '_FOR_HEADER' | grep -v '#define' | grep -v ChangeLog | grep AVFoundation | egrep '\.(cpp|mm):' | cut -d':' -f1 | sort | uniq Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm Source/WebCore/platform/audio/ios/AudioSessionIOS.mm Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/MediaPlaybackTargetMac.mm Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.mm Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.mm Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm Source/WebKit/Shared/ios/WebIconUtilities.mm Source/WebKit/Shared/mac/WebCoreArgumentCodersMac.mm Source/WebKit/UIProcess/Cocoa/UIDelegate.mm Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm Source/WebKitLegacy/mac/WebView/WebVideoFullscreenController.mm
<rdar://problem/47454979>
I guess we're using Bug 197171 for this instead. *** This bug has been marked as a duplicate of bug 197171 ***