| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |