|
Lines 38-49
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec1
|
| 38 |
#import <WebKit/WKURLSchemeTaskPrivate.h> |
38 |
#import <WebKit/WKURLSchemeTaskPrivate.h> |
| 39 |
#import <WebKit/WKUserContentControllerPrivate.h> |
39 |
#import <WebKit/WKUserContentControllerPrivate.h> |
| 40 |
#import <WebKit/WKWebViewPrivate.h> |
40 |
#import <WebKit/WKWebViewPrivate.h> |
|
|
41 |
#import <WebKit/WKWebpagePreferencesPrivate.h> |
| 41 |
#import <WebKit/WKWebsiteDataStorePrivate.h> |
42 |
#import <WebKit/WKWebsiteDataStorePrivate.h> |
| 42 |
#import <WebKit/WKWebsitePolicies.h> |
43 |
#import <WebKit/WKWebsitePolicies.h> |
| 43 |
#import <WebKit/_WKCustomHeaderFields.h> |
44 |
#import <WebKit/_WKCustomHeaderFields.h> |
| 44 |
#import <WebKit/_WKUserContentExtensionStorePrivate.h> |
45 |
#import <WebKit/_WKUserContentExtensionStorePrivate.h> |
| 45 |
#import <WebKit/_WKWebsiteDataStoreConfiguration.h> |
46 |
#import <WebKit/_WKWebsiteDataStoreConfiguration.h> |
| 46 |
#import <WebKit/_WKWebsitePolicies.h> |
|
|
| 47 |
#import <wtf/Function.h> |
47 |
#import <wtf/Function.h> |
| 48 |
#import <wtf/HashMap.h> |
48 |
#import <wtf/HashMap.h> |
| 49 |
#import <wtf/MainThread.h> |
49 |
#import <wtf/MainThread.h> |
|
Lines 104-112
- (void)webView:(WKWebView *)webView run
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec2
|
| 104 |
completionHandler(); |
104 |
completionHandler(); |
| 105 |
} |
105 |
} |
| 106 |
|
106 |
|
| 107 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
107 |
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 108 |
{ |
108 |
{ |
| 109 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
109 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 110 |
switch (alertCount) { |
110 |
switch (alertCount) { |
| 111 |
case 0: |
111 |
case 0: |
| 112 |
// Verify the content blockers behave correctly with the default behavior. |
112 |
// Verify the content blockers behave correctly with the default behavior. |
|
Lines 114-124
- (void)_webView:(WKWebView *)webView de
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec3
|
| 114 |
case 1: |
114 |
case 1: |
| 115 |
{ |
115 |
{ |
| 116 |
// Verify disabling content blockers works correctly. |
116 |
// Verify disabling content blockers works correctly. |
| 117 |
websitePolicies.contentBlockersEnabled = false; |
117 |
websitePolicies._contentBlockersEnabled = false; |
| 118 |
|
118 |
|
| 119 |
// Verify calling the decisionHandler asynchronously works correctly. |
119 |
// Verify calling the decisionHandler asynchronously works correctly. |
| 120 |
auto decisionHandlerCopy = Block_copy(decisionHandler); |
120 |
auto decisionHandlerCopy = Block_copy(decisionHandler); |
| 121 |
callOnMainThread([decisionHandlerCopy, websitePolicies = RetainPtr<_WKWebsitePolicies>(websitePolicies)] { |
121 |
callOnMainThread([decisionHandlerCopy, websitePolicies = retainPtr(websitePolicies)] { |
| 122 |
decisionHandlerCopy(WKNavigationActionPolicyAllow, websitePolicies.get()); |
122 |
decisionHandlerCopy(WKNavigationActionPolicyAllow, websitePolicies.get()); |
| 123 |
Block_release(decisionHandlerCopy); |
123 |
Block_release(decisionHandlerCopy); |
| 124 |
}); |
124 |
}); |
|
Lines 126-132
- (void)_webView:(WKWebView *)webView de
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec4
|
| 126 |
return; |
126 |
return; |
| 127 |
case 2: |
127 |
case 2: |
| 128 |
// Verify enabling content blockers has no effect when reloading without content blockers. |
128 |
// Verify enabling content blockers has no effect when reloading without content blockers. |
| 129 |
websitePolicies.contentBlockersEnabled = true; |
129 |
websitePolicies._contentBlockersEnabled = true; |
| 130 |
break; |
130 |
break; |
| 131 |
default: |
131 |
default: |
| 132 |
EXPECT_TRUE(false); |
132 |
EXPECT_TRUE(false); |
|
Lines 136-142
- (void)_webView:(WKWebView *)webView de
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec5
|
| 136 |
|
136 |
|
| 137 |
@end |
137 |
@end |
| 138 |
|
138 |
|
| 139 |
TEST(WebKit, WebsitePoliciesContentBlockersEnabled) |
139 |
TEST(WebpagePreferences, WebsitePoliciesContentBlockersEnabled) |
| 140 |
{ |
140 |
{ |
| 141 |
[[_WKUserContentExtensionStore defaultStore] _removeAllContentExtensions]; |
141 |
[[_WKUserContentExtensionStore defaultStore] _removeAllContentExtensions]; |
| 142 |
|
142 |
|
|
Lines 188-200
- (void)webView:(WKWebView *)webView dec
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec6
|
| 188 |
decisionHandler(WKNavigationActionPolicyAllow); |
188 |
decisionHandler(WKNavigationActionPolicyAllow); |
| 189 |
} |
189 |
} |
| 190 |
|
190 |
|
| 191 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
191 |
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 192 |
{ |
192 |
{ |
| 193 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
193 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 194 |
if (_allowedAutoplayQuirksForURL) |
194 |
if (_allowedAutoplayQuirksForURL) |
| 195 |
websitePolicies.allowedAutoplayQuirks = _allowedAutoplayQuirksForURL(navigationAction.request.URL); |
195 |
websitePolicies._allowedAutoplayQuirks = _allowedAutoplayQuirksForURL(navigationAction.request.URL); |
| 196 |
if (_autoplayPolicyForURL) |
196 |
if (_autoplayPolicyForURL) |
| 197 |
websitePolicies.autoplayPolicy = _autoplayPolicyForURL(navigationAction.request.URL); |
197 |
websitePolicies._autoplayPolicy = _autoplayPolicyForURL(navigationAction.request.URL); |
| 198 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
198 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 199 |
} |
199 |
} |
| 200 |
|
200 |
|
|
Lines 222-235
- (void)webView:(WKWebView *)webView dec
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec7
|
| 222 |
decisionHandler(WKNavigationActionPolicyAllow); |
222 |
decisionHandler(WKNavigationActionPolicyAllow); |
| 223 |
} |
223 |
} |
| 224 |
|
224 |
|
| 225 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
225 |
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 226 |
{ |
226 |
{ |
| 227 |
dispatch_async(dispatch_get_main_queue(), ^{ |
227 |
dispatch_async(dispatch_get_main_queue(), ^{ |
| 228 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
228 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 229 |
if (_allowedAutoplayQuirksForURL) |
229 |
if (_allowedAutoplayQuirksForURL) |
| 230 |
websitePolicies.allowedAutoplayQuirks = _allowedAutoplayQuirksForURL(navigationAction.request.URL); |
230 |
websitePolicies._allowedAutoplayQuirks = _allowedAutoplayQuirksForURL(navigationAction.request.URL); |
| 231 |
if (_autoplayPolicyForURL) |
231 |
if (_autoplayPolicyForURL) |
| 232 |
websitePolicies.autoplayPolicy = _autoplayPolicyForURL(navigationAction.request.URL); |
232 |
websitePolicies._autoplayPolicy = _autoplayPolicyForURL(navigationAction.request.URL); |
| 233 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
233 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 234 |
}); |
234 |
}); |
| 235 |
} |
235 |
} |
|
Lines 245-268
- (void)_webView:(WKWebView *)webView ha
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec8
|
| 245 |
@end |
245 |
@end |
| 246 |
|
246 |
|
| 247 |
@interface WebsitePoliciesNavigationDelegate : TestNavigationDelegate <WKNavigationDelegatePrivate> |
247 |
@interface WebsitePoliciesNavigationDelegate : TestNavigationDelegate <WKNavigationDelegatePrivate> |
| 248 |
@property (nonatomic, copy) void (^decidePolicyForNavigationActionWithWebsitePolicies)(WKNavigationAction *, id <NSSecureCoding>, void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *)); |
248 |
@property (nonatomic, copy) void (^decidePolicyForNavigationActionWithWebsitePolicies)(WKNavigationAction *, WKWebpagePreferences *, id <NSSecureCoding>, void (^)(WKNavigationActionPolicy, WKWebpagePreferences *)); |
| 249 |
@end |
249 |
@end |
| 250 |
|
250 |
|
| 251 |
@implementation WebsitePoliciesNavigationDelegate |
251 |
@implementation WebsitePoliciesNavigationDelegate |
| 252 |
|
252 |
|
| 253 |
IGNORE_WARNINGS_BEGIN("deprecated-implementations") |
253 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 254 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
|
|
| 255 |
IGNORE_WARNINGS_END |
| 256 |
{ |
254 |
{ |
| 257 |
if (_decidePolicyForNavigationActionWithWebsitePolicies) |
255 |
if (_decidePolicyForNavigationActionWithWebsitePolicies) |
| 258 |
_decidePolicyForNavigationActionWithWebsitePolicies(navigationAction, userInfo, decisionHandler); |
256 |
_decidePolicyForNavigationActionWithWebsitePolicies(navigationAction, preferences, userInfo, decisionHandler); |
| 259 |
else |
257 |
else |
| 260 |
decisionHandler(WKNavigationActionPolicyAllow, nil); |
258 |
decisionHandler(WKNavigationActionPolicyAllow, nil); |
| 261 |
} |
259 |
} |
| 262 |
|
260 |
|
| 263 |
@end |
261 |
@end |
| 264 |
|
262 |
|
| 265 |
TEST(WebKit, WebsitePoliciesAutoplayEnabled) |
263 |
TEST(WebpagePreferences, WebsitePoliciesAutoplayEnabled) |
| 266 |
{ |
264 |
{ |
| 267 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
265 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 268 |
|
266 |
|
|
Lines 310-318
TEST(WebKit, WebsitePoliciesAutoplayEnab
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec9
|
| 310 |
[webView waitForMessage:@"did-not-play"]; |
308 |
[webView waitForMessage:@"did-not-play"]; |
| 311 |
|
309 |
|
| 312 |
// Test updating website policies. |
310 |
// Test updating website policies. |
| 313 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
311 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 314 |
websitePolicies.autoplayPolicy = _WKWebsiteAutoplayPolicyAllow; |
312 |
websitePolicies._autoplayPolicy = _WKWebsiteAutoplayPolicyAllow; |
| 315 |
[webView _updateWebsitePolicies:websitePolicies]; |
313 |
[webView _updateWebpagePreferences:websitePolicies]; |
| 316 |
[webView stringByEvaluatingJavaScript:@"playVideo()"]; |
314 |
[webView stringByEvaluatingJavaScript:@"playVideo()"]; |
| 317 |
[webView waitForMessage:@"autoplayed"]; |
315 |
[webView waitForMessage:@"autoplayed"]; |
| 318 |
|
316 |
|
|
Lines 363-369
static void runUntilReceivesAutoplayEven
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec10
|
| 363 |
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, true); |
361 |
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.1, true); |
| 364 |
} |
362 |
} |
| 365 |
|
363 |
|
| 366 |
TEST(WebKit, WebsitePoliciesPlayAfterPreventedAutoplay) |
364 |
TEST(WebpagePreferences, WebsitePoliciesPlayAfterPreventedAutoplay) |
| 367 |
{ |
365 |
{ |
| 368 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
366 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 369 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
367 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
|
Lines 434-440
TEST(WebKit, WebsitePoliciesPlayAfterPre
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec11
|
| 434 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsPlaybackWasPrevented); |
432 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsPlaybackWasPrevented); |
| 435 |
} |
433 |
} |
| 436 |
|
434 |
|
| 437 |
TEST(WebKit, WebsitePoliciesPlayingWithUserGesture) |
435 |
TEST(WebpagePreferences, WebsitePoliciesPlayingWithUserGesture) |
| 438 |
{ |
436 |
{ |
| 439 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
437 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 440 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
438 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 473-479
TEST(WebKit, WebsitePoliciesPlayingWithU
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec12
|
| 473 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsMediaIsMainContent); |
471 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsMediaIsMainContent); |
| 474 |
} |
472 |
} |
| 475 |
|
473 |
|
| 476 |
TEST(WebKit, WebsitePoliciesPlayingWithoutInterference) |
474 |
TEST(WebpagePreferences, WebsitePoliciesPlayingWithoutInterference) |
| 477 |
{ |
475 |
{ |
| 478 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
476 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 479 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
477 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
|
Lines 492-498
TEST(WebKit, WebsitePoliciesPlayingWitho
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec13
|
| 492 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsHasAudio); |
490 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsHasAudio); |
| 493 |
} |
491 |
} |
| 494 |
|
492 |
|
| 495 |
TEST(WebKit, WebsitePoliciesUserInterferenceWithPlaying) |
493 |
TEST(WebpagePreferences, WebsitePoliciesUserInterferenceWithPlaying) |
| 496 |
{ |
494 |
{ |
| 497 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
495 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 498 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
496 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
|
Lines 537-543
TEST(WebKit, WebsitePoliciesUserInterfer
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec14
|
| 537 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsHasAudio); |
535 |
ASSERT_TRUE(*receivedAutoplayEventFlags & kWKAutoplayEventFlagsHasAudio); |
| 538 |
} |
536 |
} |
| 539 |
|
537 |
|
| 540 |
TEST(WebKit, WebsitePoliciesPerDocumentAutoplayBehaviorMediaLoading) |
538 |
TEST(WebpagePreferences, WebsitePoliciesPerDocumentAutoplayBehaviorMediaLoading) |
| 541 |
{ |
539 |
{ |
| 542 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
540 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 543 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
541 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 577-592
TEST(WebKit, WebsitePoliciesPerDocumentA
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec15
|
| 577 |
TestWebKitAPI::Util::run(&receivedLoadedEvent); |
575 |
TestWebKitAPI::Util::run(&receivedLoadedEvent); |
| 578 |
} |
576 |
} |
| 579 |
|
577 |
|
| 580 |
TEST(WebKit, WebsitePoliciesWithBridgingCast) |
578 |
TEST(WebpagePreferences, WebsitePoliciesWithBridgingCast) |
| 581 |
{ |
579 |
{ |
| 582 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
580 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 583 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
581 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
| 584 |
auto delegate = adoptNS([[WebsitePoliciesNavigationDelegate alloc] init]); |
582 |
auto delegate = adoptNS([[WebsitePoliciesNavigationDelegate alloc] init]); |
| 585 |
|
583 |
|
| 586 |
__block bool didInvokeDecisionHandler = false; |
584 |
__block bool didInvokeDecisionHandler = false; |
| 587 |
[delegate setDecidePolicyForNavigationActionWithWebsitePolicies:^(WKNavigationAction *, id <NSSecureCoding>, void (^decisionHandler)(WKNavigationActionPolicy, _WKWebsitePolicies *)) { |
585 |
[delegate setDecidePolicyForNavigationActionWithWebsitePolicies:^(WKNavigationAction *, WKWebpagePreferences *, id <NSSecureCoding>, void (^decisionHandler)(WKNavigationActionPolicy, WKWebpagePreferences *)) { |
| 588 |
auto policies = adoptWK(WKWebsitePoliciesCreate()); |
586 |
auto policies = adoptWK(WKWebsitePoliciesCreate()); |
| 589 |
decisionHandler(WKNavigationActionPolicyAllow, (__bridge _WKWebsitePolicies *)policies.get()); |
587 |
decisionHandler(WKNavigationActionPolicyAllow, (__bridge WKWebpagePreferences *)policies.get()); |
| 590 |
didInvokeDecisionHandler = true; |
588 |
didInvokeDecisionHandler = true; |
| 591 |
}]; |
589 |
}]; |
| 592 |
|
590 |
|
|
Lines 596-612
TEST(WebKit, WebsitePoliciesWithBridging
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec16
|
| 596 |
EXPECT_TRUE(didInvokeDecisionHandler); |
594 |
EXPECT_TRUE(didInvokeDecisionHandler); |
| 597 |
} |
595 |
} |
| 598 |
|
596 |
|
| 599 |
TEST(WebKit, WebsitePoliciesWithUnexpectedType) |
597 |
TEST(WebpagePreferences, WebsitePoliciesWithUnexpectedType) |
| 600 |
{ |
598 |
{ |
| 601 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
599 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 602 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
600 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 336, 276) configuration:configuration.get()]); |
| 603 |
auto delegate = adoptNS([[WebsitePoliciesNavigationDelegate alloc] init]); |
601 |
auto delegate = adoptNS([[WebsitePoliciesNavigationDelegate alloc] init]); |
| 604 |
|
602 |
|
| 605 |
__block bool didCatchException = false; |
603 |
__block bool didCatchException = false; |
| 606 |
[delegate setDecidePolicyForNavigationActionWithWebsitePolicies:^(WKNavigationAction *, id <NSSecureCoding>, void (^decisionHandler)(WKNavigationActionPolicy, _WKWebsitePolicies *)) { |
604 |
[delegate setDecidePolicyForNavigationActionWithWebsitePolicies:^(WKNavigationAction *, WKWebpagePreferences *, id <NSSecureCoding>, void (^decisionHandler)(WKNavigationActionPolicy, WKWebpagePreferences *)) { |
| 607 |
@try { |
605 |
@try { |
| 608 |
id fakePolicies = @"Hello"; |
606 |
id fakePolicies = @"Hello"; |
| 609 |
decisionHandler(WKNavigationActionPolicyAllow, (_WKWebsitePolicies *)fakePolicies); |
607 |
decisionHandler(WKNavigationActionPolicyAllow, (WKWebpagePreferences *)fakePolicies); |
| 610 |
} @catch (NSException *exception) { |
608 |
} @catch (NSException *exception) { |
| 611 |
didCatchException = true; |
609 |
didCatchException = true; |
| 612 |
} |
610 |
} |
|
Lines 696-702
- (void)webView:(WKWebView *)webView sto
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec17
|
| 696 |
|
694 |
|
| 697 |
@end |
695 |
@end |
| 698 |
|
696 |
|
| 699 |
TEST(WebKit, WebsitePoliciesDuringRedirect) |
697 |
TEST(WebpagePreferences, WebsitePoliciesDuringRedirect) |
| 700 |
{ |
698 |
{ |
| 701 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
699 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 702 |
auto videoData = adoptNS([[NSData alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mp4" subdirectory:@"TestWebKitAPI.resources"]]); |
700 |
auto videoData = adoptNS([[NSData alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mp4" subdirectory:@"TestWebKitAPI.resources"]]); |
|
Lines 716-722
TEST(WebKit, WebsitePoliciesDuringRedire
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec18
|
| 716 |
[webView waitForMessage:@"autoplayed"]; |
714 |
[webView waitForMessage:@"autoplayed"]; |
| 717 |
} |
715 |
} |
| 718 |
|
716 |
|
| 719 |
TEST(WebKit, WebsitePoliciesUpdates) |
717 |
TEST(WebpagePreferences, WebsitePoliciesUpdates) |
| 720 |
{ |
718 |
{ |
| 721 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
719 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 722 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
720 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 732-740
TEST(WebKit, WebsitePoliciesUpdates)
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec19
|
| 732 |
[webView loadRequest:requestWithAudio]; |
730 |
[webView loadRequest:requestWithAudio]; |
| 733 |
[webView waitForMessage:@"did-not-play"]; |
731 |
[webView waitForMessage:@"did-not-play"]; |
| 734 |
|
732 |
|
| 735 |
_WKWebsitePolicies *policies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
733 |
WKWebpagePreferences *policies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 736 |
policies.autoplayPolicy = _WKWebsiteAutoplayPolicyAllow; |
734 |
policies._autoplayPolicy = _WKWebsiteAutoplayPolicyAllow; |
| 737 |
[webView _updateWebsitePolicies:policies]; |
735 |
[webView _updateWebpagePreferences:policies]; |
| 738 |
|
736 |
|
| 739 |
// Now that we updated our policies, a script should be able to autoplay media. |
737 |
// Now that we updated our policies, a script should be able to autoplay media. |
| 740 |
[webView stringByEvaluatingJavaScript:@"playVideo()"]; |
738 |
[webView stringByEvaluatingJavaScript:@"playVideo()"]; |
|
Lines 752-758
TEST(WebKit, WebsitePoliciesUpdates)
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec20
|
| 752 |
runUntilReceivesAutoplayEvent(kWKAutoplayEventDidPreventFromAutoplaying); |
750 |
runUntilReceivesAutoplayEvent(kWKAutoplayEventDidPreventFromAutoplaying); |
| 753 |
} |
751 |
} |
| 754 |
|
752 |
|
| 755 |
TEST(WebKit, WebsitePoliciesArbitraryUserGestureQuirk) |
753 |
TEST(WebpagePreferences, WebsitePoliciesArbitraryUserGestureQuirk) |
| 756 |
{ |
754 |
{ |
| 757 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
755 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 758 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
756 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 785-791
TEST(WebKit, WebsitePoliciesArbitraryUse
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec21
|
| 785 |
[webView waitForMessage:@"autoplayed"]; |
783 |
[webView waitForMessage:@"autoplayed"]; |
| 786 |
} |
784 |
} |
| 787 |
|
785 |
|
| 788 |
TEST(WebKit, WebsitePoliciesAutoplayQuirks) |
786 |
TEST(WebpagePreferences, WebsitePoliciesAutoplayQuirks) |
| 789 |
{ |
787 |
{ |
| 790 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
788 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 791 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
789 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 843-849
TEST(WebKit, WebsitePoliciesAutoplayQuir
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec22
|
| 843 |
[webView waitForMessage:@"playing"]; |
841 |
[webView waitForMessage:@"playing"]; |
| 844 |
} |
842 |
} |
| 845 |
|
843 |
|
| 846 |
TEST(WebKit, WebsitePoliciesPerDocumentAutoplayBehaviorQuirks) |
844 |
TEST(WebpagePreferences, WebsitePoliciesPerDocumentAutoplayBehaviorQuirks) |
| 847 |
{ |
845 |
{ |
| 848 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
846 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 849 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
847 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 906-912
TEST(WebKit, WebsitePoliciesPerDocumentA
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec23
|
| 906 |
[webView waitForMessage:@"did-not-play-video2"]; |
904 |
[webView waitForMessage:@"did-not-play-video2"]; |
| 907 |
} |
905 |
} |
| 908 |
|
906 |
|
| 909 |
TEST(WebKit, WebsitePoliciesAutoplayQuirksAsyncPolicyDelegate) |
907 |
TEST(WebpagePreferences, WebsitePoliciesAutoplayQuirksAsyncPolicyDelegate) |
| 910 |
{ |
908 |
{ |
| 911 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
909 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 912 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
910 |
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); |
|
Lines 950-956
TEST(WebKit, WebsitePoliciesAutoplayQuir
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec24
|
| 950 |
} |
948 |
} |
| 951 |
#endif // PLATFORM(MAC) |
949 |
#endif // PLATFORM(MAC) |
| 952 |
|
950 |
|
| 953 |
TEST(WebKit, InvalidCustomHeaders) |
951 |
TEST(WebpagePreferences, InvalidCustomHeaders) |
| 954 |
{ |
952 |
{ |
| 955 |
auto customHeaderFields = adoptNS([[_WKCustomHeaderFields alloc] init]); |
953 |
auto customHeaderFields = adoptNS([[_WKCustomHeaderFields alloc] init]); |
| 956 |
[customHeaderFields setFields:@{@"invalidheader" : @"", @"noncustom" : @"header", @" x-Custom ":@" Needs Canonicalization\t ", @"x-other" : @"other value"}]; |
954 |
[customHeaderFields setFields:@{@"invalidheader" : @"", @"noncustom" : @"header", @" x-Custom ":@" Needs Canonicalization\t ", @"x-other" : @"other value"}]; |
|
Lines 1097-1103
- (void)webView:(WKWebView *)webView sto
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec25
|
| 1097 |
|
1095 |
|
| 1098 |
@end |
1096 |
@end |
| 1099 |
|
1097 |
|
| 1100 |
TEST(WebKit, CustomHeaderFields) |
1098 |
TEST(WebpagePreferences, CustomHeaderFields) |
| 1101 |
{ |
1099 |
{ |
| 1102 |
auto delegate = adoptNS([[CustomHeaderFieldsDelegate alloc] init]); |
1100 |
auto delegate = adoptNS([[CustomHeaderFieldsDelegate alloc] init]); |
| 1103 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1101 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
|
Lines 1170-1181
@interface CustomUserAgentDelegate : NSO
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec26
|
| 1170 |
@implementation CustomUserAgentDelegate |
1168 |
@implementation CustomUserAgentDelegate |
| 1171 |
|
1169 |
|
| 1172 |
IGNORE_WARNINGS_BEGIN("deprecated-implementations") |
1170 |
IGNORE_WARNINGS_BEGIN("deprecated-implementations") |
| 1173 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
1171 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1174 |
IGNORE_WARNINGS_END |
1172 |
IGNORE_WARNINGS_END |
| 1175 |
{ |
1173 |
{ |
| 1176 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1174 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1177 |
if (navigationAction.targetFrame.mainFrame) |
1175 |
if (navigationAction.targetFrame.mainFrame) |
| 1178 |
[websitePolicies setCustomUserAgent:@"Foo Custom UserAgent"]; |
1176 |
[websitePolicies _setCustomUserAgent:@"Foo Custom UserAgent"]; |
| 1179 |
|
1177 |
|
| 1180 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1178 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 1181 |
} |
1179 |
} |
|
Lines 1217-1223
onload = () => {
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec27
|
| 1217 |
</script> |
1215 |
</script> |
| 1218 |
)TESTRESOURCE"; |
1216 |
)TESTRESOURCE"; |
| 1219 |
|
1217 |
|
| 1220 |
TEST(WebKit, WebsitePoliciesCustomUserAgent) |
1218 |
TEST(WebpagePreferences, WebsitePoliciesCustomUserAgent) |
| 1221 |
{ |
1219 |
{ |
| 1222 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1220 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 1223 |
|
1221 |
|
|
Lines 1261-1273
@interface CustomJavaScriptUserAgentDele
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec28
|
| 1261 |
|
1259 |
|
| 1262 |
@implementation CustomJavaScriptUserAgentDelegate |
1260 |
@implementation CustomJavaScriptUserAgentDelegate |
| 1263 |
|
1261 |
|
| 1264 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
1262 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1265 |
{ |
1263 |
{ |
| 1266 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1264 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1267 |
if (navigationAction.targetFrame.mainFrame) { |
1265 |
if (navigationAction.targetFrame.mainFrame) { |
| 1268 |
[websitePolicies setCustomUserAgentAsSiteSpecificQuirks:@"Foo Site Specific Quriks UserAgent"]; |
1266 |
[websitePolicies _setCustomUserAgentAsSiteSpecificQuirks:@"Foo Site Specific Quriks UserAgent"]; |
| 1269 |
if (_setCustomUserAgent) |
1267 |
if (_setCustomUserAgent) |
| 1270 |
[websitePolicies setCustomUserAgent:@"Foo Custom Request UserAgent"]; |
1268 |
[websitePolicies _setCustomUserAgent:@"Foo Custom Request UserAgent"]; |
| 1271 |
} |
1269 |
} |
| 1272 |
|
1270 |
|
| 1273 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1271 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
|
Lines 1280-1286
- (void)webView:(WKWebView *)webView did
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec29
|
| 1280 |
|
1278 |
|
| 1281 |
@end |
1279 |
@end |
| 1282 |
|
1280 |
|
| 1283 |
TEST(WebKit, WebsitePoliciesCustomUserAgentAsSiteSpecificQuirksDisabled) |
1281 |
TEST(WebpagePreferences, WebsitePoliciesCustomUserAgentAsSiteSpecificQuirksDisabled) |
| 1284 |
{ |
1282 |
{ |
| 1285 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1283 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 1286 |
|
1284 |
|
|
Lines 1319-1325
TEST(WebKit, WebsitePoliciesCustomUserAg
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec30
|
| 1319 |
EXPECT_TRUE([userAgentString containsString:@"(KHTML, like Gecko)"]); |
1317 |
EXPECT_TRUE([userAgentString containsString:@"(KHTML, like Gecko)"]); |
| 1320 |
} |
1318 |
} |
| 1321 |
|
1319 |
|
| 1322 |
TEST(WebKit, WebsitePoliciesCustomUserAgentAsSiteSpecificQuirks) |
1320 |
TEST(WebpagePreferences, WebsitePoliciesCustomUserAgentAsSiteSpecificQuirks) |
| 1323 |
{ |
1321 |
{ |
| 1324 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1322 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 1325 |
|
1323 |
|
|
Lines 1358-1368
@interface CustomNavigatorPlatformDelega
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec31
|
| 1358 |
|
1356 |
|
| 1359 |
@implementation CustomNavigatorPlatformDelegate |
1357 |
@implementation CustomNavigatorPlatformDelegate |
| 1360 |
|
1358 |
|
| 1361 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
1359 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1362 |
{ |
1360 |
{ |
| 1363 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1361 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1364 |
if (navigationAction.targetFrame.mainFrame) |
1362 |
if (navigationAction.targetFrame.mainFrame) |
| 1365 |
[websitePolicies setCustomNavigatorPlatform:@"Test Custom Platform"]; |
1363 |
[websitePolicies _setCustomNavigatorPlatform:@"Test Custom Platform"]; |
| 1366 |
|
1364 |
|
| 1367 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1365 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 1368 |
} |
1366 |
} |
|
Lines 1374-1380
- (void)webView:(WKWebView *)webView did
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec32
|
| 1374 |
|
1372 |
|
| 1375 |
@end |
1373 |
@end |
| 1376 |
|
1374 |
|
| 1377 |
TEST(WebKit, WebsitePoliciesCustomNavigatorPlatform) |
1375 |
TEST(WebpagePreferences, WebsitePoliciesCustomNavigatorPlatform) |
| 1378 |
{ |
1376 |
{ |
| 1379 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1377 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 1380 |
|
1378 |
|
|
Lines 1417-1426
- (instancetype)initWithDeviceOrientatio
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec33
|
| 1417 |
return self; |
1415 |
return self; |
| 1418 |
} |
1416 |
} |
| 1419 |
|
1417 |
|
| 1420 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
1418 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences userInfo:(id <NSSecureCoding>)userInfo decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1421 |
{ |
1419 |
{ |
| 1422 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1420 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1423 |
[websitePolicies setDeviceOrientationAndMotionAccessPolicy:_accessPolicy]; |
1421 |
[websitePolicies _setDeviceOrientationAndMotionAccessPolicy:_accessPolicy]; |
| 1424 |
|
1422 |
|
| 1425 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1423 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 1426 |
} |
1424 |
} |
|
Lines 1494-1510
static void runWebsitePoliciesDeviceOrie
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec34
|
| 1494 |
} |
1492 |
} |
| 1495 |
} |
1493 |
} |
| 1496 |
|
1494 |
|
| 1497 |
TEST(WebKit, WebsitePoliciesDeviceOrientationGrantAccess) |
1495 |
TEST(WebpagePreferences, WebsitePoliciesDeviceOrientationGrantAccess) |
| 1498 |
{ |
1496 |
{ |
| 1499 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyGrant); |
1497 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyGrant); |
| 1500 |
} |
1498 |
} |
| 1501 |
|
1499 |
|
| 1502 |
TEST(WebKit, WebsitePoliciesDeviceOrientationDenyAccess) |
1500 |
TEST(WebpagePreferences, WebsitePoliciesDeviceOrientationDenyAccess) |
| 1503 |
{ |
1501 |
{ |
| 1504 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyDeny); |
1502 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyDeny); |
| 1505 |
} |
1503 |
} |
| 1506 |
|
1504 |
|
| 1507 |
TEST(WebKit, WebsitePoliciesDeviceOrientationAskAccess) |
1505 |
TEST(WebpagePreferences, WebsitePoliciesDeviceOrientationAskAccess) |
| 1508 |
{ |
1506 |
{ |
| 1509 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyAsk); |
1507 |
runWebsitePoliciesDeviceOrientationEventTest(_WKWebsiteDeviceOrientationAndMotionAccessPolicyAsk); |
| 1510 |
} |
1508 |
} |
|
Lines 1524-1534
- (void)webView:(WKWebView *)webView dec
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec35
|
| 1524 |
decisionHandler(WKNavigationActionPolicyAllow); |
1522 |
decisionHandler(WKNavigationActionPolicyAllow); |
| 1525 |
} |
1523 |
} |
| 1526 |
|
1524 |
|
| 1527 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
1525 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1528 |
{ |
1526 |
{ |
| 1529 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1527 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1530 |
if (_popUpPolicyForURL) |
1528 |
if (_popUpPolicyForURL) |
| 1531 |
websitePolicies.popUpPolicy = _popUpPolicyForURL(navigationAction.request.URL); |
1529 |
websitePolicies._popUpPolicy = _popUpPolicyForURL(navigationAction.request.URL); |
| 1532 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1530 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 1533 |
} |
1531 |
} |
| 1534 |
|
1532 |
|
|
Lines 1539-1545
- (nullable WKWebView *)webView:(WKWebVi
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec36
|
| 1539 |
|
1537 |
|
| 1540 |
@end |
1538 |
@end |
| 1541 |
|
1539 |
|
| 1542 |
TEST(WebKit, WebsitePoliciesPopUp) |
1540 |
TEST(WebpagePreferences, WebsitePoliciesPopUp) |
| 1543 |
{ |
1541 |
{ |
| 1544 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
1542 |
auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); |
| 1545 |
|
1543 |
|
|
Lines 1573-1586
@interface WebsitePoliciesWebsiteDataSto
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec37
|
| 1573 |
|
1571 |
|
| 1574 |
@implementation WebsitePoliciesWebsiteDataStoreDelegate |
1572 |
@implementation WebsitePoliciesWebsiteDataStoreDelegate |
| 1575 |
|
1573 |
|
| 1576 |
IGNORE_WARNINGS_BEGIN("deprecated-implementations") |
1574 |
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction preferences:(WKWebpagePreferences *)preferences decisionHandler:(void (^)(WKNavigationActionPolicy, WKWebpagePreferences *))decisionHandler |
| 1577 |
- (void)_webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy, _WKWebsitePolicies *))decisionHandler |
|
|
| 1578 |
IGNORE_WARNINGS_END |
| 1579 |
{ |
1575 |
{ |
| 1580 |
NSURL *url = navigationAction.request.URL; |
1576 |
NSURL *url = navigationAction.request.URL; |
| 1581 |
if ([url.path isEqualToString:@"/invalid"]) { |
1577 |
if ([url.path isEqualToString:@"/invalid"]) { |
| 1582 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1578 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1583 |
websitePolicies.websiteDataStore = [[[WKWebsiteDataStore alloc] _initWithConfiguration:[[[_WKWebsiteDataStoreConfiguration alloc] init] autorelease]] autorelease]; |
1579 |
websitePolicies._websiteDataStore = [[[WKWebsiteDataStore alloc] _initWithConfiguration:[[[_WKWebsiteDataStoreConfiguration alloc] init] autorelease]] autorelease]; |
| 1584 |
|
1580 |
|
| 1585 |
bool sawException = false; |
1581 |
bool sawException = false; |
| 1586 |
@try { |
1582 |
@try { |
|
Lines 1595-1607
IGNORE_WARNINGS_END
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec38
|
| 1595 |
if ([url.path isEqualToString:@"/checkStorage"] |
1591 |
if ([url.path isEqualToString:@"/checkStorage"] |
| 1596 |
|| [url.path isEqualToString:@"/checkCookies"] |
1592 |
|| [url.path isEqualToString:@"/checkCookies"] |
| 1597 |
|| [url.path isEqualToString:@"/mainFrame"]) { |
1593 |
|| [url.path isEqualToString:@"/mainFrame"]) { |
| 1598 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1594 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1599 |
websitePolicies.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore]; |
1595 |
websitePolicies._websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore]; |
| 1600 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
1596 |
decisionHandler(WKNavigationActionPolicyAllow, websitePolicies); |
| 1601 |
} |
1597 |
} |
| 1602 |
if ([url.path isEqualToString:@"/subFrame"]) { |
1598 |
if ([url.path isEqualToString:@"/subFrame"]) { |
| 1603 |
_WKWebsitePolicies *websitePolicies = [[[_WKWebsitePolicies alloc] init] autorelease]; |
1599 |
WKWebpagePreferences *websitePolicies = [[[WKWebpagePreferences alloc] init] autorelease]; |
| 1604 |
websitePolicies.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore]; |
1600 |
websitePolicies._websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore]; |
| 1605 |
bool sawException = false; |
1601 |
bool sawException = false; |
| 1606 |
@try { |
1602 |
@try { |
| 1607 |
decisionHandler(WKNavigationActionPolicyCancel, websitePolicies); |
1603 |
decisionHandler(WKNavigationActionPolicyCancel, websitePolicies); |
|
Lines 1649-1662
RetainPtr<WKWebView> websiteDataStoreTes
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec39
|
| 1649 |
return webView; |
1645 |
return webView; |
| 1650 |
} |
1646 |
} |
| 1651 |
|
1647 |
|
| 1652 |
TEST(WebKit, UpdateWebsitePoliciesInvalid) |
1648 |
TEST(WebpagePreferences, UpdateWebsitePoliciesInvalid) |
| 1653 |
{ |
1649 |
{ |
| 1654 |
auto webView = websiteDataStoreTestWebView(); |
1650 |
auto webView = websiteDataStoreTestWebView(); |
| 1655 |
auto policies = adoptNS([[_WKWebsitePolicies alloc] init]); |
1651 |
auto policies = adoptNS([[WKWebpagePreferences alloc] init]); |
| 1656 |
[policies setWebsiteDataStore:[WKWebsiteDataStore nonPersistentDataStore]]; |
1652 |
[policies _setWebsiteDataStore:[WKWebsiteDataStore nonPersistentDataStore]]; |
| 1657 |
bool sawException = false; |
1653 |
bool sawException = false; |
| 1658 |
@try { |
1654 |
@try { |
| 1659 |
[webView _updateWebsitePolicies:policies.get()]; |
1655 |
[webView _updateWebpagePreferences:policies.get()]; |
| 1660 |
} @catch (NSException *exception) { |
1656 |
} @catch (NSException *exception) { |
| 1661 |
sawException = true; |
1657 |
sawException = true; |
| 1662 |
} |
1658 |
} |
|
Lines 1670-1676
TEST(WebKit, UpdateWebsitePoliciesInvali
Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm_sec40
|
| 1670 |
TestWebKitAPI::Util::run(&done); |
1666 |
TestWebKitAPI::Util::run(&done); |
| 1671 |
} |
1667 |
} |
| 1672 |
|
1668 |
|
| 1673 |
TEST(WebKit, WebsitePoliciesDataStore) |
1669 |
TEST(WebpagePreferences, WebsitePoliciesDataStore) |
| 1674 |
{ |
1670 |
{ |
| 1675 |
auto cookieWebView = websiteDataStoreTestWebView(); |
1671 |
auto cookieWebView = websiteDataStoreTestWebView(); |
| 1676 |
NSString *alertOldCookie = @"<script>var oldCookie = document.cookie; document.cookie = 'key=value'; alert('old value: <' + oldCookie + '>');</script>"; |
1672 |
NSString *alertOldCookie = @"<script>var oldCookie = document.cookie; document.cookie = 'key=value'; alert('old value: <' + oldCookie + '>');</script>"; |