Title: [222672] trunk
- Revision
- 222672
- Author
- [email protected]
- Date
- 2017-09-29 17:29:19 -0700 (Fri, 29 Sep 2017)
Log Message
Expose WebPreferences::webGLEnabled through WKPreferences
https://bugs.webkit.org/show_bug.cgi?id=177692
<rdar://problem/24110556>
Reviewed by Andy Estes.
Source/WebKit:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setWebGLEnabled:]):
(-[WKPreferences _webGLEnabled]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
* TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
(-[AlertSaver alert]):
(-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (222671 => 222672)
--- trunk/Source/WebKit/ChangeLog 2017-09-29 23:48:10 UTC (rev 222671)
+++ trunk/Source/WebKit/ChangeLog 2017-09-30 00:29:19 UTC (rev 222672)
@@ -1,3 +1,16 @@
+2017-09-29 Alex Christensen <[email protected]>
+
+ Expose WebPreferences::webGLEnabled through WKPreferences
+ https://bugs.webkit.org/show_bug.cgi?id=177692
+ <rdar://problem/24110556>
+
+ Reviewed by Andy Estes.
+
+ * UIProcess/API/Cocoa/WKPreferences.mm:
+ (-[WKPreferences _setWebGLEnabled:]):
+ (-[WKPreferences _webGLEnabled]):
+ * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+
2017-09-29 Chris Dumez <[email protected]>
[WK2][NETWORK_SESSION] Move some authentication-related code to avoid duplication
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (222671 => 222672)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm 2017-09-29 23:48:10 UTC (rev 222671)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm 2017-09-30 00:29:19 UTC (rev 222672)
@@ -647,6 +647,7 @@
_preferences->setJavaScriptCanAccessClipboard(_javascript_CanAccessClipboard);
}
+#if PLATFORM(MAC)
- (void)_setPlugInsEnabled:(BOOL)enabled
{
_preferences->setPluginsEnabled(enabled);
@@ -657,6 +658,17 @@
return _preferences->pluginsEnabled();
}
+- (void)_setWebGLEnabled:(BOOL)enabled
+{
+ _preferences->setWebGLEnabled(enabled);
+}
+
+- (BOOL)_webGLEnabled
+{
+ return _preferences->webGLEnabled();
+}
+#endif // PLATFORM(MAC)
+
- (BOOL)_javaScriptCanAccessClipboard
{
return _preferences->_javascript_CanAccessClipboard();
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h (222671 => 222672)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h 2017-09-29 23:48:10 UTC (rev 222671)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h 2017-09-30 00:29:19 UTC (rev 222672)
@@ -120,6 +120,7 @@
#if !TARGET_OS_IPHONE
@property (nonatomic, setter=_setPlugInsEnabled:) BOOL _plugInsEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA));
+@property (nonatomic, setter=_setWebGLEnabled:) BOOL _webGLEnabled WK_API_AVAILABLE(macosx(WK_MAC_TBA));
#endif
@end
Modified: trunk/Tools/ChangeLog (222671 => 222672)
--- trunk/Tools/ChangeLog 2017-09-29 23:48:10 UTC (rev 222671)
+++ trunk/Tools/ChangeLog 2017-09-30 00:29:19 UTC (rev 222672)
@@ -1,5 +1,18 @@
2017-09-29 Alex Christensen <[email protected]>
+ Expose WebPreferences::webGLEnabled through WKPreferences
+ https://bugs.webkit.org/show_bug.cgi?id=177692
+ <rdar://problem/24110556>
+
+ Reviewed by Andy Estes.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
+ (-[AlertSaver alert]):
+ (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
+ (TEST):
+
+2017-09-29 Alex Christensen <[email protected]>
+
Fix WKWebViewConfigurationPrivate after r222663
https://bugs.webkit.org/show_bug.cgi?id=177644
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm (222671 => 222672)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm 2017-09-29 23:48:10 UTC (rev 222671)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm 2017-09-30 00:29:19 UTC (rev 222672)
@@ -28,8 +28,10 @@
#if WK_API_ENABLED
#import "Test.h"
+#import "Utilities.h"
#import <WebKit/WKFoundation.h>
#import <WebKit/WKPreferencesPrivate.h>
+#import <WebKit/WKUIDelegate.h>
#import <WebKit/_WKExperimentalFeature.h>
#import <wtf/RetainPtr.h>
@@ -66,4 +68,52 @@
}
}
-#endif
+#if PLATFORM(MAC)
+
+static bool receivedAlert;
+
+@interface AlertSaver : NSObject <WKUIDelegate>
+@end
+
+@implementation AlertSaver {
+ RetainPtr<NSString> alert;
+}
+
+- (NSString *)alert
+{
+ return alert.get();
+}
+
+- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
+{
+ alert = message;
+ completionHandler();
+ receivedAlert = true;
+}
+
+@end
+
+TEST(WebKit, WebGLEnabled)
+{
+ NSString *html = @"<script>if(document.createElement('canvas').getContext('webgl')){alert('enabled')}else{alert('disabled')}</script>";
+ auto delegate = adoptNS([[AlertSaver alloc] init]);
+
+ auto webView = adoptNS([[WKWebView alloc] init]);
+ [webView setUIDelegate:delegate.get()];
+ [webView loadHTMLString:html baseURL:nil];
+ TestWebKitAPI::Util::run(&receivedAlert);
+ EXPECT_STREQ([delegate alert].UTF8String, "enabled");
+
+ receivedAlert = false;
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ [[configuration preferences] _setWebGLEnabled:NO];
+ webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
+ [webView setUIDelegate:delegate.get()];
+ [webView loadHTMLString:html baseURL:nil];
+ TestWebKitAPI::Util::run(&receivedAlert);
+ EXPECT_STREQ([delegate alert].UTF8String, "disabled");
+}
+
+#endif // PLATFORM(MAC)
+
+#endif // WK_API_ENABLED
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes