Changeset 281228 in webkit
- Timestamp:
- Aug 19, 2021 1:46:05 AM (11 months ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/Document.cpp (modified) (1 diff)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm (modified) (53 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp (modified) (2 diffs)
-
Tools/TestWebKitAPI/cocoa/TestWKWebView.h (modified) (1 diff)
-
Tools/TestWebKitAPI/cocoa/TestWKWebView.mm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r281227 r281228 1 2021-08-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 document.hasFocus() returns true for unfocused pages 4 https://bugs.webkit.org/show_bug.cgi?id=229139 5 6 Reviewed by Adrian Perez de Castro. 7 8 We are always claiming to be focused when the document in the active window even if the page is not actually 9 focused. 10 11 * dom/Document.cpp: 12 (WebCore::Document::hasFocus const): Check also that page is focused. 13 1 14 2021-08-19 Youenn Fablet <youenn@apple.com> 2 15 -
trunk/Source/WebCore/dom/Document.cpp
r281147 r281228 7620 7620 { 7621 7621 Page* page = this->page(); 7622 if (!page || !page->focusController().isActive() )7622 if (!page || !page->focusController().isActive() || !page->focusController().isFocused()) 7623 7623 return false; 7624 7624 if (Frame* focusedFrame = page->focusController().focusedFrame()) { -
trunk/Tools/ChangeLog
r281221 r281228 1 2021-08-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 document.hasFocus() returns true for unfocused pages 4 https://bugs.webkit.org/show_bug.cgi?id=229139 5 6 Reviewed by Adrian Perez de Castro. 7 8 Add a unit tests to check document.hasFocus() returns false when a web view is in the active window, but not focused. 9 10 * TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: 11 (TestWebKitAPI::TEST): Ensure web view is focused as required by credentials container. 12 * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: 13 (testWebViewDocumentFocus): 14 (beforeAll): 15 * TestWebKitAPI/cocoa/TestWKWebView.h: 16 * TestWebKitAPI/cocoa/TestWKWebView.mm: 17 (-[TestWKWebView focus]): 18 1 19 2021-08-18 David Kilzer <ddkilzer@apple.com> 2 20 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm
r279856 r281228 433 433 434 434 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 435 [webView focus]; 435 436 436 437 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 447 448 448 449 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 450 [webView focus]; 449 451 450 452 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 464 466 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 465 467 [webView setUIDelegate:delegate.get()]; 468 [webView focus]; 466 469 467 470 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 486 489 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 487 490 [webView setUIDelegate:delegate.get()]; 491 [webView focus]; 488 492 489 493 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 514 518 [delegate setIsRacy:true]; 515 519 [webView setUIDelegate:delegate.get()]; 520 [webView focus]; 516 521 517 522 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 538 543 [delegate setIsRacy:true]; 539 544 [webView setUIDelegate:delegate.get()]; 545 [webView focus]; 540 546 541 547 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 561 567 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 562 568 [webView setUIDelegate:delegate.get()]; 569 [webView focus]; 563 570 564 571 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 584 591 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 585 592 [webView setUIDelegate:delegate.get()]; 593 [webView focus]; 586 594 587 595 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 604 612 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 605 613 [webView setUIDelegate:delegate.get()]; 614 [webView focus]; 606 615 607 616 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 624 633 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 625 634 [webView setUIDelegate:delegate.get()]; 635 [webView focus]; 626 636 627 637 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 643 653 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 644 654 [webView setUIDelegate:delegate.get()]; 655 [webView focus]; 645 656 646 657 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 681 692 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 682 693 [webView setUIDelegate:delegate.get()]; 694 [webView focus]; 683 695 684 696 auto port = static_cast<unsigned>(server.port()); … … 725 737 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 726 738 [webView setUIDelegate:delegate.get()]; 739 [webView focus]; 727 740 728 741 [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:(id)makeString("http://localhost:", server.port())]]]; … … 744 757 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 745 758 [webView setUIDelegate:delegate.get()]; 759 [webView focus]; 746 760 747 761 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 764 778 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 765 779 [webView setUIDelegate:delegate.get()]; 780 [webView focus]; 766 781 767 782 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 782 797 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 783 798 [webView setUIDelegate:delegate.get()]; 799 [webView focus]; 784 800 785 801 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 801 817 [delegate setIsFake:true]; 802 818 [webView setUIDelegate:delegate.get()]; 819 [webView focus]; 803 820 804 821 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 820 837 [delegate setIsFake:true]; 821 838 [webView setUIDelegate:delegate.get()]; 839 [webView focus]; 822 840 823 841 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 839 857 [delegate setIsNull:true]; 840 858 [webView setUIDelegate:delegate.get()]; 859 [webView focus]; 841 860 842 861 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 858 877 [delegate setIsNull:true]; 859 878 [webView setUIDelegate:delegate.get()]; 879 [webView focus]; 860 880 861 881 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 877 897 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 878 898 [webView setUIDelegate:delegate.get()]; 899 [webView focus]; 879 900 880 901 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 896 917 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 897 918 [webView setUIDelegate:delegate.get()]; 919 [webView focus]; 898 920 899 921 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 916 938 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 917 939 [webView setUIDelegate:delegate.get()]; 940 [webView focus]; 918 941 webAuthenticationPanelCancelImmediately = true; 919 942 … … 934 957 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 935 958 [webView setUIDelegate:delegate.get()]; 959 [webView focus]; 936 960 webAuthenticationPanelCancelImmediately = true; 937 961 … … 950 974 951 975 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 976 [webView focus]; 952 977 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 953 978 [webView waitForMessage:@"Unknown internal error. Error code: 2"]; … … 964 989 965 990 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 991 [webView focus]; 966 992 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 967 993 [webView waitForMessage:@"Unknown internal error. Error code: 2"]; … … 978 1004 979 1005 auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:NSZeroRect configuration:configuration]); 1006 [webView focus]; 980 1007 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; 981 1008 [webView waitForMessage:@"Pin is null."]; … … 995 1022 [delegate setIsNull:true]; 996 1023 [webView setUIDelegate:delegate.get()]; 1024 [webView focus]; 997 1025 998 1026 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1012 1040 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1013 1041 [webView setUIDelegate:delegate.get()]; 1042 [webView focus]; 1014 1043 1015 1044 webAuthenticationPanelPin = "123"; … … 1032 1061 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1033 1062 [webView setUIDelegate:delegate.get()]; 1063 [webView focus]; 1034 1064 1035 1065 webAuthenticationPanelPin = "1234"; … … 1052 1082 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1053 1083 [webView setUIDelegate:delegate.get()]; 1084 [webView focus]; 1054 1085 1055 1086 webAuthenticationPanelPin = "1234"; … … 1072 1103 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1073 1104 [webView setUIDelegate:delegate.get()]; 1105 [webView focus]; 1074 1106 1075 1107 webAuthenticationPanelPin = "1234"; … … 1091 1123 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1092 1124 [webView setUIDelegate:delegate.get()]; 1125 [webView focus]; 1093 1126 1094 1127 webAuthenticationPanelPin = "1234"; … … 1110 1143 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1111 1144 [webView setUIDelegate:delegate.get()]; 1145 [webView focus]; 1112 1146 1113 1147 webAuthenticationPanelPin = "1234"; … … 1128 1162 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1129 1163 [webView setUIDelegate:delegate.get()]; 1164 [webView focus]; 1130 1165 1131 1166 webAuthenticationPanelPin = "1234"; … … 1148 1183 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1149 1184 [webView setUIDelegate:delegate.get()]; 1185 [webView focus]; 1150 1186 1151 1187 webAuthenticationPanelPin = "1234"; … … 1167 1203 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1168 1204 [webView setUIDelegate:delegate.get()]; 1205 [webView focus]; 1169 1206 1170 1207 webAuthenticationPanelPin = "1234"; … … 1185 1222 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1186 1223 [webView setUIDelegate:delegate.get()]; 1224 [webView focus]; 1187 1225 1188 1226 webAuthenticationPanelPin = "1234"; … … 1205 1243 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1206 1244 [webView setUIDelegate:delegate.get()]; 1245 [webView focus]; 1207 1246 1208 1247 webAuthenticationPanelPin = "1234"; … … 1225 1264 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1226 1265 [webView setUIDelegate:delegate.get()]; 1266 [webView focus]; 1227 1267 1228 1268 webAuthenticationPanelPin = "1234"; … … 1245 1285 [delegate setIsNull:true]; 1246 1286 [webView setUIDelegate:delegate.get()]; 1287 [webView focus]; 1247 1288 1248 1289 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1262 1303 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1263 1304 [webView setUIDelegate:delegate.get()]; 1305 [webView focus]; 1264 1306 1265 1307 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1284 1326 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1285 1327 [webView setUIDelegate:delegate.get()]; 1328 [webView focus]; 1286 1329 1287 1330 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1301 1344 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1302 1345 [webView setUIDelegate:delegate.get()]; 1346 [webView focus]; 1303 1347 1304 1348 ASSERT_TRUE(addKeyToKeychain(testES256PrivateKeyBase64, "", testUserEntityBundleBase64)); … … 1320 1364 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1321 1365 [webView setUIDelegate:delegate.get()]; 1366 [webView focus]; 1322 1367 1323 1368 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1338 1383 [delegate setIsNull:true]; 1339 1384 [webView setUIDelegate:delegate.get()]; 1385 [webView focus]; 1340 1386 1341 1387 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1355 1401 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1356 1402 [webView setUIDelegate:delegate.get()]; 1403 [webView focus]; 1357 1404 1358 1405 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1372 1419 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1373 1420 [webView setUIDelegate:delegate.get()]; 1421 [webView focus]; 1374 1422 1375 1423 localAuthenticatorPolicy = _WKLocalAuthenticatorPolicyAllow; … … 1392 1440 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1393 1441 [webView setUIDelegate:delegate.get()]; 1442 [webView focus]; 1394 1443 1395 1444 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1409 1458 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1410 1459 [webView setUIDelegate:delegate.get()]; 1460 [webView focus]; 1411 1461 1412 1462 localAuthenticatorPolicy = _WKLocalAuthenticatorPolicyAllow; … … 1442 1492 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1443 1493 [webView setUIDelegate:delegate.get()]; 1494 [webView focus]; 1444 1495 1445 1496 ASSERT_TRUE(addKeyToKeychain(testES256PrivateKeyBase64, "", testUserEntityBundleBase64)); … … 1462 1513 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1463 1514 [webView setUIDelegate:delegate.get()]; 1515 [webView focus]; 1464 1516 1465 1517 [webView loadRequest:[NSURLRequest requestWithURL:testURL.get()]]; … … 1479 1531 auto delegate = adoptNS([[TestWebAuthenticationPanelUIDelegate alloc] init]); 1480 1532 [webView setUIDelegate:delegate.get()]; 1533 [webView focus]; 1481 1534 1482 1535 ASSERT_TRUE(addKeyToKeychain(testES256PrivateKeyBase64, "", testUserEntityBundleBase64)); -
trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp
r281079 r281228 799 799 } 800 800 801 static void testWebViewDocumentFocus(WebViewTest* test, gconstpointer) 802 { 803 if (!g_strcmp0(g_getenv("UNDER_XVFB"), "yes")) { 804 g_test_skip("This tests doesn't work under Xvfb"); 805 return; 806 } 807 808 test->showInWindow(); 809 test->loadHtml("<html><title></title>" 810 "<body onload='document.getElementById(\"editable\").focus()'>" 811 "<input id='editable'></input>" 812 "<script>" 813 "document.addEventListener(\"visibilitychange\", onVisibilityChange, false);" 814 "function onVisibilityChange() {" 815 " document.title = document.visibilityState;" 816 "}" 817 "</script>" 818 "</body></html>", 819 nullptr); 820 test->waitUntilLoadFinished(); 821 822 GUniqueOutPtr<GError> error; 823 WebKitJavascriptResult* javascriptResult = test->runJavaScriptAndWaitUntilFinished("document.hasFocus();", &error.outPtr()); 824 g_assert_nonnull(javascriptResult); 825 g_assert_no_error(error.get()); 826 g_assert_true(WebViewTest::javascriptResultToBoolean(javascriptResult)); 827 828 // Hide the view to make it lose the focus, the window is still the active one though. 829 test->hideView(); 830 test->waitUntilTitleChangedTo("hidden"); 831 javascriptResult = test->runJavaScriptAndWaitUntilFinished("document.hasFocus();", &error.outPtr()); 832 g_assert_nonnull(javascriptResult); 833 g_assert_no_error(error.get()); 834 g_assert_false(WebViewTest::javascriptResultToBoolean(javascriptResult)); 835 } 836 801 837 #if PLATFORM(GTK) 802 838 class SnapshotWebViewTest: public WebViewTest { … … 1710 1746 #endif 1711 1747 WebViewTest::add("WebKitWebView", "page-visibility", testWebViewPageVisibility); 1748 WebViewTest::add("WebKitWebView", "document-focus", testWebViewDocumentFocus); 1712 1749 #if ENABLE(NOTIFICATIONS) 1713 1750 NotificationWebViewTest::add("WebKitWebView", "notification", testWebViewNotification); -
trunk/Tools/TestWebKitAPI/cocoa/TestWKWebView.h
r280336 r281228 102 102 - (void)clickOnElementID:(NSString *)elementID; 103 103 - (void)waitForPendingMouseEvents; 104 - (void)focus; 104 105 @end 105 106 -
trunk/Tools/TestWebKitAPI/cocoa/TestWKWebView.mm
r280336 r281228 655 655 } 656 656 657 - (void)focus 658 { 659 #if PLATFORM(MAC) 660 [_hostWindow makeFirstResponder:self]; 661 #else 662 [super becomeFirstResponder]; 663 #endif 664 } 665 657 666 #if PLATFORM(IOS_FAMILY) 658 667
Note: See TracChangeset
for help on using the changeset viewer.