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

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

Issue 2934853002: [Refactor] Use correct viewport style in Android tests (Closed)
Patch Set: bokan comments addressed 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/web/tests/data/overscroll/div-overscroll.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 testing::WebTestDataPath(WebString::FromUTF8(file_name)), response); 248 testing::WebTestDataPath(WebString::FromUTF8(file_name)), response);
249 } 249 }
250 250
251 void RegisterMockedHttpURLLoadWithMimeType(const std::string& file_name, 251 void RegisterMockedHttpURLLoadWithMimeType(const std::string& file_name,
252 const std::string& mime_type) { 252 const std::string& mime_type) {
253 URLTestHelpers::RegisterMockedURLLoadFromBase( 253 URLTestHelpers::RegisterMockedURLLoadFromBase(
254 WebString::FromUTF8(base_url_), testing::WebTestDataPath(), 254 WebString::FromUTF8(base_url_), testing::WebTestDataPath(),
255 WebString::FromUTF8(file_name), WebString::FromUTF8(mime_type)); 255 WebString::FromUTF8(file_name), WebString::FromUTF8(mime_type));
256 } 256 }
257 257
258 void ApplyViewportStyleOverride(
259 FrameTestHelpers::WebViewHelper* web_view_helper) {
260 web_view_helper->WebView()->GetSettings()->SetViewportStyle(
261 WebViewportStyle::kMobile);
262 }
263
264 static void ConfigureCompositingWebView(WebSettings* settings) { 258 static void ConfigureCompositingWebView(WebSettings* settings) {
265 settings->SetAcceleratedCompositingEnabled(true); 259 settings->SetAcceleratedCompositingEnabled(true);
266 settings->SetPreferCompositingToLCDTextEnabled(true); 260 settings->SetPreferCompositingToLCDTextEnabled(true);
267 } 261 }
268 262
269 static void ConfigureAndroid(WebSettings* settings) { 263 static void ConfigureAndroid(WebSettings* settings) {
270 settings->SetViewportMetaEnabled(true); 264 settings->SetViewportMetaEnabled(true);
271 settings->SetViewportEnabled(true); 265 settings->SetViewportEnabled(true);
272 settings->SetMainFrameResizesAreOrientationChanges(true); 266 settings->SetMainFrameResizesAreOrientationChanges(true);
273 settings->SetShrinksViewportContentToFit(true); 267 settings->SetShrinksViewportContentToFit(true);
268 settings->SetViewportStyle(WebViewportStyle::kMobile);
274 } 269 }
275 270
276 static void ConfigureLoadsImagesAutomatically(WebSettings* settings) { 271 static void ConfigureLoadsImagesAutomatically(WebSettings* settings) {
277 settings->SetLoadsImagesAutomatically(true); 272 settings->SetLoadsImagesAutomatically(true);
278 } 273 }
279 274
280 void InitializeTextSelectionWebView( 275 void InitializeTextSelectionWebView(
281 const std::string& url, 276 const std::string& url,
282 FrameTestHelpers::WebViewHelper* web_view_helper) { 277 FrameTestHelpers::WebViewHelper* web_view_helper) {
283 web_view_helper->InitializeAndLoad(url, true); 278 web_view_helper->InitializeAndLoad(url, true);
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after
1082 class FixedLayoutTestWebViewClient 1077 class FixedLayoutTestWebViewClient
1083 : public FrameTestHelpers::TestWebViewClient { 1078 : public FrameTestHelpers::TestWebViewClient {
1084 public: 1079 public:
1085 WebScreenInfo GetScreenInfo() override { return screen_info_; } 1080 WebScreenInfo GetScreenInfo() override { return screen_info_; }
1086 1081
1087 WebScreenInfo screen_info_; 1082 WebScreenInfo screen_info_;
1088 }; 1083 };
1089 1084
1090 class FakeCompositingWebViewClient : public FixedLayoutTestWebViewClient {}; 1085 class FakeCompositingWebViewClient : public FixedLayoutTestWebViewClient {};
1091 1086
1092 // Viewport settings need to be set before the page gets loaded
1093 void EnableViewportSettings(WebSettings* settings) {
1094 settings->SetViewportMetaEnabled(true);
1095 settings->SetViewportEnabled(true);
1096 settings->SetMainFrameResizesAreOrientationChanges(true);
1097 settings->SetShrinksViewportContentToFit(true);
1098 }
1099
1100 // Helper function to set autosizing multipliers on a document. 1087 // Helper function to set autosizing multipliers on a document.
1101 bool SetTextAutosizingMultiplier(Document* document, float multiplier) { 1088 bool SetTextAutosizingMultiplier(Document* document, float multiplier) {
1102 bool multiplier_set = false; 1089 bool multiplier_set = false;
1103 for (LayoutItem layout_item = document->GetLayoutViewItem(); 1090 for (LayoutItem layout_item = document->GetLayoutViewItem();
1104 !layout_item.IsNull(); layout_item = layout_item.NextInPreOrder()) { 1091 !layout_item.IsNull(); layout_item = layout_item.NextInPreOrder()) {
1105 if (layout_item.Style()) { 1092 if (layout_item.Style()) {
1106 layout_item.MutableStyleRef().SetTextAutosizingMultiplier(multiplier); 1093 layout_item.MutableStyleRef().SetTextAutosizingMultiplier(multiplier);
1107 1094
1108 EXPECT_EQ(multiplier, layout_item.Style()->TextAutosizingMultiplier()); 1095 EXPECT_EQ(multiplier, layout_item.Style()->TextAutosizingMultiplier());
1109 multiplier_set = true; 1096 multiplier_set = true;
(...skipping 21 matching lines...) Expand all
1131 ChangeInFixedLayoutResetsTextAutosizingMultipliers) { 1118 ChangeInFixedLayoutResetsTextAutosizingMultipliers) {
1132 RegisterMockedHttpURLLoad("fixed_layout.html"); 1119 RegisterMockedHttpURLLoad("fixed_layout.html");
1133 1120
1134 FixedLayoutTestWebViewClient client; 1121 FixedLayoutTestWebViewClient client;
1135 int viewport_width = 640; 1122 int viewport_width = 640;
1136 int viewport_height = 480; 1123 int viewport_height = 480;
1137 1124
1138 FrameTestHelpers::WebViewHelper web_view_helper; 1125 FrameTestHelpers::WebViewHelper web_view_helper;
1139 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 1126 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
1140 nullptr, &client, nullptr, 1127 nullptr, &client, nullptr,
1141 EnableViewportSettings); 1128 ConfigureAndroid);
1142 1129
1143 Document* document = 1130 Document* document =
1144 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 1131 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
1145 ->GetDocument(); 1132 ->GetDocument();
1146 document->GetSettings()->SetTextAutosizingEnabled(true); 1133 document->GetSettings()->SetTextAutosizingEnabled(true);
1147 EXPECT_TRUE(document->GetSettings()->TextAutosizingEnabled()); 1134 EXPECT_TRUE(document->GetSettings()->TextAutosizingEnabled());
1148 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1135 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1149 1136
1150 EXPECT_TRUE(SetTextAutosizingMultiplier(document, 2)); 1137 EXPECT_TRUE(SetTextAutosizingMultiplier(document, 2));
1151 1138
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 RegisterMockedHttpURLLoad("iframe_reload.html"); 1174 RegisterMockedHttpURLLoad("iframe_reload.html");
1188 RegisterMockedHttpURLLoad("visible_iframe.html"); 1175 RegisterMockedHttpURLLoad("visible_iframe.html");
1189 1176
1190 FixedLayoutTestWebViewClient client; 1177 FixedLayoutTestWebViewClient client;
1191 int viewport_width = 640; 1178 int viewport_width = 640;
1192 int viewport_height = 480; 1179 int viewport_height = 480;
1193 1180
1194 FrameTestHelpers::WebViewHelper web_view_helper; 1181 FrameTestHelpers::WebViewHelper web_view_helper;
1195 web_view_helper.InitializeAndLoad(base_url_ + "iframe_reload.html", true, 1182 web_view_helper.InitializeAndLoad(base_url_ + "iframe_reload.html", true,
1196 nullptr, &client, nullptr, 1183 nullptr, &client, nullptr,
1197 EnableViewportSettings); 1184 ConfigureAndroid);
1198 1185
1199 LocalFrame* main_frame = 1186 LocalFrame* main_frame =
1200 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()); 1187 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame());
1201 Document* document = main_frame->GetDocument(); 1188 Document* document = main_frame->GetDocument();
1202 LocalFrameView* frame_view = 1189 LocalFrameView* frame_view =
1203 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 1190 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
1204 document->GetSettings()->SetTextAutosizingEnabled(true); 1191 document->GetSettings()->SetTextAutosizingEnabled(true);
1205 EXPECT_TRUE(document->GetSettings()->TextAutosizingEnabled()); 1192 EXPECT_TRUE(document->GetSettings()->TextAutosizingEnabled());
1206 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1193 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1207 1194
(...skipping 24 matching lines...) Expand all
1232 } 1219 }
1233 } 1220 }
1234 1221
1235 TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) { 1222 TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) {
1236 FixedLayoutTestWebViewClient client; 1223 FixedLayoutTestWebViewClient client;
1237 client.screen_info_.device_scale_factor = 1; 1224 client.screen_info_.device_scale_factor = 1;
1238 int viewport_width = 1280; 1225 int viewport_width = 1280;
1239 int viewport_height = 0; 1226 int viewport_height = 0;
1240 1227
1241 FrameTestHelpers::WebViewHelper web_view_helper; 1228 FrameTestHelpers::WebViewHelper web_view_helper;
1242 web_view_helper.Initialize(true, nullptr, &client, nullptr, 1229 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
1243 EnableViewportSettings);
1244 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1230 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1245 1231
1246 EXPECT_EQ(viewport_width, web_view_helper.WebView() 1232 EXPECT_EQ(viewport_width, web_view_helper.WebView()
1247 ->MainFrameImpl() 1233 ->MainFrameImpl()
1248 ->GetFrameView() 1234 ->GetFrameView()
1249 ->GetLayoutSize() 1235 ->GetLayoutSize()
1250 .Width()); 1236 .Width());
1251 EXPECT_EQ(viewport_height, web_view_helper.WebView() 1237 EXPECT_EQ(viewport_height, web_view_helper.WebView()
1252 ->MainFrameImpl() 1238 ->MainFrameImpl()
1253 ->GetFrameView() 1239 ->GetFrameView()
1254 ->GetLayoutSize() 1240 ->GetLayoutSize()
1255 .Height()); 1241 .Height());
1256 } 1242 }
1257 1243
1258 TEST_P(ParameterizedWebFrameTest, 1244 TEST_P(ParameterizedWebFrameTest,
1259 DeviceScaleFactorUsesDefaultWithoutViewportTag) { 1245 DeviceScaleFactorUsesDefaultWithoutViewportTag) {
1260 RegisterMockedHttpURLLoad("no_viewport_tag.html"); 1246 RegisterMockedHttpURLLoad("no_viewport_tag.html");
1261 1247
1262 int viewport_width = 640; 1248 int viewport_width = 640;
1263 int viewport_height = 480; 1249 int viewport_height = 480;
1264 1250
1265 FixedLayoutTestWebViewClient client; 1251 FixedLayoutTestWebViewClient client;
1266 client.screen_info_.device_scale_factor = 2; 1252 client.screen_info_.device_scale_factor = 2;
1267 1253
1268 FrameTestHelpers::WebViewHelper web_view_helper; 1254 FrameTestHelpers::WebViewHelper web_view_helper;
1269 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true, 1255 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true,
1270 nullptr, &client, nullptr, 1256 nullptr, &client, nullptr,
1271 EnableViewportSettings); 1257 ConfigureAndroid);
1272 1258
1273 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1259 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1274 1260
1275 EXPECT_EQ( 1261 EXPECT_EQ(
1276 2, web_view_helper.WebView()->GetPage()->DeviceScaleFactorDeprecated()); 1262 2, web_view_helper.WebView()->GetPage()->DeviceScaleFactorDeprecated());
1277 1263
1278 // Device scale factor should be independent of page scale. 1264 // Device scale factor should be independent of page scale.
1279 web_view_helper.WebView()->SetDefaultPageScaleLimits(1, 2); 1265 web_view_helper.WebView()->SetDefaultPageScaleLimits(1, 2);
1280 web_view_helper.WebView()->SetPageScaleFactor(0.5); 1266 web_view_helper.WebView()->SetPageScaleFactor(0.5);
1281 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 1267 web_view_helper.WebView()->UpdateAllLifecyclePhases();
1282 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor()); 1268 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor());
1283 1269
1284 // Force the layout to happen before leaving the test. 1270 // Force the layout to happen before leaving the test.
1285 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 1271 web_view_helper.WebView()->UpdateAllLifecyclePhases();
1286 } 1272 }
1287 1273
1288 TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) { 1274 TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) {
1289 RegisterMockedHttpURLLoad("fixed_layout.html"); 1275 RegisterMockedHttpURLLoad("fixed_layout.html");
1290 1276
1291 FixedLayoutTestWebViewClient client; 1277 FixedLayoutTestWebViewClient client;
1292 client.screen_info_.device_scale_factor = 1; 1278 client.screen_info_.device_scale_factor = 1;
1293 int viewport_width = 640; 1279 int viewport_width = 640;
1294 int viewport_height = 480; 1280 int viewport_height = 480;
1295 1281
1296 // Make sure we initialize to minimum scale, even if the window size 1282 // Make sure we initialize to minimum scale, even if the window size
1297 // only becomes available after the load begins. 1283 // only becomes available after the load begins.
1298 FrameTestHelpers::WebViewHelper web_view_helper; 1284 FrameTestHelpers::WebViewHelper web_view_helper;
1299 web_view_helper.Initialize(true, nullptr, &client, nullptr, 1285 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
1300 EnableViewportSettings);
1301 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 1286 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
1302 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 1287 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
1303 base_url_ + "fixed_layout.html"); 1288 base_url_ + "fixed_layout.html");
1304 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1289 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1305 1290
1306 int default_fixed_layout_width = 980; 1291 int default_fixed_layout_width = 980;
1307 float minimum_page_scale_factor = 1292 float minimum_page_scale_factor =
1308 viewport_width / (float)default_fixed_layout_width; 1293 viewport_width / (float)default_fixed_layout_width;
1309 EXPECT_EQ(minimum_page_scale_factor, 1294 EXPECT_EQ(minimum_page_scale_factor,
1310 web_view_helper.WebView()->PageScaleFactor()); 1295 web_view_helper.WebView()->PageScaleFactor());
(...skipping 21 matching lines...) Expand all
1332 RegisterMockedHttpURLLoad("wide_document.html"); 1317 RegisterMockedHttpURLLoad("wide_document.html");
1333 1318
1334 FixedLayoutTestWebViewClient client; 1319 FixedLayoutTestWebViewClient client;
1335 client.screen_info_.device_scale_factor = 1; 1320 client.screen_info_.device_scale_factor = 1;
1336 int viewport_width = 640; 1321 int viewport_width = 640;
1337 int viewport_height = 480; 1322 int viewport_height = 480;
1338 1323
1339 // Make sure we initialize to minimum scale, even if the window size 1324 // Make sure we initialize to minimum scale, even if the window size
1340 // only becomes available after the load begins. 1325 // only becomes available after the load begins.
1341 FrameTestHelpers::WebViewHelper web_view_helper; 1326 FrameTestHelpers::WebViewHelper web_view_helper;
1342 web_view_helper.Initialize(true, nullptr, &client, nullptr, 1327 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
1343 EnableViewportSettings);
1344 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 1328 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
1345 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 1329 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
1346 base_url_ + "wide_document.html"); 1330 base_url_ + "wide_document.html");
1347 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1331 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1348 1332
1349 int wide_document_width = 1500; 1333 int wide_document_width = 1500;
1350 float minimum_page_scale_factor = viewport_width / (float)wide_document_width; 1334 float minimum_page_scale_factor = viewport_width / (float)wide_document_width;
1351 EXPECT_EQ(minimum_page_scale_factor, 1335 EXPECT_EQ(minimum_page_scale_factor,
1352 web_view_helper.WebView()->PageScaleFactor()); 1336 web_view_helper.WebView()->PageScaleFactor());
1353 EXPECT_EQ(minimum_page_scale_factor, 1337 EXPECT_EQ(minimum_page_scale_factor,
(...skipping 20 matching lines...) Expand all
1374 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1358 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html");
1375 1359
1376 FixedLayoutTestWebViewClient client; 1360 FixedLayoutTestWebViewClient client;
1377 client.screen_info_.device_scale_factor = 1; 1361 client.screen_info_.device_scale_factor = 1;
1378 int viewport_width = 640; 1362 int viewport_width = 640;
1379 int viewport_height = 480; 1363 int viewport_height = 480;
1380 1364
1381 FrameTestHelpers::WebViewHelper web_view_helper; 1365 FrameTestHelpers::WebViewHelper web_view_helper;
1382 web_view_helper.InitializeAndLoad( 1366 web_view_helper.InitializeAndLoad(
1383 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client, 1367 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client,
1384 nullptr, EnableViewportSettings); 1368 nullptr, ConfigureAndroid);
1385 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1369 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1386 1370
1387 EXPECT_EQ(0.25f, web_view_helper.WebView()->PageScaleFactor()); 1371 EXPECT_EQ(0.25f, web_view_helper.WebView()->PageScaleFactor());
1388 1372
1389 Document* document = 1373 Document* document =
1390 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 1374 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
1391 ->GetDocument(); 1375 ->GetDocument();
1392 ViewportDescription description = document->GetViewportDescription(); 1376 ViewportDescription description = document->GetViewportDescription();
1393 description.zoom = 2; 1377 description.zoom = 2;
1394 document->SetViewportDescription(description); 1378 document->SetViewportDescription(description);
1395 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 1379 web_view_helper.WebView()->UpdateAllLifecyclePhases();
1396 EXPECT_EQ(2, web_view_helper.WebView()->PageScaleFactor()); 1380 EXPECT_EQ(2, web_view_helper.WebView()->PageScaleFactor());
1397 } 1381 }
1398 1382
1399 TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) { 1383 TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) {
1400 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1384 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html");
1401 1385
1402 FixedLayoutTestWebViewClient client; 1386 FixedLayoutTestWebViewClient client;
1403 client.screen_info_.device_scale_factor = 1; 1387 client.screen_info_.device_scale_factor = 1;
1404 int viewport_width = 640; 1388 int viewport_width = 640;
1405 int viewport_height = 480; 1389 int viewport_height = 480;
1406 1390
1407 FrameTestHelpers::WebViewHelper web_view_helper; 1391 FrameTestHelpers::WebViewHelper web_view_helper;
1408 web_view_helper.InitializeAndLoad( 1392 web_view_helper.InitializeAndLoad(
1409 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client, 1393 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client,
1410 nullptr, EnableViewportSettings); 1394 nullptr, ConfigureAndroid);
1411 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1395 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1412 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1396 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1413 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1397 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1414 1398
1415 // The page must be displayed at 100% zoom. 1399 // The page must be displayed at 100% zoom.
1416 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 1400 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
1417 } 1401 }
1418 1402
1419 TEST_P(ParameterizedWebFrameTest, 1403 TEST_P(ParameterizedWebFrameTest,
1420 SetLoadWithOverviewModeToFalseAndNoWideViewport) { 1404 SetLoadWithOverviewModeToFalseAndNoWideViewport) {
1421 RegisterMockedHttpURLLoad("large-div.html"); 1405 RegisterMockedHttpURLLoad("large-div.html");
1422 1406
1423 FixedLayoutTestWebViewClient client; 1407 FixedLayoutTestWebViewClient client;
1424 client.screen_info_.device_scale_factor = 1; 1408 client.screen_info_.device_scale_factor = 1;
1425 int viewport_width = 640; 1409 int viewport_width = 640;
1426 int viewport_height = 480; 1410 int viewport_height = 480;
1427 1411
1428 FrameTestHelpers::WebViewHelper web_view_helper; 1412 FrameTestHelpers::WebViewHelper web_view_helper;
1429 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr, 1413 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr,
1430 &client, nullptr, EnableViewportSettings); 1414 &client, nullptr, ConfigureAndroid);
1431 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1415 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1432 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1416 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1433 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 1417 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
1434 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1418 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1435 1419
1436 // The page must be displayed at 100% zoom, despite that it hosts a wide div 1420 // The page must be displayed at 100% zoom, despite that it hosts a wide div
1437 // element. 1421 // element.
1438 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor()); 1422 EXPECT_EQ(1.0f, web_view_helper.WebView()->PageScaleFactor());
1439 } 1423 }
1440 1424
1441 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) { 1425 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) {
1442 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1426 RegisterMockedHttpURLLoad("viewport-auto-initial-scale.html");
1443 1427
1444 FixedLayoutTestWebViewClient client; 1428 FixedLayoutTestWebViewClient client;
1445 client.screen_info_.device_scale_factor = 1; 1429 client.screen_info_.device_scale_factor = 1;
1446 int viewport_width = 640; 1430 int viewport_width = 640;
1447 int viewport_height = 480; 1431 int viewport_height = 480;
1448 1432
1449 FrameTestHelpers::WebViewHelper web_view_helper; 1433 FrameTestHelpers::WebViewHelper web_view_helper;
1450 web_view_helper.InitializeAndLoad( 1434 web_view_helper.InitializeAndLoad(
1451 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client, 1435 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client,
1452 nullptr, EnableViewportSettings); 1436 nullptr, ConfigureAndroid);
1453 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1437 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1454 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 1438 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
1455 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1439 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1456 1440
1457 // The page sets viewport width to 3000, but with UseWideViewport == false is 1441 // The page sets viewport width to 3000, but with UseWideViewport == false is
1458 // must be ignored. 1442 // must be ignored.
1459 EXPECT_EQ(viewport_width, web_view_helper.WebView() 1443 EXPECT_EQ(viewport_width, web_view_helper.WebView()
1460 ->MainFrameImpl() 1444 ->MainFrameImpl()
1461 ->GetFrameView() 1445 ->GetFrameView()
1462 ->ContentsSize() 1446 ->ContentsSize()
(...skipping 10 matching lines...) Expand all
1473 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1457 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1474 1458
1475 FixedLayoutTestWebViewClient client; 1459 FixedLayoutTestWebViewClient client;
1476 client.screen_info_.device_scale_factor = 1; 1460 client.screen_info_.device_scale_factor = 1;
1477 int viewport_width = 640; 1461 int viewport_width = 640;
1478 int viewport_height = 480; 1462 int viewport_height = 480;
1479 1463
1480 FrameTestHelpers::WebViewHelper web_view_helper; 1464 FrameTestHelpers::WebViewHelper web_view_helper;
1481 web_view_helper.InitializeAndLoad( 1465 web_view_helper.InitializeAndLoad(
1482 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client, 1466 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client,
1483 nullptr, EnableViewportSettings); 1467 nullptr, ConfigureAndroid);
1484 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1468 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1485 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 1469 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
1486 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1470 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1487 1471
1488 // The page sets viewport width to 3000, but with UseWideViewport == false it 1472 // The page sets viewport width to 3000, but with UseWideViewport == false it
1489 // must be ignored while the initial scale specified by the page must be 1473 // must be ignored while the initial scale specified by the page must be
1490 // accounted. 1474 // accounted.
1491 EXPECT_EQ(viewport_width / 2, web_view_helper.WebView() 1475 EXPECT_EQ(viewport_width / 2, web_view_helper.WebView()
1492 ->MainFrameImpl() 1476 ->MainFrameImpl()
1493 ->GetFrameView() 1477 ->GetFrameView()
(...skipping 10 matching lines...) Expand all
1504 RegisterMockedHttpURLLoad("no_viewport_tag.html"); 1488 RegisterMockedHttpURLLoad("no_viewport_tag.html");
1505 1489
1506 FixedLayoutTestWebViewClient client; 1490 FixedLayoutTestWebViewClient client;
1507 client.screen_info_.device_scale_factor = 1; 1491 client.screen_info_.device_scale_factor = 1;
1508 int viewport_width = 640; 1492 int viewport_width = 640;
1509 int viewport_height = 480; 1493 int viewport_height = 480;
1510 1494
1511 FrameTestHelpers::WebViewHelper web_view_helper; 1495 FrameTestHelpers::WebViewHelper web_view_helper;
1512 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true, 1496 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true,
1513 nullptr, &client, nullptr, 1497 nullptr, &client, nullptr,
1514 EnableViewportSettings); 1498 ConfigureAndroid);
1515 ApplyViewportStyleOverride(&web_view_helper);
1516 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1499 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1517 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 1500 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
1518 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1501 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1519 1502
1520 EXPECT_EQ(980, web_view_helper.WebView() 1503 EXPECT_EQ(980, web_view_helper.WebView()
1521 ->MainFrameImpl() 1504 ->MainFrameImpl()
1522 ->GetFrameView() 1505 ->GetFrameView()
1523 ->ContentsSize() 1506 ->ContentsSize()
1524 .Width()); 1507 .Width());
1525 EXPECT_EQ(980.0 / viewport_width * viewport_height, web_view_helper.WebView() 1508 EXPECT_EQ(980.0 / viewport_width * viewport_height, web_view_helper.WebView()
1526 ->MainFrameImpl() 1509 ->MainFrameImpl()
1527 ->GetFrameView() 1510 ->GetFrameView()
1528 ->ContentsSize() 1511 ->ContentsSize()
1529 .Height()); 1512 .Height());
1530 } 1513 }
1531 1514
1532 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) { 1515 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) {
1533 RegisterMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); 1516 RegisterMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
1534 1517
1535 FixedLayoutTestWebViewClient client; 1518 FixedLayoutTestWebViewClient client;
1536 client.screen_info_.device_scale_factor = 1; 1519 client.screen_info_.device_scale_factor = 1;
1537 int viewport_width = 640; 1520 int viewport_width = 640;
1538 int viewport_height = 480; 1521 int viewport_height = 480;
1539 1522
1540 FrameTestHelpers::WebViewHelper web_view_helper; 1523 FrameTestHelpers::WebViewHelper web_view_helper;
1541 web_view_helper.Initialize(true, nullptr, &client, nullptr, 1524 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
1542 EnableViewportSettings);
1543 ApplyViewportStyleOverride(&web_view_helper);
1544 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1525 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1545 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 1526 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
1546 FrameTestHelpers::LoadFrame( 1527 FrameTestHelpers::LoadFrame(
1547 web_view_helper.WebView()->MainFrame(), 1528 web_view_helper.WebView()->MainFrame(),
1548 base_url_ + "viewport/viewport-legacy-xhtmlmp.html"); 1529 base_url_ + "viewport/viewport-legacy-xhtmlmp.html");
1549 1530
1550 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1531 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1551 EXPECT_EQ(viewport_width, web_view_helper.WebView() 1532 EXPECT_EQ(viewport_width, web_view_helper.WebView()
1552 ->MainFrameImpl() 1533 ->MainFrameImpl()
1553 ->GetFrameView() 1534 ->GetFrameView()
(...skipping 10 matching lines...) Expand all
1564 RegisterMockedHttpURLLoad("viewport-height-1000.html"); 1545 RegisterMockedHttpURLLoad("viewport-height-1000.html");
1565 1546
1566 FixedLayoutTestWebViewClient client; 1547 FixedLayoutTestWebViewClient client;
1567 client.screen_info_.device_scale_factor = 1; 1548 client.screen_info_.device_scale_factor = 1;
1568 int viewport_width = 640; 1549 int viewport_width = 640;
1569 int viewport_height = 480; 1550 int viewport_height = 480;
1570 1551
1571 FrameTestHelpers::WebViewHelper web_view_helper; 1552 FrameTestHelpers::WebViewHelper web_view_helper;
1572 web_view_helper.InitializeAndLoad(base_url_ + "viewport-height-1000.html", 1553 web_view_helper.InitializeAndLoad(base_url_ + "viewport-height-1000.html",
1573 true, nullptr, &client, nullptr, 1554 true, nullptr, &client, nullptr,
1574 EnableViewportSettings); 1555 ConfigureAndroid);
1575 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1556 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1576 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 1557 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
1577 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1558 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1578 1559
1579 EXPECT_EQ(viewport_width, web_view_helper.WebView() 1560 EXPECT_EQ(viewport_width, web_view_helper.WebView()
1580 ->MainFrameImpl() 1561 ->MainFrameImpl()
1581 ->GetFrameView() 1562 ->GetFrameView()
1582 ->ContentsSize() 1563 ->ContentsSize()
1583 .Width()); 1564 .Width());
1584 } 1565 }
1585 1566
1586 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) { 1567 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) {
1587 RegisterMockedHttpURLLoad("viewport-2x-initial-scale.html"); 1568 RegisterMockedHttpURLLoad("viewport-2x-initial-scale.html");
1588 1569
1589 FixedLayoutTestWebViewClient client; 1570 FixedLayoutTestWebViewClient client;
1590 client.screen_info_.device_scale_factor = 1; 1571 client.screen_info_.device_scale_factor = 1;
1591 int viewport_width = 640; 1572 int viewport_width = 640;
1592 int viewport_height = 480; 1573 int viewport_height = 480;
1593 1574
1594 FrameTestHelpers::WebViewHelper web_view_helper; 1575 FrameTestHelpers::WebViewHelper web_view_helper;
1595 web_view_helper.InitializeAndLoad( 1576 web_view_helper.InitializeAndLoad(
1596 base_url_ + "viewport-2x-initial-scale.html", true, nullptr, &client, 1577 base_url_ + "viewport-2x-initial-scale.html", true, nullptr, &client,
1597 nullptr, EnableViewportSettings); 1578 nullptr, ConfigureAndroid);
1598 ApplyViewportStyleOverride(&web_view_helper);
1599 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1579 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1600 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 1580 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
1601 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1581 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1602 1582
1603 EXPECT_EQ(980, web_view_helper.WebView() 1583 EXPECT_EQ(980, web_view_helper.WebView()
1604 ->MainFrameImpl() 1584 ->MainFrameImpl()
1605 ->GetFrameView() 1585 ->GetFrameView()
1606 ->ContentsSize() 1586 ->ContentsSize()
1607 .Width()); 1587 .Width());
1608 EXPECT_EQ(980.0 / viewport_width * viewport_height, web_view_helper.WebView() 1588 EXPECT_EQ(980.0 / viewport_width * viewport_height, web_view_helper.WebView()
1609 ->MainFrameImpl() 1589 ->MainFrameImpl()
1610 ->GetFrameView() 1590 ->GetFrameView()
1611 ->ContentsSize() 1591 ->ContentsSize()
1612 .Height()); 1592 .Height());
1613 } 1593 }
1614 1594
1615 TEST_P(ParameterizedWebFrameTest, 1595 TEST_P(ParameterizedWebFrameTest,
1616 PageViewportInitialScaleOverridesLoadWithOverviewMode) { 1596 PageViewportInitialScaleOverridesLoadWithOverviewMode) {
1617 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1597 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1618 1598
1619 FixedLayoutTestWebViewClient client; 1599 FixedLayoutTestWebViewClient client;
1620 client.screen_info_.device_scale_factor = 1; 1600 client.screen_info_.device_scale_factor = 1;
1621 int viewport_width = 640; 1601 int viewport_width = 640;
1622 int viewport_height = 480; 1602 int viewport_height = 480;
1623 1603
1624 FrameTestHelpers::WebViewHelper web_view_helper; 1604 FrameTestHelpers::WebViewHelper web_view_helper;
1625 web_view_helper.InitializeAndLoad( 1605 web_view_helper.InitializeAndLoad(
1626 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client, 1606 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client,
1627 nullptr, EnableViewportSettings); 1607 nullptr, ConfigureAndroid);
1628 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1608 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1629 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1609 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1630 1610
1631 // The page must be displayed at 200% zoom, as specified in its viewport meta 1611 // The page must be displayed at 200% zoom, as specified in its viewport meta
1632 // tag. 1612 // tag.
1633 EXPECT_EQ(2.0f, web_view_helper.WebView()->PageScaleFactor()); 1613 EXPECT_EQ(2.0f, web_view_helper.WebView()->PageScaleFactor());
1634 } 1614 }
1635 1615
1636 TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) { 1616 TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) {
1637 RegisterMockedHttpURLLoad("fixed_layout.html"); 1617 RegisterMockedHttpURLLoad("fixed_layout.html");
1638 1618
1639 FixedLayoutTestWebViewClient client; 1619 FixedLayoutTestWebViewClient client;
1640 client.screen_info_.device_scale_factor = 1; 1620 client.screen_info_.device_scale_factor = 1;
1641 float enforced_page_scale_factor = 2.0f; 1621 float enforced_page_scale_factor = 2.0f;
1642 1622
1643 FrameTestHelpers::WebViewHelper web_view_helper; 1623 FrameTestHelpers::WebViewHelper web_view_helper;
1644 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 1624 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
1645 nullptr, &client, nullptr, 1625 nullptr, &client, nullptr,
1646 EnableViewportSettings); 1626 ConfigureAndroid);
1647 ApplyViewportStyleOverride(&web_view_helper);
1648 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1627 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1649 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1628 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1650 web_view_helper.WebView()->SetInitialPageScaleOverride( 1629 web_view_helper.WebView()->SetInitialPageScaleOverride(
1651 enforced_page_scale_factor); 1630 enforced_page_scale_factor);
1652 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 1631 web_view_helper.WebView()->UpdateAllLifecyclePhases();
1653 1632
1654 EXPECT_EQ(enforced_page_scale_factor, 1633 EXPECT_EQ(enforced_page_scale_factor,
1655 web_view_helper.WebView()->PageScaleFactor()); 1634 web_view_helper.WebView()->PageScaleFactor());
1656 1635
1657 int viewport_width = 640; 1636 int viewport_width = 640;
(...skipping 14 matching lines...) Expand all
1672 1651
1673 FixedLayoutTestWebViewClient client; 1652 FixedLayoutTestWebViewClient client;
1674 client.screen_info_.device_scale_factor = 1; 1653 client.screen_info_.device_scale_factor = 1;
1675 int viewport_width = 640; 1654 int viewport_width = 640;
1676 int viewport_height = 480; 1655 int viewport_height = 480;
1677 float enforced_page_scale_factor = 0.5f; 1656 float enforced_page_scale_factor = 0.5f;
1678 1657
1679 FrameTestHelpers::WebViewHelper web_view_helper; 1658 FrameTestHelpers::WebViewHelper web_view_helper;
1680 web_view_helper.InitializeAndLoad( 1659 web_view_helper.InitializeAndLoad(
1681 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client, 1660 base_url_ + "viewport-auto-initial-scale.html", true, nullptr, &client,
1682 nullptr, EnableViewportSettings); 1661 nullptr, ConfigureAndroid);
1683 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1662 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1684 web_view_helper.WebView()->SetInitialPageScaleOverride( 1663 web_view_helper.WebView()->SetInitialPageScaleOverride(
1685 enforced_page_scale_factor); 1664 enforced_page_scale_factor);
1686 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1665 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1687 1666
1688 EXPECT_EQ(enforced_page_scale_factor, 1667 EXPECT_EQ(enforced_page_scale_factor,
1689 web_view_helper.WebView()->PageScaleFactor()); 1668 web_view_helper.WebView()->PageScaleFactor());
1690 } 1669 }
1691 1670
1692 TEST_P(ParameterizedWebFrameTest, 1671 TEST_P(ParameterizedWebFrameTest,
1693 PermanentInitialPageScaleFactorOverridesPageViewportInitialScale) { 1672 PermanentInitialPageScaleFactorOverridesPageViewportInitialScale) {
1694 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1673 RegisterMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1695 1674
1696 FixedLayoutTestWebViewClient client; 1675 FixedLayoutTestWebViewClient client;
1697 client.screen_info_.device_scale_factor = 1; 1676 client.screen_info_.device_scale_factor = 1;
1698 int viewport_width = 640; 1677 int viewport_width = 640;
1699 int viewport_height = 480; 1678 int viewport_height = 480;
1700 float enforced_page_scale_factor = 0.5f; 1679 float enforced_page_scale_factor = 0.5f;
1701 1680
1702 FrameTestHelpers::WebViewHelper web_view_helper; 1681 FrameTestHelpers::WebViewHelper web_view_helper;
1703 web_view_helper.InitializeAndLoad( 1682 web_view_helper.InitializeAndLoad(
1704 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client, 1683 base_url_ + "viewport-wide-2x-initial-scale.html", true, nullptr, &client,
1705 nullptr, EnableViewportSettings); 1684 nullptr, ConfigureAndroid);
1706 web_view_helper.WebView()->SetInitialPageScaleOverride( 1685 web_view_helper.WebView()->SetInitialPageScaleOverride(
1707 enforced_page_scale_factor); 1686 enforced_page_scale_factor);
1708 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1687 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1709 1688
1710 EXPECT_EQ(enforced_page_scale_factor, 1689 EXPECT_EQ(enforced_page_scale_factor,
1711 web_view_helper.WebView()->PageScaleFactor()); 1690 web_view_helper.WebView()->PageScaleFactor());
1712 } 1691 }
1713 1692
1714 TEST_P(ParameterizedWebFrameTest, 1693 TEST_P(ParameterizedWebFrameTest,
1715 SmallPermanentInitialPageScaleFactorIsClobbered) { 1694 SmallPermanentInitialPageScaleFactorIsClobbered) {
(...skipping 12 matching lines...) Expand all
1728 FixedLayoutTestWebViewClient client; 1707 FixedLayoutTestWebViewClient client;
1729 client.screen_info_.device_scale_factor = 1; 1708 client.screen_info_.device_scale_factor = 1;
1730 int viewport_width = 400; 1709 int viewport_width = 400;
1731 int viewport_height = 300; 1710 int viewport_height = 300;
1732 float enforced_page_scale_factor = 0.75f; 1711 float enforced_page_scale_factor = 0.75f;
1733 1712
1734 for (size_t i = 0; i < WTF_ARRAY_LENGTH(pages); ++i) { 1713 for (size_t i = 0; i < WTF_ARRAY_LENGTH(pages); ++i) {
1735 for (int quirk_enabled = 0; quirk_enabled <= 1; ++quirk_enabled) { 1714 for (int quirk_enabled = 0; quirk_enabled <= 1; ++quirk_enabled) {
1736 FrameTestHelpers::WebViewHelper web_view_helper; 1715 FrameTestHelpers::WebViewHelper web_view_helper;
1737 web_view_helper.InitializeAndLoad(base_url_ + pages[i], true, nullptr, 1716 web_view_helper.InitializeAndLoad(base_url_ + pages[i], true, nullptr,
1738 &client, nullptr, 1717 &client, nullptr, ConfigureAndroid);
1739 EnableViewportSettings);
1740 ApplyViewportStyleOverride(&web_view_helper);
1741 web_view_helper.WebView() 1718 web_view_helper.WebView()
1742 ->GetSettings() 1719 ->GetSettings()
1743 ->SetClobberUserAgentInitialScaleQuirk(quirk_enabled); 1720 ->SetClobberUserAgentInitialScaleQuirk(quirk_enabled);
1744 web_view_helper.WebView()->SetInitialPageScaleOverride( 1721 web_view_helper.WebView()->SetInitialPageScaleOverride(
1745 enforced_page_scale_factor); 1722 enforced_page_scale_factor);
1746 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1723 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1747 1724
1748 float expected_page_scale_factor = 1725 float expected_page_scale_factor =
1749 quirk_enabled && i < WTF_ARRAY_LENGTH(page_scale_factors) 1726 quirk_enabled && i < WTF_ARRAY_LENGTH(page_scale_factors)
1750 ? page_scale_factors[i] 1727 ? page_scale_factors[i]
1751 : enforced_page_scale_factor; 1728 : enforced_page_scale_factor;
1752 EXPECT_EQ(expected_page_scale_factor, 1729 EXPECT_EQ(expected_page_scale_factor,
1753 web_view_helper.WebView()->PageScaleFactor()); 1730 web_view_helper.WebView()->PageScaleFactor());
1754 } 1731 }
1755 } 1732 }
1756 } 1733 }
1757 1734
1758 TEST_P(ParameterizedWebFrameTest, 1735 TEST_P(ParameterizedWebFrameTest,
1759 PermanentInitialPageScaleFactorAffectsLayoutWidth) { 1736 PermanentInitialPageScaleFactorAffectsLayoutWidth) {
1760 FixedLayoutTestWebViewClient client; 1737 FixedLayoutTestWebViewClient client;
1761 client.screen_info_.device_scale_factor = 1; 1738 client.screen_info_.device_scale_factor = 1;
1762 int viewport_width = 640; 1739 int viewport_width = 640;
1763 int viewport_height = 480; 1740 int viewport_height = 480;
1764 float enforced_page_scale_factor = 0.5; 1741 float enforced_page_scale_factor = 0.5;
1765 1742
1766 FrameTestHelpers::WebViewHelper web_view_helper; 1743 FrameTestHelpers::WebViewHelper web_view_helper;
1767 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client, 1744 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client,
1768 nullptr, EnableViewportSettings); 1745 nullptr, ConfigureAndroid);
1769 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 1746 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
1770 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 1747 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
1771 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false); 1748 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(false);
1772 web_view_helper.WebView()->SetInitialPageScaleOverride( 1749 web_view_helper.WebView()->SetInitialPageScaleOverride(
1773 enforced_page_scale_factor); 1750 enforced_page_scale_factor);
1774 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1751 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1775 1752
1776 EXPECT_EQ(viewport_width / enforced_page_scale_factor, 1753 EXPECT_EQ(viewport_width / enforced_page_scale_factor,
1777 web_view_helper.WebView() 1754 web_view_helper.WebView()
1778 ->MainFrameImpl() 1755 ->MainFrameImpl()
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1888 1865
1889 FixedLayoutTestWebViewClient client; 1866 FixedLayoutTestWebViewClient client;
1890 client.screen_info_.device_scale_factor = 1; 1867 client.screen_info_.device_scale_factor = 1;
1891 int viewport_width = 640; 1868 int viewport_width = 640;
1892 int viewport_height = 480; 1869 int viewport_height = 480;
1893 1870
1894 FrameTestHelpers::WebViewHelper web_view_helper; 1871 FrameTestHelpers::WebViewHelper web_view_helper;
1895 1872
1896 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true, 1873 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true,
1897 nullptr, &client, nullptr, 1874 nullptr, &client, nullptr,
1898 EnableViewportSettings); 1875 ConfigureAndroid);
1899 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 1876 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
1900 1877
1901 EXPECT_LE(viewport_height, web_view_helper.WebView() 1878 EXPECT_LE(viewport_height, web_view_helper.WebView()
1902 ->MainFrameImpl() 1879 ->MainFrameImpl()
1903 ->GetFrameView() 1880 ->GetFrameView()
1904 ->GetLayoutSize() 1881 ->GetLayoutSize()
1905 .Height()); 1882 .Height());
1906 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true); 1883 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true);
1907 EXPECT_TRUE(web_view_helper.WebView() 1884 EXPECT_TRUE(web_view_helper.WebView()
1908 ->MainFrameImpl() 1885 ->MainFrameImpl()
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 2076
2100 FixedLayoutTestWebViewClient client; 2077 FixedLayoutTestWebViewClient client;
2101 client.screen_info_.device_scale_factor = 1; 2078 client.screen_info_.device_scale_factor = 1;
2102 int viewport_width = 640; 2079 int viewport_width = 640;
2103 int viewport_height = 480; 2080 int viewport_height = 480;
2104 2081
2105 FrameTestHelpers::WebViewHelper web_view_helper; 2082 FrameTestHelpers::WebViewHelper web_view_helper;
2106 2083
2107 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true, 2084 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true,
2108 nullptr, &client, nullptr, 2085 nullptr, &client, nullptr,
2109 EnableViewportSettings); 2086 ConfigureAndroid);
2110 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true); 2087 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true);
2111 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2088 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2112 2089
2113 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2090 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2114 base_url_ + "large-div.html"); 2091 base_url_ + "large-div.html");
2115 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 2092 web_view_helper.WebView()->UpdateAllLifecyclePhases();
2116 2093
2117 EXPECT_EQ(0, web_view_helper.WebView() 2094 EXPECT_EQ(0, web_view_helper.WebView()
2118 ->MainFrameImpl() 2095 ->MainFrameImpl()
2119 ->GetFrameView() 2096 ->GetFrameView()
2120 ->GetLayoutSize() 2097 ->GetLayoutSize()
2121 .Height()); 2098 .Height());
2122 } 2099 }
2123 2100
2124 TEST_P(ParameterizedWebFrameTest, 2101 TEST_P(ParameterizedWebFrameTest,
2125 SetForceZeroLayoutHeightWithWideViewportQuirk) { 2102 SetForceZeroLayoutHeightWithWideViewportQuirk) {
2126 RegisterMockedHttpURLLoad("200-by-300.html"); 2103 RegisterMockedHttpURLLoad("200-by-300.html");
2127 2104
2128 FixedLayoutTestWebViewClient client; 2105 FixedLayoutTestWebViewClient client;
2129 client.screen_info_.device_scale_factor = 1; 2106 client.screen_info_.device_scale_factor = 1;
2130 int viewport_width = 640; 2107 int viewport_width = 640;
2131 int viewport_height = 480; 2108 int viewport_height = 480;
2132 2109
2133 FrameTestHelpers::WebViewHelper web_view_helper; 2110 FrameTestHelpers::WebViewHelper web_view_helper;
2134 2111
2135 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true, 2112 web_view_helper.InitializeAndLoad(base_url_ + "200-by-300.html", true,
2136 nullptr, &client, nullptr, 2113 nullptr, &client, nullptr,
2137 EnableViewportSettings); 2114 ConfigureAndroid);
2138 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2115 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2139 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2116 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2140 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true); 2117 web_view_helper.WebView()->GetSettings()->SetForceZeroLayoutHeight(true);
2141 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2118 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2142 2119
2143 EXPECT_EQ(0, web_view_helper.WebView() 2120 EXPECT_EQ(0, web_view_helper.WebView()
2144 ->MainFrameImpl() 2121 ->MainFrameImpl()
2145 ->GetFrameView() 2122 ->GetFrameView()
2146 ->GetLayoutSize() 2123 ->GetLayoutSize()
2147 .Height()); 2124 .Height());
2148 } 2125 }
2149 2126
2150 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) { 2127 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) {
2151 RegisterMockedHttpURLLoad("wide_document_width_viewport.html"); 2128 RegisterMockedHttpURLLoad("wide_document_width_viewport.html");
2152 RegisterMockedHttpURLLoad("white-1x1.png"); 2129 RegisterMockedHttpURLLoad("white-1x1.png");
2153 2130
2154 FixedLayoutTestWebViewClient client; 2131 FixedLayoutTestWebViewClient client;
2155 client.screen_info_.device_scale_factor = 1; 2132 client.screen_info_.device_scale_factor = 1;
2156 int viewport_width = 600; 2133 int viewport_width = 600;
2157 int viewport_height = 800; 2134 int viewport_height = 800;
2158 2135
2159 FrameTestHelpers::WebViewHelper web_view_helper; 2136 FrameTestHelpers::WebViewHelper web_view_helper;
2160 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client, 2137 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client,
2161 nullptr, EnableViewportSettings); 2138 nullptr, ConfigureAndroid);
2162 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2139 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2163 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2140 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2164 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2141 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2165 true); 2142 true);
2166 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2143 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2167 2144
2168 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2145 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2169 base_url_ + "wide_document_width_viewport.html"); 2146 base_url_ + "wide_document_width_viewport.html");
2170 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2147 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2171 2148
2172 int wide_document_width = 800; 2149 int wide_document_width = 800;
2173 float minimum_page_scale_factor = viewport_width / (float)wide_document_width; 2150 float minimum_page_scale_factor = viewport_width / (float)wide_document_width;
2174 EXPECT_EQ(minimum_page_scale_factor, 2151 EXPECT_EQ(minimum_page_scale_factor,
2175 web_view_helper.WebView()->PageScaleFactor()); 2152 web_view_helper.WebView()->PageScaleFactor());
2176 EXPECT_EQ(minimum_page_scale_factor, 2153 EXPECT_EQ(minimum_page_scale_factor,
2177 web_view_helper.WebView()->MinimumPageScaleFactor()); 2154 web_view_helper.WebView()->MinimumPageScaleFactor());
2178 } 2155 }
2179 2156
2180 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) { 2157 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) {
2181 RegisterMockedHttpURLLoad("viewport-height-1000.html"); 2158 RegisterMockedHttpURLLoad("viewport-height-1000.html");
2182 2159
2183 FixedLayoutTestWebViewClient client; 2160 FixedLayoutTestWebViewClient client;
2184 client.screen_info_.device_scale_factor = 1; 2161 client.screen_info_.device_scale_factor = 1;
2185 int viewport_width = 600; 2162 int viewport_width = 600;
2186 int viewport_height = 800; 2163 int viewport_height = 800;
2187 2164
2188 FrameTestHelpers::WebViewHelper web_view_helper; 2165 FrameTestHelpers::WebViewHelper web_view_helper;
2189 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client, 2166 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client,
2190 nullptr, EnableViewportSettings); 2167 nullptr, ConfigureAndroid);
2191 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2168 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2192 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2169 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2193 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2170 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2194 true); 2171 true);
2195 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2172 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2196 2173
2197 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2174 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2198 base_url_ + "viewport-height-1000.html"); 2175 base_url_ + "viewport-height-1000.html");
2199 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2176 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2200 2177
2201 EXPECT_EQ(800, web_view_helper.WebView() 2178 EXPECT_EQ(800, web_view_helper.WebView()
2202 ->MainFrameImpl() 2179 ->MainFrameImpl()
2203 ->GetFrameView() 2180 ->GetFrameView()
2204 ->GetLayoutSize() 2181 ->GetLayoutSize()
2205 .Height()); 2182 .Height());
2206 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor()); 2183 EXPECT_EQ(1, web_view_helper.WebView()->PageScaleFactor());
2207 } 2184 }
2208 2185
2209 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) { 2186 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) {
2210 RegisterMockedHttpURLLoad("viewport/viewport-30.html"); 2187 RegisterMockedHttpURLLoad("viewport/viewport-30.html");
2211 2188
2212 FixedLayoutTestWebViewClient client; 2189 FixedLayoutTestWebViewClient client;
2213 client.screen_info_.device_scale_factor = 1; 2190 client.screen_info_.device_scale_factor = 1;
2214 int viewport_width = 600; 2191 int viewport_width = 600;
2215 int viewport_height = 800; 2192 int viewport_height = 800;
2216 2193
2217 FrameTestHelpers::WebViewHelper web_view_helper; 2194 FrameTestHelpers::WebViewHelper web_view_helper;
2218 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client, 2195 web_view_helper.InitializeAndLoad("about:blank", true, nullptr, &client,
2219 nullptr, EnableViewportSettings); 2196 nullptr, ConfigureAndroid);
2220 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2197 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2221 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2198 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2222 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2199 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2223 true); 2200 true);
2224 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2201 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2225 2202
2226 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2203 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2227 base_url_ + "viewport/viewport-30.html"); 2204 base_url_ + "viewport/viewport-30.html");
2228 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2205 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2229 2206
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2287 2264
2288 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) { 2265 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) {
2289 RegisterMockedHttpURLLoad("viewport-zero-values.html"); 2266 RegisterMockedHttpURLLoad("viewport-zero-values.html");
2290 2267
2291 FixedLayoutTestWebViewClient client; 2268 FixedLayoutTestWebViewClient client;
2292 client.screen_info_.device_scale_factor = 1; 2269 client.screen_info_.device_scale_factor = 1;
2293 int viewport_width = 640; 2270 int viewport_width = 640;
2294 int viewport_height = 480; 2271 int viewport_height = 480;
2295 2272
2296 FrameTestHelpers::WebViewHelper web_view_helper; 2273 FrameTestHelpers::WebViewHelper web_view_helper;
2297 web_view_helper.Initialize(true, nullptr, &client, nullptr, 2274 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
2298 EnableViewportSettings);
2299 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk( 2275 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk(
2300 true); 2276 true);
2301 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2277 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2302 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk( 2278 web_view_helper.WebView()->GetSettings()->SetViewportMetaLayoutSizeQuirk(
2303 true); 2279 true);
2304 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2280 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2305 base_url_ + "viewport-zero-values.html"); 2281 base_url_ + "viewport-zero-values.html");
2306 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2282 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2307 2283
2308 EXPECT_EQ(viewport_width, web_view_helper.WebView() 2284 EXPECT_EQ(viewport_width, web_view_helper.WebView()
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) { 2368 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) {
2393 RegisterMockedHttpURLLoad("viewport-nonzero-values.html"); 2369 RegisterMockedHttpURLLoad("viewport-nonzero-values.html");
2394 2370
2395 FixedLayoutTestWebViewClient client; 2371 FixedLayoutTestWebViewClient client;
2396 client.screen_info_.device_scale_factor = 1; 2372 client.screen_info_.device_scale_factor = 1;
2397 int viewport_width = 640; 2373 int viewport_width = 640;
2398 int viewport_height = 480; 2374 int viewport_height = 480;
2399 float expected_page_scale_factor = 0.5f; 2375 float expected_page_scale_factor = 0.5f;
2400 2376
2401 FrameTestHelpers::WebViewHelper web_view_helper; 2377 FrameTestHelpers::WebViewHelper web_view_helper;
2402 web_view_helper.Initialize(true, nullptr, &client, nullptr, 2378 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
2403 EnableViewportSettings);
2404 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk( 2379 web_view_helper.WebView()->GetSettings()->SetViewportMetaZeroValuesQuirk(
2405 true); 2380 true);
2406 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2381 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2407 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2382 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2408 base_url_ + "viewport-nonzero-values.html"); 2383 base_url_ + "viewport-nonzero-values.html");
2409 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2384 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2410 2385
2411 EXPECT_EQ(viewport_width / expected_page_scale_factor, 2386 EXPECT_EQ(viewport_width / expected_page_scale_factor,
2412 web_view_helper.WebView() 2387 web_view_helper.WebView()
2413 ->MainFrameImpl() 2388 ->MainFrameImpl()
(...skipping 20 matching lines...) Expand all
2434 2409
2435 FixedLayoutTestWebViewClient client; 2410 FixedLayoutTestWebViewClient client;
2436 client.screen_info_.device_scale_factor = 1; 2411 client.screen_info_.device_scale_factor = 1;
2437 // Small viewport to ensure there are always scrollbars. 2412 // Small viewport to ensure there are always scrollbars.
2438 int viewport_width = 64; 2413 int viewport_width = 64;
2439 int viewport_height = 48; 2414 int viewport_height = 48;
2440 2415
2441 FrameTestHelpers::WebViewHelper web_view_helper; 2416 FrameTestHelpers::WebViewHelper web_view_helper;
2442 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 2417 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
2443 nullptr, &client, nullptr, 2418 nullptr, &client, nullptr,
2444 EnableViewportSettings); 2419 ConfigureAndroid);
2445 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2420 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2446 2421
2447 int prev_layout_count = 2422 int prev_layout_count =
2448 web_view_helper.WebView()->MainFrameImpl()->GetFrameView()->LayoutCount(); 2423 web_view_helper.WebView()->MainFrameImpl()->GetFrameView()->LayoutCount();
2449 web_view_helper.WebView()->SetPageScaleFactor(3); 2424 web_view_helper.WebView()->SetPageScaleFactor(3);
2450 EXPECT_FALSE(web_view_helper.WebView() 2425 EXPECT_FALSE(web_view_helper.WebView()
2451 ->MainFrameImpl() 2426 ->MainFrameImpl()
2452 ->GetFrameView() 2427 ->GetFrameView()
2453 ->NeedsLayout()); 2428 ->NeedsLayout());
2454 EXPECT_EQ(prev_layout_count, web_view_helper.WebView() 2429 EXPECT_EQ(prev_layout_count, web_view_helper.WebView()
2455 ->MainFrameImpl() 2430 ->MainFrameImpl()
2456 ->GetFrameView() 2431 ->GetFrameView()
2457 ->LayoutCount()); 2432 ->LayoutCount());
2458 } 2433 }
2459 2434
2460 TEST_P(ParameterizedWebFrameTest, 2435 TEST_P(ParameterizedWebFrameTest,
2461 setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) { 2436 setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) {
2462 RegisterMockedHttpURLLoad("fixed_layout.html"); 2437 RegisterMockedHttpURLLoad("fixed_layout.html");
2463 2438
2464 FixedLayoutTestWebViewClient client; 2439 FixedLayoutTestWebViewClient client;
2465 client.screen_info_.device_scale_factor = 1; 2440 client.screen_info_.device_scale_factor = 1;
2466 int viewport_width = 640; 2441 int viewport_width = 640;
2467 int viewport_height = 480; 2442 int viewport_height = 480;
2468 2443
2469 FrameTestHelpers::WebViewHelper web_view_helper; 2444 FrameTestHelpers::WebViewHelper web_view_helper;
2470 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 2445 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
2471 nullptr, &client, nullptr, 2446 nullptr, &client, nullptr,
2472 EnableViewportSettings); 2447 ConfigureAndroid);
2473 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2448 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2474 2449
2475 int prev_layout_count = 2450 int prev_layout_count =
2476 web_view_helper.WebView()->MainFrameImpl()->GetFrameView()->LayoutCount(); 2451 web_view_helper.WebView()->MainFrameImpl()->GetFrameView()->LayoutCount();
2477 web_view_helper.WebView()->SetPageScaleFactor(30); 2452 web_view_helper.WebView()->SetPageScaleFactor(30);
2478 EXPECT_FALSE(web_view_helper.WebView() 2453 EXPECT_FALSE(web_view_helper.WebView()
2479 ->MainFrameImpl() 2454 ->MainFrameImpl()
2480 ->GetFrameView() 2455 ->GetFrameView()
2481 ->NeedsLayout()); 2456 ->NeedsLayout());
2482 EXPECT_EQ(prev_layout_count, web_view_helper.WebView() 2457 EXPECT_EQ(prev_layout_count, web_view_helper.WebView()
2483 ->MainFrameImpl() 2458 ->MainFrameImpl()
2484 ->GetFrameView() 2459 ->GetFrameView()
2485 ->LayoutCount()); 2460 ->LayoutCount());
2486 } 2461 }
2487 2462
2488 TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) { 2463 TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) {
2489 RegisterMockedHttpURLLoad("fixed_layout.html"); 2464 RegisterMockedHttpURLLoad("fixed_layout.html");
2490 2465
2491 FixedLayoutTestWebViewClient client; 2466 FixedLayoutTestWebViewClient client;
2492 client.screen_info_.device_scale_factor = 1; 2467 client.screen_info_.device_scale_factor = 1;
2493 int viewport_width = 640; 2468 int viewport_width = 640;
2494 int viewport_height = 480; 2469 int viewport_height = 480;
2495 2470
2496 FrameTestHelpers::WebViewHelper web_view_helper; 2471 FrameTestHelpers::WebViewHelper web_view_helper;
2497 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 2472 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
2498 nullptr, &client, nullptr, 2473 nullptr, &client, nullptr,
2499 EnableViewportSettings); 2474 ConfigureAndroid);
2500 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2475 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2501 2476
2502 web_view_helper.WebView()->SetPageScaleFactor(3); 2477 web_view_helper.WebView()->SetPageScaleFactor(3);
2503 EXPECT_EQ(3, ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 2478 EXPECT_EQ(3, ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
2504 ->Loader() 2479 ->Loader()
2505 .GetDocumentLoader() 2480 .GetDocumentLoader()
2506 ->GetHistoryItem() 2481 ->GetHistoryItem()
2507 ->PageScaleFactor()); 2482 ->PageScaleFactor());
2508 } 2483 }
2509 2484
2510 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) { 2485 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) {
2511 RegisterMockedHttpURLLoad("fixed_layout.html"); 2486 RegisterMockedHttpURLLoad("fixed_layout.html");
2512 2487
2513 FixedLayoutTestWebViewClient client; 2488 FixedLayoutTestWebViewClient client;
2514 client.screen_info_.device_scale_factor = 1; 2489 client.screen_info_.device_scale_factor = 1;
2515 int viewport_width = 640; 2490 int viewport_width = 640;
2516 int viewport_height = 480; 2491 int viewport_height = 480;
2517 2492
2518 FrameTestHelpers::WebViewHelper web_view_helper; 2493 FrameTestHelpers::WebViewHelper web_view_helper;
2519 web_view_helper.Initialize(true, nullptr, &client, nullptr, 2494 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
2520 EnableViewportSettings);
2521 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 2495 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
2522 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2496 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
2523 base_url_ + "fixed_layout.html"); 2497 base_url_ + "fixed_layout.html");
2524 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2498 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2525 2499
2526 int default_fixed_layout_width = 980; 2500 int default_fixed_layout_width = 980;
2527 float minimum_page_scale_factor = 2501 float minimum_page_scale_factor =
2528 viewport_width / (float)default_fixed_layout_width; 2502 viewport_width / (float)default_fixed_layout_width;
2529 EXPECT_EQ(minimum_page_scale_factor, 2503 EXPECT_EQ(minimum_page_scale_factor,
2530 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 2504 ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
2531 ->Loader() 2505 ->Loader()
2532 .GetDocumentLoader() 2506 .GetDocumentLoader()
2533 ->GetHistoryItem() 2507 ->GetHistoryItem()
2534 ->PageScaleFactor()); 2508 ->PageScaleFactor());
2535 } 2509 }
2536 2510
2537 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) { 2511 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) {
2538 RegisterMockedHttpURLLoad("large-div.html"); 2512 RegisterMockedHttpURLLoad("large-div.html");
2539 2513
2540 FixedLayoutTestWebViewClient client; 2514 FixedLayoutTestWebViewClient client;
2541 client.screen_info_.device_scale_factor = 1; 2515 client.screen_info_.device_scale_factor = 1;
2542 // Small viewport to ensure there are always scrollbars. 2516 // Small viewport to ensure there are always scrollbars.
2543 int viewport_width = 64; 2517 int viewport_width = 64;
2544 int viewport_height = 48; 2518 int viewport_height = 48;
2545 2519
2546 FrameTestHelpers::WebViewHelper web_view_helper; 2520 FrameTestHelpers::WebViewHelper web_view_helper;
2547 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr, 2521 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr,
2548 &client, nullptr, EnableViewportSettings); 2522 &client, nullptr, ConfigureAndroid);
2549 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2523 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2550 2524
2551 LocalFrameView* view = 2525 LocalFrameView* view =
2552 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 2526 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
2553 int viewport_width_minus_scrollbar = viewport_width; 2527 int viewport_width_minus_scrollbar = viewport_width;
2554 int viewport_height_minus_scrollbar = viewport_height; 2528 int viewport_height_minus_scrollbar = viewport_height;
2555 2529
2556 if (view->VerticalScrollbar() && 2530 if (view->VerticalScrollbar() &&
2557 !view->VerticalScrollbar()->IsOverlayScrollbar()) 2531 !view->VerticalScrollbar()->IsOverlayScrollbar())
2558 viewport_width_minus_scrollbar -= 15; 2532 viewport_width_minus_scrollbar -= 15;
(...skipping 24 matching lines...) Expand all
2583 RegisterMockedHttpURLLoad("fixed_layout.html"); 2557 RegisterMockedHttpURLLoad("fixed_layout.html");
2584 2558
2585 FixedLayoutTestWebViewClient client; 2559 FixedLayoutTestWebViewClient client;
2586 client.screen_info_.device_scale_factor = 1; 2560 client.screen_info_.device_scale_factor = 1;
2587 int viewport_width = 640; 2561 int viewport_width = 640;
2588 int viewport_height = 480; 2562 int viewport_height = 480;
2589 2563
2590 FrameTestHelpers::WebViewHelper web_view_helper; 2564 FrameTestHelpers::WebViewHelper web_view_helper;
2591 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 2565 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
2592 nullptr, &client, nullptr, 2566 nullptr, &client, nullptr,
2593 EnableViewportSettings); 2567 ConfigureAndroid);
2594 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2568 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2595 2569
2596 web_view_helper.WebView()->SetPageScaleFactor(2); 2570 web_view_helper.WebView()->SetPageScaleFactor(2);
2597 2571
2598 EXPECT_EQ(980, ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame()) 2572 EXPECT_EQ(980, ToLocalFrame(web_view_helper.WebView()->GetPage()->MainFrame())
2599 ->ContentLayoutItem() 2573 ->ContentLayoutItem()
2600 .DocumentRect() 2574 .DocumentRect()
2601 .Width()); 2575 .Width());
2602 EXPECT_EQ(980, web_view_helper.WebView() 2576 EXPECT_EQ(980, web_view_helper.WebView()
2603 ->MainFrameImpl() 2577 ->MainFrameImpl()
(...skipping 13 matching lines...) Expand all
2617 int viewport_height = 480; 2591 int viewport_height = 480;
2618 2592
2619 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) { 2593 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) {
2620 float device_scale_factor = device_scale_factors[i]; 2594 float device_scale_factor = device_scale_factors[i];
2621 float device_dpi = device_scale_factor * 160.0f; 2595 float device_dpi = device_scale_factor * 160.0f;
2622 client.screen_info_.device_scale_factor = device_scale_factor; 2596 client.screen_info_.device_scale_factor = device_scale_factor;
2623 2597
2624 FrameTestHelpers::WebViewHelper web_view_helper; 2598 FrameTestHelpers::WebViewHelper web_view_helper;
2625 web_view_helper.InitializeAndLoad( 2599 web_view_helper.InitializeAndLoad(
2626 base_url_ + "viewport-target-densitydpi-high.html", true, nullptr, 2600 base_url_ + "viewport-target-densitydpi-high.html", true, nullptr,
2627 &client, nullptr, EnableViewportSettings); 2601 &client, nullptr, ConfigureAndroid);
2628 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2602 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2629 web_view_helper.WebView() 2603 web_view_helper.WebView()
2630 ->GetSettings() 2604 ->GetSettings()
2631 ->SetSupportDeprecatedTargetDensityDPI(true); 2605 ->SetSupportDeprecatedTargetDensityDPI(true);
2632 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2606 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2633 2607
2634 // We need to account for the fact that logical pixels are unconditionally 2608 // We need to account for the fact that logical pixels are unconditionally
2635 // multiplied by deviceScaleFactor to produce physical pixels. 2609 // multiplied by deviceScaleFactor to produce physical pixels.
2636 float density_dpi_scale_ratio = 2610 float density_dpi_scale_ratio =
2637 device_scale_factor * target_dpi / device_dpi; 2611 device_scale_factor * target_dpi / device_dpi;
(...skipping 24 matching lines...) Expand all
2662 FixedLayoutTestWebViewClient client; 2636 FixedLayoutTestWebViewClient client;
2663 int viewport_width = 640; 2637 int viewport_width = 640;
2664 int viewport_height = 480; 2638 int viewport_height = 480;
2665 2639
2666 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) { 2640 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) {
2667 client.screen_info_.device_scale_factor = device_scale_factors[i]; 2641 client.screen_info_.device_scale_factor = device_scale_factors[i];
2668 2642
2669 FrameTestHelpers::WebViewHelper web_view_helper; 2643 FrameTestHelpers::WebViewHelper web_view_helper;
2670 web_view_helper.InitializeAndLoad( 2644 web_view_helper.InitializeAndLoad(
2671 base_url_ + "viewport-target-densitydpi-device.html", true, nullptr, 2645 base_url_ + "viewport-target-densitydpi-device.html", true, nullptr,
2672 &client, nullptr, EnableViewportSettings); 2646 &client, nullptr, ConfigureAndroid);
2673 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2647 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2674 web_view_helper.WebView() 2648 web_view_helper.WebView()
2675 ->GetSettings() 2649 ->GetSettings()
2676 ->SetSupportDeprecatedTargetDensityDPI(true); 2650 ->SetSupportDeprecatedTargetDensityDPI(true);
2677 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2651 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2678 2652
2679 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor, 2653 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor,
2680 web_view_helper.WebView() 2654 web_view_helper.WebView()
2681 ->MainFrameImpl() 2655 ->MainFrameImpl()
2682 ->GetFrameView() 2656 ->GetFrameView()
(...skipping 21 matching lines...) Expand all
2704 FixedLayoutTestWebViewClient client; 2678 FixedLayoutTestWebViewClient client;
2705 int viewport_width = 640; 2679 int viewport_width = 640;
2706 int viewport_height = 480; 2680 int viewport_height = 480;
2707 2681
2708 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) { 2682 for (size_t i = 0; i < WTF_ARRAY_LENGTH(device_scale_factors); ++i) {
2709 client.screen_info_.device_scale_factor = device_scale_factors[i]; 2683 client.screen_info_.device_scale_factor = device_scale_factors[i];
2710 2684
2711 FrameTestHelpers::WebViewHelper web_view_helper; 2685 FrameTestHelpers::WebViewHelper web_view_helper;
2712 web_view_helper.InitializeAndLoad( 2686 web_view_helper.InitializeAndLoad(
2713 base_url_ + "viewport-target-densitydpi-device-and-fixed-width.html", 2687 base_url_ + "viewport-target-densitydpi-device-and-fixed-width.html",
2714 true, nullptr, &client, nullptr, EnableViewportSettings); 2688 true, nullptr, &client, nullptr, ConfigureAndroid);
2715 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2689 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2716 web_view_helper.WebView() 2690 web_view_helper.WebView()
2717 ->GetSettings() 2691 ->GetSettings()
2718 ->SetSupportDeprecatedTargetDensityDPI(true); 2692 ->SetSupportDeprecatedTargetDensityDPI(true);
2719 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2693 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2720 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2694 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2721 2695
2722 EXPECT_NEAR(viewport_width, 2696 EXPECT_NEAR(viewport_width,
2723 web_view_helper.WebView() 2697 web_view_helper.WebView()
2724 ->MainFrameImpl() 2698 ->MainFrameImpl()
(...skipping 16 matching lines...) Expand all
2741 RegisterMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); 2715 RegisterMockedHttpURLLoad("viewport-initial-scale-less-than-1.html");
2742 2716
2743 FixedLayoutTestWebViewClient client; 2717 FixedLayoutTestWebViewClient client;
2744 client.screen_info_.device_scale_factor = 1.33f; 2718 client.screen_info_.device_scale_factor = 1.33f;
2745 int viewport_width = 640; 2719 int viewport_width = 640;
2746 int viewport_height = 480; 2720 int viewport_height = 480;
2747 2721
2748 FrameTestHelpers::WebViewHelper web_view_helper; 2722 FrameTestHelpers::WebViewHelper web_view_helper;
2749 web_view_helper.InitializeAndLoad( 2723 web_view_helper.InitializeAndLoad(
2750 base_url_ + "viewport-initial-scale-less-than-1.html", true, nullptr, 2724 base_url_ + "viewport-initial-scale-less-than-1.html", true, nullptr,
2751 &client, nullptr, EnableViewportSettings); 2725 &client, nullptr, ConfigureAndroid);
2752 web_view_helper.WebView() 2726 web_view_helper.WebView()
2753 ->GetSettings() 2727 ->GetSettings()
2754 ->SetSupportDeprecatedTargetDensityDPI(true); 2728 ->SetSupportDeprecatedTargetDensityDPI(true);
2755 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2729 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2756 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2730 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2757 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2731 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2758 2732
2759 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor, 2733 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor,
2760 web_view_helper.WebView() 2734 web_view_helper.WebView()
2761 ->MainFrameImpl() 2735 ->MainFrameImpl()
(...skipping 18 matching lines...) Expand all
2780 "viewport-initial-scale-less-than-1-device-width.html"); 2754 "viewport-initial-scale-less-than-1-device-width.html");
2781 2755
2782 FixedLayoutTestWebViewClient client; 2756 FixedLayoutTestWebViewClient client;
2783 client.screen_info_.device_scale_factor = 1.33f; 2757 client.screen_info_.device_scale_factor = 1.33f;
2784 int viewport_width = 640; 2758 int viewport_width = 640;
2785 int viewport_height = 480; 2759 int viewport_height = 480;
2786 2760
2787 FrameTestHelpers::WebViewHelper web_view_helper; 2761 FrameTestHelpers::WebViewHelper web_view_helper;
2788 web_view_helper.InitializeAndLoad( 2762 web_view_helper.InitializeAndLoad(
2789 base_url_ + "viewport-initial-scale-less-than-1-device-width.html", true, 2763 base_url_ + "viewport-initial-scale-less-than-1-device-width.html", true,
2790 nullptr, &client, nullptr, EnableViewportSettings); 2764 nullptr, &client, nullptr, ConfigureAndroid);
2791 web_view_helper.WebView() 2765 web_view_helper.WebView()
2792 ->GetSettings() 2766 ->GetSettings()
2793 ->SetSupportDeprecatedTargetDensityDPI(true); 2767 ->SetSupportDeprecatedTargetDensityDPI(true);
2794 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2768 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2795 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2769 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2796 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2770 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2797 2771
2798 const float kPageZoom = 0.25f; 2772 const float kPageZoom = 0.25f;
2799 EXPECT_NEAR( 2773 EXPECT_NEAR(
2800 viewport_width * client.screen_info_.device_scale_factor / kPageZoom, 2774 viewport_width * client.screen_info_.device_scale_factor / kPageZoom,
(...skipping 19 matching lines...) Expand all
2820 NoWideViewportAndNoViewportWithInitialPageScaleOverride) { 2794 NoWideViewportAndNoViewportWithInitialPageScaleOverride) {
2821 RegisterMockedHttpURLLoad("large-div.html"); 2795 RegisterMockedHttpURLLoad("large-div.html");
2822 2796
2823 FixedLayoutTestWebViewClient client; 2797 FixedLayoutTestWebViewClient client;
2824 int viewport_width = 640; 2798 int viewport_width = 640;
2825 int viewport_height = 480; 2799 int viewport_height = 480;
2826 float enforced_page_scale_factor = 5.0f; 2800 float enforced_page_scale_factor = 5.0f;
2827 2801
2828 FrameTestHelpers::WebViewHelper web_view_helper; 2802 FrameTestHelpers::WebViewHelper web_view_helper;
2829 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr, 2803 web_view_helper.InitializeAndLoad(base_url_ + "large-div.html", true, nullptr,
2830 &client, nullptr, EnableViewportSettings); 2804 &client, nullptr, ConfigureAndroid);
2831 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 2805 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
2832 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2806 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2833 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2807 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2834 web_view_helper.WebView()->SetInitialPageScaleOverride( 2808 web_view_helper.WebView()->SetInitialPageScaleOverride(
2835 enforced_page_scale_factor); 2809 enforced_page_scale_factor);
2836 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2810 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2837 2811
2838 EXPECT_NEAR(viewport_width / enforced_page_scale_factor, 2812 EXPECT_NEAR(viewport_width / enforced_page_scale_factor,
2839 web_view_helper.WebView() 2813 web_view_helper.WebView()
2840 ->MainFrameImpl() 2814 ->MainFrameImpl()
(...skipping 15 matching lines...) Expand all
2856 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) { 2830 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) {
2857 RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); 2831 RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html");
2858 2832
2859 FixedLayoutTestWebViewClient client; 2833 FixedLayoutTestWebViewClient client;
2860 int viewport_width = 640; 2834 int viewport_width = 640;
2861 int viewport_height = 480; 2835 int viewport_height = 480;
2862 2836
2863 FrameTestHelpers::WebViewHelper web_view_helper; 2837 FrameTestHelpers::WebViewHelper web_view_helper;
2864 web_view_helper.InitializeAndLoad( 2838 web_view_helper.InitializeAndLoad(
2865 base_url_ + "viewport-initial-scale-and-user-scalable-no.html", true, 2839 base_url_ + "viewport-initial-scale-and-user-scalable-no.html", true,
2866 nullptr, &client, nullptr, EnableViewportSettings); 2840 nullptr, &client, nullptr, ConfigureAndroid);
2867 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk( 2841 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk(
2868 true); 2842 true);
2869 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2843 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2870 2844
2871 EXPECT_NEAR(viewport_width, 2845 EXPECT_NEAR(viewport_width,
2872 web_view_helper.WebView() 2846 web_view_helper.WebView()
2873 ->MainFrameImpl() 2847 ->MainFrameImpl()
2874 ->GetFrameView() 2848 ->GetFrameView()
2875 ->GetLayoutSize() 2849 ->GetLayoutSize()
2876 .Width(), 2850 .Width(),
(...skipping 13 matching lines...) Expand all
2890 RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); 2864 RegisterMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html");
2891 2865
2892 FixedLayoutTestWebViewClient client; 2866 FixedLayoutTestWebViewClient client;
2893 client.screen_info_.device_scale_factor = 1.33f; 2867 client.screen_info_.device_scale_factor = 1.33f;
2894 int viewport_width = 640; 2868 int viewport_width = 640;
2895 int viewport_height = 480; 2869 int viewport_height = 480;
2896 2870
2897 FrameTestHelpers::WebViewHelper web_view_helper; 2871 FrameTestHelpers::WebViewHelper web_view_helper;
2898 web_view_helper.InitializeAndLoad( 2872 web_view_helper.InitializeAndLoad(
2899 base_url_ + "viewport-initial-scale-and-user-scalable-no.html", true, 2873 base_url_ + "viewport-initial-scale-and-user-scalable-no.html", true,
2900 nullptr, &client, nullptr, EnableViewportSettings); 2874 nullptr, &client, nullptr, ConfigureAndroid);
2901 web_view_helper.WebView() 2875 web_view_helper.WebView()
2902 ->GetSettings() 2876 ->GetSettings()
2903 ->SetSupportDeprecatedTargetDensityDPI(true); 2877 ->SetSupportDeprecatedTargetDensityDPI(true);
2904 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk( 2878 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk(
2905 true); 2879 true);
2906 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2880 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2907 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2881 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2908 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2882 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2909 2883
2910 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor, 2884 EXPECT_NEAR(viewport_width * client.screen_info_.device_scale_factor,
(...skipping 18 matching lines...) Expand all
2929 NoUserScalableQuirkIgnoresViewportScaleForWideViewport) { 2903 NoUserScalableQuirkIgnoresViewportScaleForWideViewport) {
2930 RegisterMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html"); 2904 RegisterMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html");
2931 2905
2932 FixedLayoutTestWebViewClient client; 2906 FixedLayoutTestWebViewClient client;
2933 int viewport_width = 640; 2907 int viewport_width = 640;
2934 int viewport_height = 480; 2908 int viewport_height = 480;
2935 2909
2936 FrameTestHelpers::WebViewHelper web_view_helper; 2910 FrameTestHelpers::WebViewHelper web_view_helper;
2937 web_view_helper.InitializeAndLoad( 2911 web_view_helper.InitializeAndLoad(
2938 base_url_ + "viewport-2x-initial-scale-non-user-scalable.html", true, 2912 base_url_ + "viewport-2x-initial-scale-non-user-scalable.html", true,
2939 nullptr, &client, nullptr, EnableViewportSettings); 2913 nullptr, &client, nullptr, ConfigureAndroid);
2940 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk( 2914 web_view_helper.WebView()->GetSettings()->SetViewportMetaNonUserScalableQuirk(
2941 true); 2915 true);
2942 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2916 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2943 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 2917 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
2944 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2918 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2945 2919
2946 EXPECT_NEAR(viewport_width, 2920 EXPECT_NEAR(viewport_width,
2947 web_view_helper.WebView() 2921 web_view_helper.WebView()
2948 ->MainFrameImpl() 2922 ->MainFrameImpl()
2949 ->GetFrameView() 2923 ->GetFrameView()
(...skipping 14 matching lines...) Expand all
2964 DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) { 2938 DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) {
2965 RegisterMockedHttpURLLoad("no_viewport_tag.html"); 2939 RegisterMockedHttpURLLoad("no_viewport_tag.html");
2966 2940
2967 FixedLayoutTestWebViewClient client; 2941 FixedLayoutTestWebViewClient client;
2968 int viewport_width = 640; 2942 int viewport_width = 640;
2969 int viewport_height = 480; 2943 int viewport_height = 480;
2970 2944
2971 FrameTestHelpers::WebViewHelper web_view_helper; 2945 FrameTestHelpers::WebViewHelper web_view_helper;
2972 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true, 2946 web_view_helper.InitializeAndLoad(base_url_ + "no_viewport_tag.html", true,
2973 nullptr, &client, nullptr, 2947 nullptr, &client, nullptr,
2974 EnableViewportSettings); 2948 ConfigureAndroid);
2975 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 2949 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
2976 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 2950 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
2977 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false); 2951 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(false);
2978 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 2952 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
2979 2953
2980 EXPECT_NEAR(1.0f, web_view_helper.WebView()->PageScaleFactor(), 0.01f); 2954 EXPECT_NEAR(1.0f, web_view_helper.WebView()->PageScaleFactor(), 0.01f);
2981 EXPECT_NEAR(1.0f, web_view_helper.WebView()->MinimumPageScaleFactor(), 0.01f); 2955 EXPECT_NEAR(1.0f, web_view_helper.WebView()->MinimumPageScaleFactor(), 0.01f);
2982 EXPECT_NEAR(5.0f, web_view_helper.WebView()->MaximumPageScaleFactor(), 0.01f); 2956 EXPECT_NEAR(5.0f, web_view_helper.WebView()->MaximumPageScaleFactor(), 0.01f);
2983 } 2957 }
2984 2958
2985 TEST_P(ParameterizedWebFrameTest, AtViewportInsideAtMediaInitialViewport) { 2959 TEST_P(ParameterizedWebFrameTest, AtViewportInsideAtMediaInitialViewport) {
2986 RegisterMockedHttpURLLoad("viewport-inside-media.html"); 2960 RegisterMockedHttpURLLoad("viewport-inside-media.html");
2987 2961
2988 FixedLayoutTestWebViewClient client; 2962 FixedLayoutTestWebViewClient client;
2989 FrameTestHelpers::WebViewHelper web_view_helper; 2963 FrameTestHelpers::WebViewHelper web_view_helper;
2990 web_view_helper.InitializeAndLoad(base_url_ + "viewport-inside-media.html", 2964 web_view_helper.InitializeAndLoad(base_url_ + "viewport-inside-media.html",
2991 true, nullptr, &client, nullptr, 2965 true, nullptr, &client, nullptr,
2992 EnableViewportSettings); 2966 ConfigureAndroid);
2993 web_view_helper.Resize(WebSize(640, 480)); 2967 web_view_helper.Resize(WebSize(640, 480));
2994 2968
2995 EXPECT_EQ(2000, web_view_helper.WebView() 2969 EXPECT_EQ(2000, web_view_helper.WebView()
2996 ->MainFrameImpl() 2970 ->MainFrameImpl()
2997 ->GetFrameView() 2971 ->GetFrameView()
2998 ->GetLayoutSize() 2972 ->GetLayoutSize()
2999 .Width()); 2973 .Width());
3000 2974
3001 web_view_helper.Resize(WebSize(1200, 480)); 2975 web_view_helper.Resize(WebSize(1200, 480));
3002 2976
3003 EXPECT_EQ(1200, web_view_helper.WebView() 2977 EXPECT_EQ(1200, web_view_helper.WebView()
3004 ->MainFrameImpl() 2978 ->MainFrameImpl()
3005 ->GetFrameView() 2979 ->GetFrameView()
3006 ->GetLayoutSize() 2980 ->GetLayoutSize()
3007 .Width()); 2981 .Width());
3008 } 2982 }
3009 2983
3010 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) { 2984 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) {
3011 RegisterMockedHttpURLLoad("viewport-and-media.html"); 2985 RegisterMockedHttpURLLoad("viewport-and-media.html");
3012 2986
3013 FixedLayoutTestWebViewClient client; 2987 FixedLayoutTestWebViewClient client;
3014 FrameTestHelpers::WebViewHelper web_view_helper; 2988 FrameTestHelpers::WebViewHelper web_view_helper;
3015 web_view_helper.Initialize(true, nullptr, &client, nullptr, 2989 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
3016 EnableViewportSettings);
3017 web_view_helper.Resize(WebSize(640, 480)); 2990 web_view_helper.Resize(WebSize(640, 480));
3018 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 2991 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
3019 base_url_ + "viewport-and-media.html"); 2992 base_url_ + "viewport-and-media.html");
3020 2993
3021 Document* document = 2994 Document* document =
3022 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->GetDocument(); 2995 web_view_helper.WebView()->MainFrameImpl()->GetFrame()->GetDocument();
3023 EXPECT_EQ(2000, web_view_helper.WebView() 2996 EXPECT_EQ(2000, web_view_helper.WebView()
3024 ->MainFrameImpl() 2997 ->MainFrameImpl()
3025 ->GetFrameView() 2998 ->GetFrameView()
3026 ->GetLayoutSize() 2999 ->GetLayoutSize()
3027 .Width()); 3000 .Width());
3028 3001
3029 // The styleForElementCount() should match the number of elements for a single 3002 // The styleForElementCount() should match the number of elements for a single
3030 // pass of computed styles construction for the document. 3003 // pass of computed styles construction for the document.
3031 EXPECT_EQ(10u, document->GetStyleEngine().StyleForElementCount()); 3004 EXPECT_EQ(10u, document->GetStyleEngine().StyleForElementCount());
3032 EXPECT_EQ(Color(0, 128, 0), 3005 EXPECT_EQ(Color(0, 128, 0),
3033 document->body()->GetComputedStyle()->VisitedDependentColor( 3006 document->body()->GetComputedStyle()->VisitedDependentColor(
3034 CSSPropertyColor)); 3007 CSSPropertyColor));
3035 } 3008 }
3036 3009
3037 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) { 3010 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) {
3038 RegisterMockedHttpURLLoad("viewport-lengths.html"); 3011 RegisterMockedHttpURLLoad("viewport-lengths.html");
3039 3012
3040 FixedLayoutTestWebViewClient client; 3013 FixedLayoutTestWebViewClient client;
3041 FrameTestHelpers::WebViewHelper web_view_helper; 3014 FrameTestHelpers::WebViewHelper web_view_helper;
3042 web_view_helper.Initialize(true, nullptr, &client, nullptr, 3015 web_view_helper.Initialize(true, nullptr, &client, nullptr, ConfigureAndroid);
3043 EnableViewportSettings);
3044 web_view_helper.Resize(WebSize(800, 600)); 3016 web_view_helper.Resize(WebSize(800, 600));
3045 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(), 3017 FrameTestHelpers::LoadFrame(web_view_helper.WebView()->MainFrame(),
3046 base_url_ + "viewport-lengths.html"); 3018 base_url_ + "viewport-lengths.html");
3047 3019
3048 LocalFrameView* view = 3020 LocalFrameView* view =
3049 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 3021 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
3050 EXPECT_EQ(400, view->GetLayoutSize().Width()); 3022 EXPECT_EQ(400, view->GetLayoutSize().Width());
3051 EXPECT_EQ(300, view->GetLayoutSize().Height()); 3023 EXPECT_EQ(300, view->GetLayoutSize().Height());
3052 3024
3053 web_view_helper.Resize(WebSize(1000, 400)); 3025 web_view_helper.Resize(WebSize(1000, 400));
(...skipping 18 matching lines...) Expand all
3072 const WebSize scroll_offset, 3044 const WebSize scroll_offset,
3073 const WebSize viewport_size, 3045 const WebSize viewport_size,
3074 const bool should_scale_relative_to_viewport_width) { 3046 const bool should_scale_relative_to_viewport_width) {
3075 RegisterMockedHttpURLLoad(url); 3047 RegisterMockedHttpURLLoad(url);
3076 3048
3077 const float aspect_ratio = 3049 const float aspect_ratio =
3078 static_cast<float>(viewport_size.width) / viewport_size.height; 3050 static_cast<float>(viewport_size.width) / viewport_size.height;
3079 3051
3080 FrameTestHelpers::WebViewHelper web_view_helper; 3052 FrameTestHelpers::WebViewHelper web_view_helper;
3081 web_view_helper.InitializeAndLoad(base_url_ + url, true, nullptr, nullptr, 3053 web_view_helper.InitializeAndLoad(base_url_ + url, true, nullptr, nullptr,
3082 nullptr, EnableViewportSettings); 3054 nullptr, ConfigureAndroid);
3083 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 3055 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
3084 3056
3085 // Origin scrollOffsets preserved under resize. 3057 // Origin scrollOffsets preserved under resize.
3086 { 3058 {
3087 web_view_helper.Resize( 3059 web_view_helper.Resize(
3088 WebSize(viewport_size.width, viewport_size.height)); 3060 WebSize(viewport_size.width, viewport_size.height));
3089 web_view_helper.WebView()->SetPageScaleFactor(initial_page_scale_factor); 3061 web_view_helper.WebView()->SetPageScaleFactor(initial_page_scale_factor);
3090 ASSERT_EQ(viewport_size, web_view_helper.WebView()->Size()); 3062 ASSERT_EQ(viewport_size, web_view_helper.WebView()->Size());
3091 ASSERT_EQ(initial_page_scale_factor, 3063 ASSERT_EQ(initial_page_scale_factor,
3092 web_view_helper.WebView()->PageScaleFactor()); 3064 web_view_helper.WebView()->PageScaleFactor());
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
3192 RegisterMockedHttpURLLoad("fixed_layout.html"); 3164 RegisterMockedHttpURLLoad("fixed_layout.html");
3193 3165
3194 FixedLayoutTestWebViewClient client; 3166 FixedLayoutTestWebViewClient client;
3195 client.screen_info_.device_scale_factor = 1; 3167 client.screen_info_.device_scale_factor = 1;
3196 int viewport_width = 640; 3168 int viewport_width = 640;
3197 int viewport_height = 480; 3169 int viewport_height = 480;
3198 3170
3199 FrameTestHelpers::WebViewHelper web_view_helper; 3171 FrameTestHelpers::WebViewHelper web_view_helper;
3200 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true, 3172 web_view_helper.InitializeAndLoad(base_url_ + "fixed_layout.html", true,
3201 nullptr, &client, nullptr, 3173 nullptr, &client, nullptr,
3202 EnableViewportSettings); 3174 ConfigureAndroid);
3203 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 3175 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
3204 3176
3205 LocalFrameView* view = 3177 LocalFrameView* view =
3206 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 3178 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
3207 EXPECT_EQ(view->ScrollSize(kHorizontalScrollbar), 3179 EXPECT_EQ(view->ScrollSize(kHorizontalScrollbar),
3208 view->ContentsSize().Width() - view->VisibleContentRect().Width()); 3180 view->ContentsSize().Width() - view->VisibleContentRect().Width());
3209 EXPECT_EQ( 3181 EXPECT_EQ(
3210 view->ScrollSize(kVerticalScrollbar), 3182 view->ScrollSize(kVerticalScrollbar),
3211 view->ContentsSize().Height() - view->VisibleContentRect().Height()); 3183 view->ContentsSize().Height() - view->VisibleContentRect().Height());
3212 3184
(...skipping 10 matching lines...) Expand all
3223 RegisterMockedHttpURLLoad("no_scale_for_you.html"); 3195 RegisterMockedHttpURLLoad("no_scale_for_you.html");
3224 3196
3225 FixedLayoutTestWebViewClient client; 3197 FixedLayoutTestWebViewClient client;
3226 client.screen_info_.device_scale_factor = 1; 3198 client.screen_info_.device_scale_factor = 1;
3227 int viewport_width = 640; 3199 int viewport_width = 640;
3228 int viewport_height = 480; 3200 int viewport_height = 480;
3229 3201
3230 FrameTestHelpers::WebViewHelper web_view_helper; 3202 FrameTestHelpers::WebViewHelper web_view_helper;
3231 web_view_helper.InitializeAndLoad(base_url_ + "no_scale_for_you.html", true, 3203 web_view_helper.InitializeAndLoad(base_url_ + "no_scale_for_you.html", true,
3232 nullptr, &client, nullptr, 3204 nullptr, &client, nullptr,
3233 EnableViewportSettings); 3205 ConfigureAndroid);
3234 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5); 3206 web_view_helper.WebView()->SetDefaultPageScaleLimits(0.25f, 5);
3235 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 3207 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
3236 3208
3237 EXPECT_EQ(2.0f, web_view_helper.WebView()->MinimumPageScaleFactor()); 3209 EXPECT_EQ(2.0f, web_view_helper.WebView()->MinimumPageScaleFactor());
3238 EXPECT_EQ(2.0f, web_view_helper.WebView()->MaximumPageScaleFactor()); 3210 EXPECT_EQ(2.0f, web_view_helper.WebView()->MaximumPageScaleFactor());
3239 3211
3240 web_view_helper.WebView()->SetIgnoreViewportTagScaleLimits(true); 3212 web_view_helper.WebView()->SetIgnoreViewportTagScaleLimits(true);
3241 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 3213 web_view_helper.WebView()->UpdateAllLifecyclePhases();
3242 3214
3243 EXPECT_EQ(1.0f, web_view_helper.WebView()->MinimumPageScaleFactor()); 3215 EXPECT_EQ(1.0f, web_view_helper.WebView()->MinimumPageScaleFactor());
(...skipping 3052 matching lines...) Expand 10 before | Expand all | Expand 10 after
6296 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) { 6268 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) {
6297 const std::string html_file = "disambiguation_popup_mobile_site.html"; 6269 const std::string html_file = "disambiguation_popup_mobile_site.html";
6298 RegisterMockedHttpURLLoad(html_file); 6270 RegisterMockedHttpURLLoad(html_file);
6299 6271
6300 DisambiguationPopupTestWebViewClient client; 6272 DisambiguationPopupTestWebViewClient client;
6301 6273
6302 // Make sure we initialize to minimum scale, even if the window size 6274 // Make sure we initialize to minimum scale, even if the window size
6303 // only becomes available after the load begins. 6275 // only becomes available after the load begins.
6304 FrameTestHelpers::WebViewHelper web_view_helper; 6276 FrameTestHelpers::WebViewHelper web_view_helper;
6305 web_view_helper.InitializeAndLoad(base_url_ + html_file, true, nullptr, 6277 web_view_helper.InitializeAndLoad(base_url_ + html_file, true, nullptr,
6306 &client, nullptr, EnableViewportSettings); 6278 &client, nullptr, ConfigureAndroid);
6307 web_view_helper.Resize(WebSize(1000, 1000)); 6279 web_view_helper.Resize(WebSize(1000, 1000));
6308 6280
6309 client.ResetTriggered(); 6281 client.ResetTriggered();
6310 web_view_helper.WebView()->HandleInputEvent(FatTap(0, 0)); 6282 web_view_helper.WebView()->HandleInputEvent(FatTap(0, 0));
6311 EXPECT_FALSE(client.Triggered()); 6283 EXPECT_FALSE(client.Triggered());
6312 6284
6313 client.ResetTriggered(); 6285 client.ResetTriggered();
6314 web_view_helper.WebView()->HandleInputEvent(FatTap(200, 115)); 6286 web_view_helper.WebView()->HandleInputEvent(FatTap(200, 115));
6315 EXPECT_FALSE(client.Triggered()); 6287 EXPECT_FALSE(client.Triggered());
6316 6288
(...skipping 13 matching lines...) Expand all
6330 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) { 6302 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) {
6331 const std::string html_file = "disambiguation_popup_viewport_site.html"; 6303 const std::string html_file = "disambiguation_popup_viewport_site.html";
6332 RegisterMockedHttpURLLoad(html_file); 6304 RegisterMockedHttpURLLoad(html_file);
6333 6305
6334 DisambiguationPopupTestWebViewClient client; 6306 DisambiguationPopupTestWebViewClient client;
6335 6307
6336 // Make sure we initialize to minimum scale, even if the window size 6308 // Make sure we initialize to minimum scale, even if the window size
6337 // only becomes available after the load begins. 6309 // only becomes available after the load begins.
6338 FrameTestHelpers::WebViewHelper web_view_helper; 6310 FrameTestHelpers::WebViewHelper web_view_helper;
6339 web_view_helper.InitializeAndLoad(base_url_ + html_file, true, nullptr, 6311 web_view_helper.InitializeAndLoad(base_url_ + html_file, true, nullptr,
6340 &client, nullptr, EnableViewportSettings); 6312 &client, nullptr, ConfigureAndroid);
6341 web_view_helper.Resize(WebSize(1000, 1000)); 6313 web_view_helper.Resize(WebSize(1000, 1000));
6342 6314
6343 client.ResetTriggered(); 6315 client.ResetTriggered();
6344 web_view_helper.WebView()->HandleInputEvent(FatTap(0, 0)); 6316 web_view_helper.WebView()->HandleInputEvent(FatTap(0, 0));
6345 EXPECT_FALSE(client.Triggered()); 6317 EXPECT_FALSE(client.Triggered());
6346 6318
6347 client.ResetTriggered(); 6319 client.ResetTriggered();
6348 web_view_helper.WebView()->HandleInputEvent(FatTap(200, 115)); 6320 web_view_helper.WebView()->HandleInputEvent(FatTap(200, 115));
6349 EXPECT_FALSE(client.Triggered()); 6321 EXPECT_FALSE(client.Triggered());
6350 6322
(...skipping 1549 matching lines...) Expand 10 before | Expand all | Expand 10 after
7900 true, &client); 7872 true, &client);
7901 7873
7902 EXPECT_EQ(1, client.CallCount()); 7874 EXPECT_EQ(1, client.CallCount());
7903 } 7875 }
7904 7876
7905 TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) { 7877 TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) {
7906 RegisterMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); 7878 RegisterMockedHttpURLLoad("fixed-position-in-fixed-viewport.html");
7907 FrameTestHelpers::WebViewHelper web_view_helper; 7879 FrameTestHelpers::WebViewHelper web_view_helper;
7908 web_view_helper.InitializeAndLoad( 7880 web_view_helper.InitializeAndLoad(
7909 base_url_ + "fixed-position-in-fixed-viewport.html", true, nullptr, 7881 base_url_ + "fixed-position-in-fixed-viewport.html", true, nullptr,
7910 nullptr, nullptr, EnableViewportSettings); 7882 nullptr, nullptr, ConfigureAndroid);
7911 7883
7912 WebViewBase* web_view = web_view_helper.WebView(); 7884 WebViewBase* web_view = web_view_helper.WebView();
7913 web_view_helper.Resize(WebSize(100, 100)); 7885 web_view_helper.Resize(WebSize(100, 100));
7914 7886
7915 Document* document = web_view->MainFrameImpl()->GetFrame()->GetDocument(); 7887 Document* document = web_view->MainFrameImpl()->GetFrame()->GetDocument();
7916 Element* bottom_fixed = document->getElementById("bottom-fixed"); 7888 Element* bottom_fixed = document->getElementById("bottom-fixed");
7917 Element* top_bottom_fixed = document->getElementById("top-bottom-fixed"); 7889 Element* top_bottom_fixed = document->getElementById("top-bottom-fixed");
7918 Element* right_fixed = document->getElementById("right-fixed"); 7890 Element* right_fixed = document->getElementById("right-fixed");
7919 Element* left_right_fixed = document->getElementById("left-right-fixed"); 7891 Element* left_right_fixed = document->getElementById("left-right-fixed");
7920 7892
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
8022 RegisterMockedHttpURLLoad("rtl-overview-mode.html"); 7994 RegisterMockedHttpURLLoad("rtl-overview-mode.html");
8023 7995
8024 FixedLayoutTestWebViewClient client; 7996 FixedLayoutTestWebViewClient client;
8025 client.screen_info_.device_scale_factor = 1; 7997 client.screen_info_.device_scale_factor = 1;
8026 int viewport_width = 640; 7998 int viewport_width = 640;
8027 int viewport_height = 480; 7999 int viewport_height = 480;
8028 8000
8029 FrameTestHelpers::WebViewHelper web_view_helper; 8001 FrameTestHelpers::WebViewHelper web_view_helper;
8030 web_view_helper.InitializeAndLoad(base_url_ + "rtl-overview-mode.html", true, 8002 web_view_helper.InitializeAndLoad(base_url_ + "rtl-overview-mode.html", true,
8031 nullptr, &client, nullptr, 8003 nullptr, &client, nullptr,
8032 EnableViewportSettings); 8004 ConfigureAndroid);
8033 web_view_helper.WebView()->SetInitialPageScaleOverride(-1); 8005 web_view_helper.WebView()->SetInitialPageScaleOverride(-1);
8034 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true); 8006 web_view_helper.WebView()->GetSettings()->SetWideViewportQuirkEnabled(true);
8035 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(true); 8007 web_view_helper.WebView()->GetSettings()->SetLoadWithOverviewMode(true);
8036 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true); 8008 web_view_helper.WebView()->GetSettings()->SetUseWideViewport(true);
8037 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 8009 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
8038 web_view_helper.WebView()->UpdateAllLifecyclePhases(); 8010 web_view_helper.WebView()->UpdateAllLifecyclePhases();
8039 8011
8040 LocalFrameView* frame_view = 8012 LocalFrameView* frame_view =
8041 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 8013 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
8042 EXPECT_LT(frame_view->MaximumScrollOffset().Width(), 0); 8014 EXPECT_LT(frame_view->MaximumScrollOffset().Width(), 0);
(...skipping 2964 matching lines...) Expand 10 before | Expand all | Expand 10 after
11007 10979
11008 // Ensure that the root layer -- whose size is ordinarily derived from the 10980 // Ensure that the root layer -- whose size is ordinarily derived from the
11009 // content size -- maintains a minimum height matching the viewport in cases 10981 // content size -- maintains a minimum height matching the viewport in cases
11010 // where the content is smaller. 10982 // where the content is smaller.
11011 TEST_F(WebFrameTest, RootLayerMinimumHeight) { 10983 TEST_F(WebFrameTest, RootLayerMinimumHeight) {
11012 constexpr int kViewportWidth = 320; 10984 constexpr int kViewportWidth = 320;
11013 constexpr int kViewportHeight = 640; 10985 constexpr int kViewportHeight = 640;
11014 constexpr int kBrowserControlsHeight = 100; 10986 constexpr int kBrowserControlsHeight = 100;
11015 10987
11016 FrameTestHelpers::WebViewHelper web_view_helper; 10988 FrameTestHelpers::WebViewHelper web_view_helper;
11017 web_view_helper.Initialize(true, nullptr, nullptr, nullptr, 10989 web_view_helper.Initialize(true, nullptr, nullptr, nullptr, ConfigureAndroid);
11018 EnableViewportSettings);
11019 WebViewBase* web_view = web_view_helper.WebView(); 10990 WebViewBase* web_view = web_view_helper.WebView();
11020 web_view->ResizeWithBrowserControls( 10991 web_view->ResizeWithBrowserControls(
11021 WebSize(kViewportWidth, kViewportHeight - kBrowserControlsHeight), 10992 WebSize(kViewportWidth, kViewportHeight - kBrowserControlsHeight),
11022 kBrowserControlsHeight, true); 10993 kBrowserControlsHeight, true);
11023 10994
11024 InitializeWithHTML(*web_view->MainFrameImpl()->GetFrame(), 10995 InitializeWithHTML(
11025 "<!DOCTYPE html>" 10996 *web_view->MainFrameImpl()->GetFrame(),
11026 "<style>" 10997 "<!DOCTYPE html>"
11027 " html, body {width:100%;height:540px;margin:0px}" 10998 "<meta name='viewport' content='width=device-width, initial-scale=1'>"
11028 " #elem {" 10999 "<style>"
11029 " overflow: scroll;" 11000 " html, body {width:100%;height:540px;margin:0px}"
11030 " width: 100px;" 11001 " #elem {"
11031 " height: 10px;" 11002 " overflow: scroll;"
11032 " position: fixed;" 11003 " width: 100px;"
11033 " left: 0px;" 11004 " height: 10px;"
11034 " bottom: 0px;" 11005 " position: fixed;"
11035 " }" 11006 " left: 0px;"
11036 "</style>" 11007 " bottom: 0px;"
11037 "<div id='elem'></div>"); 11008 " }"
11009 "</style>"
11010 "<div id='elem'></div>");
11038 web_view->UpdateAllLifecyclePhases(); 11011 web_view->UpdateAllLifecyclePhases();
11039 11012
11040 Document* document = web_view->MainFrameImpl()->GetFrame()->GetDocument(); 11013 Document* document = web_view->MainFrameImpl()->GetFrame()->GetDocument();
11041 LocalFrameView* frame_view = web_view->MainFrameImpl()->GetFrameView(); 11014 LocalFrameView* frame_view = web_view->MainFrameImpl()->GetFrameView();
11042 PaintLayerCompositor* compositor = 11015 PaintLayerCompositor* compositor =
11043 frame_view->GetLayoutViewItem().Compositor(); 11016 frame_view->GetLayoutViewItem().Compositor();
11044 11017
11045 EXPECT_EQ(kViewportHeight - kBrowserControlsHeight, 11018 EXPECT_EQ(kViewportHeight - kBrowserControlsHeight,
11046 compositor->RootLayer()->BoundingBoxForCompositing().Height()); 11019 compositor->RootLayer()->BoundingBoxForCompositing().Height());
11047 11020
(...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after
12239 if (obj->IsText()) { 12212 if (obj->IsText()) {
12240 LayoutText* layout_text = ToLayoutText(obj); 12213 LayoutText* layout_text = ToLayoutText(obj);
12241 text = layout_text->GetText(); 12214 text = layout_text->GetText();
12242 break; 12215 break;
12243 } 12216 }
12244 } 12217 }
12245 EXPECT_EQ("foo alt", text.Utf8()); 12218 EXPECT_EQ("foo alt", text.Utf8());
12246 } 12219 }
12247 12220
12248 } // namespace blink 12221 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/web/tests/data/overscroll/div-overscroll.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698