ObjC RTCCVPixelBuffer should be prefixed to not conflict with other apps
<rdar://problem/49554670>
Created attachment 375231 [details] Patch
Comment on attachment 375231 [details] Patch Why only this class? What about all the other classes defined in libwebrtc?
(In reply to Darin Adler from comment #3) > Comment on attachment 375231 [details] > Patch > > Why only this class? What about all the other classes defined in libwebrtc? The other classes are prefixed. I missed that one when switching the implementation to use the ObjC libwebrtc factories. It would be nice to have some kind of build checks that enforces that libwebrtc does not define any ObjC RTCXX interface.
Comment on attachment 375231 [details] Patch Clearing flags on attachment: 375231 Committed r248077: <https://trac.webkit.org/changeset/248077>
All reviewed patches have been landed. Closing bug.
(In reply to youenn fablet from comment #4) > It would be nice to have some kind of build checks that enforces that > libwebrtc does not define any ObjC RTCXX interface. Should be easy to add that.
(In reply to Darin Adler from comment #7) > (In reply to youenn fablet from comment #4) > > It would be nice to have some kind of build checks that enforces that > > libwebrtc does not define any ObjC RTCXX interface. > > Should be easy to add that. You should be able to do something like this in a build phase script that only runs for Engineering builds (other build phase scripts do this in WebCore): $ xcrun nm -U /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libwebrtc.dylib | grep _OBJC_CLASS_ | grep -v '_OBJC_CLASS_$_WK_' 000000000063b360 s _OBJC_CLASS_$_RTCCVPixelBuffer 000000000063b748 s _OBJC_CLASS_$_RTCVideoDecoderVP8 000000000063b9f0 s _OBJC_CLASS_$_RTCWrappedNativeVideoDecoder 000000000063ba40 s _OBJC_CLASS_$_RTCWrappedNativeVideoEncoder That was from macOS 10.4.4 Mojave. Looks like we missed four classes there. If the output from that shell command is empty, we're good.
> You should be able to do something like this in a build phase script that > only runs for Engineering builds (other build phase scripts do this in > WebCore): Thanks > $ xcrun nm -U > /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore. > framework/Versions/A/Frameworks/libwebrtc.dylib | grep _OBJC_CLASS_ | grep > -v '_OBJC_CLASS_$_WK_' > 000000000063b360 s _OBJC_CLASS_$_RTCCVPixelBuffer > 000000000063b748 s _OBJC_CLASS_$_RTCVideoDecoderVP8 > 000000000063b9f0 s _OBJC_CLASS_$_RTCWrappedNativeVideoDecoder > 000000000063ba40 s _OBJC_CLASS_$_RTCWrappedNativeVideoEncoder > > That was from macOS 10.4.4 Mojave. Looks like we missed four classes there. > > If the output from that shell command is empty, we're good. It only includes RTCCVPixelBuffer in recent builds so we should be good.