Title: [277713] trunk
- Revision
- 277713
- Author
- timothy_hor...@apple.com
- Date
- 2021-05-18 20:10:55 -0700 (Tue, 18 May 2021)
Log Message
allowsContentJavaScript API not applied from defaultWebpagePreferences
https://bugs.webkit.org/show_bug.cgi?id=225957
Reviewed by Wenson Hsieh.
New API test: WebKit.AllowsContentJavaScriptFromDefaultPreferences
* UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
allowsContentJavaScript works fine on the per-navigation-level WKWebpagePreferences,
but is ignored if applied on the WKWebViewConfiguration's defaultWebpagePreferences,
because it is not copied in copy(). Copy it!
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (277712 => 277713)
--- trunk/Source/WebKit/ChangeLog 2021-05-19 03:03:50 UTC (rev 277712)
+++ trunk/Source/WebKit/ChangeLog 2021-05-19 03:10:55 UTC (rev 277713)
@@ -1,5 +1,20 @@
2021-05-18 Tim Horton <timothy_hor...@apple.com>
+ allowsContentJavaScript API not applied from defaultWebpagePreferences
+ https://bugs.webkit.org/show_bug.cgi?id=225957
+
+ Reviewed by Wenson Hsieh.
+
+ New API test: WebKit.AllowsContentJavaScriptFromDefaultPreferences
+
+ * UIProcess/API/APIWebsitePolicies.cpp:
+ (API::WebsitePolicies::copy const):
+ allowsContentJavaScript works fine on the per-navigation-level WKWebpagePreferences,
+ but is ignored if applied on the WKWebViewConfiguration's defaultWebpagePreferences,
+ because it is not copied in copy(). Copy it!
+
+2021-05-18 Tim Horton <timothy_hor...@apple.com>
+
REGRESSION (r277683): WebContent process crashing in unit tests
https://bugs.webkit.org/show_bug.cgi?id=225955
rdar://78184041
Modified: trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp (277712 => 277713)
--- trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp 2021-05-19 03:03:50 UTC (rev 277712)
+++ trunk/Source/WebKit/UIProcess/API/APIWebsitePolicies.cpp 2021-05-19 03:10:55 UTC (rev 277713)
@@ -71,6 +71,7 @@
policies->setCustomHeaderFields(WTFMove(customHeaderFields));
policies->setAllowSiteSpecificQuirksToOverrideContentMode(m_allowSiteSpecificQuirksToOverrideContentMode);
policies->setApplicationNameForDesktopUserAgent(m_applicationNameForDesktopUserAgent);
+ policies->setAllowsContentJavaScript(m_allowsContentJavaScript);
policies->setMouseEventPolicy(m_mouseEventPolicy);
return policies;
}
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm (277712 => 277713)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm 2021-05-19 03:03:50 UTC (rev 277712)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm 2021-05-19 03:10:55 UTC (rev 277713)
@@ -438,6 +438,27 @@
}
#endif
+TEST(WebKit, AllowsContentJavaScriptFromDefaultPreferences)
+{
+ RetainPtr<WKWebpagePreferences> preferences = adoptNS([[WKWebpagePreferences alloc] init]);
+ [preferences setAllowsContentJavaScript:NO];
+
+ RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ [configuration setDefaultWebpagePreferences:preferences.get()];
+
+ RetainPtr<TestWKWebView> webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
+
+ [webView synchronouslyLoadHTMLString:@"<script>var foo = 'bar'</script>"];
+
+ __block bool done = false;
+ [webView evaluateJavaScript:@"foo" completionHandler:^(id result, NSError *error) {
+ EXPECT_NULL(result);
+ EXPECT_TRUE([[error description] containsString:@"Can't find variable: foo"]);
+ done = true;
+ }];
+ TestWebKitAPI::Util::run(&done);
+}
+
TEST(WebKit, SPIJavascriptMarkupVsAPIContentJavaScript)
{
// There's not a dynamically configuration setting for _javascript_ markup,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes