Enable legacy EME for iOS WKWebView
https://bugs.webkit.org/show_bug.cgi?id=197964
<rdar://problem/50625666>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-05-17
Reviewed by Wenson Hsieh.
Source/WebCore:
This was attempted unsuccessfully in r230169.
Verified manually that it works as desired.
* page/RuntimeEnabledFeatures.h:
Source/WebKit:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
Tools:
* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@245491 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 877d639..b3ce813 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2019-05-17 Alex Christensen <achristensen@webkit.org>
+
+ Enable legacy EME for iOS WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=197964
+ <rdar://problem/50625666>
+
+ Reviewed by Wenson Hsieh.
+
+ This was attempted unsuccessfully in r230169.
+ Verified manually that it works as desired.
+
+ * page/RuntimeEnabledFeatures.h:
+
2019-05-17 Sihui Liu <sihui_liu@apple.com>
ASSERTION FAILED: !m_backingStore in WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore(uint64_t)
diff --git a/Source/WebCore/page/RuntimeEnabledFeatures.h b/Source/WebCore/page/RuntimeEnabledFeatures.h
index 86545a5..3b49857 100644
--- a/Source/WebCore/page/RuntimeEnabledFeatures.h
+++ b/Source/WebCore/page/RuntimeEnabledFeatures.h
@@ -507,7 +507,7 @@
#endif
#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
- bool m_legacyEncryptedMediaAPIEnabled { false };
+ bool m_legacyEncryptedMediaAPIEnabled { true };
#endif
#if ENABLE(INTERSECTION_OBSERVER)
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 3fd28e9..7bb8241 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,14 @@
+2019-05-17 Alex Christensen <achristensen@webkit.org>
+
+ Enable legacy EME for iOS WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=197964
+ <rdar://problem/50625666>
+
+ Reviewed by Wenson Hsieh.
+
+ * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+ (-[WKWebViewConfiguration init]):
+
2019-05-17 Antoine Quint <graouts@apple.com>
Add a website policy to disable the legacy -webkit-overflow-scrolling:touch behavior
diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
index 636eb6e..eec0438 100644
--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
@@ -200,13 +200,12 @@
#endif
_mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeAll;
_ignoresViewportScaleLimits = NO;
- _legacyEncryptedMediaAPIEnabled = NO;
#else
_mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
_mediaDataLoadsAutomatically = YES;
_userInterfaceDirectionPolicy = WKUserInterfaceDirectionPolicyContent;
- _legacyEncryptedMediaAPIEnabled = YES;
#endif
+ _legacyEncryptedMediaAPIEnabled = YES;
_mainContentUserGestureOverrideEnabled = NO;
_invisibleAutoplayNotPermitted = NO;
_attachmentElementEnabled = NO;
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 7c6ea1c..8a0c4e8 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,14 @@
+2019-05-17 Alex Christensen <achristensen@webkit.org>
+
+ Enable legacy EME for iOS WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=197964
+ <rdar://problem/50625666>
+
+ Reviewed by Wenson Hsieh.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
+ (TEST):
+
2019-05-17 Aakash Jain <aakash_jain@apple.com>
[ews-build] Add clickable url in UI for uploaded S3 archive
diff --git a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm
index a308518..6f2737a 100644
--- a/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm
+++ b/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm
@@ -81,3 +81,17 @@
auto configuationCopy = adoptNS([configuration copy]);
EXPECT_STREQ([configuration _groupIdentifier].UTF8String, [configuationCopy _groupIdentifier].UTF8String);
}
+
+TEST(WebKit, DefaultConfigurationEME)
+{
+ auto configuration = adoptNS([WKWebViewConfiguration new]);
+ EXPECT_TRUE([configuration _legacyEncryptedMediaAPIEnabled]);
+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:CGRectMake(0, 0, 100, 100) configuration:configuration.get()]);
+ [webView loadHTMLString:@"<html>hi</html>" baseURL:nil];
+ __block bool done = false;
+ [webView evaluateJavaScript:@"window.WebKitMediaKeys ? 'ENABLED' : 'DISABLED'" completionHandler:^(id result, NSError *){
+ EXPECT_TRUE([result isEqualToString:@"ENABLED"]);
+ done = true;
+ }];
+ TestWebKitAPI::Util::run(&done);
+}