WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-213000-20200610092346.patch (text/plain), 101.34 KB, created by
Dean Jackson
on 2020-06-09 16:23:47 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dean Jackson
Created:
2020-06-09 16:23:47 PDT
Size:
101.34 KB
patch
obsolete
>Subversion Revision: 262815 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index c48894114005cab8a4b8e5e356ab934ddeac5106..70f84a6c1015e442e44a2451f382c0bd1a7fa6e5 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,41 @@ >+2020-06-09 Dean Jackson <dino@apple.com> >+ >+ Stop using discriminatory names for WebGL and Plugin blocking >+ https://bugs.webkit.org/show_bug.cgi?id=213000 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * SourcesCocoa.txt: >+ * WebCore.xcodeproj/project.pbxproj: >+ * platform/mac/BlocklistUpdater.h: Renamed from Source/WebCore/platform/mac/BlacklistUpdater.h. >+ (WebCore::BlocklistUpdater::pluginBlocklist): >+ (WebCore::BlocklistUpdater::webGLBlocklist): >+ * platform/mac/BlocklistUpdater.mm: Renamed from Source/WebCore/platform/mac/BlacklistUpdater.mm. >+ (WebCore::BlocklistUpdater::readBlocklistData): >+ (WebCore::BlocklistUpdater::reloadIfNecessary): >+ (WebCore::BlocklistUpdater::initializeQueue): >+ * platform/mac/PluginBlocklist.h: Renamed from Source/WebCore/platform/mac/PluginBlacklist.h. >+ * platform/mac/PluginBlocklist.mm: Renamed from Source/WebCore/platform/mac/PluginBlacklist.mm. >+ (WebCore::PluginBlocklist::loadPolicyForPluginVersion): >+ (WebCore::PluginBlocklist::isPluginUpdateAvailable): >+ (WebCore::PluginBlocklist::create): >+ (WebCore::PluginBlocklist::~PluginBlocklist): >+ (WebCore::PluginBlocklist::splitOSVersion): >+ (WebCore::PluginBlocklist::loadPolicyForPlugin const): >+ (WebCore::PluginBlocklist::isUpdateAvailable const): >+ (WebCore::PluginBlocklist::PluginBlocklist): >+ * platform/mac/WebGLBlocklist.h: Renamed from Source/WebCore/platform/mac/WebGLBlacklist.h. >+ * platform/mac/WebGLBlocklist.mm: Renamed from Source/WebCore/platform/mac/WebGLBlacklist.mm. >+ (WebCore::buildInfoFromOSBuildString): >+ (WebCore::WebGLBlocklist::shouldBlockWebGL): >+ (WebCore::WebGLBlocklist::shouldSuggestBlockingWebGL): >+ (WebCore::matchesBuildInfo): >+ (WebCore::WebGLBlocklist::create): >+ (WebCore::WebGLBlocklist::shouldBlock const): >+ (WebCore::WebGLBlocklist::shouldSuggestBlocking const): >+ (WebCore::WebGLBlocklist::WebGLBlocklist): >+ (WebCore::WebGLBlocklist::~WebGLBlocklist): >+ > 2020-06-09 Frank Yang <guowei_yang@apple.com> > > WebKit Crashes when SVG Filter Logging is Turned On >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 1e391f42c14c40ff1be1d870388181863d05d428..783d8e8867795c748bb339ebfb98dfdb55ea50fc 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,19 @@ >+2020-06-09 Dean Jackson <dino@apple.com> >+ >+ Stop using discriminatory names for WebGL and Plugin blocking >+ https://bugs.webkit.org/show_bug.cgi?id=213000 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Shared/Plugins/Netscape/mac/PluginInformationMac.mm: >+ (WebKit::getPlatformPluginModuleInformation): >+ * UIProcess/API/C/mac/WKContextPrivateMac.mm: >+ (WKContextIsPlugInUpdateAvailable): >+ (WKContextShouldBlockWebGL): >+ (WKContextShouldSuggestBlockWebGL): >+ * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: >+ (WebKit::PluginInfoStore::defaultLoadPolicyForPlugin): >+ > 2020-06-09 Brian Burg <bburg@apple.com> > > [Cocoa] Element Send Keys can hang when an automation window becomes unfocused >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index 493fd0f87cfff4c69ebfc7a33f19d23d0de474d2..535c5c7bae876add92a4cb43ecafb77ff40a75c2 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,14 @@ >+2020-06-09 Dean Jackson <dino@apple.com> >+ >+ Stop using discriminatory names for WebGL and Plugin blocking >+ https://bugs.webkit.org/show_bug.cgi?id=213000 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebCoreSupport/WebFrameLoaderClient.mm: >+ (shouldBlockPlugin): >+ (shouldBlockWebGL): >+ > 2020-06-08 Jonathan Bedard <jbedard@apple.com> > > WebKitLegacy: Exclude NSURLConnectionSPI.h from watchOS >diff --git a/Source/WebCore/SourcesCocoa.txt b/Source/WebCore/SourcesCocoa.txt >index 2ac7da7693fb815b8627381a07ab2af0b77f11a2..a25286e0a68316e017c9140b90482bde0859102b 100644 >--- a/Source/WebCore/SourcesCocoa.txt >+++ b/Source/WebCore/SourcesCocoa.txt >@@ -448,7 +448,7 @@ platform/ios/wak/WebCoreThreadSystemInterface.cpp > platform/ios/wak/WKGraphics.mm > platform/ios/wak/WKView.mm > >-platform/mac/BlacklistUpdater.mm >+platform/mac/BlocklistUpdater.mm > platform/mac/CursorMac.mm @no-unify > platform/mac/KeyEventMac.mm @no-unify > platform/mac/PlaybackSessionInterfaceMac.mm @no-unify >@@ -463,7 +463,7 @@ platform/mac/PlatformEventFactoryMac.mm > platform/mac/PlatformPasteboardMac.mm > platform/mac/PlatformScreenMac.mm > platform/mac/PlatformSpeechSynthesizerMac.mm >-platform/mac/PluginBlacklist.mm >+platform/mac/PluginBlocklist.mm > platform/mac/PublicSuffixMac.mm > platform/mac/PowerObserverMac.cpp > platform/mac/RemoteCommandListenerMac.mm >@@ -486,7 +486,7 @@ platform/mac/WebCoreFullScreenWindow.mm > platform/mac/WebCoreNSFontManagerExtras.mm > platform/mac/WebCoreNSURLExtras.mm > platform/mac/WebCoreObjCExtras.mm >-platform/mac/WebGLBlacklist.mm >+platform/mac/WebGLBlocklist.mm > platform/mac/WebNSAttributedStringExtras.mm > platform/mac/WebPlaybackControlsManager.mm > platform/mac/WidgetMac.mm >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index d5337c95602f41ff9ad45f0bde7569506b4582e9..fc1c2f24aefae97c0ccc880f07dc5f6d08bd5e0a 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -75,9 +75,7 @@ > 066C772B0AB603B700238CC4 /* FileChooser.h in Headers */ = {isa = PBXBuildFile; fileRef = 066C772A0AB603B700238CC4 /* FileChooser.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 066C77310AB603FD00238CC4 /* RenderFileUploadControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 066C772F0AB603FD00238CC4 /* RenderFileUploadControl.h */; }; > 06E81ED70AB5D5E900C87837 /* LocalCurrentGraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 070334D31459FFAD008D8D45 /* TrackEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070334D01459FFAC008D8D45 /* TrackEvent.cpp */; }; > 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 070334D61459FFD5008D8D45 /* TrackBase.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 070334D9145A006F008D8D45 /* TrackBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070334D8145A006F008D8D45 /* TrackBase.cpp */; }; > 070363E2181A1CDC00C074A5 /* AVCaptureDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 070363DA181A1CDC00C074A5 /* AVCaptureDeviceManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 070363E3181A1CDC00C074A5 /* AVCaptureDeviceManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 070363DB181A1CDC00C074A5 /* AVCaptureDeviceManager.mm */; }; > 070363E6181A1CDC00C074A5 /* AVVideoCaptureSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 070363DE181A1CDC00C074A5 /* AVVideoCaptureSource.h */; }; >@@ -100,7 +98,6 @@ > 070E81D11BF27656001FDA48 /* VideoTrackPrivateMediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 070E81D01BF27656001FDA48 /* VideoTrackPrivateMediaStream.h */; }; > 070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 070F549717F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h */; }; > 0719427F1D088F21002AA51D /* AVAssetMIMETypeCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07C8AD111D073D630087C5CE /* AVAssetMIMETypeCache.mm */; }; >- 071A9EC2168FBC43002629F9 /* TextTrackCueGeneric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 071A9EC0168FB56C002629F9 /* TextTrackCueGeneric.cpp */; }; > 071A9EC3168FBC55002629F9 /* TextTrackCueGeneric.h in Headers */ = {isa = PBXBuildFile; fileRef = 071A9EC1168FB56C002629F9 /* TextTrackCueGeneric.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 071E496E1AD5AA0D008A50B4 /* MediaPlaybackTargetCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 071E496D1AD5AA0D008A50B4 /* MediaPlaybackTargetCocoa.mm */; }; > 071E49701AD5AB5E008A50B4 /* MediaPlaybackTargetCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 071E496F1AD5AB5E008A50B4 /* MediaPlaybackTargetCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -124,16 +121,13 @@ > 073A15542177A42600EA08F2 /* RemoteVideoSample.h in Headers */ = {isa = PBXBuildFile; fileRef = 073A15532177A39A00EA08F2 /* RemoteVideoSample.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 073B87671E4385AC0071C0EC /* AudioSampleBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 073B87631E43859D0071C0EC /* AudioSampleBufferList.h */; }; > 073B87691E4385AC0071C0EC /* AudioSampleDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 073B87651E43859D0071C0EC /* AudioSampleDataSource.h */; }; >- 073BDC051F68436100EE34ED /* TrackPrivateBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076E11BE1F683E0D00177395 /* TrackPrivateBase.cpp */; }; > 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedTextTrack.cpp */; }; > 0753860314489E9800B78452 /* CachedTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedTextTrack.h */; }; > 0754A5EA215EA3B8002D3A99 /* RealtimeMediaSourceFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 0754A5E8215EA3B7002D3A99 /* RealtimeMediaSourceFactory.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 0757B13E214AE79900794B0D /* VideoPreset.h in Headers */ = {isa = PBXBuildFile; fileRef = 0757B13C214AE79700794B0D /* VideoPreset.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 07611DC12440E59B00D80704 /* MediaUsageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 07611DB8243FB75C00D80704 /* MediaUsageInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 07638A991884487200E15A1B /* MediaSessionManagerIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 07638A971884487200E15A1B /* MediaSessionManagerIOS.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */; }; >- 076970861463AD8700F502CF /* TextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076970841463AD8700F502CF /* TextTrackList.cpp */; }; > 076970871463AD8700F502CF /* TextTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = 076970851463AD8700F502CF /* TextTrackList.h */; }; > 076D1C1F23F6EB5B00D95B06 /* SerializedPlatformDataCueValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 076D1C1D23F6D9D800D95B06 /* SerializedPlatformDataCueValue.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 076F0D0E12B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 076F0D0A12B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.h */; }; >@@ -178,7 +172,6 @@ > 078E43DE1ABB6F6F001C2FA6 /* MediaPlaybackTargetPickerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 078E43DC1ABB6F6F001C2FA6 /* MediaPlaybackTargetPickerMac.mm */; }; > 078ED193216D079500775B33 /* ImageTransferSessionVT.h in Headers */ = {isa = PBXBuildFile; fileRef = 0746D30C2146EA38003DDF84 /* ImageTransferSessionVT.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 079216551AA560AA00A3C049 /* MediaPlaybackTargetClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 079216531AA560AA00A3C049 /* MediaPlaybackTargetClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 07941791166E855F009416C2 /* InbandTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0794178F166E855F009416C2 /* InbandTextTrack.cpp */; }; > 07941792166E855F009416C2 /* InbandTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07941790166E855F009416C2 /* InbandTextTrack.h */; }; > 07941794166EA04E009416C2 /* InbandTextTrackPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 07941793166EA04E009416C2 /* InbandTextTrackPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 07969DAC17D14151007FF842 /* JSRTCDataChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 07969D9217D14151007FF842 /* JSRTCDataChannel.h */; }; >@@ -602,8 +595,8 @@ > 1AF89A421518FDEA00E547B5 /* TiledBacking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF89A411518FDEA00E547B5 /* TiledBacking.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 1AF8E11A1256592600230FF7 /* ProxyServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF8E1191256592600230FF7 /* ProxyServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 1AFE119A0CBFFCC4003017FA /* JSSQLResultSetRowList.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFE11980CBFFCC4003017FA /* JSSQLResultSetRowList.h */; }; >- 1AFFC4581D5E865500267A66 /* WebGLBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFFC4511D5E7EC700267A66 /* WebGLBlacklist.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 1AFFC4591D5E866100267A66 /* PluginBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFFC44F1D5E7EC700267A66 /* PluginBlacklist.h */; settings = {ATTRIBUTES = (Private, ); }; }; >+ 1AFFC4581D5E865500267A66 /* WebGLBlocklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFFC4511D5E7EC700267A66 /* WebGLBlocklist.h */; settings = {ATTRIBUTES = (Private, ); }; }; >+ 1AFFC4591D5E866100267A66 /* PluginBlocklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFFC44F1D5E7EC700267A66 /* PluginBlocklist.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 1B124D8D1D380B7000ECDFB0 /* MediaSampleAVFObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B124D8C1D380B7000ECDFB0 /* MediaSampleAVFObjC.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 1B124D8F1D380BB600ECDFB0 /* MediaSampleAVFObjC.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1B124D8E1D380BB600ECDFB0 /* MediaSampleAVFObjC.mm */; }; > 1BF9DB3C1D3973AD0026AEB7 /* MediaSample.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EC7181ED60100EE4C41 /* MediaSample.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -1919,7 +1912,6 @@ > 5CDD83641E4325A000621E92 /* LibWebRTCDataChannelHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CDD833F1E43253D00621E92 /* LibWebRTCDataChannelHandler.cpp */; }; > 5CDFA6C81AA4F2DA00EA8746 /* ContentExtensionActions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDFA6C71AA4F2DA00EA8746 /* ContentExtensionActions.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 5CEEE4361F5F8F210014A5F5 /* RectEdges.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C97A3361F5F7A6500105207 /* RectEdges.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 5D21A80213ECE5DF00BB7064 /* WebVTTParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D21A80013ECE5DF00BB7064 /* WebVTTParser.cpp */; }; > 5D21A80313ECE5DF00BB7064 /* WebVTTParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D21A80113ECE5DF00BB7064 /* WebVTTParser.h */; }; > 5D5975B319635F1100D00878 /* SystemVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D5975B119635F1100D00878 /* SystemVersion.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 5D925B680F64D4DD00B847F0 /* ScrollAlignment.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D925B660F64D4DD00B847F0 /* ScrollAlignment.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -2191,7 +2183,6 @@ > 7A1D7FCB18F85F0F00C385AD /* mediaControlsLocalizedStrings.js in Resources */ = {isa = PBXBuildFile; fileRef = 7A1D7FC918F85F0F00C385AD /* mediaControlsLocalizedStrings.js */; }; > 7A22732120C9FAFE00DB1DEF /* WebKitNSImageExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A22731F20C9F9DA00DB1DEF /* WebKitNSImageExtras.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 7A29F57218C69514004D0F81 /* OutOfBandTextTrackPrivateAVF.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A29F57118C69514004D0F81 /* OutOfBandTextTrackPrivateAVF.h */; }; >- 7A45032F18DB717200377B34 /* BufferedLineReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A45032D18DB717200377B34 /* BufferedLineReader.cpp */; }; > 7A45033018DB717200377B34 /* BufferedLineReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A45032E18DB717200377B34 /* BufferedLineReader.h */; }; > 7A54858014E02D51006AE05A /* InspectorHistory.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A54857E14E02D51006AE05A /* InspectorHistory.h */; }; > 7A54881714E432A1006AE05A /* DOMPatchSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A54881514E432A1006AE05A /* DOMPatchSupport.h */; }; >@@ -2199,7 +2190,6 @@ > 7A5699702086C619000E0433 /* CookieRequestHeaderFieldProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A56996E2086C618000E0433 /* CookieRequestHeaderFieldProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 7A674BDC0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */; }; > 7A929CA71C598AA9004DF226 /* ResourceLoadStatistics.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A929CA21C598378004DF226 /* ResourceLoadStatistics.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 7A93868518DCC14500B8263D /* VTTScanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A93868218DCC14500B8263D /* VTTScanner.cpp */; }; > 7A93868618DCC14500B8263D /* VTTScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A93868318DCC14500B8263D /* VTTScanner.h */; }; > 7AA3A69A194A64E7001CBD24 /* TileController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AA3A696194A64E7001CBD24 /* TileController.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 7AA3A69C194A64E7001CBD24 /* TileGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AA3A698194A64E7001CBD24 /* TileGrid.h */; }; >@@ -2210,9 +2200,7 @@ > 7ADE722610CBBB9B006B3B3A /* ContextMenuProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ADE722510CBBB9B006B3B3A /* ContextMenuProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 7AE335F21ACB09E200E401EF /* WheelEventTestMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE335F01ACB09E200E401EF /* WheelEventTestMonitor.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 7AE6C93C1BE0C60100E19E03 /* MainThreadSharedTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE6C93A1BE0C60100E19E03 /* MainThreadSharedTimer.h */; }; >- 7AF9B20218CFB2DF00C64BEF /* VTTRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF9B1FC18CFB2DF00C64BEF /* VTTRegion.cpp */; }; > 7AF9B20318CFB2DF00C64BEF /* VTTRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF9B1FD18CFB2DF00C64BEF /* VTTRegion.h */; }; >- 7AF9B20518CFB2DF00C64BEF /* VTTRegionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF9B1FF18CFB2DF00C64BEF /* VTTRegionList.cpp */; }; > 7AF9B20618CFB2DF00C64BEF /* VTTRegionList.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF9B20018CFB2DF00C64BEF /* VTTRegionList.h */; }; > 7AF9B20D18CFB5F400C64BEF /* JSVTTRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF9B20918CFB5F200C64BEF /* JSVTTRegion.h */; }; > 7AF9B20F18CFB5F400C64BEF /* JSVTTRegionList.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF9B20B18CFB5F300C64BEF /* JSVTTRegionList.h */; }; >@@ -2823,12 +2811,8 @@ > 974A862314B7ADBB003FDC76 /* FrameDestructionObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 974A862114B7ADBB003FDC76 /* FrameDestructionObserver.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 974D2DA5146A535D00D51F8B /* SecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 974D2DA3146A535D00D51F8B /* SecurityPolicy.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 9752D38E1413104B003305BD /* JSHTMLSpanElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 9752D38C1413104B003305BD /* JSHTMLSpanElement.h */; }; >- 9759E93E14EF1CF80026A2DD /* LoadableTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9759E93414EF1CF80026A2DD /* LoadableTextTrack.cpp */; }; >- 9759E93F14EF1CF80026A2DD /* TextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9759E93514EF1CF80026A2DD /* TextTrack.cpp */; }; > 9759E94014EF1CF80026A2DD /* TextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 9759E93614EF1CF80026A2DD /* TextTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 9759E94214EF1CF80026A2DD /* TextTrackCue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9759E93814EF1CF80026A2DD /* TextTrackCue.cpp */; }; > 9759E94314EF1CF80026A2DD /* TextTrackCue.h in Headers */ = {isa = PBXBuildFile; fileRef = 9759E93914EF1CF80026A2DD /* TextTrackCue.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- 9759E94514EF1CF80026A2DD /* TextTrackCueList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9759E93B14EF1CF80026A2DD /* TextTrackCueList.cpp */; }; > 9759E94614EF1CF80026A2DD /* TextTrackCueList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9759E93C14EF1CF80026A2DD /* TextTrackCueList.h */; }; > 9759E94914EF1D490026A2DD /* LoadableTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 9759E94814EF1D490026A2DD /* LoadableTextTrack.h */; }; > 975CA28B130365F800E99AD9 /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 975CA288130365F800E99AD9 /* Crypto.h */; }; >@@ -3471,7 +3455,6 @@ > ADDF1AD71257CD9A0003A759 /* RenderSVGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = ADDF1AD51257CD9A0003A759 /* RenderSVGPath.h */; }; > ADEC78F818EE5308001315C2 /* JSElementCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = ADEC78F718EE5308001315C2 /* JSElementCustom.h */; settings = {ATTRIBUTES = (Private, ); }; }; > B10B6980140C174000BC1C26 /* WebVTTToken.h in Headers */ = {isa = PBXBuildFile; fileRef = B10B697D140C174000BC1C26 /* WebVTTToken.h */; }; >- B10B6981140C174000BC1C26 /* WebVTTTokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B10B697E140C174000BC1C26 /* WebVTTTokenizer.cpp */; }; > B10B6982140C174000BC1C26 /* WebVTTTokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = B10B697F140C174000BC1C26 /* WebVTTTokenizer.h */; }; > B1AD4E7413A12A4600846B27 /* TextTrackLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = B1AD4E7213A12A4600846B27 /* TextTrackLoader.h */; }; > B20111080AB7740500DB0E68 /* JSSVGAElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B20111060AB7740500DB0E68 /* JSSVGAElement.h */; }; >@@ -3973,33 +3956,23 @@ > BCFB2E5E0979E46400BA703D /* CachedResourceClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFB2E5D0979E46400BA703D /* CachedResourceClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF648F0EAD15C200C1D6F7 /* LengthBox.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF64900EAD15C200C1D6F7 /* LengthSize.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- BE16C59217CFE17200852C04 /* InbandGenericTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE16C58E17CFE17200852C04 /* InbandGenericTextTrack.cpp */; }; > BE16C59317CFE17200852C04 /* InbandGenericTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE16C58F17CFE17200852C04 /* InbandGenericTextTrack.h */; }; >- BE16C59417CFE17200852C04 /* InbandWebVTTTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE16C59017CFE17200852C04 /* InbandWebVTTTextTrack.cpp */; }; > BE16C59517CFE17200852C04 /* InbandWebVTTTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE16C59117CFE17200852C04 /* InbandWebVTTTextTrack.h */; }; >- BE20507918A458680080647E /* VTTCue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE20507618A458460080647E /* VTTCue.cpp */; }; > BE20507A18A4586B0080647E /* VTTCue.h in Headers */ = {isa = PBXBuildFile; fileRef = BE20507718A458460080647E /* VTTCue.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BE20507E18A458C20080647E /* RenderVTTCue.h in Headers */ = {isa = PBXBuildFile; fileRef = BE20507C18A458B10080647E /* RenderVTTCue.h */; }; > BE20508218A460C30080647E /* JSVTTCue.h in Headers */ = {isa = PBXBuildFile; fileRef = BE20508018A460AA0080647E /* JSVTTCue.h */; }; >- BE23480C18A9870B00E4B6E8 /* DataCue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE23480918A9870300E4B6E8 /* DataCue.cpp */; }; > BE23480D18A9871400E4B6E8 /* DataCue.h in Headers */ = {isa = PBXBuildFile; fileRef = BE23480A18A9870300E4B6E8 /* DataCue.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BE61039E18A9D65A00DD50D7 /* JSDataCue.h in Headers */ = {isa = PBXBuildFile; fileRef = BE61039C18A9D61200DD50D7 /* JSDataCue.h */; }; >- BE88E0C11715CE2600658D98 /* TrackListBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0BF1715CE2600658D98 /* TrackListBase.cpp */; }; > BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0C01715CE2600658D98 /* TrackListBase.h */; }; >- BE88E0D81715D2A200658D98 /* AudioTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0CC1715D2A200658D98 /* AudioTrack.cpp */; }; > BE88E0D91715D2A200658D98 /* AudioTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0CD1715D2A200658D98 /* AudioTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- BE88E0DB1715D2A200658D98 /* AudioTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0CF1715D2A200658D98 /* AudioTrackList.cpp */; }; > BE88E0DC1715D2A200658D98 /* AudioTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D01715D2A200658D98 /* AudioTrackList.h */; }; >- BE88E0DE1715D2A200658D98 /* VideoTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0D21715D2A200658D98 /* VideoTrack.cpp */; }; > BE88E0DF1715D2A200658D98 /* VideoTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D31715D2A200658D98 /* VideoTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- BE88E0E11715D2A200658D98 /* VideoTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0D51715D2A200658D98 /* VideoTrackList.cpp */; }; > BE88E0E21715D2A200658D98 /* VideoTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D61715D2A200658D98 /* VideoTrackList.h */; }; > BE8EF043171C8FF9009B48C3 /* JSAudioTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF03F171C8FF9009B48C3 /* JSAudioTrack.h */; }; > BE8EF045171C8FF9009B48C3 /* JSAudioTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF041171C8FF9009B48C3 /* JSAudioTrackList.h */; }; > BE8EF04B171C9014009B48C3 /* JSVideoTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF047171C9014009B48C3 /* JSVideoTrack.h */; }; > BE8EF04D171C9014009B48C3 /* JSVideoTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF049171C9014009B48C3 /* JSVideoTrackList.h */; }; > BE913D80181EF92400DCB09E /* TrackPrivateBase.h in Headers */ = {isa = PBXBuildFile; fileRef = BE913D7F181EF8E500DCB09E /* TrackPrivateBase.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- BE961C5418AD338500D07DC5 /* InbandDataTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE961C5218AD337C00D07DC5 /* InbandDataTextTrack.cpp */; }; > BE961C5518AD338C00D07DC5 /* InbandDataTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE961C5318AD337C00D07DC5 /* InbandDataTextTrack.h */; }; > BEA807C90F714A0300524199 /* SelectionRect.h in Headers */ = {isa = PBXBuildFile; fileRef = BEA807C70F714A0300524199 /* SelectionRect.h */; settings = {ATTRIBUTES = (Private, ); }; }; > BEF29EEB1715DD0900C4B4C9 /* AudioTrackPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF29EE91715DD0900C4B4C9 /* AudioTrackPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -4096,7 +4069,6 @@ > CD19FEA81F573972000C42FB /* ImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = CD19FEA61F573972000C42FB /* ImageDecoder.h */; }; > CD19FEAE1F574B6D000C42FB /* ImageDecoderAVFObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = CD19FEAC1F574B6D000C42FB /* ImageDecoderAVFObjC.h */; }; > CD19FEAF1F574B6D000C42FB /* ImageDecoderAVFObjC.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD19FEAD1F574B6D000C42FB /* ImageDecoderAVFObjC.mm */; }; >- CD1E7347167BC78E009A885D /* TextTrackRepresentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD1E7346167BC78E009A885D /* TextTrackRepresentation.cpp */; }; > CD225C0B1C46FBF400140761 /* WebCoreNSURLSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD225C091C46FBF400140761 /* WebCoreNSURLSession.mm */; }; > CD225C0C1C46FBF400140761 /* WebCoreNSURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = CD225C0A1C46FBF400140761 /* WebCoreNSURLSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; > CD27AE5022A9868700947FF9 /* ImageRotationSessionVT.h in Headers */ = {isa = PBXBuildFile; fileRef = CD27AE4E22A9868700947FF9 /* ImageRotationSessionVT.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -5058,7 +5030,6 @@ > EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE3A4FF0C7A430600956A37 /* ColorMac.h */; settings = {ATTRIBUTES = (Private, ); }; }; > EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; }; > EFCC6C8F20FE914400A2321B /* CanvasActivityRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = EFCC6C8D20FE914000A2321B /* CanvasActivityRecord.h */; settings = {ATTRIBUTES = (Private, ); }; }; >- F12171F516A8CED2000053CA /* WebVTTElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F12171F316A8BC63000053CA /* WebVTTElement.cpp */; }; > F12171F616A8CF0B000053CA /* WebVTTElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F12171F416A8BC63000053CA /* WebVTTElement.h */; }; > F32BDCD92363AACA0073B6AE /* UserGestureEmulationScope.h in Headers */ = {isa = PBXBuildFile; fileRef = F32BDCD72363AACA0073B6AE /* UserGestureEmulationScope.h */; }; > F344C7141125B82C00F26EEE /* InspectorFrontendClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F344C7121125B82C00F26EEE /* InspectorFrontendClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; >@@ -6533,12 +6504,12 @@ > 1AF8E1C1125673E000230FF7 /* ProxyServerCFNet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProxyServerCFNet.cpp; sourceTree = "<group>"; }; > 1AFE11970CBFFCC4003017FA /* JSSQLResultSetRowList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLResultSetRowList.cpp; sourceTree = "<group>"; }; > 1AFE11980CBFFCC4003017FA /* JSSQLResultSetRowList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLResultSetRowList.h; sourceTree = "<group>"; }; >- 1AFFC44D1D5E7EC700267A66 /* BlacklistUpdater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlacklistUpdater.h; sourceTree = "<group>"; }; >- 1AFFC44E1D5E7EC700267A66 /* BlacklistUpdater.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlacklistUpdater.mm; sourceTree = "<group>"; }; >- 1AFFC44F1D5E7EC700267A66 /* PluginBlacklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginBlacklist.h; sourceTree = "<group>"; }; >- 1AFFC4501D5E7EC700267A66 /* PluginBlacklist.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginBlacklist.mm; sourceTree = "<group>"; }; >- 1AFFC4511D5E7EC700267A66 /* WebGLBlacklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLBlacklist.h; sourceTree = "<group>"; }; >- 1AFFC4521D5E7EC700267A66 /* WebGLBlacklist.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebGLBlacklist.mm; sourceTree = "<group>"; }; >+ 1AFFC44D1D5E7EC700267A66 /* BlocklistUpdater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlocklistUpdater.h; sourceTree = "<group>"; }; >+ 1AFFC44E1D5E7EC700267A66 /* BlocklistUpdater.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlocklistUpdater.mm; sourceTree = "<group>"; }; >+ 1AFFC44F1D5E7EC700267A66 /* PluginBlocklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginBlocklist.h; sourceTree = "<group>"; }; >+ 1AFFC4501D5E7EC700267A66 /* PluginBlocklist.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginBlocklist.mm; sourceTree = "<group>"; }; >+ 1AFFC4511D5E7EC700267A66 /* WebGLBlocklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLBlocklist.h; sourceTree = "<group>"; }; >+ 1AFFC4521D5E7EC700267A66 /* WebGLBlocklist.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebGLBlocklist.mm; sourceTree = "<group>"; }; > 1B124D8C1D380B7000ECDFB0 /* MediaSampleAVFObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSampleAVFObjC.h; sourceTree = "<group>"; }; > 1B124D8E1D380BB600ECDFB0 /* MediaSampleAVFObjC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaSampleAVFObjC.mm; sourceTree = "<group>"; }; > 1BE5BFC11D515715001666D9 /* MediaConstraints.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaConstraints.cpp; sourceTree = "<group>"; }; >@@ -20915,8 +20886,8 @@ > 6582A14809999D6C00BEEB6D /* mac */ = { > isa = PBXGroup; > children = ( >- 1AFFC44D1D5E7EC700267A66 /* BlacklistUpdater.h */, >- 1AFFC44E1D5E7EC700267A66 /* BlacklistUpdater.mm */, >+ 1AFFC44D1D5E7EC700267A66 /* BlocklistUpdater.h */, >+ 1AFFC44E1D5E7EC700267A66 /* BlocklistUpdater.mm */, > F58784F002DE375901EA4122 /* CursorMac.mm */, > E1BA66F01742BD8600C20251 /* DynamicLinkerInterposing.h */, > 935C476E09AC4D7300A6AAB4 /* KeyEventMac.mm */, >@@ -20939,8 +20910,8 @@ > 29E4D8E016B0959800C84704 /* PlatformSpeechSynthesizerMac.mm */, > CDA29A151CBDA56C00901CCF /* PlaybackSessionInterfaceMac.h */, > CDA29A141CBDA56C00901CCF /* PlaybackSessionInterfaceMac.mm */, >- 1AFFC44F1D5E7EC700267A66 /* PluginBlacklist.h */, >- 1AFFC4501D5E7EC700267A66 /* PluginBlacklist.mm */, >+ 1AFFC44F1D5E7EC700267A66 /* PluginBlocklist.h */, >+ 1AFFC4501D5E7EC700267A66 /* PluginBlocklist.mm */, > 4634592B1AC2271000ECB71C /* PowerObserverMac.cpp */, > 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */, > 0081FEFE16B0A2B6008AAA7A /* PublicSuffixMac.mm */, >@@ -20980,8 +20951,8 @@ > B50F5B800E96CD9900AD71A6 /* WebCoreObjCExtras.mm */, > BE855F7F0701E83500239769 /* WebCoreView.h */, > BE8560510701F91100239769 /* WebCoreView.m */, >- 1AFFC4511D5E7EC700267A66 /* WebGLBlacklist.h */, >- 1AFFC4521D5E7EC700267A66 /* WebGLBlacklist.mm */, >+ 1AFFC4511D5E7EC700267A66 /* WebGLBlocklist.h */, >+ 1AFFC4521D5E7EC700267A66 /* WebGLBlocklist.mm */, > E1A3162B134BC32D007C9A4F /* WebNSAttributedStringExtras.h */, > E1A3162C134BC32D007C9A4F /* WebNSAttributedStringExtras.mm */, > CD5896E01CD2B15100B3BCC8 /* WebPlaybackControlsManager.h */, >@@ -32536,7 +32507,7 @@ > CDA29A171CBDA56C00901CCF /* PlaybackSessionInterfaceMac.h in Headers */, > CDA29A0B1CBD9A7400901CCF /* PlaybackSessionModel.h in Headers */, > CDA29A0F1CBD9CFE00901CCF /* PlaybackSessionModelMediaElement.h in Headers */, >- 1AFFC4591D5E866100267A66 /* PluginBlacklist.h in Headers */, >+ 1AFFC4591D5E866100267A66 /* PluginBlocklist.h in Headers */, > 31D591B316697A6C00E6BF02 /* PlugInClient.h in Headers */, > A9C6E4F40D745E48006442E9 /* PluginData.h in Headers */, > 97205ABC1239292700B17380 /* PluginDocument.h in Headers */, >@@ -33703,7 +33674,7 @@ > D3F3D36E1A69B7E00059FC2B /* WebGL2RenderingContext.h in Headers */, > A7D20F6D107F438B00A80392 /* WebGLActiveInfo.h in Headers */, > 6E47E66110B7944B00B186C8 /* WebGLAny.h in Headers */, >- 1AFFC4581D5E865500267A66 /* WebGLBlacklist.h in Headers */, >+ 1AFFC4581D5E865500267A66 /* WebGLBlocklist.h in Headers */, > 49C7B9C91042D32F0009D447 /* WebGLBuffer.h in Headers */, > D08B00E420A282590004BC0A /* WebGLCompressedTextureASTC.h in Headers */, > 7E66E23416D6EB6C00F7E7FF /* WebGLCompressedTextureATC.h in Headers */, >diff --git a/Source/WebCore/platform/mac/BlacklistUpdater.h b/Source/WebCore/platform/mac/BlacklistUpdater.h >deleted file mode 100644 >index 6c1f2604fa1f8ecd06f4302ea4a9c513a5d48937..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/BlacklistUpdater.h >+++ /dev/null >@@ -1,57 +0,0 @@ >-/* >- * Copyright (C) 2014-2016 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 >- >-#if PLATFORM(MAC) >- >-#import <dispatch/dispatch.h> >- >-namespace WebCore { >- >-class PluginBlacklist; >-class WebGLBlacklist; >- >-class BlacklistUpdater { >-public: >- static void initializeQueue(); >- static void reloadIfNecessary(); >- >- static dispatch_queue_t queue() { return s_queue; } >- static PluginBlacklist* pluginBlacklist() { return s_pluginBlacklist; } >- static WebGLBlacklist* webGLBlacklist() { return s_webGLBlacklist; }; >- >-private: >- >- static NSDictionary *readBlacklistData(); >- >- static dispatch_queue_t s_queue; >- static PluginBlacklist* s_pluginBlacklist; >- static WebGLBlacklist* s_webGLBlacklist; >-}; >- >-} >- >-#endif >diff --git a/Source/WebCore/platform/mac/BlacklistUpdater.mm b/Source/WebCore/platform/mac/BlacklistUpdater.mm >deleted file mode 100644 >index 508a5d81c74a05b8b48646bc359f8c71664906a1..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/BlacklistUpdater.mm >+++ /dev/null >@@ -1,114 +0,0 @@ >-/* >- * Copyright (C) 2014-2016 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. >- */ >- >-#import "config.h" >-#import "BlacklistUpdater.h" >- >-#if PLATFORM(MAC) >- >-#import "PluginBlacklist.h" >-#import "WebGLBlacklist.h" >-#import <sys/stat.h> >-#import <sys/time.h> >-#import <wtf/RetainPtr.h> >- >-// The time after which we'll check the blacklist data. >-static time_t blacklistNextCheckTime; >- >-// The number of seconds before we'll check if the blacklist data has changed. >-const time_t blacklistCheckTimeInterval = 60 * 10; >- >-// The time when we last re-parsed the blacklist file. >-static time_t blacklistUpdateTime; >- >-#if HAVE(READ_ONLY_SYSTEM_VOLUME) >-NSString * const blacklistPath = @"/Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.meta.plist"; >-#else >-NSString * const blacklistPath = @"/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.meta.plist"; >-#endif >- >-namespace WebCore { >- >-dispatch_queue_t BlacklistUpdater::s_queue; >- >-PluginBlacklist* BlacklistUpdater::s_pluginBlacklist = nullptr; >-WebGLBlacklist* BlacklistUpdater::s_webGLBlacklist = nullptr; >- >-NSDictionary * BlacklistUpdater::readBlacklistData() >-{ >- NSData *data = [NSData dataWithContentsOfFile:blacklistPath]; >- if (!data) >- return nil; >- >- return dynamic_objc_cast<NSDictionary>([NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:nullptr error:nullptr]); >-} >- >-void BlacklistUpdater::reloadIfNecessary() >-{ >- struct timeval timeVal; >- if (!gettimeofday(&timeVal, NULL)) { >- if (timeVal.tv_sec < blacklistNextCheckTime) >- return; >- } >- >- blacklistNextCheckTime = timeVal.tv_sec + blacklistCheckTimeInterval; >- >- struct stat statBuf; >- if (stat([blacklistPath fileSystemRepresentation], &statBuf) == -1) >- return; >- >- if (statBuf.st_mtimespec.tv_sec == blacklistUpdateTime) >- return; >- NSDictionary *propertyList = readBlacklistData(); >- if (!propertyList) >- return; >- >- if (s_pluginBlacklist) { >- delete s_pluginBlacklist; >- s_pluginBlacklist = 0; >- } >- >- if (s_webGLBlacklist) { >- delete s_webGLBlacklist; >- s_webGLBlacklist = 0; >- } >- >- s_pluginBlacklist = PluginBlacklist::create(propertyList).release(); >- s_webGLBlacklist = WebGLBlacklist::create(propertyList).release(); >- >- blacklistUpdateTime = statBuf.st_mtimespec.tv_sec; >-} >- >-void BlacklistUpdater::initializeQueue() >-{ >- static dispatch_once_t once; >- dispatch_once(&once, ^{ >- s_queue = dispatch_queue_create("com.apple.WebKit.Blacklist", 0); >- }); >-} >- >-} >- >-#endif >diff --git a/Source/WebCore/platform/mac/BlocklistUpdater.h b/Source/WebCore/platform/mac/BlocklistUpdater.h >new file mode 100644 >index 0000000000000000000000000000000000000000..00161deedcb4468896639944d347a6cbc32c36d4 >--- /dev/null >+++ b/Source/WebCore/platform/mac/BlocklistUpdater.h >@@ -0,0 +1,57 @@ >+/* >+ * Copyright (C) 2014-2020 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 >+ >+#if PLATFORM(MAC) >+ >+#import <dispatch/dispatch.h> >+ >+namespace WebCore { >+ >+class PluginBlocklist; >+class WebGLBlocklist; >+ >+class BlocklistUpdater { >+public: >+ static void initializeQueue(); >+ static void reloadIfNecessary(); >+ >+ static dispatch_queue_t queue() { return s_queue; } >+ static PluginBlocklist* pluginBlocklist() { return s_pluginBlocklist; } >+ static WebGLBlocklist* webGLBlocklist() { return s_webGLBlocklist; }; >+ >+private: >+ >+ static NSDictionary *readBlocklistData(); >+ >+ static dispatch_queue_t s_queue; >+ static PluginBlocklist* s_pluginBlocklist; >+ static WebGLBlocklist* s_webGLBlocklist; >+}; >+ >+} >+ >+#endif >diff --git a/Source/WebCore/platform/mac/BlocklistUpdater.mm b/Source/WebCore/platform/mac/BlocklistUpdater.mm >new file mode 100644 >index 0000000000000000000000000000000000000000..d1159a9e572c32f7271aed3a496c3e640eedcaa8 >--- /dev/null >+++ b/Source/WebCore/platform/mac/BlocklistUpdater.mm >@@ -0,0 +1,114 @@ >+/* >+ * Copyright (C) 2014-2016 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. >+ */ >+ >+#import "config.h" >+#import "BlocklistUpdater.h" >+ >+#if PLATFORM(MAC) >+ >+#import "PluginBlocklist.h" >+#import "WebGLBlocklist.h" >+#import <sys/stat.h> >+#import <sys/time.h> >+#import <wtf/RetainPtr.h> >+ >+// The time after which we'll check the blocklist data. >+static time_t blocklistNextCheckTime; >+ >+// The number of seconds before we'll check if the blocklist data has changed. >+const time_t blocklistCheckTimeInterval = 60 * 10; >+ >+// The time when we last re-parsed the blocklist file. >+static time_t blocklistUpdateTime; >+ >+#if HAVE(READ_ONLY_SYSTEM_VOLUME) >+NSString * const blocklistPath = @"/Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.meta.plist"; >+#else >+NSString * const blocklistPath = @"/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.meta.plist"; >+#endif >+ >+namespace WebCore { >+ >+dispatch_queue_t BlocklistUpdater::s_queue; >+ >+PluginBlocklist* BlocklistUpdater::s_pluginBlocklist = nullptr; >+WebGLBlocklist* BlocklistUpdater::s_webGLBlocklist = nullptr; >+ >+NSDictionary * BlocklistUpdater::readBlocklistData() >+{ >+ NSData *data = [NSData dataWithContentsOfFile:blocklistPath]; >+ if (!data) >+ return nil; >+ >+ return dynamic_objc_cast<NSDictionary>([NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:nullptr error:nullptr]); >+} >+ >+void BlocklistUpdater::reloadIfNecessary() >+{ >+ struct timeval timeVal; >+ if (!gettimeofday(&timeVal, NULL)) { >+ if (timeVal.tv_sec < blocklistNextCheckTime) >+ return; >+ } >+ >+ blocklistNextCheckTime = timeVal.tv_sec + blocklistCheckTimeInterval; >+ >+ struct stat statBuf; >+ if (stat([blocklistPath fileSystemRepresentation], &statBuf) == -1) >+ return; >+ >+ if (statBuf.st_mtimespec.tv_sec == blocklistUpdateTime) >+ return; >+ NSDictionary *propertyList = readBlocklistData(); >+ if (!propertyList) >+ return; >+ >+ if (s_pluginBlocklist) { >+ delete s_pluginBlocklist; >+ s_pluginBlocklist = 0; >+ } >+ >+ if (s_webGLBlocklist) { >+ delete s_webGLBlocklist; >+ s_webGLBlocklist = 0; >+ } >+ >+ s_pluginBlocklist = PluginBlocklist::create(propertyList).release(); >+ s_webGLBlocklist = WebGLBlocklist::create(propertyList).release(); >+ >+ blocklistUpdateTime = statBuf.st_mtimespec.tv_sec; >+} >+ >+void BlocklistUpdater::initializeQueue() >+{ >+ static dispatch_once_t once; >+ dispatch_once(&once, ^{ >+ s_queue = dispatch_queue_create("com.apple.WebKit.Blocklist", 0); >+ }); >+} >+ >+} >+ >+#endif >diff --git a/Source/WebCore/platform/mac/PluginBlacklist.h b/Source/WebCore/platform/mac/PluginBlacklist.h >deleted file mode 100644 >index 0f72509747d4c6bb7edb23580fbad02929dd0977..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/PluginBlacklist.h >+++ /dev/null >@@ -1,70 +0,0 @@ >-/* >- * Copyright (C) 2012-2018 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 >- >-#if PLATFORM(MAC) >- >-#include <memory> >-#include <wtf/RetainPtr.h> >- >-OBJC_CLASS NSArray; >-OBJC_CLASS NSDictionary; >-OBJC_CLASS NSSet; >-OBJC_CLASS NSString; >- >-namespace WebCore { >- >-class PluginBlacklist { >-public: >- enum class LoadPolicy { >- LoadNormally, >- BlockedForSecurity, >- BlockedForCompatibility, >- }; >- >- WEBCORE_EXPORT static LoadPolicy loadPolicyForPluginVersion(NSString *bundleIdentifier, NSString *bundleVersionString); >- WEBCORE_EXPORT static bool isPluginUpdateAvailable(NSString *bundleIdentifier); >- >- static std::unique_ptr<PluginBlacklist> create(NSDictionary *); >- ~PluginBlacklist(); >- >- static NSArray *splitOSVersion(NSString *osVersion); >- >- LoadPolicy loadPolicyForPlugin(NSString *bundleIdentifier, NSString *bundleVersionString) const; >- bool isUpdateAvailable(NSString *bundleIdentifier) const; >- >-private: >- PluginBlacklist(NSDictionary *bundleIDToMinimumSecureVersion, NSDictionary *bundleIDToMinimumCompatibleVersion, NSDictionary *bundleIDToBlockedVersions, NSSet *bundleIDsWithAvailableUpdates); >- >- RetainPtr<NSDictionary> m_bundleIDToMinimumSecureVersion; >- RetainPtr<NSDictionary> m_bundleIDToMinimumCompatibleVersion; >- RetainPtr<NSDictionary> m_bundleIDToBlockedVersions; >- RetainPtr<NSSet> m_bundleIDsWithAvailableUpdates; >-}; >- >-} >- >-#endif >diff --git a/Source/WebCore/platform/mac/PluginBlacklist.mm b/Source/WebCore/platform/mac/PluginBlacklist.mm >deleted file mode 100644 >index 6815bba48e77c62cf22d67005925e45d09c8c43a..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/PluginBlacklist.mm >+++ /dev/null >@@ -1,181 +0,0 @@ >-/* >- * Copyright (C) 2012-2018 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. >- */ >- >-#import "config.h" >-#import "PluginBlacklist.h" >- >-#if PLATFORM(MAC) >- >-#import "BlacklistUpdater.h" >-#import <pal/spi/cf/CFUtilitiesSPI.h> >-#import <sys/stat.h> >-#import <sys/time.h> >- >-namespace WebCore { >- >-PluginBlacklist::LoadPolicy PluginBlacklist::loadPolicyForPluginVersion(NSString *bundleIdentifier, NSString *bundleVersionString) >-{ >- BlacklistUpdater::initializeQueue(); >- >- __block PluginBlacklist::LoadPolicy loadPolicy = LoadPolicy::LoadNormally; >- dispatch_sync(BlacklistUpdater::queue(), ^{ >- BlacklistUpdater::reloadIfNecessary(); >- >- PluginBlacklist* pluginBlacklist = BlacklistUpdater::pluginBlacklist(); >- if (pluginBlacklist) >- loadPolicy = pluginBlacklist->loadPolicyForPlugin(bundleIdentifier, bundleVersionString); >- }); >- >- return loadPolicy; >-} >- >-bool PluginBlacklist::isPluginUpdateAvailable(NSString *bundleIdentifier) >-{ >- BlacklistUpdater::initializeQueue(); >- >- __block bool isPluginUpdateAvailable = false; >- dispatch_sync(BlacklistUpdater::queue(), ^{ >- BlacklistUpdater::reloadIfNecessary(); >- >- PluginBlacklist* pluginBlacklist = BlacklistUpdater::pluginBlacklist(); >- if (pluginBlacklist) >- isPluginUpdateAvailable = pluginBlacklist->isUpdateAvailable(bundleIdentifier); >- }); >- >- return isPluginUpdateAvailable; >-} >- >-std::unique_ptr<PluginBlacklist> PluginBlacklist::create(NSDictionary *propertyList) >-{ >- CFDictionaryRef systemVersionDictionary = _CFCopySystemVersionDictionary(); >- CFStringRef osVersion = static_cast<CFStringRef>(CFDictionaryGetValue(systemVersionDictionary, _kCFSystemVersionProductVersionKey)); >- >- NSDictionary *dictionary = [propertyList objectForKey:@"PlugInBlacklist"]; >- >- NSMutableDictionary *bundleIDToMinimumSecureVersion = [NSMutableDictionary dictionary]; >- NSMutableDictionary *bundleIDToMinimumCompatibleVersion = [NSMutableDictionary dictionary]; >- NSMutableDictionary *bundleIDToBlockedVersions = [NSMutableDictionary dictionary]; >- NSMutableSet *bundleIDsWithAvailableUpdates = [NSMutableSet set]; >- >- for (NSString *osVersionComponent in splitOSVersion((__bridge NSString *)osVersion)) { >- NSDictionary *bundleIDs = [dictionary objectForKey:osVersionComponent]; >- if (!bundleIDs) >- continue; >- >- for (NSString *bundleID in bundleIDs) { >- NSDictionary *versionInfo = [bundleIDs objectForKey:bundleID]; >- assert(versionInfo); >- >- if (![versionInfo isKindOfClass:[NSDictionary class]]) >- continue; >- >- [bundleIDToMinimumSecureVersion removeObjectForKey:bundleID]; >- [bundleIDToMinimumCompatibleVersion removeObjectForKey:bundleID]; >- [bundleIDToBlockedVersions removeObjectForKey:bundleID]; >- >- if (NSArray *blockedVersions = [versionInfo objectForKey:@"BlockedPlugInBundleVersions"]) >- [bundleIDToBlockedVersions setObject:blockedVersions forKey:bundleID]; >- >- if (NSString *minimumSecureVersion = [versionInfo objectForKey:@"MinimumPlugInBundleVersion"]) >- [bundleIDToMinimumSecureVersion setObject:minimumSecureVersion forKey:bundleID]; >- >- if (NSString *minimumCompatibleVersion = [versionInfo objectForKey:@"MinimumCompatiblePlugInBundleVersion"]) >- [bundleIDToMinimumCompatibleVersion setObject:minimumCompatibleVersion forKey:bundleID]; >- >- if (NSNumber *updateAvailable = [versionInfo objectForKey:@"PlugInUpdateAvailable"]) { >- // A missing PlugInUpdateAvailable key means that there is a plug-in update available. >- if (!updateAvailable || [updateAvailable boolValue]) >- [bundleIDsWithAvailableUpdates addObject:bundleID]; >- } >- } >- } >- >- CFRelease(systemVersionDictionary); >- >- return std::unique_ptr<PluginBlacklist>(new PluginBlacklist(bundleIDToMinimumSecureVersion, bundleIDToMinimumCompatibleVersion, bundleIDToBlockedVersions, bundleIDsWithAvailableUpdates)); >-} >- >-PluginBlacklist::~PluginBlacklist() >-{ >-} >- >-NSArray *PluginBlacklist::splitOSVersion(NSString *osVersion) >-{ >- NSArray *components = [osVersion componentsSeparatedByString:@"."]; >- >- NSMutableArray *result = [NSMutableArray array]; >- >- for (NSUInteger i = 0; i < [components count]; ++i) { >- NSString *versionString = [[components subarrayWithRange:NSMakeRange(0, i + 1)] componentsJoinedByString:@"."]; >- >- [result addObject:versionString]; >- } >- >- return result; >-} >- >- >-PluginBlacklist::LoadPolicy PluginBlacklist::loadPolicyForPlugin(NSString *bundleIdentifier, NSString *bundleVersionString) const >-{ >- if (!bundleIdentifier || !bundleVersionString) >- return LoadPolicy::LoadNormally; >- >- // First, check for explicitly blocked versions. >- for (NSString *blockedVersion in [m_bundleIDToBlockedVersions objectForKey:bundleIdentifier]) { >- if ([blockedVersion isEqualToString:bundleVersionString]) >- return LoadPolicy::BlockedForSecurity; >- } >- >- // Then, check if there's a forced minimum version for security issues. >- if (NSString *minimumSecureVersion = [m_bundleIDToMinimumSecureVersion objectForKey:bundleIdentifier]) { >- if ([bundleVersionString compare:minimumSecureVersion options:NSNumericSearch] == NSOrderedAscending) >- return LoadPolicy::BlockedForSecurity; >- } >- >- // Then, check if there's a forced minimum version for compatibility issues. >- if (NSString *minimumCompatibleVersion = [m_bundleIDToMinimumCompatibleVersion objectForKey:bundleIdentifier]) { >- if ([bundleVersionString compare:minimumCompatibleVersion options:NSNumericSearch] == NSOrderedAscending) >- return LoadPolicy::BlockedForCompatibility; >- } >- >- return LoadPolicy::LoadNormally; >-} >- >-bool PluginBlacklist::isUpdateAvailable(NSString *bundleIdentifier) const >-{ >- return [m_bundleIDsWithAvailableUpdates containsObject:bundleIdentifier]; >-} >- >-PluginBlacklist::PluginBlacklist(NSDictionary *bundleIDToMinimumSecureVersion, NSDictionary *bundleIDToMinimumCompatibleVersion, NSDictionary *bundleIDToBlockedVersions, NSSet *bundleIDsWithAvailableUpdates) >- : m_bundleIDToMinimumSecureVersion { adoptNS([bundleIDToMinimumSecureVersion copy]) } >- , m_bundleIDToMinimumCompatibleVersion { adoptNS([bundleIDToMinimumCompatibleVersion copy]) } >- , m_bundleIDToBlockedVersions { adoptNS([bundleIDToBlockedVersions copy]) } >- , m_bundleIDsWithAvailableUpdates { adoptNS([bundleIDsWithAvailableUpdates copy]) } >-{ >-} >- >-} >- >-#endif >diff --git a/Source/WebCore/platform/mac/PluginBlocklist.h b/Source/WebCore/platform/mac/PluginBlocklist.h >new file mode 100644 >index 0000000000000000000000000000000000000000..a194a1296fb96c9e50d951bde6c155d309ed72aa >--- /dev/null >+++ b/Source/WebCore/platform/mac/PluginBlocklist.h >@@ -0,0 +1,70 @@ >+/* >+ * Copyright (C) 2012-2020 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 >+ >+#if PLATFORM(MAC) >+ >+#include <memory> >+#include <wtf/RetainPtr.h> >+ >+OBJC_CLASS NSArray; >+OBJC_CLASS NSDictionary; >+OBJC_CLASS NSSet; >+OBJC_CLASS NSString; >+ >+namespace WebCore { >+ >+class PluginBlocklist { >+public: >+ enum class LoadPolicy { >+ LoadNormally, >+ BlockedForSecurity, >+ BlockedForCompatibility, >+ }; >+ >+ WEBCORE_EXPORT static LoadPolicy loadPolicyForPluginVersion(NSString *bundleIdentifier, NSString *bundleVersionString); >+ WEBCORE_EXPORT static bool isPluginUpdateAvailable(NSString *bundleIdentifier); >+ >+ static std::unique_ptr<PluginBlocklist> create(NSDictionary *); >+ ~PluginBlocklist(); >+ >+ static NSArray *splitOSVersion(NSString *osVersion); >+ >+ LoadPolicy loadPolicyForPlugin(NSString *bundleIdentifier, NSString *bundleVersionString) const; >+ bool isUpdateAvailable(NSString *bundleIdentifier) const; >+ >+private: >+ PluginBlocklist(NSDictionary *bundleIDToMinimumSecureVersion, NSDictionary *bundleIDToMinimumCompatibleVersion, NSDictionary *bundleIDToBlockedVersions, NSSet *bundleIDsWithAvailableUpdates); >+ >+ RetainPtr<NSDictionary> m_bundleIDToMinimumSecureVersion; >+ RetainPtr<NSDictionary> m_bundleIDToMinimumCompatibleVersion; >+ RetainPtr<NSDictionary> m_bundleIDToBlockedVersions; >+ RetainPtr<NSSet> m_bundleIDsWithAvailableUpdates; >+}; >+ >+} >+ >+#endif >diff --git a/Source/WebCore/platform/mac/PluginBlocklist.mm b/Source/WebCore/platform/mac/PluginBlocklist.mm >new file mode 100644 >index 0000000000000000000000000000000000000000..a80b4afec761d87987ff912073460b939e40f74f >--- /dev/null >+++ b/Source/WebCore/platform/mac/PluginBlocklist.mm >@@ -0,0 +1,181 @@ >+/* >+ * Copyright (C) 2012-2020 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. >+ */ >+ >+#import "config.h" >+#import "PluginBlocklist.h" >+ >+#if PLATFORM(MAC) >+ >+#import "BlocklistUpdater.h" >+#import <pal/spi/cf/CFUtilitiesSPI.h> >+#import <sys/stat.h> >+#import <sys/time.h> >+ >+namespace WebCore { >+ >+PluginBlocklist::LoadPolicy PluginBlocklist::loadPolicyForPluginVersion(NSString *bundleIdentifier, NSString *bundleVersionString) >+{ >+ BlocklistUpdater::initializeQueue(); >+ >+ __block PluginBlocklist::LoadPolicy loadPolicy = LoadPolicy::LoadNormally; >+ dispatch_sync(BlocklistUpdater::queue(), ^{ >+ BlocklistUpdater::reloadIfNecessary(); >+ >+ PluginBlocklist* pluginBlocklist = BlocklistUpdater::pluginBlocklist(); >+ if (pluginBlocklist) >+ loadPolicy = pluginBlocklist->loadPolicyForPlugin(bundleIdentifier, bundleVersionString); >+ }); >+ >+ return loadPolicy; >+} >+ >+bool PluginBlocklist::isPluginUpdateAvailable(NSString *bundleIdentifier) >+{ >+ BlocklistUpdater::initializeQueue(); >+ >+ __block bool isPluginUpdateAvailable = false; >+ dispatch_sync(BlocklistUpdater::queue(), ^{ >+ BlocklistUpdater::reloadIfNecessary(); >+ >+ PluginBlocklist* pluginBlocklist = BlocklistUpdater::pluginBlocklist(); >+ if (pluginBlocklist) >+ isPluginUpdateAvailable = pluginBlocklist->isUpdateAvailable(bundleIdentifier); >+ }); >+ >+ return isPluginUpdateAvailable; >+} >+ >+std::unique_ptr<PluginBlocklist> PluginBlocklist::create(NSDictionary *propertyList) >+{ >+ CFDictionaryRef systemVersionDictionary = _CFCopySystemVersionDictionary(); >+ CFStringRef osVersion = static_cast<CFStringRef>(CFDictionaryGetValue(systemVersionDictionary, _kCFSystemVersionProductVersionKey)); >+ >+ NSDictionary *dictionary = [propertyList objectForKey:@"PlugInBlocklist"]; >+ >+ NSMutableDictionary *bundleIDToMinimumSecureVersion = [NSMutableDictionary dictionary]; >+ NSMutableDictionary *bundleIDToMinimumCompatibleVersion = [NSMutableDictionary dictionary]; >+ NSMutableDictionary *bundleIDToBlockedVersions = [NSMutableDictionary dictionary]; >+ NSMutableSet *bundleIDsWithAvailableUpdates = [NSMutableSet set]; >+ >+ for (NSString *osVersionComponent in splitOSVersion((__bridge NSString *)osVersion)) { >+ NSDictionary *bundleIDs = [dictionary objectForKey:osVersionComponent]; >+ if (!bundleIDs) >+ continue; >+ >+ for (NSString *bundleID in bundleIDs) { >+ NSDictionary *versionInfo = [bundleIDs objectForKey:bundleID]; >+ assert(versionInfo); >+ >+ if (![versionInfo isKindOfClass:[NSDictionary class]]) >+ continue; >+ >+ [bundleIDToMinimumSecureVersion removeObjectForKey:bundleID]; >+ [bundleIDToMinimumCompatibleVersion removeObjectForKey:bundleID]; >+ [bundleIDToBlockedVersions removeObjectForKey:bundleID]; >+ >+ if (NSArray *blockedVersions = [versionInfo objectForKey:@"BlockedPlugInBundleVersions"]) >+ [bundleIDToBlockedVersions setObject:blockedVersions forKey:bundleID]; >+ >+ if (NSString *minimumSecureVersion = [versionInfo objectForKey:@"MinimumPlugInBundleVersion"]) >+ [bundleIDToMinimumSecureVersion setObject:minimumSecureVersion forKey:bundleID]; >+ >+ if (NSString *minimumCompatibleVersion = [versionInfo objectForKey:@"MinimumCompatiblePlugInBundleVersion"]) >+ [bundleIDToMinimumCompatibleVersion setObject:minimumCompatibleVersion forKey:bundleID]; >+ >+ if (NSNumber *updateAvailable = [versionInfo objectForKey:@"PlugInUpdateAvailable"]) { >+ // A missing PlugInUpdateAvailable key means that there is a plug-in update available. >+ if (!updateAvailable || [updateAvailable boolValue]) >+ [bundleIDsWithAvailableUpdates addObject:bundleID]; >+ } >+ } >+ } >+ >+ CFRelease(systemVersionDictionary); >+ >+ return std::unique_ptr<PluginBlocklist>(new PluginBlocklist(bundleIDToMinimumSecureVersion, bundleIDToMinimumCompatibleVersion, bundleIDToBlockedVersions, bundleIDsWithAvailableUpdates)); >+} >+ >+PluginBlocklist::~PluginBlocklist() >+{ >+} >+ >+NSArray *PluginBlocklist::splitOSVersion(NSString *osVersion) >+{ >+ NSArray *components = [osVersion componentsSeparatedByString:@"."]; >+ >+ NSMutableArray *result = [NSMutableArray array]; >+ >+ for (NSUInteger i = 0; i < [components count]; ++i) { >+ NSString *versionString = [[components subarrayWithRange:NSMakeRange(0, i + 1)] componentsJoinedByString:@"."]; >+ >+ [result addObject:versionString]; >+ } >+ >+ return result; >+} >+ >+ >+PluginBlocklist::LoadPolicy PluginBlocklist::loadPolicyForPlugin(NSString *bundleIdentifier, NSString *bundleVersionString) const >+{ >+ if (!bundleIdentifier || !bundleVersionString) >+ return LoadPolicy::LoadNormally; >+ >+ // First, check for explicitly blocked versions. >+ for (NSString *blockedVersion in [m_bundleIDToBlockedVersions objectForKey:bundleIdentifier]) { >+ if ([blockedVersion isEqualToString:bundleVersionString]) >+ return LoadPolicy::BlockedForSecurity; >+ } >+ >+ // Then, check if there's a forced minimum version for security issues. >+ if (NSString *minimumSecureVersion = [m_bundleIDToMinimumSecureVersion objectForKey:bundleIdentifier]) { >+ if ([bundleVersionString compare:minimumSecureVersion options:NSNumericSearch] == NSOrderedAscending) >+ return LoadPolicy::BlockedForSecurity; >+ } >+ >+ // Then, check if there's a forced minimum version for compatibility issues. >+ if (NSString *minimumCompatibleVersion = [m_bundleIDToMinimumCompatibleVersion objectForKey:bundleIdentifier]) { >+ if ([bundleVersionString compare:minimumCompatibleVersion options:NSNumericSearch] == NSOrderedAscending) >+ return LoadPolicy::BlockedForCompatibility; >+ } >+ >+ return LoadPolicy::LoadNormally; >+} >+ >+bool PluginBlocklist::isUpdateAvailable(NSString *bundleIdentifier) const >+{ >+ return [m_bundleIDsWithAvailableUpdates containsObject:bundleIdentifier]; >+} >+ >+PluginBlocklist::PluginBlocklist(NSDictionary *bundleIDToMinimumSecureVersion, NSDictionary *bundleIDToMinimumCompatibleVersion, NSDictionary *bundleIDToBlockedVersions, NSSet *bundleIDsWithAvailableUpdates) >+ : m_bundleIDToMinimumSecureVersion { adoptNS([bundleIDToMinimumSecureVersion copy]) } >+ , m_bundleIDToMinimumCompatibleVersion { adoptNS([bundleIDToMinimumCompatibleVersion copy]) } >+ , m_bundleIDToBlockedVersions { adoptNS([bundleIDToBlockedVersions copy]) } >+ , m_bundleIDsWithAvailableUpdates { adoptNS([bundleIDsWithAvailableUpdates copy]) } >+{ >+} >+ >+} >+ >+#endif >diff --git a/Source/WebCore/platform/mac/WebGLBlacklist.h b/Source/WebCore/platform/mac/WebGLBlacklist.h >deleted file mode 100644 >index 5ff72a20760c7eae616b51b36ea61843fa5aa921..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/WebGLBlacklist.h >+++ /dev/null >@@ -1,69 +0,0 @@ >-/* >- * Copyright (C) 2014-2016 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 >- >-#if PLATFORM(MAC) >- >-#include <memory> >-#include <string> >-#include <vector> >- >-OBJC_CLASS NSDictionary; >- >-namespace WebCore { >- >-class WebGLBlacklist { >-public: >- enum BlockComparison { >- Equals, >- LessThan, >- LessThanEquals >- }; >- >- WEBCORE_EXPORT static bool shouldBlockWebGL(); >- WEBCORE_EXPORT static bool shouldSuggestBlockingWebGL(); >- >- static std::unique_ptr<WebGLBlacklist> create(NSDictionary *propertyList); >- ~WebGLBlacklist(); >- >- bool shouldBlock() const; >- bool shouldSuggestBlocking() const; >- >-private: >- enum class BlockCommand { >- Allow, >- Block, >- SuggestBlocking >- }; >- >- WebGLBlacklist(BlockCommand); >- >- BlockCommand m_command; >-}; >- >-} >- >-#endif >diff --git a/Source/WebCore/platform/mac/WebGLBlacklist.mm b/Source/WebCore/platform/mac/WebGLBlacklist.mm >deleted file mode 100644 >index 6fadcd35d49854f4230a9c2c5faf68c87fb54735..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/mac/WebGLBlacklist.mm >+++ /dev/null >@@ -1,263 +0,0 @@ >-/* >- * Copyright (C) 2014-2016 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. >- */ >- >-#import "config.h" >-#import "WebGLBlacklist.h" >- >-#if PLATFORM(MAC) >- >-#import "BlacklistUpdater.h" >-#import <OpenGL/OpenGL.h> >-#import <pal/spi/cf/CFUtilitiesSPI.h> >- >-namespace WebCore { >- >-struct OSBuildInfo { >- OSBuildInfo() >- : major(0) >- , minor(0) >- , build(0) >- { >- } >- >- OSBuildInfo(int major, int minor, int build) >- : major(major) >- , minor(minor) >- , build(build) >- { >- } >- >- bool operator==(const OSBuildInfo& other) const >- { >- return major == other.major && minor == other.minor && build == other.build; >- } >- >- bool operator>(const OSBuildInfo& other) const >- { >- return std::tie(major, minor, build) > std::tie(other.major, other.minor, other.build); >- } >- >- bool operator<=(const OSBuildInfo& other) const >- { >- return std::tie(major, minor, build) <= std::tie(other.major, other.minor, other.build); >- } >- >- bool operator<(const OSBuildInfo& other) const >- { >- return std::tie(major, minor, build) < std::tie(other.major, other.minor, other.build); >- } >- >- int major; // Represents the 13 in 13C64. >- int minor; // Represents the C in 13C64 (as a number where A == 1, i.e. 3). >- int build; // Represents the 64 in 13C64. >-}; >- >-static OSBuildInfo buildInfoFromOSBuildString(NSString *buildString) >-{ >- NSError *error = NULL; >- NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(\\d+)([A-Z])(\\d+)" options:0 error:&error]; >- NSArray *matches = [regex matchesInString:buildString options:0 range:NSMakeRange(0, [buildString length])]; >- if (!matches || matches.count != 1) { >-#ifndef NDEBUG >- NSLog(@"WebGLBlacklist could not parse OSBuild entry: %@", buildString); >-#endif >- return OSBuildInfo(); >- } >- >- NSTextCheckingResult *matchResult = [matches objectAtIndex:0]; >- >- if (matchResult.numberOfRanges != 4) { >-#ifndef NDEBUG >- NSLog(@"WebGLBlacklist could not parse OSBuild entry: %@", buildString); >-#endif >- return OSBuildInfo(); >- } >- >- int majorVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:1]] intValue]; >- int minorVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:2]] characterAtIndex:0] - 'A' + 1; >- int buildVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:3]] intValue]; >- >- return OSBuildInfo(majorVersion, minorVersion, buildVersion); >-} >- >-bool WebGLBlacklist::shouldBlockWebGL() >-{ >- BlacklistUpdater::initializeQueue(); >- >- __block bool shouldBlock = false; >- dispatch_sync(BlacklistUpdater::queue(), ^{ >- BlacklistUpdater::reloadIfNecessary(); >- >- WebGLBlacklist* webGLBlacklist = BlacklistUpdater::webGLBlacklist(); >- if (webGLBlacklist) >- shouldBlock = webGLBlacklist->shouldBlock(); >- }); >- >- return shouldBlock; >-} >- >-bool WebGLBlacklist::shouldSuggestBlockingWebGL() >-{ >- BlacklistUpdater::initializeQueue(); >- >- __block bool shouldSuggestBlocking = false; >- dispatch_sync(BlacklistUpdater::queue(), ^{ >- BlacklistUpdater::reloadIfNecessary(); >- >- WebGLBlacklist* webGLBlacklist = BlacklistUpdater::webGLBlacklist(); >- if (webGLBlacklist) >- shouldSuggestBlocking = webGLBlacklist->shouldSuggestBlocking(); >- }); >- >- return shouldSuggestBlocking; >-} >- >-static bool matchesGPU(GLint machineId, GLint rendererMask) >-{ >- // If the last two bytes of the rendererMask are not zero, then we're >- // looking for an exact GPU match. Otherwise we're matching against >- // a class of GPUs. >- >- if (rendererMask & 0xFF) >- return machineId == rendererMask; >- >- return (machineId & kCGLRendererIDMatchingMask) == rendererMask; >-} >- >-static GLint gpuMaskFromString(NSString *input) >-{ >- NSScanner* scanner = [NSScanner scannerWithString:input]; >- unsigned maskValue; >- [scanner scanHexInt:&maskValue]; >- return static_cast<GLint>(maskValue & (kCGLRendererIDMatchingMask | 0xFF)); >-} >- >-static bool matchesBuildInfo(OSBuildInfo machineInfo, OSBuildInfo blockInfo, WebGLBlacklist::BlockComparison comparison) >-{ >- switch (comparison) { >- case WebGLBlacklist::BlockComparison::Equals: >- return machineInfo == blockInfo; >- case WebGLBlacklist::BlockComparison::LessThan: >- return machineInfo < blockInfo; >- case WebGLBlacklist::BlockComparison::LessThanEquals: >- return machineInfo <= blockInfo; >- } >-} >- >-std::unique_ptr<WebGLBlacklist> WebGLBlacklist::create(NSDictionary *propertyList) >-{ >- CFDictionaryRef systemVersionDictionary = _CFCopySystemVersionDictionary(); >- CFStringRef osBuild = static_cast<CFStringRef>(CFDictionaryGetValue(systemVersionDictionary, _kCFSystemVersionBuildVersionKey)); >- OSBuildInfo buildInfo = buildInfoFromOSBuildString((__bridge NSString *)osBuild); >- CFRelease(systemVersionDictionary); >- >- if (!buildInfo.major) >- return nullptr; >- >- NSArray *blockEntries = [propertyList objectForKey:@"WebGLBlacklist"]; >- >- if (![blockEntries isKindOfClass:[NSArray class]] || !blockEntries.count) >- return nullptr; >- >- CGLPixelFormatAttribute attribs[12] = { >- kCGLPFAColorSize, (CGLPixelFormatAttribute)32, >- kCGLPFADepthSize, (CGLPixelFormatAttribute)32, >- kCGLPFAAccelerated, >- kCGLPFASupersample, >- kCGLPFAMultisample, >- kCGLPFASampleBuffers, (CGLPixelFormatAttribute)1, >- kCGLPFASamples, (CGLPixelFormatAttribute)4, >- (CGLPixelFormatAttribute)0 >- }; >- >- CGLPixelFormatObj pix; >- GLint npix; >- CGLChoosePixelFormat(attribs, &pix, &npix); >- CGLContextObj ctx; >- CGLCreateContext(pix, 0, &ctx); >- GLint rendererId = 0; >- CGLGetParameter(ctx, kCGLCPCurrentRendererID, &rendererId); >- GLint supportsSeparateAddressSpace = 0; >- CGLGetParameter(ctx, kCGLCPSupportSeparateAddressSpace, &supportsSeparateAddressSpace); >- CGLDestroyContext(ctx); >- CGLReleasePixelFormat(pix); >- >- rendererId &= kCGLRendererIDMatchingMask | 0xFF; >- >- BlockCommand globalCommand = BlockCommand::Allow; >- >- for (NSDictionary *blockData in blockEntries) { >- >- GLint gpuMask = gpuMaskFromString([blockData objectForKey:@"GPU"]); >- >- OSBuildInfo blockedBuildInfo = buildInfoFromOSBuildString(static_cast<NSString*>([blockData objectForKey:@"OSBuild"])); >- >- NSString *comparisonString = [blockData objectForKey:@"Comparison"]; >- BlockComparison comparison = BlockComparison::Equals; >- if ([comparisonString isEqualToString:@"LessThan"]) >- comparison = BlockComparison::LessThan; >- else if ([comparisonString isEqualToString:@"LessThanEquals"]) >- comparison = BlockComparison::LessThanEquals; >- >- NSString *commandString = [blockData objectForKey:@"Command"]; >- BlockCommand command = BlockCommand::Allow; >- if ([commandString isEqualToString:@"Block"]) >- command = BlockCommand::Block; >- else if ([commandString isEqualToString:@"SuggestBlocking"]) >- command = BlockCommand::SuggestBlocking; >- >- if (matchesGPU(rendererId, gpuMask) && matchesBuildInfo(buildInfo, blockedBuildInfo, comparison)) { >- globalCommand = command; >- break; >- } >- } >- >- if (!supportsSeparateAddressSpace && globalCommand == BlockCommand::Allow) >- globalCommand = BlockCommand::SuggestBlocking; >- >- return std::unique_ptr<WebGLBlacklist>(new WebGLBlacklist(globalCommand)); >-} >- >-bool WebGLBlacklist::shouldBlock() const >-{ >- return m_command == BlockCommand::Block; >-} >- >-bool WebGLBlacklist::shouldSuggestBlocking() const >-{ >- return m_command == BlockCommand::SuggestBlocking; >-} >- >-WebGLBlacklist::WebGLBlacklist(BlockCommand command) >- : m_command(command) >-{ >-} >- >-WebGLBlacklist::~WebGLBlacklist() >-{ >-} >- >-} >-#endif >diff --git a/Source/WebCore/platform/mac/WebGLBlocklist.h b/Source/WebCore/platform/mac/WebGLBlocklist.h >new file mode 100644 >index 0000000000000000000000000000000000000000..2237b5c9e03089b87cfae2601cf1bb0f83963d59 >--- /dev/null >+++ b/Source/WebCore/platform/mac/WebGLBlocklist.h >@@ -0,0 +1,69 @@ >+/* >+ * Copyright (C) 2014-2020 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 >+ >+#if PLATFORM(MAC) >+ >+#include <memory> >+#include <string> >+#include <vector> >+ >+OBJC_CLASS NSDictionary; >+ >+namespace WebCore { >+ >+class WebGLBlocklist { >+public: >+ enum BlockComparison { >+ Equals, >+ LessThan, >+ LessThanEquals >+ }; >+ >+ WEBCORE_EXPORT static bool shouldBlockWebGL(); >+ WEBCORE_EXPORT static bool shouldSuggestBlockingWebGL(); >+ >+ static std::unique_ptr<WebGLBlocklist> create(NSDictionary *propertyList); >+ ~WebGLBlocklist(); >+ >+ bool shouldBlock() const; >+ bool shouldSuggestBlocking() const; >+ >+private: >+ enum class BlockCommand { >+ Allow, >+ Block, >+ SuggestBlocking >+ }; >+ >+ WebGLBlocklist(BlockCommand); >+ >+ BlockCommand m_command; >+}; >+ >+} >+ >+#endif >diff --git a/Source/WebCore/platform/mac/WebGLBlocklist.mm b/Source/WebCore/platform/mac/WebGLBlocklist.mm >new file mode 100644 >index 0000000000000000000000000000000000000000..dbf31d8aa391fb5d45f0a6f54fef319a565ebad4 >--- /dev/null >+++ b/Source/WebCore/platform/mac/WebGLBlocklist.mm >@@ -0,0 +1,263 @@ >+/* >+ * Copyright (C) 2014-2016 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. >+ */ >+ >+#import "config.h" >+#import "WebGLBlocklist.h" >+ >+#if PLATFORM(MAC) >+ >+#import "BlocklistUpdater.h" >+#import <OpenGL/OpenGL.h> >+#import <pal/spi/cf/CFUtilitiesSPI.h> >+ >+namespace WebCore { >+ >+struct OSBuildInfo { >+ OSBuildInfo() >+ : major(0) >+ , minor(0) >+ , build(0) >+ { >+ } >+ >+ OSBuildInfo(int major, int minor, int build) >+ : major(major) >+ , minor(minor) >+ , build(build) >+ { >+ } >+ >+ bool operator==(const OSBuildInfo& other) const >+ { >+ return major == other.major && minor == other.minor && build == other.build; >+ } >+ >+ bool operator>(const OSBuildInfo& other) const >+ { >+ return std::tie(major, minor, build) > std::tie(other.major, other.minor, other.build); >+ } >+ >+ bool operator<=(const OSBuildInfo& other) const >+ { >+ return std::tie(major, minor, build) <= std::tie(other.major, other.minor, other.build); >+ } >+ >+ bool operator<(const OSBuildInfo& other) const >+ { >+ return std::tie(major, minor, build) < std::tie(other.major, other.minor, other.build); >+ } >+ >+ int major; // Represents the 13 in 13C64. >+ int minor; // Represents the C in 13C64 (as a number where A == 1, i.e. 3). >+ int build; // Represents the 64 in 13C64. >+}; >+ >+static OSBuildInfo buildInfoFromOSBuildString(NSString *buildString) >+{ >+ NSError *error = NULL; >+ NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(\\d+)([A-Z])(\\d+)" options:0 error:&error]; >+ NSArray *matches = [regex matchesInString:buildString options:0 range:NSMakeRange(0, [buildString length])]; >+ if (!matches || matches.count != 1) { >+#ifndef NDEBUG >+ NSLog(@"WebGLBlocklist could not parse OSBuild entry: %@", buildString); >+#endif >+ return OSBuildInfo(); >+ } >+ >+ NSTextCheckingResult *matchResult = [matches objectAtIndex:0]; >+ >+ if (matchResult.numberOfRanges != 4) { >+#ifndef NDEBUG >+ NSLog(@"WebGLBlocklist could not parse OSBuild entry: %@", buildString); >+#endif >+ return OSBuildInfo(); >+ } >+ >+ int majorVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:1]] intValue]; >+ int minorVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:2]] characterAtIndex:0] - 'A' + 1; >+ int buildVersion = [[buildString substringWithRange:[matchResult rangeAtIndex:3]] intValue]; >+ >+ return OSBuildInfo(majorVersion, minorVersion, buildVersion); >+} >+ >+bool WebGLBlocklist::shouldBlockWebGL() >+{ >+ BlocklistUpdater::initializeQueue(); >+ >+ __block bool shouldBlock = false; >+ dispatch_sync(BlocklistUpdater::queue(), ^{ >+ BlocklistUpdater::reloadIfNecessary(); >+ >+ WebGLBlocklist* webGLBlocklist = BlocklistUpdater::webGLBlocklist(); >+ if (webGLBlocklist) >+ shouldBlock = webGLBlocklist->shouldBlock(); >+ }); >+ >+ return shouldBlock; >+} >+ >+bool WebGLBlocklist::shouldSuggestBlockingWebGL() >+{ >+ BlocklistUpdater::initializeQueue(); >+ >+ __block bool shouldSuggestBlocking = false; >+ dispatch_sync(BlocklistUpdater::queue(), ^{ >+ BlocklistUpdater::reloadIfNecessary(); >+ >+ WebGLBlocklist* webGLBlocklist = BlocklistUpdater::webGLBlocklist(); >+ if (webGLBlocklist) >+ shouldSuggestBlocking = webGLBlocklist->shouldSuggestBlocking(); >+ }); >+ >+ return shouldSuggestBlocking; >+} >+ >+static bool matchesGPU(GLint machineId, GLint rendererMask) >+{ >+ // If the last two bytes of the rendererMask are not zero, then we're >+ // looking for an exact GPU match. Otherwise we're matching against >+ // a class of GPUs. >+ >+ if (rendererMask & 0xFF) >+ return machineId == rendererMask; >+ >+ return (machineId & kCGLRendererIDMatchingMask) == rendererMask; >+} >+ >+static GLint gpuMaskFromString(NSString *input) >+{ >+ NSScanner* scanner = [NSScanner scannerWithString:input]; >+ unsigned maskValue; >+ [scanner scanHexInt:&maskValue]; >+ return static_cast<GLint>(maskValue & (kCGLRendererIDMatchingMask | 0xFF)); >+} >+ >+static bool matchesBuildInfo(OSBuildInfo machineInfo, OSBuildInfo blockInfo, WebGLBlocklist::BlockComparison comparison) >+{ >+ switch (comparison) { >+ case WebGLBlocklist::BlockComparison::Equals: >+ return machineInfo == blockInfo; >+ case WebGLBlocklist::BlockComparison::LessThan: >+ return machineInfo < blockInfo; >+ case WebGLBlocklist::BlockComparison::LessThanEquals: >+ return machineInfo <= blockInfo; >+ } >+} >+ >+std::unique_ptr<WebGLBlocklist> WebGLBlocklist::create(NSDictionary *propertyList) >+{ >+ CFDictionaryRef systemVersionDictionary = _CFCopySystemVersionDictionary(); >+ CFStringRef osBuild = static_cast<CFStringRef>(CFDictionaryGetValue(systemVersionDictionary, _kCFSystemVersionBuildVersionKey)); >+ OSBuildInfo buildInfo = buildInfoFromOSBuildString((__bridge NSString *)osBuild); >+ CFRelease(systemVersionDictionary); >+ >+ if (!buildInfo.major) >+ return nullptr; >+ >+ NSArray *blockEntries = [propertyList objectForKey:@"WebGLBlocklist"]; >+ >+ if (![blockEntries isKindOfClass:[NSArray class]] || !blockEntries.count) >+ return nullptr; >+ >+ CGLPixelFormatAttribute attribs[12] = { >+ kCGLPFAColorSize, (CGLPixelFormatAttribute)32, >+ kCGLPFADepthSize, (CGLPixelFormatAttribute)32, >+ kCGLPFAAccelerated, >+ kCGLPFASupersample, >+ kCGLPFAMultisample, >+ kCGLPFASampleBuffers, (CGLPixelFormatAttribute)1, >+ kCGLPFASamples, (CGLPixelFormatAttribute)4, >+ (CGLPixelFormatAttribute)0 >+ }; >+ >+ CGLPixelFormatObj pix; >+ GLint npix; >+ CGLChoosePixelFormat(attribs, &pix, &npix); >+ CGLContextObj ctx; >+ CGLCreateContext(pix, 0, &ctx); >+ GLint rendererId = 0; >+ CGLGetParameter(ctx, kCGLCPCurrentRendererID, &rendererId); >+ GLint supportsSeparateAddressSpace = 0; >+ CGLGetParameter(ctx, kCGLCPSupportSeparateAddressSpace, &supportsSeparateAddressSpace); >+ CGLDestroyContext(ctx); >+ CGLReleasePixelFormat(pix); >+ >+ rendererId &= kCGLRendererIDMatchingMask | 0xFF; >+ >+ BlockCommand globalCommand = BlockCommand::Allow; >+ >+ for (NSDictionary *blockData in blockEntries) { >+ >+ GLint gpuMask = gpuMaskFromString([blockData objectForKey:@"GPU"]); >+ >+ OSBuildInfo blockedBuildInfo = buildInfoFromOSBuildString(static_cast<NSString*>([blockData objectForKey:@"OSBuild"])); >+ >+ NSString *comparisonString = [blockData objectForKey:@"Comparison"]; >+ BlockComparison comparison = BlockComparison::Equals; >+ if ([comparisonString isEqualToString:@"LessThan"]) >+ comparison = BlockComparison::LessThan; >+ else if ([comparisonString isEqualToString:@"LessThanEquals"]) >+ comparison = BlockComparison::LessThanEquals; >+ >+ NSString *commandString = [blockData objectForKey:@"Command"]; >+ BlockCommand command = BlockCommand::Allow; >+ if ([commandString isEqualToString:@"Block"]) >+ command = BlockCommand::Block; >+ else if ([commandString isEqualToString:@"SuggestBlocking"]) >+ command = BlockCommand::SuggestBlocking; >+ >+ if (matchesGPU(rendererId, gpuMask) && matchesBuildInfo(buildInfo, blockedBuildInfo, comparison)) { >+ globalCommand = command; >+ break; >+ } >+ } >+ >+ if (!supportsSeparateAddressSpace && globalCommand == BlockCommand::Allow) >+ globalCommand = BlockCommand::SuggestBlocking; >+ >+ return std::unique_ptr<WebGLBlocklist>(new WebGLBlocklist(globalCommand)); >+} >+ >+bool WebGLBlocklist::shouldBlock() const >+{ >+ return m_command == BlockCommand::Block; >+} >+ >+bool WebGLBlocklist::shouldSuggestBlocking() const >+{ >+ return m_command == BlockCommand::SuggestBlocking; >+} >+ >+WebGLBlocklist::WebGLBlocklist(BlockCommand command) >+ : m_command(command) >+{ >+} >+ >+WebGLBlocklist::~WebGLBlocklist() >+{ >+} >+ >+} >+#endif >diff --git a/Source/WebKit/Shared/Plugins/Netscape/mac/PluginInformationMac.mm b/Source/WebKit/Shared/Plugins/Netscape/mac/PluginInformationMac.mm >index 32584d416be0ff25e9e91ddf42870e3394f49366..679a438a90988c7e8b7afc170e808271fe64b68f 100644 >--- a/Source/WebKit/Shared/Plugins/Netscape/mac/PluginInformationMac.mm >+++ b/Source/WebKit/Shared/Plugins/Netscape/mac/PluginInformationMac.mm >@@ -32,7 +32,7 @@ > #import "APIString.h" > #import "PluginModuleInfo.h" > #import "StringUtilities.h" >-#import <WebCore/PluginBlacklist.h> >+#import <WebCore/PluginBlocklist.h> > > namespace WebKit { > using namespace WebCore; >@@ -42,7 +42,7 @@ void getPlatformPluginModuleInformation(const PluginModuleInfo& plugin, API::Dic > map.set(pluginInformationBundleIdentifierKey(), API::String::create(plugin.bundleIdentifier)); > map.set(pluginInformationBundleVersionKey(), API::String::create(plugin.versionString)); > map.set(pluginInformationBundleShortVersionKey(), API::String::create(plugin.shortVersionString)); >- map.set(pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey(), API::Boolean::create(WebCore::PluginBlacklist::isPluginUpdateAvailable(nsStringFromWebCoreString(plugin.bundleIdentifier)))); >+ map.set(pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey(), API::Boolean::create(WebCore::PluginBlocklist::isPluginUpdateAvailable(nsStringFromWebCoreString(plugin.bundleIdentifier)))); > map.set(pluginInformationHasSandboxProfileKey(), API::Boolean::create(plugin.hasSandboxProfile)); > } > >diff --git a/Source/WebKit/UIProcess/API/C/mac/WKContextPrivateMac.mm b/Source/WebKit/UIProcess/API/C/mac/WKContextPrivateMac.mm >index be7fcf21e4eea216bad01cdec3ee3cc7e214bbde..13c0c6f0cec925e6d92dc26bd5f816738def2700 100644 >--- a/Source/WebKit/UIProcess/API/C/mac/WKContextPrivateMac.mm >+++ b/Source/WebKit/UIProcess/API/C/mac/WKContextPrivateMac.mm >@@ -38,8 +38,8 @@ > #import "WKSharedAPICast.h" > #import "WKStringCF.h" > #import "WebProcessPool.h" >-#import <WebCore/PluginBlacklist.h> >-#import <WebCore/WebGLBlacklist.h> >+#import <WebCore/PluginBlocklist.h> >+#import <WebCore/WebGLBlocklist.h> > #import <wtf/RetainPtr.h> > > bool WKContextIsPlugInUpdateAvailable(WKContextRef contextRef, WKStringRef plugInBundleIdentifierRef) >@@ -47,7 +47,7 @@ bool WKContextIsPlugInUpdateAvailable(WKContextRef contextRef, WKStringRef plugI > #if PLATFORM(IOS_FAMILY) > return false; > #else >- return WebCore::PluginBlacklist::isPluginUpdateAvailable((__bridge NSString *)adoptCF(WKStringCopyCFString(kCFAllocatorDefault, plugInBundleIdentifierRef)).get()); >+ return WebCore::PluginBlocklist::isPluginUpdateAvailable((__bridge NSString *)adoptCF(WKStringCopyCFString(kCFAllocatorDefault, plugInBundleIdentifierRef)).get()); > #endif > } > >@@ -156,7 +156,7 @@ WKStringRef WKPlugInInfoIsSandboxedKey() > bool WKContextShouldBlockWebGL() > { > #if PLATFORM(MAC) >- return WebCore::WebGLBlacklist::shouldBlockWebGL(); >+ return WebCore::WebGLBlocklist::shouldBlockWebGL(); > #else > return false; > #endif >@@ -165,7 +165,7 @@ bool WKContextShouldBlockWebGL() > bool WKContextShouldSuggestBlockWebGL() > { > #if PLATFORM(MAC) >- return WebCore::WebGLBlacklist::shouldSuggestBlockingWebGL(); >+ return WebCore::WebGLBlocklist::shouldSuggestBlockingWebGL(); > #else > return false; > #endif >diff --git a/Source/WebKit/UIProcess/Plugins/mac/PluginInfoStoreMac.mm b/Source/WebKit/UIProcess/Plugins/mac/PluginInfoStoreMac.mm >index fff8e2589ded47c93fd86f90b35bdad3a983093d..e6d7d0a5f3b88a9c1364df7c75169df9b89698f3 100644 >--- a/Source/WebKit/UIProcess/Plugins/mac/PluginInfoStoreMac.mm >+++ b/Source/WebKit/UIProcess/Plugins/mac/PluginInfoStoreMac.mm >@@ -31,7 +31,7 @@ > #import "Logging.h" > #import "NetscapePluginModule.h" > #import "SandboxUtilities.h" >-#import <WebCore/PluginBlacklist.h> >+#import <WebCore/PluginBlocklist.h> > #import <pwd.h> > #import <wtf/HashSet.h> > #import <wtf/RetainPtr.h> >@@ -113,12 +113,12 @@ bool PluginInfoStore::shouldUsePlugin(Vector<PluginModuleInfo>& alreadyLoadedPlu > > PluginModuleLoadPolicy PluginInfoStore::defaultLoadPolicyForPlugin(const PluginModuleInfo& plugin) > { >- switch (PluginBlacklist::loadPolicyForPluginVersion(plugin.bundleIdentifier, plugin.versionString)) { >- case PluginBlacklist::LoadPolicy::LoadNormally: >+ switch (PluginBlocklist::loadPolicyForPluginVersion(plugin.bundleIdentifier, plugin.versionString)) { >+ case PluginBlocklist::LoadPolicy::LoadNormally: > return PluginModuleLoadNormally; >- case PluginBlacklist::LoadPolicy::BlockedForSecurity: >+ case PluginBlocklist::LoadPolicy::BlockedForSecurity: > return PluginModuleBlockedForSecurity; >- case PluginBlacklist::LoadPolicy::BlockedForCompatibility: >+ case PluginBlocklist::LoadPolicy::BlockedForCompatibility: > return PluginModuleBlockedForCompatibility; > } > } >diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >index e95375fba31edb7e0c394c56428661a36ec177b6..517157e46dc68be070f87a6b4aa383b34a96237d 100644 >--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >@@ -108,7 +108,7 @@ > #import <WebCore/MIMETypeRegistry.h> > #import <WebCore/MouseEvent.h> > #import <WebCore/Page.h> >-#import <WebCore/PluginBlacklist.h> >+#import <WebCore/PluginBlocklist.h> > #import <WebCore/PluginViewBase.h> > #import <WebCore/ProtectionSpace.h> > #import <WebCore/ResourceError.h> >@@ -119,7 +119,7 @@ > #import <WebCore/SharedBuffer.h> > #import <WebCore/SubresourceLoader.h> > #import <WebCore/WebCoreObjCExtras.h> >-#import <WebCore/WebGLBlacklist.h> >+#import <WebCore/WebGLBlocklist.h> > #import <WebCore/WebScriptObjectPrivate.h> > #import <WebCore/Widget.h> > #import <WebKitLegacy/DOMElement.h> >@@ -1881,8 +1881,8 @@ private: > static bool shouldBlockPlugin(WebBasePluginPackage *pluginPackage) > { > #if PLATFORM(MAC) >- auto loadPolicy = WebCore::PluginBlacklist::loadPolicyForPluginVersion(pluginPackage.bundleIdentifier, pluginPackage.bundleVersion); >- return loadPolicy == WebCore::PluginBlacklist::LoadPolicy::BlockedForSecurity || loadPolicy == WebCore::PluginBlacklist::LoadPolicy::BlockedForCompatibility; >+ auto loadPolicy = WebCore::PluginBlocklist::loadPolicyForPluginVersion(pluginPackage.bundleIdentifier, pluginPackage.bundleVersion); >+ return loadPolicy == WebCore::PluginBlocklist::LoadPolicy::BlockedForSecurity || loadPolicy == WebCore::PluginBlocklist::LoadPolicy::BlockedForCompatibility; > #else > UNUSED_PARAM(pluginPackage); > return false; >@@ -2104,7 +2104,7 @@ String WebFrameLoaderClient::overrideMediaType() const > static bool shouldBlockWebGL() > { > #if PLATFORM(MAC) >- return WebCore::WebGLBlacklist::shouldBlockWebGL(); >+ return WebCore::WebGLBlocklist::shouldBlockWebGL(); > #else > return false; > #endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
simon.fraser
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 213000
: 401490