Changeset 244197 in webkit
- Timestamp:
- Apr 11, 2019 3:15:01 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 17 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r244195 r244197 1 2019-04-11 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Allow the MediaSource API to be enabled via website policy 4 https://bugs.webkit.org/show_bug.cgi?id=196429 5 <rdar://problem/48774333> 6 7 Reviewed by Tim Horton. 8 9 Add an on-device layout test to ensure that enabling modern compability mode also enables MSE. 10 11 * TestExpectations: 12 * fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode-expected.txt: Added. 13 * fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html: Added. 14 * platform/ios-simulator/TestExpectations: 15 * platform/ios/TestExpectations: 16 1 17 2019-04-11 Devin Rousso <drousso@apple.com> 2 18 -
trunk/LayoutTests/TestExpectations
r244182 r244197 58 58 editing/pasteboard/ios [ Skip ] 59 59 editing/pasteboard/mac [ Skip ] 60 fast/media/ios [ Skip ] 60 61 61 62 # WebKit2 only. -
trunk/LayoutTests/platform/ios-simulator/TestExpectations
r243802 r244197 13 13 fast/forms/searchfield-heights.html [ Skip ] 14 14 fast/forms/visual-hebrew-text-field.html [ Skip ] 15 16 # The MediaSource API is unsupported on iOS simulator. 17 fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html [ Skip ] 15 18 16 19 # -webkit-flex off-by-one px -
trunk/LayoutTests/platform/ios/TestExpectations
r244096 r244197 13 13 quicklook [ Pass ] 14 14 swipe [ Pass ] 15 16 fast/media/ios [ Pass ] 15 17 16 18 fast/forms/textarea/ios [ Pass ] -
trunk/Source/WebCore/ChangeLog
r244196 r244197 1 2019-04-11 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Allow the MediaSource API to be enabled via website policy 4 https://bugs.webkit.org/show_bug.cgi?id=196429 5 <rdar://problem/48774333> 6 7 Reviewed by Tim Horton. 8 9 Add support in DocumentLoader for adjusting page settings using its per-site policies. See WebKit ChangeLog for 10 more detail (in particular, the implementation of applyToDocumentLoader). 11 12 Test: fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html 13 14 * loader/DocumentLoader.cpp: 15 (WebCore::DocumentLoader::applyPoliciesToSettings const): 16 (WebCore::DocumentLoader::attachToFrame): 17 * loader/DocumentLoader.h: 18 19 Add an enum class for MediaSource policies; while we're at it, make all of these enum values 8 bits wide. 20 21 (WebCore::DocumentLoader::mediaSourcePolicy const): 22 (WebCore::DocumentLoader::setMediaSourcePolicy): 23 1 24 2019-04-11 Youenn Fablet <youenn@apple.com> 2 25 -
trunk/Source/WebCore/loader/DocumentLoader.cpp
r242804 r244197 1176 1176 } 1177 1177 1178 void DocumentLoader::applyPoliciesToSettings() 1179 { 1180 if (!m_frame) { 1181 ASSERT_NOT_REACHED(); 1182 return; 1183 } 1184 1185 if (!m_frame->isMainFrame()) 1186 return; 1187 1188 #if ENABLE(MEDIA_SOURCE) 1189 m_frame->settings().setMediaSourceEnabled(m_mediaSourcePolicy == MediaSourcePolicy::Default ? Settings::platformDefaultMediaSourceEnabled() : m_mediaSourcePolicy == MediaSourcePolicy::Enable); 1190 #endif 1191 } 1192 1178 1193 void DocumentLoader::attachToFrame(Frame& frame) 1179 1194 { … … 1189 1204 m_hasEverBeenAttached = true; 1190 1205 #endif 1206 1207 applyPoliciesToSettings(); 1191 1208 } 1192 1209 -
trunk/Source/WebCore/loader/DocumentLoader.h
r244161 r244197 93 93 using ResourceLoaderMap = HashMap<unsigned long, RefPtr<ResourceLoader>>; 94 94 95 enum class AutoplayPolicy {95 enum class AutoplayPolicy : uint8_t { 96 96 Default, // Uses policies specified in document settings. 97 97 Allow, … … 100 100 }; 101 101 102 enum class AutoplayQuirk {102 enum class AutoplayQuirk : uint8_t { 103 103 SynthesizedPauseEvents = 1 << 0, 104 104 InheritedUserGestures = 1 << 1, … … 107 107 }; 108 108 109 enum class PopUpPolicy {109 enum class PopUpPolicy : uint8_t { 110 110 Default, // Uses policies specified in frame settings. 111 111 Allow, … … 113 113 }; 114 114 115 enum class MetaViewportPolicy {115 enum class MetaViewportPolicy : uint8_t { 116 116 Default, 117 117 Respect, 118 118 Ignore, 119 }; 120 121 enum class MediaSourcePolicy : uint8_t { 122 Default, 123 Disable, 124 Enable 119 125 }; 120 126 … … 293 299 void setMetaViewportPolicy(MetaViewportPolicy policy) { m_metaViewportPolicy = policy; } 294 300 301 MediaSourcePolicy mediaSourcePolicy() const { return m_mediaSourcePolicy; } 302 void setMediaSourcePolicy(MediaSourcePolicy policy) { m_mediaSourcePolicy = policy; } 303 295 304 void addSubresourceLoader(ResourceLoader*); 296 305 void removeSubresourceLoader(LoadCompletionType, ResourceLoader*); … … 359 368 void setDownloadAttribute(const String& attribute) { m_downloadAttribute = attribute; } 360 369 const String& downloadAttribute() const { return m_downloadAttribute; } 370 371 WEBCORE_EXPORT void applyPoliciesToSettings(); 361 372 362 373 protected: … … 570 581 PopUpPolicy m_popUpPolicy { PopUpPolicy::Default }; 571 582 MetaViewportPolicy m_metaViewportPolicy { MetaViewportPolicy::Default }; 583 MediaSourcePolicy m_mediaSourcePolicy { MediaSourcePolicy::Default }; 572 584 573 585 #if ENABLE(SERVICE_WORKER) -
trunk/Source/WebKit/ChangeLog
r244192 r244197 1 2019-04-11 Wenson Hsieh <wenson_hsieh@apple.com> 2 3 Allow the MediaSource API to be enabled via website policy 4 https://bugs.webkit.org/show_bug.cgi?id=196429 5 <rdar://problem/48774333> 6 7 Reviewed by Tim Horton. 8 9 Adds support for using WebsitePolicies to determine whether to enable the MediaSource API. 10 11 * Shared/WebPreferences.yaml: 12 13 Disengage the mediaSourceEnabled internal preference from the corresponding WebCore setting; to ensure that 14 setting the preference to `true` still results in enabling the MediaSource API, we instead make it such that 15 turning on mediaSourceEnabled causes WebsitePolicies to set its WebsiteMediaSourcePolicy to Enable. 16 17 In the future, we should deprecate and remove this preference, in favor of simply setting preferred 18 compatibility mode on WKWebpagePreferences. 19 20 * Shared/WebPreferences.yaml: 21 * Shared/WebsiteMediaSourcePolicy.h: Copied from Source/WebKit/Shared/WebsitePoliciesData.h. 22 * Shared/WebsitePoliciesData.cpp: 23 (WebKit::WebsitePoliciesData::encode const): 24 (WebKit::WebsitePoliciesData::decode): 25 26 Add plumbing for m_mediaSourcePolicy in the set of website policies. 27 28 (WebKit::WebsitePoliciesData::applyToDocumentLoader): 29 30 Update the document loader with the given media source policy. There are two possibilities when applying the set 31 of policies to the document loader; either the document loader is already attached to a Frame, or the document 32 loader is yet to be attached to a Frame. 33 34 In the first case, we update Frame's settings on the spot, by calling the new applyPoliciesToSettings helper 35 method. In the second scenario, we stash the policy state on DocumentLoader; when the DocumentLoader is attached 36 to a Frame, we'll then update the Frame's settings using DocumentLoader's policy. 37 38 * Shared/WebsitePoliciesData.h: 39 * UIProcess/API/APIWebsitePolicies.cpp: 40 (API::WebsitePolicies::data): 41 * UIProcess/API/APIWebsitePolicies.h: 42 * UIProcess/API/C/WKPage.cpp: 43 (WKPageSetPageNavigationClient): 44 * UIProcess/Cocoa/NavigationState.mm: 45 (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): 46 47 Move code that adjusts website policies after deciding policies for the navigation action from NavigationClient 48 ::decidePolicyForNavigationAction to the completion handler of the policy listener. This allows us to respect 49 default website policies on the web view configuration, even when using the C API to set the navigation client, 50 and also allows us to have a single call site for adjustPoliciesForCompatibilityMode. This also enables our 51 layout tests to opt into modern compatibility mode by default, when specifying modern compatibility mode on 52 webpage preferences. 53 54 * UIProcess/WebPageProxy.cpp: 55 (WebKit::WebPageProxy::decidePolicyForNavigationAction): 56 (WebKit::WebPageProxy::adjustPoliciesForCompatibilityMode): 57 * UIProcess/WebPageProxy.h: 58 * WebKit.xcodeproj/project.pbxproj: 59 1 60 2019-04-11 Antti Koivisto <antti@apple.com> 2 61 -
trunk/Source/WebKit/Shared/WebPreferences.yaml
r244140 r244197 591 591 defaultValue: WebCore::Settings::platformDefaultMediaSourceEnabled() 592 592 condition: ENABLE(MEDIA_SOURCE) 593 webcoreBinding: none 593 594 594 595 ViewGestureDebuggingEnabled: -
trunk/Source/WebKit/Shared/WebsiteMediaSourcePolicy.h
r244196 r244197 1 1 /* 2 * Copyright (C) 201 6Apple Inc. All rights reserved.2 * Copyright (C) 2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 26 26 #pragma once 27 27 28 #include "WebsiteAutoplayPolicy.h" 29 #include "WebsiteAutoplayQuirk.h" 30 #include "WebsiteDataStoreParameters.h" 31 #include "WebsiteMetaViewportPolicy.h" 32 #include "WebsitePopUpPolicy.h" 33 #include <WebCore/HTTPHeaderField.h> 34 #include <wtf/OptionSet.h> 35 36 namespace IPC { 37 class Decoder; 38 class Encoder; 39 } 40 41 namespace WebCore { 42 class DocumentLoader; 43 } 28 #include <wtf/Forward.h> 44 29 45 30 namespace WebKit { 46 31 47 struct WebsitePoliciesData { 48 static void applyToDocumentLoader(WebsitePoliciesData&&, WebCore::DocumentLoader&); 49 50 bool contentBlockersEnabled { true }; 51 OptionSet<WebsiteAutoplayQuirk> allowedAutoplayQuirks; 52 WebsiteAutoplayPolicy autoplayPolicy { WebsiteAutoplayPolicy::Default }; 53 Optional<bool> deviceOrientationAndMotionAccessState; 54 Vector<WebCore::HTTPHeaderField> customHeaderFields; 55 WebsitePopUpPolicy popUpPolicy { WebsitePopUpPolicy::Default }; 56 Optional<WebsiteDataStoreParameters> websiteDataStoreParameters; 57 String customUserAgent; 58 String customJavaScriptUserAgentAsSiteSpecificQuirks; 59 String customNavigatorPlatform; 60 WebsiteMetaViewportPolicy metaViewportPolicy { WebsiteMetaViewportPolicy::Default }; 61 62 void encode(IPC::Encoder&) const; 63 static Optional<WebsitePoliciesData> decode(IPC::Decoder&); 32 enum class WebsiteMediaSourcePolicy : uint8_t { 33 Default, 34 Disable, 35 Enable 64 36 }; 65 37 66 38 } // namespace WebKit 39 40 namespace WTF { 41 42 template<> struct EnumTraits<WebKit::WebsiteMediaSourcePolicy> { 43 using values = EnumValues< 44 WebKit::WebsiteMediaSourcePolicy, 45 WebKit::WebsiteMediaSourcePolicy::Default, 46 WebKit::WebsiteMediaSourcePolicy::Disable, 47 WebKit::WebsiteMediaSourcePolicy::Enable 48 >; 49 }; 50 51 } // namespace WTF -
trunk/Source/WebKit/Shared/WebsitePoliciesData.cpp
r243798 r244197 48 48 encoder << customNavigatorPlatform; 49 49 encoder << metaViewportPolicy; 50 encoder << mediaSourcePolicy; 50 51 } 51 52 … … 105 106 decoder >> metaViewportPolicy; 106 107 if (!metaViewportPolicy) 108 return WTF::nullopt; 109 110 Optional<WebsiteMediaSourcePolicy> mediaSourcePolicy; 111 decoder >> mediaSourcePolicy; 112 if (!mediaSourcePolicy) 107 113 return WTF::nullopt; 108 114 … … 119 125 WTFMove(*customNavigatorPlatform), 120 126 WTFMove(*metaViewportPolicy), 127 WTFMove(*mediaSourcePolicy), 121 128 } }; 122 129 } … … 190 197 } 191 198 192 if (websitePolicies.websiteDataStoreParameters) { 193 if (auto* frame = documentLoader.frame()) { 194 if (auto* page = frame->page()) 195 page->setSessionID(websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID); 196 } 197 } 198 } 199 200 } 201 199 switch (websitePolicies.mediaSourcePolicy) { 200 case WebsiteMediaSourcePolicy::Default: 201 documentLoader.setMediaSourcePolicy(WebCore::MediaSourcePolicy::Default); 202 break; 203 case WebsiteMediaSourcePolicy::Disable: 204 documentLoader.setMediaSourcePolicy(WebCore::MediaSourcePolicy::Disable); 205 break; 206 case WebsiteMediaSourcePolicy::Enable: 207 documentLoader.setMediaSourcePolicy(WebCore::MediaSourcePolicy::Enable); 208 break; 209 } 210 211 auto* frame = documentLoader.frame(); 212 if (!frame) 213 return; 214 215 documentLoader.applyPoliciesToSettings(); 216 217 auto* page = frame->page(); 218 if (!page) 219 return; 220 221 if (websitePolicies.websiteDataStoreParameters) 222 page->setSessionID(websitePolicies.websiteDataStoreParameters->networkSessionParameters.sessionID); 223 } 224 225 } 226 -
trunk/Source/WebKit/Shared/WebsitePoliciesData.h
r243798 r244197 29 29 #include "WebsiteAutoplayQuirk.h" 30 30 #include "WebsiteDataStoreParameters.h" 31 #include "WebsiteMediaSourcePolicy.h" 31 32 #include "WebsiteMetaViewportPolicy.h" 32 33 #include "WebsitePopUpPolicy.h" … … 59 60 String customNavigatorPlatform; 60 61 WebsiteMetaViewportPolicy metaViewportPolicy { WebsiteMetaViewportPolicy::Default }; 62 WebsiteMediaSourcePolicy mediaSourcePolicy { WebsiteMediaSourcePolicy::Default }; 61 63 62 64 void encode(IPC::Encoder&) const; -
trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp
r243909 r244197 88 88 m_customNavigatorPlatform, 89 89 m_metaViewportPolicy, 90 m_mediaSourcePolicy 90 91 }; 91 92 } -
trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.h
r243909 r244197 30 30 #include "WebsiteAutoplayPolicy.h" 31 31 #include "WebsiteAutoplayQuirk.h" 32 #include "WebsiteMediaSourcePolicy.h" 32 33 #include "WebsiteMetaViewportPolicy.h" 33 34 #include "WebsitePopUpPolicy.h" … … 91 92 void setMetaViewportPolicy(WebKit::WebsiteMetaViewportPolicy policy) { m_metaViewportPolicy = policy; } 92 93 94 WebKit::WebsiteMediaSourcePolicy mediaSourcePolicy() const { return m_mediaSourcePolicy; } 95 void setMediaSourcePolicy(WebKit::WebsiteMediaSourcePolicy policy) { m_mediaSourcePolicy = policy; } 96 93 97 private: 94 98 WebsitePolicies(bool contentBlockersEnabled, OptionSet<WebKit::WebsiteAutoplayQuirk>, WebKit::WebsiteAutoplayPolicy, Vector<WebCore::HTTPHeaderField>&&, WebKit::WebsitePopUpPolicy, RefPtr<WebsiteDataStore>&&); … … 106 110 WebKit::WebCompatibilityMode m_preferredCompatibilityMode { WebKit::WebCompatibilityMode::Default }; 107 111 WebKit::WebsiteMetaViewportPolicy m_metaViewportPolicy { WebKit::WebsiteMetaViewportPolicy::Default }; 112 WebKit::WebsiteMediaSourcePolicy m_mediaSourcePolicy { WebKit::WebsiteMediaSourcePolicy::Default }; 108 113 }; 109 114 -
trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm
r243909 r244197 526 526 } 527 527 528 if (defaultWebsitePolicies)529 webPage->adjustPoliciesForCompatibilityMode(navigationAction, *defaultWebsitePolicies);530 531 528 if (!navigationAction->targetFrame()) { 532 529 listener->use(defaultWebsitePolicies.get()); … … 598 595 if (!apiWebsitePolicies->customNavigatorPlatform().isNull() && subframeNavigation) 599 596 [NSException raise:NSInvalidArgumentException format:@"WKWebpagePreferences._customNavigatorPlatform must be nil for subframe navigations."]; 600 601 webPageProxy->adjustPoliciesForCompatibilityMode(navigationAction, *apiWebsitePolicies);602 597 } 603 598 -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r244161 r244197 4570 4570 4571 4571 auto completionHandler = [this, protectedThis = protectedThis.copyRef(), frame = frame.copyRef(), sender = WTFMove(sender), navigation = WTFMove(navigation), processSwapRequestedByClient, policies = makeRefPtr(policies)] (PolicyAction policyAction) mutable { 4572 if (frame->isMainFrame()) { 4573 if (!policies) { 4574 if (auto* defaultPolicies = m_configuration->defaultWebsitePolicies()) 4575 policies = defaultPolicies->copy(); 4576 } 4577 if (policies) 4578 adjustPoliciesForCompatibilityMode(*policies); 4579 } 4572 4580 receivedNavigationPolicyDecision(policyAction, navigation.get(), processSwapRequestedByClient, frame, policies.get(), WTFMove(sender)); 4573 4581 }; … … 8913 8921 #if !PLATFORM(IOS_FAMILY) || !USE(APPLE_INTERNAL_SDK) 8914 8922 8915 void WebPageProxy::adjustPoliciesForCompatibilityMode( const API::NavigationAction&,API::WebsitePolicies&)8923 void WebPageProxy::adjustPoliciesForCompatibilityMode(API::WebsitePolicies&) 8916 8924 { 8917 8925 } -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r244161 r244197 1515 1515 1516 1516 void configureLoggingChannel(const String&, WTFLogChannelState, WTFLogLevel); 1517 void adjustPoliciesForCompatibilityMode(const API::NavigationAction&, API::WebsitePolicies&);1518 1517 1519 1518 void addObserver(WebViewDidMoveToWindowObserver&); … … 1622 1621 void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&, const UserData&); 1623 1622 void beginSafeBrowsingCheck(const URL&, bool, WebFramePolicyListenerProxy&); 1623 1624 void adjustPoliciesForCompatibilityMode(API::WebsitePolicies&); 1624 1625 1625 1626 void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector<std::pair<String, String>>& textFieldValues, uint64_t listenerID, const UserData&); -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r244091 r244197 1650 1650 F48D2A8521583A7E00C6752B /* AppKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = F48D2A8421583A0200C6752B /* AppKitSPI.h */; }; 1651 1651 F496A4311F58A272004C1757 /* DragDropInteractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = F496A42F1F58A272004C1757 /* DragDropInteractionState.h */; }; 1652 F4CB09E5225D5A0900891487 /* WebsiteMediaSourcePolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = F4CB09E4225D5A0300891487 /* WebsiteMediaSourcePolicy.h */; }; 1652 1653 F4D5F51D206087A10038BBA8 /* WKTextInputListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = F4D5F519206087A00038BBA8 /* WKTextInputListViewController.h */; }; 1653 1654 F4D5F51F206087A10038BBA8 /* WKQuickboardListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = F4D5F51B206087A10038BBA8 /* WKQuickboardListViewController.h */; }; … … 4596 4597 F496A4301F58A272004C1757 /* DragDropInteractionState.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = DragDropInteractionState.mm; path = ios/DragDropInteractionState.mm; sourceTree = "<group>"; }; 4597 4598 F4B378D021DDBBAB0095A378 /* WebUndoStepID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebUndoStepID.h; sourceTree = "<group>"; }; 4599 F4CB09E4225D5A0300891487 /* WebsiteMediaSourcePolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebsiteMediaSourcePolicy.h; sourceTree = "<group>"; }; 4598 4600 F4D5F519206087A00038BBA8 /* WKTextInputListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WKTextInputListViewController.h; path = ios/forms/WKTextInputListViewController.h; sourceTree = "<group>"; }; 4599 4601 F4D5F51A206087A10038BBA8 /* WKTextInputListViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WKTextInputListViewController.mm; path = ios/forms/WKTextInputListViewController.mm; sourceTree = "<group>"; }; … … 5236 5238 511F7D3F1EB1BCEE00E47B83 /* WebsiteDataStoreParameters.cpp */, 5237 5239 511F7D401EB1BCEE00E47B83 /* WebsiteDataStoreParameters.h */, 5240 F4CB09E4225D5A0300891487 /* WebsiteMediaSourcePolicy.h */, 5241 F430E941224732A9005FE053 /* WebsiteMetaViewportPolicy.h */, 5238 5242 5C3AEA8E1FE1F1DF002318D3 /* WebsitePoliciesData.cpp */, 5239 5243 5C13024A1FE341A7000D9B31 /* WebsitePoliciesData.h */, 5240 F430E941224732A9005FE053 /* WebsiteMetaViewportPolicy.h */,5241 5244 0EDE85022004E74900030560 /* WebsitePopUpPolicy.h */, 5242 5245 8360349D1ACB34D600626549 /* WebSQLiteDatabaseTracker.cpp */, … … 9710 9713 1A53C2AA1A325730004E8C70 /* WebsiteDataStore.h in Headers */, 9711 9714 511F7D411EB1BCF500E47B83 /* WebsiteDataStoreParameters.h in Headers */, 9715 F4CB09E5225D5A0900891487 /* WebsiteMediaSourcePolicy.h in Headers */, 9716 F430E9422247335F005FE053 /* WebsiteMetaViewportPolicy.h in Headers */, 9712 9717 0EDE85032004E75D00030560 /* WebsitePopUpPolicy.h in Headers */, 9713 9718 C149380922347104000CD707 /* WebSpeechSynthesisClient.h in Headers */, … … 9835 9840 37A709A71E3EA0FD00CA5969 /* WKDataDetectorTypes.h in Headers */, 9836 9841 37A709A91E3EA40C00CA5969 /* WKDataDetectorTypesInternal.h in Headers */, 9837 F430E9422247335F005FE053 /* WebsiteMetaViewportPolicy.h in Headers */,9838 9842 2E94FC1620351A6D00974BA0 /* WKDatePickerViewController.h in Headers */, 9839 9843 377EAD4517E2C51A002D193D /* WKDeclarationSpecifiers.h in Headers */,
Note: See TracChangeset
for help on using the changeset viewer.