Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2940863005: Move loading methods from WebFrame to WebLocalFrame. (Closed)
Patch Set: Fixing build problems introduced by rebasing... Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 ->SuspendScheduledTasks(); 476 ->SuspendScheduledTasks();
477 web_view_helper.WebView() 477 web_view_helper.WebView()
478 ->MainFrameImpl() 478 ->MainFrameImpl()
479 ->RequestExecuteScriptAndReturnValue( 479 ->RequestExecuteScriptAndReturnValue(
480 WebScriptSource(WebString("'hello';")), false, &callback_helper); 480 WebScriptSource(WebString("'hello';")), false, &callback_helper);
481 RunPendingTasks(); 481 RunPendingTasks();
482 EXPECT_FALSE(callback_helper.DidComplete()); 482 EXPECT_FALSE(callback_helper.DidComplete());
483 483
484 // If the frame navigates, pending scripts should be removed, but the callback 484 // If the frame navigates, pending scripts should be removed, but the callback
485 // should always be ran. 485 // should always be ran.
486 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 486 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
487 base_url_ + "bar.html"); 487 base_url_ + "bar.html");
488 EXPECT_TRUE(callback_helper.DidComplete()); 488 EXPECT_TRUE(callback_helper.DidComplete());
489 EXPECT_EQ(String(), callback_helper.StringValue()); 489 EXPECT_EQ(String(), callback_helper.StringValue());
490 } 490 }
491 491
492 TEST_P(ParameterizedWebFrameTest, RequestExecuteV8Function) { 492 TEST_P(ParameterizedWebFrameTest, RequestExecuteV8Function) {
493 RegisterMockedHttpURLLoad("foo.html"); 493 RegisterMockedHttpURLLoad("foo.html");
494 494
495 FrameTestHelpers::WebViewHelper web_view_helper; 495 FrameTestHelpers::WebViewHelper web_view_helper;
496 web_view_helper.InitializeAndLoad(base_url_ + "foo.html"); 496 web_view_helper.InitializeAndLoad(base_url_ + "foo.html");
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 WebSearchableFormData searchable_data_form(forms[0]); 630 WebSearchableFormData searchable_data_form(forms[0]);
631 } 631 }
632 632
633 TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) { 633 TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) {
634 RegisterMockedChromeURLLoad("history.html"); 634 RegisterMockedChromeURLLoad("history.html");
635 635
636 FrameTestHelpers::WebViewHelper web_view_helper; 636 FrameTestHelpers::WebViewHelper web_view_helper;
637 web_view_helper.InitializeAndLoad(chrome_url_ + "history.html"); 637 web_view_helper.InitializeAndLoad(chrome_url_ + "history.html");
638 638
639 // Try to run JS against the chrome-style URL. 639 // Try to run JS against the chrome-style URL.
640 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 640 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
641 "javascript:document.body.appendChild(document." 641 "javascript:document.body.appendChild(document."
642 "createTextNode('Clobbered'))"); 642 "createTextNode('Clobbered'))");
643 643
644 // Now retrieve the frame's text and ensure it was modified by running 644 // Now retrieve the frame's text and ensure it was modified by running
645 // javascript. 645 // javascript.
646 std::string content = 646 std::string content =
647 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024) 647 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024)
648 .Utf8(); 648 .Utf8();
649 EXPECT_NE(std::string::npos, content.find("Clobbered")); 649 EXPECT_NE(std::string::npos, content.find("Clobbered"));
650 } 650 }
651 651
652 TEST_P(ParameterizedWebFrameTest, ChromePageNoJavascript) { 652 TEST_P(ParameterizedWebFrameTest, ChromePageNoJavascript) {
653 RegisterMockedChromeURLLoad("history.html"); 653 RegisterMockedChromeURLLoad("history.html");
654 654
655 FrameTestHelpers::WebViewHelper web_view_helper; 655 FrameTestHelpers::WebViewHelper web_view_helper;
656 web_view_helper.InitializeAndLoad(chrome_url_ + "history.html"); 656 web_view_helper.InitializeAndLoad(chrome_url_ + "history.html");
657 657
658 // Try to run JS against the chrome-style URL after prohibiting it. 658 // Try to run JS against the chrome-style URL after prohibiting it.
659 WebSecurityPolicy::RegisterURLSchemeAsNotAllowingJavascriptURLs("chrome"); 659 WebSecurityPolicy::RegisterURLSchemeAsNotAllowingJavascriptURLs("chrome");
660 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 660 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
661 "javascript:document.body.appendChild(document." 661 "javascript:document.body.appendChild(document."
662 "createTextNode('Clobbered'))"); 662 "createTextNode('Clobbered'))");
663 663
664 // Now retrieve the frame's text and ensure it wasn't modified by running 664 // Now retrieve the frame's text and ensure it wasn't modified by running
665 // javascript. 665 // javascript.
666 std::string content = 666 std::string content =
667 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024) 667 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024)
668 .Utf8(); 668 .Utf8();
669 EXPECT_EQ(std::string::npos, content.find("Clobbered")); 669 EXPECT_EQ(std::string::npos, content.find("Clobbered"));
670 } 670 }
671 671
672 TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) { 672 TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) {
673 std::string file_name = "print-location-href.html"; 673 std::string file_name = "print-location-href.html";
674 RegisterMockedHttpURLLoad(file_name); 674 RegisterMockedHttpURLLoad(file_name);
675 RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name); 675 RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name);
676 676
677 FrameTestHelpers::WebViewHelper web_view_helper; 677 FrameTestHelpers::WebViewHelper web_view_helper;
678 web_view_helper.InitializeAndLoad(base_url_ + file_name); 678 web_view_helper.InitializeAndLoad(base_url_ + file_name);
679 679
680 // Setting host to "hostname:" should be treated as "hostname:0". 680 // Setting host to "hostname:" should be treated as "hostname:0".
681 FrameTestHelpers::LoadFrame( 681 FrameTestHelpers::LoadFrame(
682 web_view_helper.WebView()->MainFrame(), 682 web_view_helper.WebView()->MainFrameImpl(),
683 "javascript:location.host = 'internal.test:'; void 0;"); 683 "javascript:location.host = 'internal.test:'; void 0;");
684 684
685 FrameTestHelpers::LoadFrame( 685 FrameTestHelpers::LoadFrame(
686 web_view_helper.WebView()->MainFrame(), 686 web_view_helper.WebView()->MainFrameImpl(),
687 "javascript:document.body.textContent = location.href; void 0;"); 687 "javascript:document.body.textContent = location.href; void 0;");
688 688
689 std::string content = 689 std::string content =
690 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024) 690 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024)
691 .Utf8(); 691 .Utf8();
692 EXPECT_EQ("http://internal.test:0/" + file_name, content); 692 EXPECT_EQ("http://internal.test:0/" + file_name, content);
693 } 693 }
694 694
695 TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) { 695 TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) {
696 std::string file_name = "print-location-href.html"; 696 std::string file_name = "print-location-href.html";
697 RegisterMockedHttpURLLoad(file_name); 697 RegisterMockedHttpURLLoad(file_name);
698 RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name); 698 RegisterMockedURLLoadFromBase("http://internal.test:0/", file_name);
699 699
700 FrameTestHelpers::WebViewHelper web_view_helper; 700 FrameTestHelpers::WebViewHelper web_view_helper;
701 web_view_helper.InitializeAndLoad(base_url_ + file_name); 701 web_view_helper.InitializeAndLoad(base_url_ + file_name);
702 702
703 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 703 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
704 "javascript:location.port = ''; void 0;"); 704 "javascript:location.port = ''; void 0;");
705 705
706 FrameTestHelpers::LoadFrame( 706 FrameTestHelpers::LoadFrame(
707 web_view_helper.WebView()->MainFrame(), 707 web_view_helper.WebView()->MainFrameImpl(),
708 "javascript:document.body.textContent = location.href; void 0;"); 708 "javascript:document.body.textContent = location.href; void 0;");
709 709
710 std::string content = 710 std::string content =
711 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024) 711 WebFrameContentDumper::DumpWebViewAsText(web_view_helper.WebView(), 1024)
712 .Utf8(); 712 .Utf8();
713 EXPECT_EQ("http://internal.test:0/" + file_name, content); 713 EXPECT_EQ("http://internal.test:0/" + file_name, content);
714 } 714 }
715 715
716 class EvaluateOnLoadWebFrameClient 716 class EvaluateOnLoadWebFrameClient
717 : public FrameTestHelpers::TestWebFrameClient { 717 : public FrameTestHelpers::TestWebFrameClient {
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after
1267 FixedLayoutTestWebViewClient client; 1267 FixedLayoutTestWebViewClient client;
1268 client.screen_info_.device_scale_factor = 1; 1268 client.screen_info_.device_scale_factor = 1;
1269 int viewport_width = 640; 1269 int viewport_width = 640;
1270 int viewport_height = 480; 1270 int viewport_height = 480;
1271 1271
1272 // Make sure we initialize to minimum scale, even if the window size 1272 // Make sure we initialize to minimum scale, even if the window size
1273 // only becomes available after the load begins. 1273 // only becomes available after the load begins.
1274 FrameTestHelpers::WebViewHelper web_view_helper; 1274 FrameTestHelpers::WebViewHelper web_view_helper;
1275 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 1275 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
1276 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 1276 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
1277 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 1277 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
1278 base_url_ + "fixed_layout.html"); 1278 base_url_ + "fixed_layout.html");
1279 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1279 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1280 1280
1281 int default_fixed_layout_width = 980; 1281 int default_fixed_layout_width = 980;
1282 float minimum_page_scale_factor = 1282 float minimum_page_scale_factor =
1283 viewport_width / (float)default_fixed_layout_width; 1283 viewport_width / (float)default_fixed_layout_width;
1284 EXPECT_EQ(minimum_page_scale_factor, 1284 EXPECT_EQ(minimum_page_scale_factor,
1285 web_view_helper.WebView()->PageScaleFactor()); 1285 web_view_helper.WebView()->PageScaleFactor());
1286 EXPECT_EQ(minimum_page_scale_factor, 1286 EXPECT_EQ(minimum_page_scale_factor,
1287 web_view_helper.WebView()->MinimumPageScaleFactor()); 1287 web_view_helper.WebView()->MinimumPageScaleFactor());
(...skipping 21 matching lines...) Expand all
1309 FixedLayoutTestWebViewClient client; 1309 FixedLayoutTestWebViewClient client;
1310 client.screen_info_.device_scale_factor = 1; 1310 client.screen_info_.device_scale_factor = 1;
1311 int viewport_width = 640; 1311 int viewport_width = 640;
1312 int viewport_height = 480; 1312 int viewport_height = 480;
1313 1313
1314 // Make sure we initialize to minimum scale, even if the window size 1314 // Make sure we initialize to minimum scale, even if the window size
1315 // only becomes available after the load begins. 1315 // only becomes available after the load begins.
1316 FrameTestHelpers::WebViewHelper web_view_helper; 1316 FrameTestHelpers::WebViewHelper web_view_helper;
1317 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 1317 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
1318 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 1318 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
1319 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 1319 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
1320 base_url_ + "wide_document.html"); 1320 base_url_ + "wide_document.html");
1321 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1321 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1322 1322
1323 int wide_document_width = 1500; 1323 int wide_document_width = 1500;
1324 float minimum_page_scale_factor = viewport_width / (float)wide_document_width; 1324 float minimum_page_scale_factor = viewport_width / (float)wide_document_width;
1325 EXPECT_EQ(minimum_page_scale_factor, 1325 EXPECT_EQ(minimum_page_scale_factor,
1326 web_view_helper.WebView()->PageScaleFactor()); 1326 web_view_helper.WebView()->PageScaleFactor());
1327 EXPECT_EQ(minimum_page_scale_factor, 1327 EXPECT_EQ(minimum_page_scale_factor,
1328 web_view_helper.WebView()->MinimumPageScaleFactor()); 1328 web_view_helper.WebView()->MinimumPageScaleFactor());
1329 1329
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 FixedLayoutTestWebViewClient client; 1507 FixedLayoutTestWebViewClient client;
1508 client.screen_info_.device_scale_factor = 1; 1508 client.screen_info_.device_scale_factor = 1;
1509 int viewport_width = 640; 1509 int viewport_width = 640;
1510 int viewport_height = 480; 1510 int viewport_height = 480;
1511 1511
1512 FrameTestHelpers::WebViewHelper web_view_helper; 1512 FrameTestHelpers::WebViewHelper web_view_helper;
1513 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 1513 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
1514 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1514 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1515 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 1515 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
1516 FrameTestHelpers::LoadFrame( 1516 FrameTestHelpers::LoadFrame(
1517 web_view_helper.WebView()->MainFrame(), 1517 web_view_helper.WebView()->MainFrameImpl(),
1518 base_url_ + "viewport/viewport-legacy-xhtmlmp.html"); 1518 base_url_ + "viewport/viewport-legacy-xhtmlmp.html");
1519 1519
1520 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1520 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1521 EXPECT_EQ(viewport_width, web_view_helper.WebView() 1521 EXPECT_EQ(viewport_width, web_view_helper.WebView()
1522 ->MainFrameImpl() 1522 ->MainFrameImpl()
1523 ->GetFrameView() 1523 ->GetFrameView()
1524 ->ContentsSize() 1524 ->ContentsSize()
1525 .Width()); 1525 .Width());
1526 EXPECT_EQ(viewport_height, web_view_helper.WebView() 1526 EXPECT_EQ(viewport_height, web_view_helper.WebView()
1527 ->MainFrameImpl() 1527 ->MainFrameImpl()
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
2052 int viewport_width = 640; 2052 int viewport_width = 640;
2053 int viewport_height = 480; 2053 int viewport_height = 480;
2054 2054
2055 FrameTestHelpers::WebViewHelper web_view_helper; 2055 FrameTestHelpers::WebViewHelper web_view_helper;
2056 2056
2057 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", nullptr, 2057 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", nullptr,
2058 &client, nullptr, ConfigureAndroid); 2058 &client, nullptr, ConfigureAndroid);
2059 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true); 2059 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true);
2060 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2060 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2061 2061
2062 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2062 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2063 base_url_ + "large-div.html"); 2063 base_url_ + "large-div.html");
2064 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 2064 web_view_helper.WebView()->UpdateAllLifecyclePhases();
2065 2065
2066 EXPECT_EQ(0, web_view_helper.WebView() 2066 EXPECT_EQ(0, web_view_helper.WebView()
2067 ->MainFrameImpl() 2067 ->MainFrameImpl()
2068 ->GetFrameView() 2068 ->GetFrameView()
2069 ->GetLayoutSize() 2069 ->GetLayoutSize()
2070 .Height()); 2070 .Height());
2071 } 2071 }
2072 2072
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2106 2106
2107 FrameTestHelpers::WebViewHelper web_view_helper; 2107 FrameTestHelpers::WebViewHelper web_view_helper;
2108 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr, 2108 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr,
2109 ConfigureAndroid); 2109 ConfigureAndroid);
2110 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2110 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2111 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2111 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2112 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2112 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2113 true); 2113 true);
2114 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2114 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2115 2115
2116 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2116 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2117 base_url_ + "wide_document_width_viewport.html"); 2117 base_url_ + "wide_document_width_viewport.html");
2118 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2118 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2119 2119
2120 int wide_document_width = 800; 2120 int wide_document_width = 800;
2121 float minimum_page_scale_factor = viewport_width / (float)wide_document_width; 2121 float minimum_page_scale_factor = viewport_width / (float)wide_document_width;
2122 EXPECT_EQ(minimum_page_scale_factor, 2122 EXPECT_EQ(minimum_page_scale_factor,
2123 web_view_helper.WebView()->PageScaleFactor()); 2123 web_view_helper.WebView()->PageScaleFactor());
2124 EXPECT_EQ(minimum_page_scale_factor, 2124 EXPECT_EQ(minimum_page_scale_factor,
2125 web_view_helper.WebView()->MinimumPageScaleFactor()); 2125 web_view_helper.WebView()->MinimumPageScaleFactor());
2126 } 2126 }
2127 2127
2128 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) { 2128 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) {
2129 RegisterMockedHttpURLLoad("viewport-height-1000.html"); 2129 RegisterMockedHttpURLLoad("viewport-height-1000.html");
2130 2130
2131 FixedLayoutTestWebViewClient client; 2131 FixedLayoutTestWebViewClient client;
2132 client.screen_info_.device_scale_factor = 1; 2132 client.screen_info_.device_scale_factor = 1;
2133 int viewport_width = 600; 2133 int viewport_width = 600;
2134 int viewport_height = 800; 2134 int viewport_height = 800;
2135 2135
2136 FrameTestHelpers::WebViewHelper web_view_helper; 2136 FrameTestHelpers::WebViewHelper web_view_helper;
2137 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr, 2137 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr,
2138 ConfigureAndroid); 2138 ConfigureAndroid);
2139 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2139 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2140 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2140 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2141 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2141 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2142 true); 2142 true);
2143 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2143 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2144 2144
2145 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2145 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2146 base_url_ + "viewport-height-1000.html"); 2146 base_url_ + "viewport-height-1000.html");
2147 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2147 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2148 2148
2149 EXPECT_EQ(800, web_view_helper.WebView() 2149 EXPECT_EQ(800, web_view_helper.WebView()
2150 ->MainFrameImpl() 2150 ->MainFrameImpl()
2151 ->GetFrameView() 2151 ->GetFrameView()
2152 ->GetLayoutSize() 2152 ->GetLayoutSize()
2153 .Height()); 2153 .Height());
2154 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor()); 2154 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor());
2155 } 2155 }
2156 2156
2157 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) { 2157 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) {
2158 RegisterMockedHttpURLLoad("viewport/viewport-30.html"); 2158 RegisterMockedHttpURLLoad("viewport/viewport-30.html");
2159 2159
2160 FixedLayoutTestWebViewClient client; 2160 FixedLayoutTestWebViewClient client;
2161 client.screen_info_.device_scale_factor = 1; 2161 client.screen_info_.device_scale_factor = 1;
2162 int viewport_width = 600; 2162 int viewport_width = 600;
2163 int viewport_height = 800; 2163 int viewport_height = 800;
2164 2164
2165 FrameTestHelpers::WebViewHelper web_view_helper; 2165 FrameTestHelpers::WebViewHelper web_view_helper;
2166 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr, 2166 web_view_helper.InitializeAndLoad("about:blank", nullptr, &client, nullptr,
2167 ConfigureAndroid); 2167 ConfigureAndroid);
2168 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2168 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2169 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2169 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2170 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2170 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2171 true); 2171 true);
2172 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2172 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2173 2173
2174 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2174 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2175 base_url_ + "viewport/viewport-30.html"); 2175 base_url_ + "viewport/viewport-30.html");
2176 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2176 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2177 2177
2178 EXPECT_EQ(600, web_view_helper.WebView() 2178 EXPECT_EQ(600, web_view_helper.WebView()
2179 ->MainFrameImpl() 2179 ->MainFrameImpl()
2180 ->GetFrameView() 2180 ->GetFrameView()
2181 ->GetLayoutSize() 2181 ->GetLayoutSize()
2182 .Width()); 2182 .Width());
2183 EXPECT_EQ(800, web_view_helper.WebView() 2183 EXPECT_EQ(800, web_view_helper.WebView()
2184 ->MainFrameImpl() 2184 ->MainFrameImpl()
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2241 int viewport_width = 640; 2241 int viewport_width = 640;
2242 int viewport_height = 480; 2242 int viewport_height = 480;
2243 2243
2244 FrameTestHelpers::WebViewHelper web_view_helper; 2244 FrameTestHelpers::WebViewHelper web_view_helper;
2245 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 2245 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
2246 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk( 2246 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk(
2247 true); 2247 true);
2248 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2248 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2249 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2249 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2250 true); 2250 true);
2251 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2251 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2252 base_url_ + "viewport-zero-values.html"); 2252 base_url_ + "viewport-zero-values.html");
2253 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2253 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2254 2254
2255 EXPECT_EQ(viewport_width, web_view_helper.WebView() 2255 EXPECT_EQ(viewport_width, web_view_helper.WebView()
2256 ->MainFrameImpl() 2256 ->MainFrameImpl()
2257 ->GetFrameView() 2257 ->GetFrameView()
2258 ->GetLayoutSize() 2258 ->GetLayoutSize()
2259 .Width()); 2259 .Width());
2260 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 2260 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
2261 2261
(...skipping 10 matching lines...) Expand all
2272 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) { 2272 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) {
2273 RegisterMockedHttpURLLoad("body-overflow-hidden.html"); 2273 RegisterMockedHttpURLLoad("body-overflow-hidden.html");
2274 2274
2275 FixedLayoutTestWebViewClient client; 2275 FixedLayoutTestWebViewClient client;
2276 client.screen_info_.device_scale_factor = 1; 2276 client.screen_info_.device_scale_factor = 1;
2277 int viewport_width = 640; 2277 int viewport_width = 640;
2278 int viewport_height = 480; 2278 int viewport_height = 480;
2279 2279
2280 FrameTestHelpers::WebViewHelper web_view_helper; 2280 FrameTestHelpers::WebViewHelper web_view_helper;
2281 web_view_helper.Initialize(nullptr, &client); 2281 web_view_helper.Initialize(nullptr, &client);
2282 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2282 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2283 base_url_ + "body-overflow-hidden.html"); 2283 base_url_ + "body-overflow-hidden.html");
2284 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2284 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2285 2285
2286 LocalFrameView* view = 2286 LocalFrameView* view =
2287 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 2287 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
2288 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar)); 2288 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar));
2289 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar)); 2289 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar));
2290 } 2290 }
2291 2291
2292 TEST_P(ParameterizedWebFrameTest, 2292 TEST_P(ParameterizedWebFrameTest,
2293 OverflowHiddenDisablesScrollingWithSetCanHaveScrollbars) { 2293 OverflowHiddenDisablesScrollingWithSetCanHaveScrollbars) {
2294 RegisterMockedHttpURLLoad("body-overflow-hidden-short.html"); 2294 RegisterMockedHttpURLLoad("body-overflow-hidden-short.html");
2295 2295
2296 FixedLayoutTestWebViewClient client; 2296 FixedLayoutTestWebViewClient client;
2297 client.screen_info_.device_scale_factor = 1; 2297 client.screen_info_.device_scale_factor = 1;
2298 int viewport_width = 640; 2298 int viewport_width = 640;
2299 int viewport_height = 480; 2299 int viewport_height = 480;
2300 2300
2301 FrameTestHelpers::WebViewHelper web_view_helper; 2301 FrameTestHelpers::WebViewHelper web_view_helper;
2302 web_view_helper.Initialize(nullptr, &client); 2302 web_view_helper.Initialize(nullptr, &client);
2303 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2303 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2304 base_url_ + "body-overflow-hidden-short.html"); 2304 base_url_ + "body-overflow-hidden-short.html");
2305 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2305 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2306 2306
2307 LocalFrameView* view = 2307 LocalFrameView* view =
2308 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 2308 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
2309 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar)); 2309 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar));
2310 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar)); 2310 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar));
2311 2311
2312 web_view_helper.WebView()->MainFrameImpl()->SetCanHaveScrollbars(true); 2312 web_view_helper.WebView()->MainFrameImpl()->SetCanHaveScrollbars(true);
2313 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar)); 2313 EXPECT_FALSE(view->UserInputScrollable(kVerticalScrollbar));
2314 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar)); 2314 EXPECT_FALSE(view->UserInputScrollable(kHorizontalScrollbar));
2315 } 2315 }
2316 2316
2317 TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk) { 2317 TEST_F(WebFrameTest, IgnoreOverflowHiddenQuirk) {
2318 RegisterMockedHttpURLLoad("body-overflow-hidden.html"); 2318 RegisterMockedHttpURLLoad("body-overflow-hidden.html");
2319 2319
2320 FixedLayoutTestWebViewClient client; 2320 FixedLayoutTestWebViewClient client;
2321 client.screen_info_.device_scale_factor = 1; 2321 client.screen_info_.device_scale_factor = 1;
2322 int viewport_width = 640; 2322 int viewport_width = 640;
2323 int viewport_height = 480; 2323 int viewport_height = 480;
2324 2324
2325 FrameTestHelpers::WebViewHelper web_view_helper; 2325 FrameTestHelpers::WebViewHelper web_view_helper;
2326 web_view_helper.Initialize(nullptr, &client); 2326 web_view_helper.Initialize(nullptr, &client);
2327 web_view_helper.WebView() 2327 web_view_helper.WebView()
2328 ->GetSettings() 2328 ->GetSettings()
2329 ->SetIgnoreMainFrameOverflowHiddenQuirk(true); 2329 ->SetIgnoreMainFrameOverflowHiddenQuirk(true);
2330 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2330 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2331 base_url_ + "body-overflow-hidden.html"); 2331 base_url_ + "body-overflow-hidden.html");
2332 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2332 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2333 2333
2334 LocalFrameView* view = 2334 LocalFrameView* view =
2335 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 2335 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
2336 EXPECT_TRUE(view->UserInputScrollable(kVerticalScrollbar)); 2336 EXPECT_TRUE(view->UserInputScrollable(kVerticalScrollbar));
2337 } 2337 }
2338 2338
2339 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) { 2339 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) {
2340 RegisterMockedHttpURLLoad("viewport-nonzero-values.html"); 2340 RegisterMockedHttpURLLoad("viewport-nonzero-values.html");
2341 2341
2342 FixedLayoutTestWebViewClient client; 2342 FixedLayoutTestWebViewClient client;
2343 client.screen_info_.device_scale_factor = 1; 2343 client.screen_info_.device_scale_factor = 1;
2344 int viewport_width = 640; 2344 int viewport_width = 640;
2345 int viewport_height = 480; 2345 int viewport_height = 480;
2346 float expected_page_scale_factor = 0.5f; 2346 float expected_page_scale_factor = 0.5f;
2347 2347
2348 FrameTestHelpers::WebViewHelper web_view_helper; 2348 FrameTestHelpers::WebViewHelper web_view_helper;
2349 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 2349 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
2350 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk( 2350 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk(
2351 true); 2351 true);
2352 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2352 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2353 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2353 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2354 base_url_ + "viewport-nonzero-values.html"); 2354 base_url_ + "viewport-nonzero-values.html");
2355 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2355 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2356 2356
2357 EXPECT_EQ(viewport_width / expected_page_scale_factor, 2357 EXPECT_EQ(viewport_width / expected_page_scale_factor,
2358 web_view_helper.WebView() 2358 web_view_helper.WebView()
2359 ->MainFrameImpl() 2359 ->MainFrameImpl()
2360 ->GetFrameView() 2360 ->GetFrameView()
2361 ->GetLayoutSize() 2361 ->GetLayoutSize()
2362 .Width()); 2362 .Width());
2363 EXPECT_EQ(expected_page_scale_factor, 2363 EXPECT_EQ(expected_page_scale_factor,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 RegisterMockedHttpURLLoad("fixed_layout.html"); 2454 RegisterMockedHttpURLLoad("fixed_layout.html");
2455 2455
2456 FixedLayoutTestWebViewClient client; 2456 FixedLayoutTestWebViewClient client;
2457 client.screen_info_.device_scale_factor = 1; 2457 client.screen_info_.device_scale_factor = 1;
2458 int viewport_width = 640; 2458 int viewport_width = 640;
2459 int viewport_height = 480; 2459 int viewport_height = 480;
2460 2460
2461 FrameTestHelpers::WebViewHelper web_view_helper; 2461 FrameTestHelpers::WebViewHelper web_view_helper;
2462 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 2462 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
2463 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 2463 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
2464 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2464 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2465 base_url_ + "fixed_layout.html"); 2465 base_url_ + "fixed_layout.html");
2466 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2466 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2467 2467
2468 int default_fixed_layout_width = 980; 2468 int default_fixed_layout_width = 980;
2469 float minimum_page_scale_factor = 2469 float minimum_page_scale_factor =
2470 viewport_width / (float)default_fixed_layout_width; 2470 viewport_width / (float)default_fixed_layout_width;
2471 EXPECT_EQ(minimum_page_scale_factor, 2471 EXPECT_EQ(minimum_page_scale_factor,
2472 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 2472 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
2473 ->Loader() 2473 ->Loader()
2474 .GetDocumentLoader() 2474 .GetDocumentLoader()
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
2947 .Width()); 2947 .Width());
2948 } 2948 }
2949 2949
2950 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) { 2950 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) {
2951 RegisterMockedHttpURLLoad("viewport-and-media.html"); 2951 RegisterMockedHttpURLLoad("viewport-and-media.html");
2952 2952
2953 FixedLayoutTestWebViewClient client; 2953 FixedLayoutTestWebViewClient client;
2954 FrameTestHelpers::WebViewHelper web_view_helper; 2954 FrameTestHelpers::WebViewHelper web_view_helper;
2955 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 2955 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
2956 web_view_helper.Resize(WebSize(640, 480)); 2956 web_view_helper.Resize(WebSize(640, 480));
2957 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2957 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2958 base_url_ + "viewport-and-media.html"); 2958 base_url_ + "viewport-and-media.html");
2959 2959
2960 Document* document = 2960 Document* document =
2961 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->GetDocument(); 2961 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->GetDocument();
2962 EXPECT_EQ(2000, web_view_helper.WebView() 2962 EXPECT_EQ(2000, web_view_helper.WebView()
2963 ->MainFrameImpl() 2963 ->MainFrameImpl()
2964 ->GetFrameView() 2964 ->GetFrameView()
2965 ->GetLayoutSize() 2965 ->GetLayoutSize()
2966 .Width()); 2966 .Width());
2967 2967
2968 // The styleForElementCount() should match the number of elements for a single 2968 // The styleForElementCount() should match the number of elements for a single
2969 // pass of computed styles construction for the document. 2969 // pass of computed styles construction for the document.
2970 EXPECT_EQ(10u, document->GetStyleEngine().StyleForElementCount()); 2970 EXPECT_EQ(10u, document->GetStyleEngine().StyleForElementCount());
2971 EXPECT_EQ(Color(0, 128, 0), 2971 EXPECT_EQ(Color(0, 128, 0),
2972 document->body()->GetComputedStyle()->VisitedDependentColor( 2972 document->body()->GetComputedStyle()->VisitedDependentColor(
2973 CSSPropertyColor)); 2973 CSSPropertyColor));
2974 } 2974 }
2975 2975
2976 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) { 2976 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) {
2977 RegisterMockedHttpURLLoad("viewport-lengths.html"); 2977 RegisterMockedHttpURLLoad("viewport-lengths.html");
2978 2978
2979 FixedLayoutTestWebViewClient client; 2979 FixedLayoutTestWebViewClient client;
2980 FrameTestHelpers::WebViewHelper web_view_helper; 2980 FrameTestHelpers::WebViewHelper web_view_helper;
2981 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid); 2981 web_view_helper.Initialize(nullptr, &client, nullptr, ConfigureAndroid);
2982 web_view_helper.Resize(WebSize(800, 600)); 2982 web_view_helper.Resize(WebSize(800, 600));
2983 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2983 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
2984 base_url_ + "viewport-lengths.html"); 2984 base_url_ + "viewport-lengths.html");
2985 2985
2986 LocalFrameView* view = 2986 LocalFrameView* view =
2987 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 2987 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
2988 EXPECT_EQ(400, view->GetLayoutSize().Width()); 2988 EXPECT_EQ(400, view->GetLayoutSize().Width());
2989 EXPECT_EQ(300, view->GetLayoutSize().Height()); 2989 EXPECT_EQ(300, view->GetLayoutSize().Height());
2990 2990
2991 web_view_helper.Resize(WebSize(1000, 400)); 2991 web_view_helper.Resize(WebSize(1000, 400));
2992 2992
2993 EXPECT_EQ(500, view->GetLayoutSize().Width()); 2993 EXPECT_EQ(500, view->GetLayoutSize().Width());
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
3200 int view_height = 500; 3200 int view_height = 500;
3201 3201
3202 std::unique_ptr<FakeCompositingWebViewClient> 3202 std::unique_ptr<FakeCompositingWebViewClient>
3203 fake_compositing_web_view_client = 3203 fake_compositing_web_view_client =
3204 WTF::MakeUnique<FakeCompositingWebViewClient>(); 3204 WTF::MakeUnique<FakeCompositingWebViewClient>();
3205 FrameTestHelpers::WebViewHelper web_view_helper; 3205 FrameTestHelpers::WebViewHelper web_view_helper;
3206 web_view_helper.Initialize(nullptr, fake_compositing_web_view_client.get(), 3206 web_view_helper.Initialize(nullptr, fake_compositing_web_view_client.get(),
3207 nullptr, &ConfigureCompositingWebView); 3207 nullptr, &ConfigureCompositingWebView);
3208 3208
3209 web_view_helper.Resize(WebSize(view_width, view_height)); 3209 web_view_helper.Resize(WebSize(view_width, view_height));
3210 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 3210 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
3211 base_url_ + "large-div.html"); 3211 base_url_ + "large-div.html");
3212 3212
3213 LocalFrameView* view = 3213 LocalFrameView* view =
3214 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 3214 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
3215 EXPECT_TRUE( 3215 EXPECT_TRUE(
3216 view->GetLayoutViewItem().Compositor()->LayerForHorizontalScrollbar()); 3216 view->GetLayoutViewItem().Compositor()->LayerForHorizontalScrollbar());
3217 EXPECT_TRUE( 3217 EXPECT_TRUE(
3218 view->GetLayoutViewItem().Compositor()->LayerForVerticalScrollbar()); 3218 view->GetLayoutViewItem().Compositor()->LayerForVerticalScrollbar());
3219 3219
3220 web_view_helper.Resize(WebSize(view_width * 10, view_height * 10)); 3220 web_view_helper.Resize(WebSize(view_width * 10, view_height * 10));
(...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after
4190 4190
4191 TEST_P(ParameterizedWebFrameTest, ReloadDoesntSetRedirect) { 4191 TEST_P(ParameterizedWebFrameTest, ReloadDoesntSetRedirect) {
4192 // Test for case in http://crbug.com/73104. Reloading a frame very quickly 4192 // Test for case in http://crbug.com/73104. Reloading a frame very quickly
4193 // would sometimes call decidePolicyForNavigation with isRedirect=true 4193 // would sometimes call decidePolicyForNavigation with isRedirect=true
4194 RegisterMockedHttpURLLoad("form.html"); 4194 RegisterMockedHttpURLLoad("form.html");
4195 4195
4196 TestReloadDoesntRedirectWebFrameClient web_frame_client; 4196 TestReloadDoesntRedirectWebFrameClient web_frame_client;
4197 FrameTestHelpers::WebViewHelper web_view_helper; 4197 FrameTestHelpers::WebViewHelper web_view_helper;
4198 web_view_helper.InitializeAndLoad(base_url_ + "form.html", &web_frame_client); 4198 web_view_helper.InitializeAndLoad(base_url_ + "form.html", &web_frame_client);
4199 4199
4200 web_view_helper.WebView()->MainFrame()->Reload( 4200 web_view_helper.WebView()->MainFrameImpl()->Reload(
4201 WebFrameLoadType::kReloadBypassingCache); 4201 WebFrameLoadType::kReloadBypassingCache);
4202 // start another reload before request is delivered. 4202 // start another reload before request is delivered.
4203 FrameTestHelpers::ReloadFrameBypassingCache( 4203 FrameTestHelpers::ReloadFrameBypassingCache(
4204 web_view_helper.WebView()->MainFrame()); 4204 web_view_helper.WebView()->MainFrameImpl());
4205 } 4205 }
4206 4206
4207 class ClearScrollStateOnCommitWebFrameClient 4207 class ClearScrollStateOnCommitWebFrameClient
4208 : public FrameTestHelpers::TestWebFrameClient { 4208 : public FrameTestHelpers::TestWebFrameClient {
4209 public: 4209 public:
4210 void DidCommitProvisionalLoad(const WebHistoryItem&, 4210 void DidCommitProvisionalLoad(const WebHistoryItem&,
4211 WebHistoryCommitType) override { 4211 WebHistoryCommitType) override {
4212 Frame()->View()->ResetScrollAndScaleState(); 4212 Frame()->View()->ResetScrollAndScaleState();
4213 } 4213 }
4214 }; 4214 };
(...skipping 12 matching lines...) Expand all
4227 4227
4228 ClearScrollStateOnCommitWebFrameClient client; 4228 ClearScrollStateOnCommitWebFrameClient client;
4229 FrameTestHelpers::WebViewHelper web_view_helper; 4229 FrameTestHelpers::WebViewHelper web_view_helper;
4230 web_view_helper.InitializeAndLoad(base_url_ + first_url, &client); 4230 web_view_helper.InitializeAndLoad(base_url_ + first_url, &client);
4231 web_view_helper.Resize(WebSize(kPageWidth, kPageHeight)); 4231 web_view_helper.Resize(WebSize(kPageWidth, kPageHeight));
4232 web_view_helper.WebView()->MainFrame()->SetScrollOffset( 4232 web_view_helper.WebView()->MainFrame()->SetScrollOffset(
4233 WebSize(kPageWidth / 4, kPageHeight / 4)); 4233 WebSize(kPageWidth / 4, kPageHeight / 4));
4234 web_view_helper.WebView()->SetPageScaleFactor(kPageScaleFactor); 4234 web_view_helper.WebView()->SetPageScaleFactor(kPageScaleFactor);
4235 4235
4236 // Reload the page and end up at the same url. State should not be propagated. 4236 // Reload the page and end up at the same url. State should not be propagated.
4237 web_view_helper.WebView()->MainFrame()->ReloadWithOverrideURL( 4237 web_view_helper.WebView()->MainFrameImpl()->ReloadWithOverrideURL(
4238 ToKURL(base_url_ + first_url), WebFrameLoadType::kReload); 4238 ToKURL(base_url_ + first_url), WebFrameLoadType::kReload);
4239 FrameTestHelpers::PumpPendingRequestsForFrameToLoad( 4239 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(
4240 web_view_helper.WebView()->MainFrame()); 4240 web_view_helper.WebView()->MainFrame());
4241 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width); 4241 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width);
4242 EXPECT_EQ(0, 4242 EXPECT_EQ(0,
4243 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height); 4243 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height);
4244 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 4244 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
4245 4245
4246 // Reload the page using the cache. State should not be propagated. 4246 // Reload the page using the cache. State should not be propagated.
4247 web_view_helper.WebView()->MainFrame()->ReloadWithOverrideURL( 4247 web_view_helper.WebView()->MainFrameImpl()->ReloadWithOverrideURL(
4248 ToKURL(base_url_ + second_url), WebFrameLoadType::kReload); 4248 ToKURL(base_url_ + second_url), WebFrameLoadType::kReload);
4249 FrameTestHelpers::PumpPendingRequestsForFrameToLoad( 4249 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(
4250 web_view_helper.WebView()->MainFrame()); 4250 web_view_helper.WebView()->MainFrame());
4251 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width); 4251 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width);
4252 EXPECT_EQ(0, 4252 EXPECT_EQ(0,
4253 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height); 4253 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height);
4254 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 4254 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
4255 4255
4256 // Reload the page while bypassing the cache. State should not be propagated. 4256 // Reload the page while bypassing the cache. State should not be propagated.
4257 web_view_helper.WebView()->MainFrame()->ReloadWithOverrideURL( 4257 web_view_helper.WebView()->MainFrameImpl()->ReloadWithOverrideURL(
4258 ToKURL(base_url_ + third_url), WebFrameLoadType::kReloadBypassingCache); 4258 ToKURL(base_url_ + third_url), WebFrameLoadType::kReloadBypassingCache);
4259 FrameTestHelpers::PumpPendingRequestsForFrameToLoad( 4259 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(
4260 web_view_helper.WebView()->MainFrame()); 4260 web_view_helper.WebView()->MainFrame());
4261 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width); 4261 EXPECT_EQ(0, web_view_helper.WebView()->MainFrame()->GetScrollOffset().width);
4262 EXPECT_EQ(0, 4262 EXPECT_EQ(0,
4263 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height); 4263 web_view_helper.WebView()->MainFrame()->GetScrollOffset().height);
4264 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 4264 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
4265 } 4265 }
4266 4266
4267 TEST_P(ParameterizedWebFrameTest, ReloadWhileProvisional) { 4267 TEST_P(ParameterizedWebFrameTest, ReloadWhileProvisional) {
4268 // Test that reloading while the previous load is still pending does not cause 4268 // Test that reloading while the previous load is still pending does not cause
4269 // the initial request to get lost. 4269 // the initial request to get lost.
4270 RegisterMockedHttpURLLoad("fixed_layout.html"); 4270 RegisterMockedHttpURLLoad("fixed_layout.html");
4271 4271
4272 FrameTestHelpers::WebViewHelper web_view_helper; 4272 FrameTestHelpers::WebViewHelper web_view_helper;
4273 web_view_helper.Initialize(); 4273 web_view_helper.Initialize();
4274 WebURLRequest request(ToKURL(base_url_ + "fixed_layout.html")); 4274 WebURLRequest request(ToKURL(base_url_ + "fixed_layout.html"));
4275 web_view_helper.WebView()->MainFrame()->LoadRequest(request); 4275 web_view_helper.WebView()->MainFrameImpl()->LoadRequest(request);
4276 // start reload before first request is delivered. 4276 // start reload before first request is delivered.
4277 FrameTestHelpers::ReloadFrameBypassingCache( 4277 FrameTestHelpers::ReloadFrameBypassingCache(
4278 web_view_helper.WebView()->MainFrame()); 4278 web_view_helper.WebView()->MainFrameImpl());
4279 4279
4280 WebDataSource* data_source = 4280 WebDataSource* data_source =
4281 web_view_helper.WebView()->MainFrameImpl()->DataSource(); 4281 web_view_helper.WebView()->MainFrameImpl()->DataSource();
4282 ASSERT_TRUE(data_source); 4282 ASSERT_TRUE(data_source);
4283 EXPECT_EQ(ToKURL(base_url_ + "fixed_layout.html"), 4283 EXPECT_EQ(ToKURL(base_url_ + "fixed_layout.html"),
4284 KURL(data_source->GetRequest().Url())); 4284 KURL(data_source->GetRequest().Url()));
4285 } 4285 }
4286 4286
4287 TEST_P(ParameterizedWebFrameTest, AppendRedirects) { 4287 TEST_P(ParameterizedWebFrameTest, AppendRedirects) {
4288 const std::string first_url = "about:blank"; 4288 const std::string first_url = "about:blank";
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
4528 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>> 4528 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>>
4529 release_notifications; 4529 release_notifications;
4530 ContextLifetimeTestWebFrameClient web_frame_client(create_notifications, 4530 ContextLifetimeTestWebFrameClient web_frame_client(create_notifications,
4531 release_notifications); 4531 release_notifications);
4532 FrameTestHelpers::WebViewHelper web_view_helper; 4532 FrameTestHelpers::WebViewHelper web_view_helper;
4533 web_view_helper.InitializeAndLoad( 4533 web_view_helper.InitializeAndLoad(
4534 base_url_ + "context_notifications_test.html", &web_frame_client); 4534 base_url_ + "context_notifications_test.html", &web_frame_client);
4535 4535
4536 // Refresh, we should get two release notifications and two more create 4536 // Refresh, we should get two release notifications and two more create
4537 // notifications. 4537 // notifications.
4538 FrameTestHelpers::ReloadFrame(web_view_helper.WebView()->MainFrame()); 4538 FrameTestHelpers::ReloadFrame(web_view_helper.WebView()->MainFrameImpl());
4539 ASSERT_EQ(4u, create_notifications.size()); 4539 ASSERT_EQ(4u, create_notifications.size());
4540 ASSERT_EQ(2u, release_notifications.size()); 4540 ASSERT_EQ(2u, release_notifications.size());
4541 4541
4542 // The two release notifications we got should be exactly the same as the 4542 // The two release notifications we got should be exactly the same as the
4543 // first two create notifications. 4543 // first two create notifications.
4544 for (size_t i = 0; i < release_notifications.size(); ++i) { 4544 for (size_t i = 0; i < release_notifications.size(); ++i) {
4545 EXPECT_TRUE(release_notifications[i]->Equals( 4545 EXPECT_TRUE(release_notifications[i]->Equals(
4546 create_notifications[create_notifications.size() - 3 - i].get())); 4546 create_notifications[create_notifications.size() - 3 - i].get()));
4547 } 4547 }
4548 4548
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
4775 }; 4775 };
4776 4776
4777 TEST_P(ParameterizedWebFrameTest, ExecuteScriptDuringDidCreateScriptContext) { 4777 TEST_P(ParameterizedWebFrameTest, ExecuteScriptDuringDidCreateScriptContext) {
4778 RegisterMockedHttpURLLoad("hello_world.html"); 4778 RegisterMockedHttpURLLoad("hello_world.html");
4779 4779
4780 TestExecuteScriptDuringDidCreateScriptContext web_frame_client; 4780 TestExecuteScriptDuringDidCreateScriptContext web_frame_client;
4781 FrameTestHelpers::WebViewHelper web_view_helper; 4781 FrameTestHelpers::WebViewHelper web_view_helper;
4782 web_view_helper.InitializeAndLoad(base_url_ + "hello_world.html", 4782 web_view_helper.InitializeAndLoad(base_url_ + "hello_world.html",
4783 &web_frame_client); 4783 &web_frame_client);
4784 4784
4785 FrameTestHelpers::ReloadFrame(web_view_helper.WebView()->MainFrame()); 4785 FrameTestHelpers::ReloadFrame(web_view_helper.WebView()->MainFrameImpl());
4786 } 4786 }
4787 4787
4788 class FindUpdateWebFrameClient : public FrameTestHelpers::TestWebFrameClient { 4788 class FindUpdateWebFrameClient : public FrameTestHelpers::TestWebFrameClient {
4789 public: 4789 public:
4790 FindUpdateWebFrameClient() 4790 FindUpdateWebFrameClient()
4791 : find_results_are_ready_(false), count_(-1), active_index_(-1) {} 4791 : find_results_are_ready_(false), count_(-1), active_index_(-1) {}
4792 4792
4793 void ReportFindInPageMatchCount(int, int count, bool final_update) override { 4793 void ReportFindInPageMatchCount(int, int count, bool final_update) override {
4794 count_ = count; 4794 count_ = count;
4795 if (final_update) 4795 if (final_update)
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after
5913 5913
5914 web_view_helper_.Initialize(nullptr, &fake_selection_web_view_client_); 5914 web_view_helper_.Initialize(nullptr, &fake_selection_web_view_client_);
5915 web_view_helper_.WebView()->GetSettings()->SetDefaultFontSize(12); 5915 web_view_helper_.WebView()->GetSettings()->SetDefaultFontSize(12);
5916 web_view_helper_.WebView()->SetDefaultPageScaleLimits(1, 1); 5916 web_view_helper_.WebView()->SetDefaultPageScaleLimits(1, 1);
5917 web_view_helper_.Resize(WebSize(640, 480)); 5917 web_view_helper_.Resize(WebSize(640, 480));
5918 } 5918 }
5919 5919
5920 void RunTestWithNoSelection(const char* test_file) { 5920 void RunTestWithNoSelection(const char* test_file) {
5921 RegisterMockedHttpURLLoad(test_file); 5921 RegisterMockedHttpURLLoad(test_file);
5922 web_view_helper_.WebView()->SetFocus(true); 5922 web_view_helper_.WebView()->SetFocus(true);
5923 FrameTestHelpers::LoadFrame(web_view_helper_.WebView()->MainFrame(), 5923 FrameTestHelpers::LoadFrame(web_view_helper_.WebView()->MainFrameImpl(),
5924 base_url_ + test_file); 5924 base_url_ + test_file);
5925 web_view_helper_.WebView()->UpdateAllLifecyclePhases(); 5925 web_view_helper_.WebView()->UpdateAllLifecyclePhases();
5926 5926
5927 const WebSelection* selection = fake_selection_layer_tree_view_.Selection(); 5927 const WebSelection* selection = fake_selection_layer_tree_view_.Selection();
5928 const WebSelectionBound* select_start = 5928 const WebSelectionBound* select_start =
5929 fake_selection_layer_tree_view_.Start(); 5929 fake_selection_layer_tree_view_.Start();
5930 const WebSelectionBound* select_end = fake_selection_layer_tree_view_.end(); 5930 const WebSelectionBound* select_end = fake_selection_layer_tree_view_.end();
5931 5931
5932 EXPECT_FALSE(selection); 5932 EXPECT_FALSE(selection);
5933 EXPECT_FALSE(select_start); 5933 EXPECT_FALSE(select_start);
5934 EXPECT_FALSE(select_end); 5934 EXPECT_FALSE(select_end);
5935 } 5935 }
5936 5936
5937 void RunTest(const char* test_file) { 5937 void RunTest(const char* test_file) {
5938 RegisterMockedHttpURLLoad(test_file); 5938 RegisterMockedHttpURLLoad(test_file);
5939 web_view_helper_.WebView()->SetFocus(true); 5939 web_view_helper_.WebView()->SetFocus(true);
5940 FrameTestHelpers::LoadFrame(web_view_helper_.WebView()->MainFrame(), 5940 FrameTestHelpers::LoadFrame(web_view_helper_.WebView()->MainFrameImpl(),
5941 base_url_ + test_file); 5941 base_url_ + test_file);
5942 web_view_helper_.WebView()->UpdateAllLifecyclePhases(); 5942 web_view_helper_.WebView()->UpdateAllLifecyclePhases();
5943 5943
5944 v8::HandleScope handle_scope(v8::Isolate::GetCurrent()); 5944 v8::HandleScope handle_scope(v8::Isolate::GetCurrent());
5945 v8::Local<v8::Value> result = 5945 v8::Local<v8::Value> result =
5946 web_view_helper_.WebView() 5946 web_view_helper_.WebView()
5947 ->MainFrameImpl() 5947 ->MainFrameImpl()
5948 ->ExecuteScriptAndReturnValue(WebScriptSource("expectedResult")); 5948 ->ExecuteScriptAndReturnValue(WebScriptSource("expectedResult"));
5949 ASSERT_FALSE(result.IsEmpty() || (*result)->IsUndefined()); 5949 ASSERT_FALSE(result.IsEmpty() || (*result)->IsUndefined());
5950 5950
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
6434 6434
6435 private: 6435 private:
6436 bool commit_called_; 6436 bool commit_called_;
6437 }; 6437 };
6438 6438
6439 TEST_P(ParameterizedWebFrameTest, ReplaceNavigationAfterHistoryNavigation) { 6439 TEST_P(ParameterizedWebFrameTest, ReplaceNavigationAfterHistoryNavigation) {
6440 TestSubstituteDataWebFrameClient web_frame_client; 6440 TestSubstituteDataWebFrameClient web_frame_client;
6441 6441
6442 FrameTestHelpers::WebViewHelper web_view_helper; 6442 FrameTestHelpers::WebViewHelper web_view_helper;
6443 web_view_helper.InitializeAndLoad("about:blank", &web_frame_client); 6443 web_view_helper.InitializeAndLoad("about:blank", &web_frame_client);
6444 WebFrame* frame = web_view_helper.WebView()->MainFrame(); 6444 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl();
6445 6445
6446 // Load a url as a history navigation that will return an error. 6446 // Load a url as a history navigation that will return an error.
6447 // TestSubstituteDataWebFrameClient will start a SubstituteData load in 6447 // TestSubstituteDataWebFrameClient will start a SubstituteData load in
6448 // response to the load failure, which should get fully committed. Due to 6448 // response to the load failure, which should get fully committed. Due to
6449 // https://bugs.webkit.org/show_bug.cgi?id=91685, 6449 // https://bugs.webkit.org/show_bug.cgi?id=91685,
6450 // FrameLoader::didReceiveData() wasn't getting called in this case, which 6450 // FrameLoader::didReceiveData() wasn't getting called in this case, which
6451 // resulted in the SubstituteData document not getting displayed. 6451 // resulted in the SubstituteData document not getting displayed.
6452 WebURLError error; 6452 WebURLError error;
6453 error.reason = 1337; 6453 error.reason = 1337;
6454 error.domain = "WebFrameTest"; 6454 error.domain = "WebFrameTest";
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
6961 } 6961 }
6962 6962
6963 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) { 6963 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) {
6964 TestAccessInitialDocumentWebFrameClient web_frame_client; 6964 TestAccessInitialDocumentWebFrameClient web_frame_client;
6965 FrameTestHelpers::WebViewHelper web_view_helper; 6965 FrameTestHelpers::WebViewHelper web_view_helper;
6966 web_view_helper.Initialize(&web_frame_client); 6966 web_view_helper.Initialize(&web_frame_client);
6967 RunPendingTasks(); 6967 RunPendingTasks();
6968 EXPECT_EQ(0, web_frame_client.did_access_initial_document_); 6968 EXPECT_EQ(0, web_frame_client.did_access_initial_document_);
6969 6969
6970 // Access the initial document from a javascript: URL. 6970 // Access the initial document from a javascript: URL.
6971 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 6971 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
6972 "javascript:document.body.appendChild(document." 6972 "javascript:document.body.appendChild(document."
6973 "createTextNode('Modified'))"); 6973 "createTextNode('Modified'))");
6974 EXPECT_EQ(1, web_frame_client.did_access_initial_document_); 6974 EXPECT_EQ(1, web_frame_client.did_access_initial_document_);
6975 6975
6976 web_view_helper.Reset(); 6976 web_view_helper.Reset();
6977 } 6977 }
6978 6978
6979 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentBodyBeforeModalDialog) 6979 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentBodyBeforeModalDialog)
6980 { 6980 {
6981 TestAccessInitialDocumentWebFrameClient web_frame_client; 6981 TestAccessInitialDocumentWebFrameClient web_frame_client;
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
7294 EXPECT_EQ(WebCachePolicy::kValidatingCacheData, 7294 EXPECT_EQ(WebCachePolicy::kValidatingCacheData,
7295 frame->DataSource()->GetRequest().GetCachePolicy()); 7295 frame->DataSource()->GetRequest().GetCachePolicy());
7296 } 7296 }
7297 7297
7298 TEST_P(ParameterizedWebFrameTest, BackDuringChildFrameReload) { 7298 TEST_P(ParameterizedWebFrameTest, BackDuringChildFrameReload) {
7299 RegisterMockedHttpURLLoad("page_with_blank_iframe.html"); 7299 RegisterMockedHttpURLLoad("page_with_blank_iframe.html");
7300 FrameTestHelpers::WebViewHelper web_view_helper; 7300 FrameTestHelpers::WebViewHelper web_view_helper;
7301 web_view_helper.InitializeAndLoad(base_url_ + "page_with_blank_iframe.html"); 7301 web_view_helper.InitializeAndLoad(base_url_ + "page_with_blank_iframe.html");
7302 WebLocalFrameBase* main_frame = web_view_helper.LocalMainFrame(); 7302 WebLocalFrameBase* main_frame = web_view_helper.LocalMainFrame();
7303 const FrameLoader& main_frame_loader = main_frame->GetFrame()->Loader(); 7303 const FrameLoader& main_frame_loader = main_frame->GetFrame()->Loader();
7304 WebFrame* child_frame = main_frame->FirstChild(); 7304 WebLocalFrame* child_frame = main_frame->FirstChild()->ToWebLocalFrame();
7305 ASSERT_TRUE(child_frame); 7305 ASSERT_TRUE(child_frame);
7306 7306
7307 // Start a history navigation, then have a different frame commit a 7307 // Start a history navigation, then have a different frame commit a
7308 // navigation. In this case, reload an about:blank frame, which will commit 7308 // navigation. In this case, reload an about:blank frame, which will commit
7309 // synchronously. After the history navigation completes, both the 7309 // synchronously. After the history navigation completes, both the
7310 // appropriate document url and the current history item should reflect the 7310 // appropriate document url and the current history item should reflect the
7311 // history navigation. 7311 // history navigation.
7312 RegisterMockedHttpURLLoad("white-1x1.png"); 7312 RegisterMockedHttpURLLoad("white-1x1.png");
7313 WebHistoryItem item; 7313 WebHistoryItem item;
7314 item.Initialize(); 7314 item.Initialize();
7315 WebURL history_url(ToKURL(base_url_ + "white-1x1.png")); 7315 WebURL history_url(ToKURL(base_url_ + "white-1x1.png"));
7316 item.SetURLString(history_url.GetString()); 7316 item.SetURLString(history_url.GetString());
7317 WebURLRequest request = main_frame->RequestFromHistoryItem( 7317 WebURLRequest request = main_frame->RequestFromHistoryItem(
7318 item, WebCachePolicy::kUseProtocolCachePolicy); 7318 item, WebCachePolicy::kUseProtocolCachePolicy);
7319 main_frame->Load(request, WebFrameLoadType::kBackForward, item); 7319 main_frame->Load(request, WebFrameLoadType::kBackForward, item);
7320 7320
7321 FrameTestHelpers::ReloadFrame(child_frame); 7321 FrameTestHelpers::ReloadFrame(child_frame);
7322 EXPECT_EQ(item.UrlString(), main_frame->GetDocument().Url().GetString()); 7322 EXPECT_EQ(item.UrlString(), main_frame->GetDocument().Url().GetString());
7323 EXPECT_EQ(item.UrlString(), WebString(main_frame_loader.GetDocumentLoader() 7323 EXPECT_EQ(item.UrlString(), WebString(main_frame_loader.GetDocumentLoader()
7324 ->GetHistoryItem() 7324 ->GetHistoryItem()
7325 ->UrlString())); 7325 ->UrlString()));
7326 } 7326 }
7327 7327
7328 TEST_P(ParameterizedWebFrameTest, ReloadPost) { 7328 TEST_P(ParameterizedWebFrameTest, ReloadPost) {
7329 RegisterMockedHttpURLLoad("reload_post.html"); 7329 RegisterMockedHttpURLLoad("reload_post.html");
7330 FrameTestHelpers::WebViewHelper web_view_helper; 7330 FrameTestHelpers::WebViewHelper web_view_helper;
7331 web_view_helper.InitializeAndLoad(base_url_ + "reload_post.html"); 7331 web_view_helper.InitializeAndLoad(base_url_ + "reload_post.html");
7332 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl(); 7332 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl();
7333 7333
7334 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 7334 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
7335 "javascript:document.forms[0].submit()"); 7335 "javascript:document.forms[0].submit()");
7336 // Pump requests one more time after the javascript URL has executed to 7336 // Pump requests one more time after the javascript URL has executed to
7337 // trigger the actual POST load request. 7337 // trigger the actual POST load request.
7338 FrameTestHelpers::PumpPendingRequestsForFrameToLoad( 7338 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(
7339 web_view_helper.WebView()->MainFrame()); 7339 web_view_helper.WebView()->MainFrame());
7340 EXPECT_EQ(WebString::FromUTF8("POST"), 7340 EXPECT_EQ(WebString::FromUTF8("POST"),
7341 frame->DataSource()->GetRequest().HttpMethod()); 7341 frame->DataSource()->GetRequest().HttpMethod());
7342 7342
7343 FrameTestHelpers::ReloadFrame(frame); 7343 FrameTestHelpers::ReloadFrame(frame);
7344 EXPECT_EQ(WebCachePolicy::kValidatingCacheData, 7344 EXPECT_EQ(WebCachePolicy::kValidatingCacheData,
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
7517 NavigateToSameNoConditionalRequestForSubresource) { 7517 NavigateToSameNoConditionalRequestForSubresource) {
7518 RegisterMockedHttpURLLoad("foo_with_image.html"); 7518 RegisterMockedHttpURLLoad("foo_with_image.html");
7519 RegisterMockedHttpURLLoad("white-1x1.png"); 7519 RegisterMockedHttpURLLoad("white-1x1.png");
7520 TestSameDocumentWithImageWebFrameClient client; 7520 TestSameDocumentWithImageWebFrameClient client;
7521 FrameTestHelpers::WebViewHelper web_view_helper; 7521 FrameTestHelpers::WebViewHelper web_view_helper;
7522 web_view_helper.InitializeAndLoad(base_url_ + "foo_with_image.html", &client, 7522 web_view_helper.InitializeAndLoad(base_url_ + "foo_with_image.html", &client,
7523 nullptr, nullptr, 7523 nullptr, nullptr,
7524 &ConfigureLoadsImagesAutomatically); 7524 &ConfigureLoadsImagesAutomatically);
7525 7525
7526 WebCache::Clear(); 7526 WebCache::Clear();
7527 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 7527 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
7528 base_url_ + "foo_with_image.html"); 7528 base_url_ + "foo_with_image.html");
7529 7529
7530 // 2 images are requested, and each triggers 2 willSendRequest() calls, 7530 // 2 images are requested, and each triggers 2 willSendRequest() calls,
7531 // once for preloading and once for the real request. 7531 // once for preloading and once for the real request.
7532 EXPECT_EQ(client.NumOfImageRequests(), 4); 7532 EXPECT_EQ(client.NumOfImageRequests(), 4);
7533 } 7533 }
7534 7534
7535 TEST_P(ParameterizedWebFrameTest, WebNodeImageContents) { 7535 TEST_P(ParameterizedWebFrameTest, WebNodeImageContents) {
7536 FrameTestHelpers::WebViewHelper web_view_helper; 7536 FrameTestHelpers::WebViewHelper web_view_helper;
7537 web_view_helper.InitializeAndLoad("about:blank"); 7537 web_view_helper.InitializeAndLoad("about:blank");
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
7681 7681
7682 TestHistoryWebFrameClient client; 7682 TestHistoryWebFrameClient client;
7683 FrameTestHelpers::WebViewHelper web_view_helper; 7683 FrameTestHelpers::WebViewHelper web_view_helper;
7684 web_view_helper.InitializeAndLoad("about:blank", &client); 7684 web_view_helper.InitializeAndLoad("about:blank", &client);
7685 7685
7686 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl(); 7686 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl();
7687 7687
7688 frame->ExecuteScript(WebScriptSource(WebString::FromUTF8( 7688 frame->ExecuteScript(WebScriptSource(WebString::FromUTF8(
7689 "document.body.appendChild(document.createElement('iframe'))"))); 7689 "document.body.appendChild(document.createElement('iframe'))")));
7690 7690
7691 WebFrame* iframe = frame->FirstChild(); 7691 WebLocalFrame* iframe = frame->FirstChild()->ToWebLocalFrame();
7692 ASSERT_EQ(&client.ChildClient(), ToWebLocalFrameBase(iframe)->Client()); 7692 ASSERT_EQ(&client.ChildClient(), ToWebLocalFrameBase(iframe)->Client());
7693 7693
7694 std::string url1 = base_url_ + "history.html"; 7694 std::string url1 = base_url_ + "history.html";
7695 FrameTestHelpers::LoadFrame(iframe, url1); 7695 FrameTestHelpers::LoadFrame(iframe, url1);
7696 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); 7696 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8());
7697 EXPECT_TRUE(client.ChildClient().ReplacesCurrentHistoryItem()); 7697 EXPECT_TRUE(client.ChildClient().ReplacesCurrentHistoryItem());
7698 7698
7699 std::string url2 = base_url_ + "find.html"; 7699 std::string url2 = base_url_ + "find.html";
7700 FrameTestHelpers::LoadFrame(iframe, url2); 7700 FrameTestHelpers::LoadFrame(iframe, url2);
7701 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); 7701 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8());
7702 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); 7702 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem());
7703 } 7703 }
7704 7704
7705 // Tests that a navigation in a frame with a non-blank initial URL will create 7705 // Tests that a navigation in a frame with a non-blank initial URL will create
7706 // a new history item, unlike the case above. 7706 // a new history item, unlike the case above.
7707 TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation) { 7707 TEST_P(ParameterizedWebFrameTest, FirstNonBlankSubframeNavigation) {
7708 RegisterMockedHttpURLLoad("history.html"); 7708 RegisterMockedHttpURLLoad("history.html");
7709 RegisterMockedHttpURLLoad("find.html"); 7709 RegisterMockedHttpURLLoad("find.html");
7710 7710
7711 TestHistoryWebFrameClient client; 7711 TestHistoryWebFrameClient client;
7712 FrameTestHelpers::WebViewHelper web_view_helper; 7712 FrameTestHelpers::WebViewHelper web_view_helper;
7713 web_view_helper.InitializeAndLoad("about:blank", &client); 7713 web_view_helper.InitializeAndLoad("about:blank", &client);
7714 7714
7715 WebFrame* frame = web_view_helper.WebView()->MainFrame(); 7715 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl();
7716 7716
7717 std::string url1 = base_url_ + "history.html"; 7717 std::string url1 = base_url_ + "history.html";
7718 FrameTestHelpers::LoadFrame( 7718 FrameTestHelpers::LoadFrame(
7719 frame, 7719 frame,
7720 "javascript:var f = document.createElement('iframe'); " 7720 "javascript:var f = document.createElement('iframe'); "
7721 "f.src = '" + 7721 "f.src = '" +
7722 url1 + 7722 url1 +
7723 "';" 7723 "';"
7724 "document.body.appendChild(f)"); 7724 "document.body.appendChild(f)");
7725 7725
7726 WebFrame* iframe = frame->FirstChild(); 7726 WebLocalFrame* iframe = frame->FirstChild()->ToWebLocalFrame();
7727 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8()); 7727 EXPECT_EQ(url1, iframe->GetDocument().Url().GetString().Utf8());
7728 7728
7729 std::string url2 = base_url_ + "find.html"; 7729 std::string url2 = base_url_ + "find.html";
7730 FrameTestHelpers::LoadFrame(iframe, url2); 7730 FrameTestHelpers::LoadFrame(iframe, url2);
7731 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8()); 7731 EXPECT_EQ(url2, iframe->GetDocument().Url().GetString().Utf8());
7732 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem()); 7732 EXPECT_FALSE(client.ChildClient().ReplacesCurrentHistoryItem());
7733 } 7733 }
7734 7734
7735 // Test verifies that layout will change a layer's scrollable attibutes 7735 // Test verifies that layout will change a layer's scrollable attibutes
7736 TEST_F(WebFrameTest, overflowHiddenRewrite) { 7736 TEST_F(WebFrameTest, overflowHiddenRewrite) {
7737 RegisterMockedHttpURLLoad("non-scrollable.html"); 7737 RegisterMockedHttpURLLoad("non-scrollable.html");
7738 std::unique_ptr<FakeCompositingWebViewClient> 7738 std::unique_ptr<FakeCompositingWebViewClient>
7739 fake_compositing_web_view_client = 7739 fake_compositing_web_view_client =
7740 WTF::MakeUnique<FakeCompositingWebViewClient>(); 7740 WTF::MakeUnique<FakeCompositingWebViewClient>();
7741 FrameTestHelpers::WebViewHelper web_view_helper; 7741 FrameTestHelpers::WebViewHelper web_view_helper;
7742 web_view_helper.Initialize(nullptr, fake_compositing_web_view_client.get(), 7742 web_view_helper.Initialize(nullptr, fake_compositing_web_view_client.get(),
7743 nullptr, &ConfigureCompositingWebView); 7743 nullptr, &ConfigureCompositingWebView);
7744 7744
7745 web_view_helper.Resize(WebSize(100, 100)); 7745 web_view_helper.Resize(WebSize(100, 100));
7746 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 7746 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrameImpl(),
7747 base_url_ + "non-scrollable.html"); 7747 base_url_ + "non-scrollable.html");
7748 7748
7749 PaintLayerCompositor* compositor = web_view_helper.WebView()->Compositor(); 7749 PaintLayerCompositor* compositor = web_view_helper.WebView()->Compositor();
7750 ASSERT_TRUE(compositor->ScrollLayer()); 7750 ASSERT_TRUE(compositor->ScrollLayer());
7751 7751
7752 // Verify that the WebLayer is not scrollable initially. 7752 // Verify that the WebLayer is not scrollable initially.
7753 GraphicsLayer* scroll_layer = compositor->ScrollLayer(); 7753 GraphicsLayer* scroll_layer = compositor->ScrollLayer();
7754 WebLayer* web_scroll_layer = scroll_layer->PlatformLayer(); 7754 WebLayer* web_scroll_layer = scroll_layer->PlatformLayer();
7755 ASSERT_FALSE(web_scroll_layer->UserScrollableHorizontal()); 7755 ASSERT_FALSE(web_scroll_layer->UserScrollableHorizontal());
7756 ASSERT_FALSE(web_scroll_layer->UserScrollableVertical()); 7756 ASSERT_FALSE(web_scroll_layer->UserScrollableVertical());
7757 7757
7758 // Call javascript to make the layer scrollable, and verify it. 7758 // Call javascript to make the layer scrollable, and verify it.
7759 WebLocalFrameBase* frame = web_view_helper.WebView()->MainFrameImpl(); 7759 WebLocalFrameBase* frame = web_view_helper.WebView()->MainFrameImpl();
7760 frame->ExecuteScript(WebScriptSource("allowScroll();")); 7760 frame->ExecuteScript(WebScriptSource("allowScroll();"));
7761 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 7761 web_view_helper.WebView()->UpdateAllLifecyclePhases();
7762 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal()); 7762 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal());
7763 ASSERT_TRUE(web_scroll_layer->UserScrollableVertical()); 7763 ASSERT_TRUE(web_scroll_layer->UserScrollableVertical());
7764 } 7764 }
7765 7765
7766 // Test that currentHistoryItem reflects the current page, not the provisional 7766 // Test that currentHistoryItem reflects the current page, not the provisional
7767 // load. 7767 // load.
7768 TEST_P(ParameterizedWebFrameTest, CurrentHistoryItem) { 7768 TEST_P(ParameterizedWebFrameTest, CurrentHistoryItem) {
7769 RegisterMockedHttpURLLoad("fixed_layout.html"); 7769 RegisterMockedHttpURLLoad("fixed_layout.html");
7770 std::string url = base_url_ + "fixed_layout.html"; 7770 std::string url = base_url_ + "fixed_layout.html";
7771 7771
7772 FrameTestHelpers::WebViewHelper web_view_helper; 7772 FrameTestHelpers::WebViewHelper web_view_helper;
7773 web_view_helper.Initialize(); 7773 web_view_helper.Initialize();
7774 WebFrame* frame = web_view_helper.WebView()->MainFrame(); 7774 WebLocalFrame* frame = web_view_helper.WebView()->MainFrameImpl();
7775 const FrameLoader& main_frame_loader = 7775 const FrameLoader& main_frame_loader =
7776 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->Loader(); 7776 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->Loader();
7777 WebURLRequest request(ToKURL(url)); 7777 WebURLRequest request(ToKURL(url));
7778 frame->LoadRequest(request); 7778 frame->LoadRequest(request);
7779 7779
7780 // Before commit, there is no history item. 7780 // Before commit, there is no history item.
7781 EXPECT_FALSE(main_frame_loader.GetDocumentLoader()->GetHistoryItem()); 7781 EXPECT_FALSE(main_frame_loader.GetDocumentLoader()->GetHistoryItem());
7782 7782
7783 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(frame); 7783 FrameTestHelpers::PumpPendingRequestsForFrameToLoad(frame);
7784 7784
(...skipping 2876 matching lines...) Expand 10 before | Expand all | Expand 10 after
10661 client.AddExpectedRequest(ToKURL("http://internal.test/image_slow.pl"), 10661 client.AddExpectedRequest(ToKURL("http://internal.test/image_slow.pl"),
10662 WebURLRequest::kPriorityLow); 10662 WebURLRequest::kPriorityLow);
10663 client.AddExpectedRequest( 10663 client.AddExpectedRequest(
10664 ToKURL("http://internal.test/image_slow_out_of_viewport.pl"), 10664 ToKURL("http://internal.test/image_slow_out_of_viewport.pl"),
10665 WebURLRequest::kPriorityLow); 10665 WebURLRequest::kPriorityLow);
10666 10666
10667 FrameTestHelpers::WebViewHelper helper; 10667 FrameTestHelpers::WebViewHelper helper;
10668 helper.Initialize(&client); 10668 helper.Initialize(&client);
10669 helper.Resize(WebSize(640, 480)); 10669 helper.Resize(WebSize(640, 480));
10670 FrameTestHelpers::LoadFrame( 10670 FrameTestHelpers::LoadFrame(
10671 helper.WebView()->MainFrame(), 10671 helper.WebView()->MainFrameImpl(),
10672 base_url_ + "promote_img_in_viewport_priority.html"); 10672 base_url_ + "promote_img_in_viewport_priority.html");
10673 10673
10674 // Ensure the image in the viewport got promoted after the request was sent. 10674 // Ensure the image in the viewport got promoted after the request was sent.
10675 Resource* image = ToWebLocalFrameBase(helper.WebView()->MainFrame()) 10675 Resource* image = ToWebLocalFrameBase(helper.WebView()->MainFrame())
10676 ->GetFrame() 10676 ->GetFrame()
10677 ->GetDocument() 10677 ->GetDocument()
10678 ->Fetcher() 10678 ->Fetcher()
10679 ->AllResources() 10679 ->AllResources()
10680 .at(ToKURL("http://internal.test/image_slow.pl")); 10680 .at(ToKURL("http://internal.test/image_slow.pl"));
10681 DCHECK(image); 10681 DCHECK(image);
(...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after
12035 if (obj->IsText()) { 12035 if (obj->IsText()) {
12036 LayoutText* layout_text = ToLayoutText(obj); 12036 LayoutText* layout_text = ToLayoutText(obj);
12037 text = layout_text->GetText(); 12037 text = layout_text->GetText();
12038 break; 12038 break;
12039 } 12039 }
12040 } 12040 }
12041 EXPECT_EQ("foo alt", text.Utf8()); 12041 EXPECT_EQ("foo alt", text.Utf8());
12042 } 12042 }
12043 12043
12044 } // namespace blink 12044 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698