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 1171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 FixedLayoutTestWebViewClient client; | 1182 FixedLayoutTestWebViewClient client; |
1183 client.m_screenInfo.deviceScaleFactor = 1; | 1183 client.m_screenInfo.deviceScaleFactor = 1; |
1184 int viewportWidth = 1280; | 1184 int viewportWidth = 1280; |
1185 int viewportHeight = 0; | 1185 int viewportHeight = 0; |
1186 | 1186 |
1187 FrameTestHelpers::WebViewHelper webViewHelper; | 1187 FrameTestHelpers::WebViewHelper webViewHelper; |
1188 webViewHelper.initialize(true, nullptr, &client, nullptr, | 1188 webViewHelper.initialize(true, nullptr, &client, nullptr, |
1189 enableViewportSettings); | 1189 enableViewportSettings); |
1190 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1190 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1191 | 1191 |
1192 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1192 EXPECT_EQ(viewportWidth, |
1193 ->mainFrameImpl() | 1193 webViewHelper.webView() |
1194 ->frameView() | 1194 ->mainFrameImpl() |
1195 ->layoutSize() | 1195 ->frameView() |
1196 .width()); | 1196 ->layoutSize() |
1197 EXPECT_EQ(viewportHeight, webViewHelper.webView() | 1197 .width()); |
1198 ->mainFrameImpl() | 1198 EXPECT_EQ(viewportHeight, |
1199 ->frameView() | 1199 webViewHelper.webView() |
1200 ->layoutSize() | 1200 ->mainFrameImpl() |
1201 .height()); | 1201 ->frameView() |
| 1202 ->layoutSize() |
| 1203 .height()); |
1202 } | 1204 } |
1203 | 1205 |
1204 TEST_P(ParameterizedWebFrameTest, | 1206 TEST_P(ParameterizedWebFrameTest, |
1205 DeviceScaleFactorUsesDefaultWithoutViewportTag) { | 1207 DeviceScaleFactorUsesDefaultWithoutViewportTag) { |
1206 registerMockedHttpURLLoad("no_viewport_tag.html"); | 1208 registerMockedHttpURLLoad("no_viewport_tag.html"); |
1207 | 1209 |
1208 int viewportWidth = 640; | 1210 int viewportWidth = 640; |
1209 int viewportHeight = 480; | 1211 int viewportHeight = 480; |
1210 | 1212 |
1211 FixedLayoutTestWebViewClient client; | 1213 FixedLayoutTestWebViewClient client; |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1390 FrameTestHelpers::WebViewHelper webViewHelper; | 1392 FrameTestHelpers::WebViewHelper webViewHelper; |
1391 webViewHelper.initializeAndLoad( | 1393 webViewHelper.initializeAndLoad( |
1392 m_baseURL + "viewport-auto-initial-scale.html", true, nullptr, &client, | 1394 m_baseURL + "viewport-auto-initial-scale.html", true, nullptr, &client, |
1393 nullptr, enableViewportSettings); | 1395 nullptr, enableViewportSettings); |
1394 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1396 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1395 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1397 webViewHelper.webView()->settings()->setUseWideViewport(false); |
1396 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1398 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1397 | 1399 |
1398 // The page sets viewport width to 3000, but with UseWideViewport == false is | 1400 // The page sets viewport width to 3000, but with UseWideViewport == false is |
1399 // must be ignored. | 1401 // must be ignored. |
1400 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1402 EXPECT_EQ(viewportWidth, |
1401 ->mainFrameImpl() | 1403 webViewHelper.webView() |
1402 ->frameView() | 1404 ->mainFrameImpl() |
1403 ->contentsSize() | 1405 ->frameView() |
1404 .width()); | 1406 ->contentsSize() |
1405 EXPECT_EQ(viewportHeight, webViewHelper.webView() | 1407 .width()); |
1406 ->mainFrameImpl() | 1408 EXPECT_EQ(viewportHeight, |
1407 ->frameView() | 1409 webViewHelper.webView() |
1408 ->contentsSize() | 1410 ->mainFrameImpl() |
1409 .height()); | 1411 ->frameView() |
| 1412 ->contentsSize() |
| 1413 .height()); |
1410 } | 1414 } |
1411 | 1415 |
1412 TEST_P(ParameterizedWebFrameTest, | 1416 TEST_P(ParameterizedWebFrameTest, |
1413 NoWideViewportIgnoresPageViewportWidthButAccountsScale) { | 1417 NoWideViewportIgnoresPageViewportWidthButAccountsScale) { |
1414 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1418 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
1415 | 1419 |
1416 FixedLayoutTestWebViewClient client; | 1420 FixedLayoutTestWebViewClient client; |
1417 client.m_screenInfo.deviceScaleFactor = 1; | 1421 client.m_screenInfo.deviceScaleFactor = 1; |
1418 int viewportWidth = 640; | 1422 int viewportWidth = 640; |
1419 int viewportHeight = 480; | 1423 int viewportHeight = 480; |
1420 | 1424 |
1421 FrameTestHelpers::WebViewHelper webViewHelper; | 1425 FrameTestHelpers::WebViewHelper webViewHelper; |
1422 webViewHelper.initializeAndLoad( | 1426 webViewHelper.initializeAndLoad( |
1423 m_baseURL + "viewport-wide-2x-initial-scale.html", true, nullptr, &client, | 1427 m_baseURL + "viewport-wide-2x-initial-scale.html", true, nullptr, &client, |
1424 nullptr, enableViewportSettings); | 1428 nullptr, enableViewportSettings); |
1425 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1429 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1426 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1430 webViewHelper.webView()->settings()->setUseWideViewport(false); |
1427 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1431 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1428 | 1432 |
1429 // The page sets viewport width to 3000, but with UseWideViewport == false it | 1433 // The page sets viewport width to 3000, but with UseWideViewport == false it |
1430 // must be ignored while the initial scale specified by the page must be | 1434 // must be ignored while the initial scale specified by the page must be |
1431 // accounted. | 1435 // accounted. |
1432 EXPECT_EQ(viewportWidth / 2, webViewHelper.webView() | 1436 EXPECT_EQ(viewportWidth / 2, |
1433 ->mainFrameImpl() | 1437 webViewHelper.webView() |
1434 ->frameView() | 1438 ->mainFrameImpl() |
1435 ->contentsSize() | 1439 ->frameView() |
1436 .width()); | 1440 ->contentsSize() |
1437 EXPECT_EQ(viewportHeight / 2, webViewHelper.webView() | 1441 .width()); |
1438 ->mainFrameImpl() | 1442 EXPECT_EQ(viewportHeight / 2, |
1439 ->frameView() | 1443 webViewHelper.webView() |
1440 ->contentsSize() | 1444 ->mainFrameImpl() |
1441 .height()); | 1445 ->frameView() |
| 1446 ->contentsSize() |
| 1447 .height()); |
1442 } | 1448 } |
1443 | 1449 |
1444 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) { | 1450 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) { |
1445 registerMockedHttpURLLoad("no_viewport_tag.html"); | 1451 registerMockedHttpURLLoad("no_viewport_tag.html"); |
1446 | 1452 |
1447 FixedLayoutTestWebViewClient client; | 1453 FixedLayoutTestWebViewClient client; |
1448 client.m_screenInfo.deviceScaleFactor = 1; | 1454 client.m_screenInfo.deviceScaleFactor = 1; |
1449 int viewportWidth = 640; | 1455 int viewportWidth = 640; |
1450 int viewportHeight = 480; | 1456 int viewportHeight = 480; |
1451 | 1457 |
1452 FrameTestHelpers::WebViewHelper webViewHelper; | 1458 FrameTestHelpers::WebViewHelper webViewHelper; |
1453 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, | 1459 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, |
1454 nullptr, &client, nullptr, | 1460 nullptr, &client, nullptr, |
1455 enableViewportSettings); | 1461 enableViewportSettings); |
1456 applyViewportStyleOverride(&webViewHelper); | 1462 applyViewportStyleOverride(&webViewHelper); |
1457 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1463 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1458 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1464 webViewHelper.webView()->settings()->setUseWideViewport(true); |
1459 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1465 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1460 | 1466 |
1461 EXPECT_EQ(980, webViewHelper.webView() | 1467 EXPECT_EQ(980, |
1462 ->mainFrameImpl() | 1468 webViewHelper.webView() |
1463 ->frameView() | 1469 ->mainFrameImpl() |
1464 ->contentsSize() | 1470 ->frameView() |
1465 .width()); | 1471 ->contentsSize() |
1466 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webView() | 1472 .width()); |
1467 ->mainFrameImpl() | 1473 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, |
1468 ->frameView() | 1474 webViewHelper.webView() |
1469 ->contentsSize() | 1475 ->mainFrameImpl() |
1470 .height()); | 1476 ->frameView() |
| 1477 ->contentsSize() |
| 1478 .height()); |
1471 } | 1479 } |
1472 | 1480 |
1473 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) { | 1481 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) { |
1474 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); | 1482 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); |
1475 | 1483 |
1476 FixedLayoutTestWebViewClient client; | 1484 FixedLayoutTestWebViewClient client; |
1477 client.m_screenInfo.deviceScaleFactor = 1; | 1485 client.m_screenInfo.deviceScaleFactor = 1; |
1478 int viewportWidth = 640; | 1486 int viewportWidth = 640; |
1479 int viewportHeight = 480; | 1487 int viewportHeight = 480; |
1480 | 1488 |
1481 FrameTestHelpers::WebViewHelper webViewHelper; | 1489 FrameTestHelpers::WebViewHelper webViewHelper; |
1482 webViewHelper.initialize(true, nullptr, &client, nullptr, | 1490 webViewHelper.initialize(true, nullptr, &client, nullptr, |
1483 enableViewportSettings); | 1491 enableViewportSettings); |
1484 applyViewportStyleOverride(&webViewHelper); | 1492 applyViewportStyleOverride(&webViewHelper); |
1485 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1493 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1486 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1494 webViewHelper.webView()->settings()->setUseWideViewport(true); |
1487 FrameTestHelpers::loadFrame( | 1495 FrameTestHelpers::loadFrame( |
1488 webViewHelper.webView()->mainFrame(), | 1496 webViewHelper.webView()->mainFrame(), |
1489 m_baseURL + "viewport/viewport-legacy-xhtmlmp.html"); | 1497 m_baseURL + "viewport/viewport-legacy-xhtmlmp.html"); |
1490 | 1498 |
1491 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1499 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1492 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1500 EXPECT_EQ(viewportWidth, |
1493 ->mainFrameImpl() | 1501 webViewHelper.webView() |
1494 ->frameView() | 1502 ->mainFrameImpl() |
1495 ->contentsSize() | 1503 ->frameView() |
1496 .width()); | 1504 ->contentsSize() |
1497 EXPECT_EQ(viewportHeight, webViewHelper.webView() | 1505 .width()); |
1498 ->mainFrameImpl() | 1506 EXPECT_EQ(viewportHeight, |
1499 ->frameView() | 1507 webViewHelper.webView() |
1500 ->contentsSize() | 1508 ->mainFrameImpl() |
1501 .height()); | 1509 ->frameView() |
| 1510 ->contentsSize() |
| 1511 .height()); |
1502 } | 1512 } |
1503 | 1513 |
1504 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) { | 1514 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) { |
1505 registerMockedHttpURLLoad("viewport-height-1000.html"); | 1515 registerMockedHttpURLLoad("viewport-height-1000.html"); |
1506 | 1516 |
1507 FixedLayoutTestWebViewClient client; | 1517 FixedLayoutTestWebViewClient client; |
1508 client.m_screenInfo.deviceScaleFactor = 1; | 1518 client.m_screenInfo.deviceScaleFactor = 1; |
1509 int viewportWidth = 640; | 1519 int viewportWidth = 640; |
1510 int viewportHeight = 480; | 1520 int viewportHeight = 480; |
1511 | 1521 |
1512 FrameTestHelpers::WebViewHelper webViewHelper; | 1522 FrameTestHelpers::WebViewHelper webViewHelper; |
1513 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", true, | 1523 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", true, |
1514 nullptr, &client, nullptr, | 1524 nullptr, &client, nullptr, |
1515 enableViewportSettings); | 1525 enableViewportSettings); |
1516 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1526 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1517 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1527 webViewHelper.webView()->settings()->setUseWideViewport(false); |
1518 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1528 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1519 | 1529 |
1520 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1530 EXPECT_EQ(viewportWidth, |
1521 ->mainFrameImpl() | 1531 webViewHelper.webView() |
1522 ->frameView() | 1532 ->mainFrameImpl() |
1523 ->contentsSize() | 1533 ->frameView() |
1524 .width()); | 1534 ->contentsSize() |
| 1535 .width()); |
1525 } | 1536 } |
1526 | 1537 |
1527 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) { | 1538 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) { |
1528 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); | 1539 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); |
1529 | 1540 |
1530 FixedLayoutTestWebViewClient client; | 1541 FixedLayoutTestWebViewClient client; |
1531 client.m_screenInfo.deviceScaleFactor = 1; | 1542 client.m_screenInfo.deviceScaleFactor = 1; |
1532 int viewportWidth = 640; | 1543 int viewportWidth = 640; |
1533 int viewportHeight = 480; | 1544 int viewportHeight = 480; |
1534 | 1545 |
1535 FrameTestHelpers::WebViewHelper webViewHelper; | 1546 FrameTestHelpers::WebViewHelper webViewHelper; |
1536 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html", | 1547 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html", |
1537 true, nullptr, &client, nullptr, | 1548 true, nullptr, &client, nullptr, |
1538 enableViewportSettings); | 1549 enableViewportSettings); |
1539 applyViewportStyleOverride(&webViewHelper); | 1550 applyViewportStyleOverride(&webViewHelper); |
1540 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1551 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1541 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1552 webViewHelper.webView()->settings()->setUseWideViewport(true); |
1542 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1553 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1543 | 1554 |
1544 EXPECT_EQ(980, webViewHelper.webView() | 1555 EXPECT_EQ(980, |
1545 ->mainFrameImpl() | 1556 webViewHelper.webView() |
1546 ->frameView() | 1557 ->mainFrameImpl() |
1547 ->contentsSize() | 1558 ->frameView() |
1548 .width()); | 1559 ->contentsSize() |
1549 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webView() | 1560 .width()); |
1550 ->mainFrameImpl() | 1561 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, |
1551 ->frameView() | 1562 webViewHelper.webView() |
1552 ->contentsSize() | 1563 ->mainFrameImpl() |
1553 .height()); | 1564 ->frameView() |
| 1565 ->contentsSize() |
| 1566 .height()); |
1554 } | 1567 } |
1555 | 1568 |
1556 TEST_P(ParameterizedWebFrameTest, | 1569 TEST_P(ParameterizedWebFrameTest, |
1557 PageViewportInitialScaleOverridesLoadWithOverviewMode) { | 1570 PageViewportInitialScaleOverridesLoadWithOverviewMode) { |
1558 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1571 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
1559 | 1572 |
1560 FixedLayoutTestWebViewClient client; | 1573 FixedLayoutTestWebViewClient client; |
1561 client.m_screenInfo.deviceScaleFactor = 1; | 1574 client.m_screenInfo.deviceScaleFactor = 1; |
1562 int viewportWidth = 640; | 1575 int viewportWidth = 640; |
1563 int viewportHeight = 480; | 1576 int viewportHeight = 480; |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1701 | 1714 |
1702 FrameTestHelpers::WebViewHelper webViewHelper; | 1715 FrameTestHelpers::WebViewHelper webViewHelper; |
1703 webViewHelper.initializeAndLoad("about:blank", true, nullptr, &client, | 1716 webViewHelper.initializeAndLoad("about:blank", true, nullptr, &client, |
1704 nullptr, enableViewportSettings); | 1717 nullptr, enableViewportSettings); |
1705 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1718 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
1706 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1719 webViewHelper.webView()->settings()->setUseWideViewport(false); |
1707 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1720 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
1708 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); | 1721 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); |
1709 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1722 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1710 | 1723 |
1711 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webView() | 1724 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, |
1712 ->mainFrameImpl() | 1725 webViewHelper.webView() |
1713 ->frameView() | 1726 ->mainFrameImpl() |
1714 ->contentsSize() | 1727 ->frameView() |
1715 .width()); | 1728 ->contentsSize() |
| 1729 .width()); |
1716 EXPECT_EQ(enforcedPageScaleFactor, | 1730 EXPECT_EQ(enforcedPageScaleFactor, |
1717 webViewHelper.webView()->pageScaleFactor()); | 1731 webViewHelper.webView()->pageScaleFactor()); |
1718 } | 1732 } |
1719 | 1733 |
1720 TEST_P(ParameterizedWebFrameTest, | 1734 TEST_P(ParameterizedWebFrameTest, |
1721 DocumentElementClientHeightWorksWithWrapContentMode) { | 1735 DocumentElementClientHeightWorksWithWrapContentMode) { |
1722 registerMockedHttpURLLoad("0-by-0.html"); | 1736 registerMockedHttpURLLoad("0-by-0.html"); |
1723 | 1737 |
1724 FixedLayoutTestWebViewClient client; | 1738 FixedLayoutTestWebViewClient client; |
1725 client.m_screenInfo.deviceScaleFactor = 1; | 1739 client.m_screenInfo.deviceScaleFactor = 1; |
(...skipping 21 matching lines...) Expand all Loading... |
1747 client.m_screenInfo.deviceScaleFactor = 1; | 1761 client.m_screenInfo.deviceScaleFactor = 1; |
1748 int viewportWidth = 640; | 1762 int viewportWidth = 640; |
1749 int viewportHeight = 480; | 1763 int viewportHeight = 480; |
1750 | 1764 |
1751 FrameTestHelpers::WebViewHelper webViewHelper; | 1765 FrameTestHelpers::WebViewHelper webViewHelper; |
1752 | 1766 |
1753 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, nullptr, | 1767 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, nullptr, |
1754 &client, nullptr, configureAndroid); | 1768 &client, nullptr, configureAndroid); |
1755 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 1769 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
1756 PaintLayerCompositor* compositor = webViewHelper.webView()->compositor(); | 1770 PaintLayerCompositor* compositor = webViewHelper.webView()->compositor(); |
1757 EXPECT_EQ(0, webViewHelper.webView() | 1771 EXPECT_EQ(0, |
1758 ->mainFrameImpl() | 1772 webViewHelper.webView() |
1759 ->frameView() | 1773 ->mainFrameImpl() |
1760 ->layoutSize() | 1774 ->frameView() |
1761 .width()); | 1775 ->layoutSize() |
1762 EXPECT_EQ(0, webViewHelper.webView() | 1776 .width()); |
1763 ->mainFrameImpl() | 1777 EXPECT_EQ(0, |
1764 ->frameView() | 1778 webViewHelper.webView() |
1765 ->layoutSize() | 1779 ->mainFrameImpl() |
1766 .height()); | 1780 ->frameView() |
| 1781 ->layoutSize() |
| 1782 .height()); |
1767 EXPECT_EQ(0.0, compositor->containerLayer()->size().width()); | 1783 EXPECT_EQ(0.0, compositor->containerLayer()->size().width()); |
1768 EXPECT_EQ(0.0, compositor->containerLayer()->size().height()); | 1784 EXPECT_EQ(0.0, compositor->containerLayer()->size().height()); |
1769 | 1785 |
1770 webViewHelper.resize(WebSize(viewportWidth, 0)); | 1786 webViewHelper.resize(WebSize(viewportWidth, 0)); |
1771 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1787 EXPECT_EQ(viewportWidth, |
1772 ->mainFrameImpl() | 1788 webViewHelper.webView() |
1773 ->frameView() | 1789 ->mainFrameImpl() |
1774 ->layoutSize() | 1790 ->frameView() |
1775 .width()); | 1791 ->layoutSize() |
1776 EXPECT_EQ(0, webViewHelper.webView() | 1792 .width()); |
1777 ->mainFrameImpl() | 1793 EXPECT_EQ(0, |
1778 ->frameView() | 1794 webViewHelper.webView() |
1779 ->layoutSize() | 1795 ->mainFrameImpl() |
1780 .height()); | 1796 ->frameView() |
| 1797 ->layoutSize() |
| 1798 .height()); |
1781 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); | 1799 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); |
1782 EXPECT_EQ(0.0, compositor->containerLayer()->size().height()); | 1800 EXPECT_EQ(0.0, compositor->containerLayer()->size().height()); |
1783 | 1801 |
1784 // The flag ForceZeroLayoutHeight will cause the following resize of viewport | 1802 // The flag ForceZeroLayoutHeight will cause the following resize of viewport |
1785 // height to be ignored by the outer viewport (the container layer of | 1803 // height to be ignored by the outer viewport (the container layer of |
1786 // LayerCompositor). The height of the visualViewport, however, is not | 1804 // LayerCompositor). The height of the visualViewport, however, is not |
1787 // affected. | 1805 // affected. |
1788 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1806 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1789 EXPECT_FALSE( | 1807 EXPECT_FALSE( |
1790 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); | 1808 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); |
1791 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 1809 EXPECT_EQ(viewportWidth, |
1792 ->mainFrameImpl() | 1810 webViewHelper.webView() |
1793 ->frameView() | 1811 ->mainFrameImpl() |
1794 ->layoutSize() | 1812 ->frameView() |
1795 .width()); | 1813 ->layoutSize() |
1796 EXPECT_EQ(0, webViewHelper.webView() | 1814 .width()); |
1797 ->mainFrameImpl() | 1815 EXPECT_EQ(0, |
1798 ->frameView() | 1816 webViewHelper.webView() |
1799 ->layoutSize() | 1817 ->mainFrameImpl() |
1800 .height()); | 1818 ->frameView() |
| 1819 ->layoutSize() |
| 1820 .height()); |
1801 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); | 1821 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); |
1802 EXPECT_EQ(viewportHeight, compositor->containerLayer()->size().height()); | 1822 EXPECT_EQ(viewportHeight, compositor->containerLayer()->size().height()); |
1803 | 1823 |
1804 LocalFrame* frame = webViewHelper.webView()->mainFrameImpl()->frame(); | 1824 LocalFrame* frame = webViewHelper.webView()->mainFrameImpl()->frame(); |
1805 VisualViewport& visualViewport = frame->page()->frameHost().visualViewport(); | 1825 VisualViewport& visualViewport = frame->page()->frameHost().visualViewport(); |
1806 EXPECT_EQ(viewportHeight, visualViewport.containerLayer()->size().height()); | 1826 EXPECT_EQ(viewportHeight, visualViewport.containerLayer()->size().height()); |
1807 EXPECT_TRUE( | 1827 EXPECT_TRUE( |
1808 visualViewport.containerLayer()->platformLayer()->masksToBounds()); | 1828 visualViewport.containerLayer()->platformLayer()->masksToBounds()); |
1809 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds()); | 1829 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds()); |
1810 } | 1830 } |
1811 | 1831 |
1812 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) { | 1832 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) { |
1813 registerMockedHttpURLLoad("200-by-300.html"); | 1833 registerMockedHttpURLLoad("200-by-300.html"); |
1814 | 1834 |
1815 FixedLayoutTestWebViewClient client; | 1835 FixedLayoutTestWebViewClient client; |
1816 client.m_screenInfo.deviceScaleFactor = 1; | 1836 client.m_screenInfo.deviceScaleFactor = 1; |
1817 int viewportWidth = 640; | 1837 int viewportWidth = 640; |
1818 int viewportHeight = 480; | 1838 int viewportHeight = 480; |
1819 | 1839 |
1820 FrameTestHelpers::WebViewHelper webViewHelper; | 1840 FrameTestHelpers::WebViewHelper webViewHelper; |
1821 | 1841 |
1822 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, | 1842 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, |
1823 &client, nullptr, enableViewportSettings); | 1843 &client, nullptr, enableViewportSettings); |
1824 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 1844 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
1825 | 1845 |
1826 EXPECT_LE(viewportHeight, webViewHelper.webView() | 1846 EXPECT_LE(viewportHeight, |
1827 ->mainFrameImpl() | 1847 webViewHelper.webView() |
1828 ->frameView() | 1848 ->mainFrameImpl() |
1829 ->layoutSize() | 1849 ->frameView() |
1830 .height()); | 1850 ->layoutSize() |
| 1851 .height()); |
1831 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 1852 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
1832 EXPECT_TRUE( | 1853 EXPECT_TRUE( |
1833 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); | 1854 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); |
1834 | 1855 |
1835 EXPECT_EQ(0, webViewHelper.webView() | 1856 EXPECT_EQ(0, |
1836 ->mainFrameImpl() | 1857 webViewHelper.webView() |
1837 ->frameView() | 1858 ->mainFrameImpl() |
1838 ->layoutSize() | 1859 ->frameView() |
1839 .height()); | 1860 ->layoutSize() |
| 1861 .height()); |
1840 | 1862 |
1841 webViewHelper.resize(WebSize(viewportWidth, viewportHeight * 2)); | 1863 webViewHelper.resize(WebSize(viewportWidth, viewportHeight * 2)); |
1842 EXPECT_FALSE( | 1864 EXPECT_FALSE( |
1843 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); | 1865 webViewHelper.webView()->mainFrameImpl()->frameView()->needsLayout()); |
1844 EXPECT_EQ(0, webViewHelper.webView() | 1866 EXPECT_EQ(0, |
1845 ->mainFrameImpl() | 1867 webViewHelper.webView() |
1846 ->frameView() | 1868 ->mainFrameImpl() |
1847 ->layoutSize() | 1869 ->frameView() |
1848 .height()); | 1870 ->layoutSize() |
| 1871 .height()); |
1849 | 1872 |
1850 webViewHelper.resize(WebSize(viewportWidth * 2, viewportHeight)); | 1873 webViewHelper.resize(WebSize(viewportWidth * 2, viewportHeight)); |
1851 EXPECT_EQ(0, webViewHelper.webView() | 1874 EXPECT_EQ(0, |
1852 ->mainFrameImpl() | 1875 webViewHelper.webView() |
1853 ->frameView() | 1876 ->mainFrameImpl() |
1854 ->layoutSize() | 1877 ->frameView() |
1855 .height()); | 1878 ->layoutSize() |
| 1879 .height()); |
1856 | 1880 |
1857 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(false); | 1881 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(false); |
1858 EXPECT_LE(viewportHeight, webViewHelper.webView() | 1882 EXPECT_LE(viewportHeight, |
1859 ->mainFrameImpl() | 1883 webViewHelper.webView() |
1860 ->frameView() | 1884 ->mainFrameImpl() |
1861 ->layoutSize() | 1885 ->frameView() |
1862 .height()); | 1886 ->layoutSize() |
| 1887 .height()); |
1863 } | 1888 } |
1864 | 1889 |
1865 TEST_F(WebFrameTest, ToggleViewportMetaOnOff) { | 1890 TEST_F(WebFrameTest, ToggleViewportMetaOnOff) { |
1866 registerMockedHttpURLLoad("viewport-device-width.html"); | 1891 registerMockedHttpURLLoad("viewport-device-width.html"); |
1867 | 1892 |
1868 FixedLayoutTestWebViewClient client; | 1893 FixedLayoutTestWebViewClient client; |
1869 client.m_screenInfo.deviceScaleFactor = 1; | 1894 client.m_screenInfo.deviceScaleFactor = 1; |
1870 int viewportWidth = 640; | 1895 int viewportWidth = 640; |
1871 int viewportHeight = 480; | 1896 int viewportHeight = 480; |
1872 | 1897 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1958 WebLocalFrameImpl* localFrame = FrameTestHelpers::createLocalChild( | 1983 WebLocalFrameImpl* localFrame = FrameTestHelpers::createLocalChild( |
1959 root, "frameName", nullptr, nullptr, nullptr, properties); | 1984 root, "frameName", nullptr, nullptr, nullptr, properties); |
1960 | 1985 |
1961 registerMockedHttpURLLoad("frame_owner_properties.html"); | 1986 registerMockedHttpURLLoad("frame_owner_properties.html"); |
1962 FrameTestHelpers::loadFrame(localFrame, | 1987 FrameTestHelpers::loadFrame(localFrame, |
1963 m_baseURL + "frame_owner_properties.html"); | 1988 m_baseURL + "frame_owner_properties.html"); |
1964 | 1989 |
1965 // Check if the LocalFrame has seen the marginwidth and marginheight | 1990 // Check if the LocalFrame has seen the marginwidth and marginheight |
1966 // properties. | 1991 // properties. |
1967 Document* childDocument = localFrame->frame()->document(); | 1992 Document* childDocument = localFrame->frame()->document(); |
1968 EXPECT_EQ(11, childDocument->firstBodyElement()->getIntegralAttribute( | 1993 EXPECT_EQ(11, |
1969 HTMLNames::marginwidthAttr)); | 1994 childDocument->firstBodyElement()->getIntegralAttribute( |
1970 EXPECT_EQ(22, childDocument->firstBodyElement()->getIntegralAttribute( | 1995 HTMLNames::marginwidthAttr)); |
1971 HTMLNames::marginheightAttr)); | 1996 EXPECT_EQ(22, |
| 1997 childDocument->firstBodyElement()->getIntegralAttribute( |
| 1998 HTMLNames::marginheightAttr)); |
1972 | 1999 |
1973 FrameView* frameView = localFrame->frameView(); | 2000 FrameView* frameView = localFrame->frameView(); |
1974 // Expect scrollbars to be enabled by default. | 2001 // Expect scrollbars to be enabled by default. |
1975 EXPECT_NE(nullptr, frameView->horizontalScrollbar()); | 2002 EXPECT_NE(nullptr, frameView->horizontalScrollbar()); |
1976 EXPECT_NE(nullptr, frameView->verticalScrollbar()); | 2003 EXPECT_NE(nullptr, frameView->verticalScrollbar()); |
1977 | 2004 |
1978 view->close(); | 2005 view->close(); |
1979 } | 2006 } |
1980 | 2007 |
1981 TEST_F(WebFrameTest, FrameOwnerPropertiesScrolling) { | 2008 TEST_F(WebFrameTest, FrameOwnerPropertiesScrolling) { |
1982 FrameTestHelpers::TestWebViewClient viewClient; | 2009 FrameTestHelpers::TestWebViewClient viewClient; |
1983 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 2010 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
1984 WebView* view = WebView::create(&viewClient, WebPageVisibilityStateVisible); | 2011 WebView* view = WebView::create(&viewClient, WebPageVisibilityStateVisible); |
1985 view->settings()->setJavaScriptEnabled(true); | 2012 view->settings()->setJavaScriptEnabled(true); |
1986 view->setMainFrame(remoteClient.frame()); | 2013 view->setMainFrame(remoteClient.frame()); |
1987 WebRemoteFrame* root = view->mainFrame()->toWebRemoteFrame(); | 2014 WebRemoteFrame* root = view->mainFrame()->toWebRemoteFrame(); |
1988 root->setReplicatedOrigin(SecurityOrigin::createUnique()); | 2015 root->setReplicatedOrigin(SecurityOrigin::createUnique()); |
1989 | 2016 |
1990 WebFrameOwnerProperties properties; | 2017 WebFrameOwnerProperties properties; |
1991 // Turn off scrolling in the subframe. | 2018 // Turn off scrolling in the subframe. |
1992 properties.scrollingMode = WebFrameOwnerProperties::ScrollingMode::AlwaysOff; | 2019 properties.scrollingMode = WebFrameOwnerProperties::ScrollingMode::AlwaysOff; |
1993 WebLocalFrameImpl* localFrame = FrameTestHelpers::createLocalChild( | 2020 WebLocalFrameImpl* localFrame = FrameTestHelpers::createLocalChild( |
1994 root, "frameName", nullptr, nullptr, nullptr, properties); | 2021 root, "frameName", nullptr, nullptr, nullptr, properties); |
1995 | 2022 |
1996 registerMockedHttpURLLoad("frame_owner_properties.html"); | 2023 registerMockedHttpURLLoad("frame_owner_properties.html"); |
1997 FrameTestHelpers::loadFrame(localFrame, | 2024 FrameTestHelpers::loadFrame(localFrame, |
1998 m_baseURL + "frame_owner_properties.html"); | 2025 m_baseURL + "frame_owner_properties.html"); |
1999 | 2026 |
2000 Document* childDocument = localFrame->frame()->document(); | 2027 Document* childDocument = localFrame->frame()->document(); |
2001 EXPECT_EQ(0, childDocument->firstBodyElement()->getIntegralAttribute( | 2028 EXPECT_EQ(0, |
2002 HTMLNames::marginwidthAttr)); | 2029 childDocument->firstBodyElement()->getIntegralAttribute( |
2003 EXPECT_EQ(0, childDocument->firstBodyElement()->getIntegralAttribute( | 2030 HTMLNames::marginwidthAttr)); |
2004 HTMLNames::marginheightAttr)); | 2031 EXPECT_EQ(0, |
| 2032 childDocument->firstBodyElement()->getIntegralAttribute( |
| 2033 HTMLNames::marginheightAttr)); |
2005 | 2034 |
2006 FrameView* frameView = | 2035 FrameView* frameView = |
2007 static_cast<WebLocalFrameImpl*>(localFrame)->frameView(); | 2036 static_cast<WebLocalFrameImpl*>(localFrame)->frameView(); |
2008 EXPECT_EQ(nullptr, frameView->horizontalScrollbar()); | 2037 EXPECT_EQ(nullptr, frameView->horizontalScrollbar()); |
2009 EXPECT_EQ(nullptr, frameView->verticalScrollbar()); | 2038 EXPECT_EQ(nullptr, frameView->verticalScrollbar()); |
2010 | 2039 |
2011 view->close(); | 2040 view->close(); |
2012 } | 2041 } |
2013 | 2042 |
2014 TEST_P(ParameterizedWebFrameTest, | 2043 TEST_P(ParameterizedWebFrameTest, |
(...skipping 10 matching lines...) Expand all Loading... |
2025 | 2054 |
2026 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, | 2055 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, |
2027 &client, nullptr, enableViewportSettings); | 2056 &client, nullptr, enableViewportSettings); |
2028 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 2057 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
2029 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2058 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2030 | 2059 |
2031 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2060 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2032 m_baseURL + "large-div.html"); | 2061 m_baseURL + "large-div.html"); |
2033 webViewHelper.webView()->updateAllLifecyclePhases(); | 2062 webViewHelper.webView()->updateAllLifecyclePhases(); |
2034 | 2063 |
2035 EXPECT_EQ(0, webViewHelper.webView() | 2064 EXPECT_EQ(0, |
2036 ->mainFrameImpl() | 2065 webViewHelper.webView() |
2037 ->frameView() | 2066 ->mainFrameImpl() |
2038 ->layoutSize() | 2067 ->frameView() |
2039 .height()); | 2068 ->layoutSize() |
| 2069 .height()); |
2040 } | 2070 } |
2041 | 2071 |
2042 TEST_P(ParameterizedWebFrameTest, | 2072 TEST_P(ParameterizedWebFrameTest, |
2043 SetForceZeroLayoutHeightWithWideViewportQuirk) { | 2073 SetForceZeroLayoutHeightWithWideViewportQuirk) { |
2044 registerMockedHttpURLLoad("200-by-300.html"); | 2074 registerMockedHttpURLLoad("200-by-300.html"); |
2045 | 2075 |
2046 FixedLayoutTestWebViewClient client; | 2076 FixedLayoutTestWebViewClient client; |
2047 client.m_screenInfo.deviceScaleFactor = 1; | 2077 client.m_screenInfo.deviceScaleFactor = 1; |
2048 int viewportWidth = 640; | 2078 int viewportWidth = 640; |
2049 int viewportHeight = 480; | 2079 int viewportHeight = 480; |
2050 | 2080 |
2051 FrameTestHelpers::WebViewHelper webViewHelper; | 2081 FrameTestHelpers::WebViewHelper webViewHelper; |
2052 | 2082 |
2053 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, | 2083 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, nullptr, |
2054 &client, nullptr, enableViewportSettings); | 2084 &client, nullptr, enableViewportSettings); |
2055 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2085 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2056 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2086 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2057 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 2087 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
2058 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2088 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2059 | 2089 |
2060 EXPECT_EQ(0, webViewHelper.webView() | 2090 EXPECT_EQ(0, |
2061 ->mainFrameImpl() | 2091 webViewHelper.webView() |
2062 ->frameView() | 2092 ->mainFrameImpl() |
2063 ->layoutSize() | 2093 ->frameView() |
2064 .height()); | 2094 ->layoutSize() |
| 2095 .height()); |
2065 } | 2096 } |
2066 | 2097 |
2067 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) { | 2098 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) { |
2068 registerMockedHttpURLLoad("wide_document_width_viewport.html"); | 2099 registerMockedHttpURLLoad("wide_document_width_viewport.html"); |
2069 registerMockedHttpURLLoad("white-1x1.png"); | 2100 registerMockedHttpURLLoad("white-1x1.png"); |
2070 | 2101 |
2071 FixedLayoutTestWebViewClient client; | 2102 FixedLayoutTestWebViewClient client; |
2072 client.m_screenInfo.deviceScaleFactor = 1; | 2103 client.m_screenInfo.deviceScaleFactor = 1; |
2073 int viewportWidth = 600; | 2104 int viewportWidth = 600; |
2074 int viewportHeight = 800; | 2105 int viewportHeight = 800; |
(...skipping 30 matching lines...) Expand all Loading... |
2105 nullptr, enableViewportSettings); | 2136 nullptr, enableViewportSettings); |
2106 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2137 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2107 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2138 webViewHelper.webView()->settings()->setUseWideViewport(false); |
2108 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 2139 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
2109 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2140 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2110 | 2141 |
2111 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2142 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2112 m_baseURL + "viewport-height-1000.html"); | 2143 m_baseURL + "viewport-height-1000.html"); |
2113 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2144 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2114 | 2145 |
2115 EXPECT_EQ(800, webViewHelper.webView() | 2146 EXPECT_EQ(800, |
2116 ->mainFrameImpl() | 2147 webViewHelper.webView() |
2117 ->frameView() | 2148 ->mainFrameImpl() |
2118 ->layoutSize() | 2149 ->frameView() |
2119 .height()); | 2150 ->layoutSize() |
| 2151 .height()); |
2120 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 2152 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
2121 } | 2153 } |
2122 | 2154 |
2123 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) { | 2155 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) { |
2124 registerMockedHttpURLLoad("viewport/viewport-30.html"); | 2156 registerMockedHttpURLLoad("viewport/viewport-30.html"); |
2125 | 2157 |
2126 FixedLayoutTestWebViewClient client; | 2158 FixedLayoutTestWebViewClient client; |
2127 client.m_screenInfo.deviceScaleFactor = 1; | 2159 client.m_screenInfo.deviceScaleFactor = 1; |
2128 int viewportWidth = 600; | 2160 int viewportWidth = 600; |
2129 int viewportHeight = 800; | 2161 int viewportHeight = 800; |
2130 | 2162 |
2131 FrameTestHelpers::WebViewHelper webViewHelper; | 2163 FrameTestHelpers::WebViewHelper webViewHelper; |
2132 webViewHelper.initializeAndLoad("about:blank", true, nullptr, &client, | 2164 webViewHelper.initializeAndLoad("about:blank", true, nullptr, &client, |
2133 nullptr, enableViewportSettings); | 2165 nullptr, enableViewportSettings); |
2134 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2166 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2135 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2167 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2136 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 2168 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
2137 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2169 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2138 | 2170 |
2139 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2171 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2140 m_baseURL + "viewport/viewport-30.html"); | 2172 m_baseURL + "viewport/viewport-30.html"); |
2141 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2173 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2142 | 2174 |
2143 EXPECT_EQ(600, webViewHelper.webView() | 2175 EXPECT_EQ(600, |
2144 ->mainFrameImpl() | 2176 webViewHelper.webView() |
2145 ->frameView() | 2177 ->mainFrameImpl() |
2146 ->layoutSize() | 2178 ->frameView() |
2147 .width()); | 2179 ->layoutSize() |
2148 EXPECT_EQ(800, webViewHelper.webView() | 2180 .width()); |
2149 ->mainFrameImpl() | 2181 EXPECT_EQ(800, |
2150 ->frameView() | 2182 webViewHelper.webView() |
2151 ->layoutSize() | 2183 ->mainFrameImpl() |
2152 .height()); | 2184 ->frameView() |
| 2185 ->layoutSize() |
| 2186 .height()); |
2153 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 2187 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
2154 | 2188 |
2155 // The magic number to snap to device-width is 320, so test that 321 is | 2189 // The magic number to snap to device-width is 320, so test that 321 is |
2156 // respected. | 2190 // respected. |
2157 Document* document = | 2191 Document* document = |
2158 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document(); | 2192 toLocalFrame(webViewHelper.webView()->page()->mainFrame())->document(); |
2159 ViewportDescription description = document->viewportDescription(); | 2193 ViewportDescription description = document->viewportDescription(); |
2160 description.minWidth = Length(321, blink::Fixed); | 2194 description.minWidth = Length(321, blink::Fixed); |
2161 description.maxWidth = Length(321, blink::Fixed); | 2195 description.maxWidth = Length(321, blink::Fixed); |
2162 document->setViewportDescription(description); | 2196 document->setViewportDescription(description); |
2163 webViewHelper.webView()->updateAllLifecyclePhases(); | 2197 webViewHelper.webView()->updateAllLifecyclePhases(); |
2164 EXPECT_EQ(321, webViewHelper.webView() | 2198 EXPECT_EQ(321, |
2165 ->mainFrameImpl() | 2199 webViewHelper.webView() |
2166 ->frameView() | 2200 ->mainFrameImpl() |
2167 ->layoutSize() | 2201 ->frameView() |
2168 .width()); | 2202 ->layoutSize() |
| 2203 .width()); |
2169 | 2204 |
2170 description.minWidth = Length(320, blink::Fixed); | 2205 description.minWidth = Length(320, blink::Fixed); |
2171 description.maxWidth = Length(320, blink::Fixed); | 2206 description.maxWidth = Length(320, blink::Fixed); |
2172 document->setViewportDescription(description); | 2207 document->setViewportDescription(description); |
2173 webViewHelper.webView()->updateAllLifecyclePhases(); | 2208 webViewHelper.webView()->updateAllLifecyclePhases(); |
2174 EXPECT_EQ(600, webViewHelper.webView() | 2209 EXPECT_EQ(600, |
2175 ->mainFrameImpl() | 2210 webViewHelper.webView() |
2176 ->frameView() | 2211 ->mainFrameImpl() |
2177 ->layoutSize() | 2212 ->frameView() |
2178 .width()); | 2213 ->layoutSize() |
| 2214 .width()); |
2179 | 2215 |
2180 description = document->viewportDescription(); | 2216 description = document->viewportDescription(); |
2181 description.maxHeight = Length(1000, blink::Fixed); | 2217 description.maxHeight = Length(1000, blink::Fixed); |
2182 document->setViewportDescription(description); | 2218 document->setViewportDescription(description); |
2183 webViewHelper.webView()->updateAllLifecyclePhases(); | 2219 webViewHelper.webView()->updateAllLifecyclePhases(); |
2184 EXPECT_EQ(1000, webViewHelper.webView() | 2220 EXPECT_EQ(1000, |
2185 ->mainFrameImpl() | 2221 webViewHelper.webView() |
2186 ->frameView() | 2222 ->mainFrameImpl() |
2187 ->layoutSize() | 2223 ->frameView() |
2188 .height()); | 2224 ->layoutSize() |
| 2225 .height()); |
2189 | 2226 |
2190 description.maxHeight = Length(320, blink::Fixed); | 2227 description.maxHeight = Length(320, blink::Fixed); |
2191 document->setViewportDescription(description); | 2228 document->setViewportDescription(description); |
2192 webViewHelper.webView()->updateAllLifecyclePhases(); | 2229 webViewHelper.webView()->updateAllLifecyclePhases(); |
2193 EXPECT_EQ(800, webViewHelper.webView() | 2230 EXPECT_EQ(800, |
2194 ->mainFrameImpl() | 2231 webViewHelper.webView() |
2195 ->frameView() | 2232 ->mainFrameImpl() |
2196 ->layoutSize() | 2233 ->frameView() |
2197 .height()); | 2234 ->layoutSize() |
| 2235 .height()); |
2198 } | 2236 } |
2199 | 2237 |
2200 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) { | 2238 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) { |
2201 registerMockedHttpURLLoad("viewport-zero-values.html"); | 2239 registerMockedHttpURLLoad("viewport-zero-values.html"); |
2202 | 2240 |
2203 FixedLayoutTestWebViewClient client; | 2241 FixedLayoutTestWebViewClient client; |
2204 client.m_screenInfo.deviceScaleFactor = 1; | 2242 client.m_screenInfo.deviceScaleFactor = 1; |
2205 int viewportWidth = 640; | 2243 int viewportWidth = 640; |
2206 int viewportHeight = 480; | 2244 int viewportHeight = 480; |
2207 | 2245 |
2208 FrameTestHelpers::WebViewHelper webViewHelper; | 2246 FrameTestHelpers::WebViewHelper webViewHelper; |
2209 webViewHelper.initialize(true, nullptr, &client, nullptr, | 2247 webViewHelper.initialize(true, nullptr, &client, nullptr, |
2210 enableViewportSettings); | 2248 enableViewportSettings); |
2211 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 2249 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
2212 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2250 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2213 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 2251 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
2214 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2252 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2215 m_baseURL + "viewport-zero-values.html"); | 2253 m_baseURL + "viewport-zero-values.html"); |
2216 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2254 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2217 | 2255 |
2218 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 2256 EXPECT_EQ(viewportWidth, |
2219 ->mainFrameImpl() | 2257 webViewHelper.webView() |
2220 ->frameView() | 2258 ->mainFrameImpl() |
2221 ->layoutSize() | 2259 ->frameView() |
2222 .width()); | 2260 ->layoutSize() |
| 2261 .width()); |
2223 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 2262 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
2224 | 2263 |
2225 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2264 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2226 webViewHelper.webView()->updateAllLifecyclePhases(); | 2265 webViewHelper.webView()->updateAllLifecyclePhases(); |
2227 EXPECT_EQ(viewportWidth, webViewHelper.webView() | 2266 EXPECT_EQ(viewportWidth, |
2228 ->mainFrameImpl() | 2267 webViewHelper.webView() |
2229 ->frameView() | 2268 ->mainFrameImpl() |
2230 ->layoutSize() | 2269 ->frameView() |
2231 .width()); | 2270 ->layoutSize() |
| 2271 .width()); |
2232 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 2272 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
2233 } | 2273 } |
2234 | 2274 |
2235 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) { | 2275 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) { |
2236 registerMockedHttpURLLoad("body-overflow-hidden.html"); | 2276 registerMockedHttpURLLoad("body-overflow-hidden.html"); |
2237 | 2277 |
2238 FixedLayoutTestWebViewClient client; | 2278 FixedLayoutTestWebViewClient client; |
2239 client.m_screenInfo.deviceScaleFactor = 1; | 2279 client.m_screenInfo.deviceScaleFactor = 1; |
2240 int viewportWidth = 640; | 2280 int viewportWidth = 640; |
2241 int viewportHeight = 480; | 2281 int viewportHeight = 480; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2306 | 2346 |
2307 FrameTestHelpers::WebViewHelper webViewHelper; | 2347 FrameTestHelpers::WebViewHelper webViewHelper; |
2308 webViewHelper.initialize(true, nullptr, &client, nullptr, | 2348 webViewHelper.initialize(true, nullptr, &client, nullptr, |
2309 enableViewportSettings); | 2349 enableViewportSettings); |
2310 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 2350 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
2311 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2351 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2312 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2352 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2313 m_baseURL + "viewport-nonzero-values.html"); | 2353 m_baseURL + "viewport-nonzero-values.html"); |
2314 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2354 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2315 | 2355 |
2316 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webView() | 2356 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, |
2317 ->mainFrameImpl() | 2357 webViewHelper.webView() |
2318 ->frameView() | 2358 ->mainFrameImpl() |
2319 ->layoutSize() | 2359 ->frameView() |
2320 .width()); | 2360 ->layoutSize() |
| 2361 .width()); |
2321 EXPECT_EQ(expectedPageScaleFactor, | 2362 EXPECT_EQ(expectedPageScaleFactor, |
2322 webViewHelper.webView()->pageScaleFactor()); | 2363 webViewHelper.webView()->pageScaleFactor()); |
2323 | 2364 |
2324 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2365 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2325 webViewHelper.webView()->updateAllLifecyclePhases(); | 2366 webViewHelper.webView()->updateAllLifecyclePhases(); |
2326 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webView() | 2367 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, |
2327 ->mainFrameImpl() | 2368 webViewHelper.webView() |
2328 ->frameView() | 2369 ->mainFrameImpl() |
2329 ->layoutSize() | 2370 ->frameView() |
2330 .width()); | 2371 ->layoutSize() |
| 2372 .width()); |
2331 EXPECT_EQ(expectedPageScaleFactor, | 2373 EXPECT_EQ(expectedPageScaleFactor, |
2332 webViewHelper.webView()->pageScaleFactor()); | 2374 webViewHelper.webView()->pageScaleFactor()); |
2333 } | 2375 } |
2334 | 2376 |
2335 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) { | 2377 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) { |
2336 registerMockedHttpURLLoad("fixed_layout.html"); | 2378 registerMockedHttpURLLoad("fixed_layout.html"); |
2337 | 2379 |
2338 FixedLayoutTestWebViewClient client; | 2380 FixedLayoutTestWebViewClient client; |
2339 client.m_screenInfo.deviceScaleFactor = 1; | 2381 client.m_screenInfo.deviceScaleFactor = 1; |
2340 // Small viewport to ensure there are always scrollbars. | 2382 // Small viewport to ensure there are always scrollbars. |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2390 int viewportWidth = 640; | 2432 int viewportWidth = 640; |
2391 int viewportHeight = 480; | 2433 int viewportHeight = 480; |
2392 | 2434 |
2393 FrameTestHelpers::WebViewHelper webViewHelper; | 2435 FrameTestHelpers::WebViewHelper webViewHelper; |
2394 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, | 2436 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, |
2395 nullptr, &client, nullptr, | 2437 nullptr, &client, nullptr, |
2396 enableViewportSettings); | 2438 enableViewportSettings); |
2397 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2439 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2398 | 2440 |
2399 webViewHelper.webView()->setPageScaleFactor(3); | 2441 webViewHelper.webView()->setPageScaleFactor(3); |
2400 EXPECT_EQ(3, toLocalFrame(webViewHelper.webView()->page()->mainFrame()) | 2442 EXPECT_EQ(3, |
2401 ->loader() | 2443 toLocalFrame(webViewHelper.webView()->page()->mainFrame()) |
2402 .currentItem() | 2444 ->loader() |
2403 ->pageScaleFactor()); | 2445 .currentItem() |
| 2446 ->pageScaleFactor()); |
2404 } | 2447 } |
2405 | 2448 |
2406 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) { | 2449 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) { |
2407 registerMockedHttpURLLoad("fixed_layout.html"); | 2450 registerMockedHttpURLLoad("fixed_layout.html"); |
2408 | 2451 |
2409 FixedLayoutTestWebViewClient client; | 2452 FixedLayoutTestWebViewClient client; |
2410 client.m_screenInfo.deviceScaleFactor = 1; | 2453 client.m_screenInfo.deviceScaleFactor = 1; |
2411 int viewportWidth = 640; | 2454 int viewportWidth = 640; |
2412 int viewportHeight = 480; | 2455 int viewportHeight = 480; |
2413 | 2456 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2479 int viewportHeight = 480; | 2522 int viewportHeight = 480; |
2480 | 2523 |
2481 FrameTestHelpers::WebViewHelper webViewHelper; | 2524 FrameTestHelpers::WebViewHelper webViewHelper; |
2482 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, | 2525 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, |
2483 nullptr, &client, nullptr, | 2526 nullptr, &client, nullptr, |
2484 enableViewportSettings); | 2527 enableViewportSettings); |
2485 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2528 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2486 | 2529 |
2487 webViewHelper.webView()->setPageScaleFactor(2); | 2530 webViewHelper.webView()->setPageScaleFactor(2); |
2488 | 2531 |
2489 EXPECT_EQ(980, toLocalFrame(webViewHelper.webView()->page()->mainFrame()) | 2532 EXPECT_EQ(980, |
2490 ->contentLayoutItem() | 2533 toLocalFrame(webViewHelper.webView()->page()->mainFrame()) |
2491 .documentRect() | 2534 ->contentLayoutItem() |
2492 .width()); | 2535 .documentRect() |
2493 EXPECT_EQ(980, webViewHelper.webView() | 2536 .width()); |
2494 ->mainFrameImpl() | 2537 EXPECT_EQ(980, |
2495 ->frameView() | 2538 webViewHelper.webView() |
2496 ->contentsSize() | 2539 ->mainFrameImpl() |
2497 .width()); | 2540 ->frameView() |
| 2541 ->contentsSize() |
| 2542 .width()); |
2498 } | 2543 } |
2499 | 2544 |
2500 TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) { | 2545 TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) { |
2501 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 2546 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
2502 | 2547 |
2503 FixedLayoutTestWebViewClient client; | 2548 FixedLayoutTestWebViewClient client; |
2504 // high-dpi = 240 | 2549 // high-dpi = 240 |
2505 float targetDpi = 240.0f; | 2550 float targetDpi = 240.0f; |
2506 float deviceScaleFactors[] = {1.0f, 4.0f / 3.0f, 2.0f}; | 2551 float deviceScaleFactors[] = {1.0f, 4.0f / 3.0f, 2.0f}; |
2507 int viewportWidth = 640; | 2552 int viewportWidth = 640; |
2508 int viewportHeight = 480; | 2553 int viewportHeight = 480; |
2509 | 2554 |
2510 for (size_t i = 0; i < WTF_ARRAY_LENGTH(deviceScaleFactors); ++i) { | 2555 for (size_t i = 0; i < WTF_ARRAY_LENGTH(deviceScaleFactors); ++i) { |
2511 float deviceScaleFactor = deviceScaleFactors[i]; | 2556 float deviceScaleFactor = deviceScaleFactors[i]; |
2512 float deviceDpi = deviceScaleFactor * 160.0f; | 2557 float deviceDpi = deviceScaleFactor * 160.0f; |
2513 client.m_screenInfo.deviceScaleFactor = deviceScaleFactor; | 2558 client.m_screenInfo.deviceScaleFactor = deviceScaleFactor; |
2514 | 2559 |
2515 FrameTestHelpers::WebViewHelper webViewHelper; | 2560 FrameTestHelpers::WebViewHelper webViewHelper; |
2516 webViewHelper.initializeAndLoad( | 2561 webViewHelper.initializeAndLoad( |
2517 m_baseURL + "viewport-target-densitydpi-high.html", true, nullptr, | 2562 m_baseURL + "viewport-target-densitydpi-high.html", true, nullptr, |
2518 &client, nullptr, enableViewportSettings); | 2563 &client, nullptr, enableViewportSettings); |
2519 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2564 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2520 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI( | 2565 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI( |
2521 true); | 2566 true); |
2522 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2567 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2523 | 2568 |
2524 // We need to account for the fact that logical pixels are unconditionally | 2569 // We need to account for the fact that logical pixels are unconditionally |
2525 // multiplied by deviceScaleFactor to produce physical pixels. | 2570 // multiplied by deviceScaleFactor to produce physical pixels. |
2526 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; | 2571 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; |
2527 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webView() | 2572 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, |
2528 ->mainFrameImpl() | 2573 webViewHelper.webView() |
2529 ->frameView() | 2574 ->mainFrameImpl() |
2530 ->layoutSize() | 2575 ->frameView() |
2531 .width(), | 2576 ->layoutSize() |
| 2577 .width(), |
2532 1.0f); | 2578 1.0f); |
2533 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView() | 2579 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, |
2534 ->mainFrameImpl() | 2580 webViewHelper.webView() |
2535 ->frameView() | 2581 ->mainFrameImpl() |
2536 ->layoutSize() | 2582 ->frameView() |
2537 .height(), | 2583 ->layoutSize() |
| 2584 .height(), |
2538 1.0f); | 2585 1.0f); |
2539 EXPECT_NEAR(1.0f / densityDpiScaleRatio, | 2586 EXPECT_NEAR(1.0f / densityDpiScaleRatio, |
2540 webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2587 webViewHelper.webView()->pageScaleFactor(), 0.01f); |
2541 } | 2588 } |
2542 } | 2589 } |
2543 | 2590 |
2544 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) { | 2591 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) { |
2545 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); | 2592 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
2546 | 2593 |
2547 float deviceScaleFactors[] = {1.0f, 4.0f / 3.0f, 2.0f}; | 2594 float deviceScaleFactors[] = {1.0f, 4.0f / 3.0f, 2.0f}; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2597 FrameTestHelpers::WebViewHelper webViewHelper; | 2644 FrameTestHelpers::WebViewHelper webViewHelper; |
2598 webViewHelper.initializeAndLoad( | 2645 webViewHelper.initializeAndLoad( |
2599 m_baseURL + "viewport-target-densitydpi-device-and-fixed-width.html", | 2646 m_baseURL + "viewport-target-densitydpi-device-and-fixed-width.html", |
2600 true, nullptr, &client, nullptr, enableViewportSettings); | 2647 true, nullptr, &client, nullptr, enableViewportSettings); |
2601 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2648 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2602 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI( | 2649 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI( |
2603 true); | 2650 true); |
2604 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2651 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2605 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2652 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2606 | 2653 |
2607 EXPECT_NEAR(viewportWidth, webViewHelper.webView() | 2654 EXPECT_NEAR(viewportWidth, |
2608 ->mainFrameImpl() | 2655 webViewHelper.webView() |
2609 ->frameView() | 2656 ->mainFrameImpl() |
2610 ->layoutSize() | 2657 ->frameView() |
2611 .width(), | 2658 ->layoutSize() |
| 2659 .width(), |
2612 1.0f); | 2660 1.0f); |
2613 EXPECT_NEAR(viewportHeight, webViewHelper.webView() | 2661 EXPECT_NEAR(viewportHeight, |
2614 ->mainFrameImpl() | 2662 webViewHelper.webView() |
2615 ->frameView() | 2663 ->mainFrameImpl() |
2616 ->layoutSize() | 2664 ->frameView() |
2617 .height(), | 2665 ->layoutSize() |
| 2666 .height(), |
2618 1.0f); | 2667 1.0f); |
2619 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2668 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
2620 } | 2669 } |
2621 } | 2670 } |
2622 | 2671 |
2623 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) { | 2672 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) { |
2624 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); | 2673 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); |
2625 | 2674 |
2626 FixedLayoutTestWebViewClient client; | 2675 FixedLayoutTestWebViewClient client; |
2627 client.m_screenInfo.deviceScaleFactor = 1.33f; | 2676 client.m_screenInfo.deviceScaleFactor = 1.33f; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2706 | 2755 |
2707 FrameTestHelpers::WebViewHelper webViewHelper; | 2756 FrameTestHelpers::WebViewHelper webViewHelper; |
2708 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, nullptr, | 2757 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, nullptr, |
2709 &client, nullptr, enableViewportSettings); | 2758 &client, nullptr, enableViewportSettings); |
2710 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); | 2759 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); |
2711 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2760 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2712 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2761 webViewHelper.webView()->settings()->setUseWideViewport(false); |
2713 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); | 2762 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor); |
2714 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2763 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2715 | 2764 |
2716 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webView() | 2765 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, |
2717 ->mainFrameImpl() | 2766 webViewHelper.webView() |
2718 ->frameView() | 2767 ->mainFrameImpl() |
2719 ->layoutSize() | 2768 ->frameView() |
2720 .width(), | 2769 ->layoutSize() |
| 2770 .width(), |
2721 1.0f); | 2771 1.0f); |
2722 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webView() | 2772 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, |
2723 ->mainFrameImpl() | 2773 webViewHelper.webView() |
2724 ->frameView() | 2774 ->mainFrameImpl() |
2725 ->layoutSize() | 2775 ->frameView() |
2726 .height(), | 2776 ->layoutSize() |
| 2777 .height(), |
2727 1.0f); | 2778 1.0f); |
2728 EXPECT_NEAR(enforcedPageScaleFactor, | 2779 EXPECT_NEAR(enforcedPageScaleFactor, |
2729 webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2780 webViewHelper.webView()->pageScaleFactor(), 0.01f); |
2730 } | 2781 } |
2731 | 2782 |
2732 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) { | 2783 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) { |
2733 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); | 2784 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); |
2734 | 2785 |
2735 FixedLayoutTestWebViewClient client; | 2786 FixedLayoutTestWebViewClient client; |
2736 int viewportWidth = 640; | 2787 int viewportWidth = 640; |
2737 int viewportHeight = 480; | 2788 int viewportHeight = 480; |
2738 | 2789 |
2739 FrameTestHelpers::WebViewHelper webViewHelper; | 2790 FrameTestHelpers::WebViewHelper webViewHelper; |
2740 webViewHelper.initializeAndLoad( | 2791 webViewHelper.initializeAndLoad( |
2741 m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, | 2792 m_baseURL + "viewport-initial-scale-and-user-scalable-no.html", true, |
2742 nullptr, &client, nullptr, enableViewportSettings); | 2793 nullptr, &client, nullptr, enableViewportSettings); |
2743 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk( | 2794 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk( |
2744 true); | 2795 true); |
2745 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2796 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2746 | 2797 |
2747 EXPECT_NEAR(viewportWidth, webViewHelper.webView() | 2798 EXPECT_NEAR(viewportWidth, |
2748 ->mainFrameImpl() | 2799 webViewHelper.webView() |
2749 ->frameView() | 2800 ->mainFrameImpl() |
2750 ->layoutSize() | 2801 ->frameView() |
2751 .width(), | 2802 ->layoutSize() |
| 2803 .width(), |
2752 1.0f); | 2804 1.0f); |
2753 EXPECT_NEAR(viewportHeight, webViewHelper.webView() | 2805 EXPECT_NEAR(viewportHeight, |
2754 ->mainFrameImpl() | 2806 webViewHelper.webView() |
2755 ->frameView() | 2807 ->mainFrameImpl() |
2756 ->layoutSize() | 2808 ->frameView() |
2757 .height(), | 2809 ->layoutSize() |
| 2810 .height(), |
2758 1.0f); | 2811 1.0f); |
2759 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2812 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
2760 } | 2813 } |
2761 | 2814 |
2762 TEST_P(ParameterizedWebFrameTest, | 2815 TEST_P(ParameterizedWebFrameTest, |
2763 NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport) { | 2816 NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport) { |
2764 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); | 2817 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"); |
2765 | 2818 |
2766 FixedLayoutTestWebViewClient client; | 2819 FixedLayoutTestWebViewClient client; |
2767 client.m_screenInfo.deviceScaleFactor = 1.33f; | 2820 client.m_screenInfo.deviceScaleFactor = 1.33f; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2809 FrameTestHelpers::WebViewHelper webViewHelper; | 2862 FrameTestHelpers::WebViewHelper webViewHelper; |
2810 webViewHelper.initializeAndLoad( | 2863 webViewHelper.initializeAndLoad( |
2811 m_baseURL + "viewport-2x-initial-scale-non-user-scalable.html", true, | 2864 m_baseURL + "viewport-2x-initial-scale-non-user-scalable.html", true, |
2812 nullptr, &client, nullptr, enableViewportSettings); | 2865 nullptr, &client, nullptr, enableViewportSettings); |
2813 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk( | 2866 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk( |
2814 true); | 2867 true); |
2815 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2868 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
2816 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2869 webViewHelper.webView()->settings()->setUseWideViewport(true); |
2817 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); | 2870 webViewHelper.resize(WebSize(viewportWidth, viewportHeight)); |
2818 | 2871 |
2819 EXPECT_NEAR(viewportWidth, webViewHelper.webView() | 2872 EXPECT_NEAR(viewportWidth, |
2820 ->mainFrameImpl() | 2873 webViewHelper.webView() |
2821 ->frameView() | 2874 ->mainFrameImpl() |
2822 ->layoutSize() | 2875 ->frameView() |
2823 .width(), | 2876 ->layoutSize() |
| 2877 .width(), |
2824 1.0f); | 2878 1.0f); |
2825 EXPECT_NEAR(viewportHeight, webViewHelper.webView() | 2879 EXPECT_NEAR(viewportHeight, |
2826 ->mainFrameImpl() | 2880 webViewHelper.webView() |
2827 ->frameView() | 2881 ->mainFrameImpl() |
2828 ->layoutSize() | 2882 ->frameView() |
2829 .height(), | 2883 ->layoutSize() |
| 2884 .height(), |
2830 1.0f); | 2885 1.0f); |
2831 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2886 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
2832 } | 2887 } |
2833 | 2888 |
2834 TEST_P(ParameterizedWebFrameTest, | 2889 TEST_P(ParameterizedWebFrameTest, |
2835 DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) { | 2890 DesktopPageCanBeZoomedInWhenWideViewportIsTurnedOff) { |
2836 registerMockedHttpURLLoad("no_viewport_tag.html"); | 2891 registerMockedHttpURLLoad("no_viewport_tag.html"); |
2837 | 2892 |
2838 FixedLayoutTestWebViewClient client; | 2893 FixedLayoutTestWebViewClient client; |
2839 int viewportWidth = 640; | 2894 int viewportWidth = 640; |
(...skipping 16 matching lines...) Expand all Loading... |
2856 TEST_P(ParameterizedWebFrameTest, AtViewportInsideAtMediaInitialViewport) { | 2911 TEST_P(ParameterizedWebFrameTest, AtViewportInsideAtMediaInitialViewport) { |
2857 registerMockedHttpURLLoad("viewport-inside-media.html"); | 2912 registerMockedHttpURLLoad("viewport-inside-media.html"); |
2858 | 2913 |
2859 FixedLayoutTestWebViewClient client; | 2914 FixedLayoutTestWebViewClient client; |
2860 FrameTestHelpers::WebViewHelper webViewHelper; | 2915 FrameTestHelpers::WebViewHelper webViewHelper; |
2861 webViewHelper.initializeAndLoad(m_baseURL + "viewport-inside-media.html", | 2916 webViewHelper.initializeAndLoad(m_baseURL + "viewport-inside-media.html", |
2862 true, nullptr, &client, nullptr, | 2917 true, nullptr, &client, nullptr, |
2863 enableViewportSettings); | 2918 enableViewportSettings); |
2864 webViewHelper.resize(WebSize(640, 480)); | 2919 webViewHelper.resize(WebSize(640, 480)); |
2865 | 2920 |
2866 EXPECT_EQ(2000, webViewHelper.webView() | 2921 EXPECT_EQ(2000, |
2867 ->mainFrameImpl() | 2922 webViewHelper.webView() |
2868 ->frameView() | 2923 ->mainFrameImpl() |
2869 ->layoutSize() | 2924 ->frameView() |
2870 .width()); | 2925 ->layoutSize() |
| 2926 .width()); |
2871 | 2927 |
2872 webViewHelper.resize(WebSize(1200, 480)); | 2928 webViewHelper.resize(WebSize(1200, 480)); |
2873 | 2929 |
2874 EXPECT_EQ(1200, webViewHelper.webView() | 2930 EXPECT_EQ(1200, |
2875 ->mainFrameImpl() | 2931 webViewHelper.webView() |
2876 ->frameView() | 2932 ->mainFrameImpl() |
2877 ->layoutSize() | 2933 ->frameView() |
2878 .width()); | 2934 ->layoutSize() |
| 2935 .width()); |
2879 } | 2936 } |
2880 | 2937 |
2881 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) { | 2938 TEST_P(ParameterizedWebFrameTest, AtViewportAffectingAtMediaRecalcCount) { |
2882 registerMockedHttpURLLoad("viewport-and-media.html"); | 2939 registerMockedHttpURLLoad("viewport-and-media.html"); |
2883 | 2940 |
2884 FixedLayoutTestWebViewClient client; | 2941 FixedLayoutTestWebViewClient client; |
2885 FrameTestHelpers::WebViewHelper webViewHelper; | 2942 FrameTestHelpers::WebViewHelper webViewHelper; |
2886 webViewHelper.initialize(true, nullptr, &client, nullptr, | 2943 webViewHelper.initialize(true, nullptr, &client, nullptr, |
2887 enableViewportSettings); | 2944 enableViewportSettings); |
2888 webViewHelper.resize(WebSize(640, 480)); | 2945 webViewHelper.resize(WebSize(640, 480)); |
2889 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), | 2946 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), |
2890 m_baseURL + "viewport-and-media.html"); | 2947 m_baseURL + "viewport-and-media.html"); |
2891 | 2948 |
2892 Document* document = | 2949 Document* document = |
2893 webViewHelper.webView()->mainFrameImpl()->frame()->document(); | 2950 webViewHelper.webView()->mainFrameImpl()->frame()->document(); |
2894 EXPECT_EQ(2000, webViewHelper.webView() | 2951 EXPECT_EQ(2000, |
2895 ->mainFrameImpl() | 2952 webViewHelper.webView() |
2896 ->frameView() | 2953 ->mainFrameImpl() |
2897 ->layoutSize() | 2954 ->frameView() |
2898 .width()); | 2955 ->layoutSize() |
| 2956 .width()); |
2899 | 2957 |
2900 // The styleForElementCount() should match the number of elements for a single | 2958 // The styleForElementCount() should match the number of elements for a single |
2901 // pass of computed styles construction for the document. | 2959 // pass of computed styles construction for the document. |
2902 EXPECT_EQ(10u, document->styleEngine().styleForElementCount()); | 2960 EXPECT_EQ(10u, document->styleEngine().styleForElementCount()); |
2903 EXPECT_EQ(Color(0, 128, 0), | 2961 EXPECT_EQ(Color(0, 128, 0), |
2904 document->body()->computedStyle()->visitedDependentColor( | 2962 document->body()->computedStyle()->visitedDependentColor( |
2905 CSSPropertyColor)); | 2963 CSSPropertyColor)); |
2906 } | 2964 } |
2907 | 2965 |
2908 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) { | 2966 TEST_P(ParameterizedWebFrameTest, AtViewportWithViewportLengths) { |
(...skipping 3384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6293 document->execCommand("InsertText", false, "_wellcome_.", exceptionState); | 6351 document->execCommand("InsertText", false, "_wellcome_.", exceptionState); |
6294 EXPECT_FALSE(exceptionState.hadException()); | 6352 EXPECT_FALSE(exceptionState.hadException()); |
6295 | 6353 |
6296 const int allTextBeginOffset = 0; | 6354 const int allTextBeginOffset = 0; |
6297 const int allTextLength = 11; | 6355 const int allTextLength = 11; |
6298 frame->selectRange(WebRange(allTextBeginOffset, allTextLength)); | 6356 frame->selectRange(WebRange(allTextBeginOffset, allTextLength)); |
6299 EphemeralRange selectionRange = | 6357 EphemeralRange selectionRange = |
6300 frame->frame()->selection().selection().toNormalizedEphemeralRange(); | 6358 frame->frame()->selection().selection().toNormalizedEphemeralRange(); |
6301 | 6359 |
6302 EXPECT_EQ(1, spellcheck.numberOfTimesChecked()); | 6360 EXPECT_EQ(1, spellcheck.numberOfTimesChecked()); |
6303 EXPECT_EQ(1U, document->markers() | 6361 EXPECT_EQ(1U, |
6304 .markersInRange(selectionRange, DocumentMarker::Spelling) | 6362 document->markers() |
6305 .size()); | 6363 .markersInRange(selectionRange, DocumentMarker::Spelling) |
| 6364 .size()); |
6306 | 6365 |
6307 frame->replaceMisspelledRange("welcome"); | 6366 frame->replaceMisspelledRange("welcome"); |
6308 EXPECT_EQ("_welcome_.", | 6367 EXPECT_EQ("_welcome_.", |
6309 WebFrameContentDumper::dumpWebViewAsText( | 6368 WebFrameContentDumper::dumpWebViewAsText( |
6310 webViewHelper.webView(), std::numeric_limits<size_t>::max()) | 6369 webViewHelper.webView(), std::numeric_limits<size_t>::max()) |
6311 .utf8()); | 6370 .utf8()); |
6312 } | 6371 } |
6313 | 6372 |
6314 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkers) { | 6373 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkers) { |
6315 registerMockedHttpURLLoad("spell.html"); | 6374 registerMockedHttpURLLoad("spell.html"); |
(...skipping 15 matching lines...) Expand all Loading... |
6331 EXPECT_FALSE(exceptionState.hadException()); | 6390 EXPECT_FALSE(exceptionState.hadException()); |
6332 | 6391 |
6333 frame->removeSpellingMarkers(); | 6392 frame->removeSpellingMarkers(); |
6334 | 6393 |
6335 const int allTextBeginOffset = 0; | 6394 const int allTextBeginOffset = 0; |
6336 const int allTextLength = 11; | 6395 const int allTextLength = 11; |
6337 frame->selectRange(WebRange(allTextBeginOffset, allTextLength)); | 6396 frame->selectRange(WebRange(allTextBeginOffset, allTextLength)); |
6338 EphemeralRange selectionRange = | 6397 EphemeralRange selectionRange = |
6339 frame->frame()->selection().selection().toNormalizedEphemeralRange(); | 6398 frame->frame()->selection().selection().toNormalizedEphemeralRange(); |
6340 | 6399 |
6341 EXPECT_EQ(0U, document->markers() | 6400 EXPECT_EQ(0U, |
6342 .markersInRange(selectionRange, DocumentMarker::Spelling) | 6401 document->markers() |
6343 .size()); | 6402 .markersInRange(selectionRange, DocumentMarker::Spelling) |
| 6403 .size()); |
6344 } | 6404 } |
6345 | 6405 |
6346 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkersUnderWords) { | 6406 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkersUnderWords) { |
6347 registerMockedHttpURLLoad("spell.html"); | 6407 registerMockedHttpURLLoad("spell.html"); |
6348 FrameTestHelpers::WebViewHelper webViewHelper; | 6408 FrameTestHelpers::WebViewHelper webViewHelper; |
6349 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 6409 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
6350 SpellCheckClient spellcheck; | 6410 SpellCheckClient spellcheck; |
6351 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 6411 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
6352 | 6412 |
6353 LocalFrame* frame = webViewHelper.webView()->mainFrameImpl()->frame(); | 6413 LocalFrame* frame = webViewHelper.webView()->mainFrameImpl()->frame(); |
(...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7340 TestDidNavigateCommitTypeWebFrameClient client; | 7400 TestDidNavigateCommitTypeWebFrameClient client; |
7341 FrameTestHelpers::WebViewHelper webViewHelper; | 7401 FrameTestHelpers::WebViewHelper webViewHelper; |
7342 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad( | 7402 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad( |
7343 m_baseURL + "push_state.html", true, &client); | 7403 m_baseURL + "push_state.html", true, &client); |
7344 Persistent<HistoryItem> item = | 7404 Persistent<HistoryItem> item = |
7345 toLocalFrame(webViewImpl->page()->mainFrame())->loader().currentItem(); | 7405 toLocalFrame(webViewImpl->page()->mainFrame())->loader().currentItem(); |
7346 runPendingTasks(); | 7406 runPendingTasks(); |
7347 | 7407 |
7348 toLocalFrame(webViewImpl->page()->mainFrame()) | 7408 toLocalFrame(webViewImpl->page()->mainFrame()) |
7349 ->loader() | 7409 ->loader() |
7350 .load( | 7410 .load(FrameLoadRequest( |
7351 FrameLoadRequest( | 7411 nullptr, |
7352 nullptr, FrameLoader::resourceRequestFromHistoryItem( | 7412 FrameLoader::resourceRequestFromHistoryItem( |
7353 item.get(), WebCachePolicy::UseProtocolCachePolicy)), | 7413 item.get(), WebCachePolicy::UseProtocolCachePolicy)), |
7354 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); | 7414 FrameLoadTypeBackForward, item.get(), HistorySameDocumentLoad); |
7355 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); | 7415 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); |
7356 } | 7416 } |
7357 | 7417 |
7358 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 7418 class TestHistoryWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
7359 public: | 7419 public: |
7360 TestHistoryWebFrameClient() { m_replacesCurrentHistoryItem = false; } | 7420 TestHistoryWebFrameClient() { m_replacesCurrentHistoryItem = false; } |
7361 | 7421 |
7362 void didStartProvisionalLoad(WebDataSource* dataSource) { | 7422 void didStartProvisionalLoad(WebDataSource* dataSource) { |
7363 m_replacesCurrentHistoryItem = dataSource->replacesCurrentHistoryItem(); | 7423 m_replacesCurrentHistoryItem = dataSource->replacesCurrentHistoryItem(); |
7364 } | 7424 } |
(...skipping 1733 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9098 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame); | 9158 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame); |
9099 EXPECT_EQ(uniqueName.utf8(), | 9159 EXPECT_EQ(uniqueName.utf8(), |
9100 WebString(remoteFrame->frame()->tree().uniqueName()).utf8()); | 9160 WebString(remoteFrame->frame()->tree().uniqueName()).utf8()); |
9101 | 9161 |
9102 // Swap back to a LocalFrame. | 9162 // Swap back to a LocalFrame. |
9103 RemoteToLocalSwapWebFrameClient client(remoteFrame); | 9163 RemoteToLocalSwapWebFrameClient client(remoteFrame); |
9104 WebLocalFrame* localFrame = WebLocalFrame::createProvisional( | 9164 WebLocalFrame* localFrame = WebLocalFrame::createProvisional( |
9105 &client, nullptr, nullptr, remoteFrame, WebSandboxFlags::None); | 9165 &client, nullptr, nullptr, remoteFrame, WebSandboxFlags::None); |
9106 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html"); | 9166 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html"); |
9107 EXPECT_EQ(uniqueName.utf8(), localFrame->uniqueName().utf8()); | 9167 EXPECT_EQ(uniqueName.utf8(), localFrame->uniqueName().utf8()); |
9108 EXPECT_EQ(uniqueName.utf8(), WebString(toWebLocalFrameImpl(localFrame) | 9168 EXPECT_EQ(uniqueName.utf8(), |
9109 ->frame() | 9169 WebString(toWebLocalFrameImpl(localFrame) |
9110 ->loader() | 9170 ->frame() |
9111 .currentItem() | 9171 ->loader() |
9112 ->target()) | 9172 .currentItem() |
9113 .utf8()); | 9173 ->target()) |
| 9174 .utf8()); |
9114 | 9175 |
9115 // Repeat with no name on the frame. | 9176 // Repeat with no name on the frame. |
9116 // (note that uniqueName is immutable after first real commit). | 9177 // (note that uniqueName is immutable after first real commit). |
9117 localFrame->setName(""); | 9178 localFrame->setName(""); |
9118 WebString uniqueName2 = localFrame->uniqueName(); | 9179 WebString uniqueName2 = localFrame->uniqueName(); |
9119 EXPECT_EQ("frame1", uniqueName2.utf8()); | 9180 EXPECT_EQ("frame1", uniqueName2.utf8()); |
9120 | 9181 |
9121 FrameTestHelpers::TestWebRemoteFrameClient remoteFrameClient2; | 9182 FrameTestHelpers::TestWebRemoteFrameClient remoteFrameClient2; |
9122 WebRemoteFrameImpl* remoteFrame2 = WebRemoteFrameImpl::create( | 9183 WebRemoteFrameImpl* remoteFrame2 = WebRemoteFrameImpl::create( |
9123 WebTreeScopeType::Document, &remoteFrameClient2); | 9184 WebTreeScopeType::Document, &remoteFrameClient2); |
9124 localFrame->swap(remoteFrame2); | 9185 localFrame->swap(remoteFrame2); |
9125 ASSERT_TRUE(mainFrame()->firstChild()); | 9186 ASSERT_TRUE(mainFrame()->firstChild()); |
9126 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame2); | 9187 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame2); |
9127 EXPECT_EQ(uniqueName2.utf8(), | 9188 EXPECT_EQ(uniqueName2.utf8(), |
9128 WebString(remoteFrame2->frame()->tree().uniqueName()).utf8()); | 9189 WebString(remoteFrame2->frame()->tree().uniqueName()).utf8()); |
9129 | 9190 |
9130 RemoteToLocalSwapWebFrameClient client2(remoteFrame2); | 9191 RemoteToLocalSwapWebFrameClient client2(remoteFrame2); |
9131 WebLocalFrame* localFrame2 = WebLocalFrame::createProvisional( | 9192 WebLocalFrame* localFrame2 = WebLocalFrame::createProvisional( |
9132 &client2, nullptr, nullptr, remoteFrame2, WebSandboxFlags::None); | 9193 &client2, nullptr, nullptr, remoteFrame2, WebSandboxFlags::None); |
9133 FrameTestHelpers::loadFrame(localFrame2, m_baseURL + "subframe-hello.html"); | 9194 FrameTestHelpers::loadFrame(localFrame2, m_baseURL + "subframe-hello.html"); |
9134 EXPECT_EQ(uniqueName2.utf8(), localFrame2->uniqueName().utf8()); | 9195 EXPECT_EQ(uniqueName2.utf8(), localFrame2->uniqueName().utf8()); |
9135 EXPECT_EQ(uniqueName2.utf8(), WebString(toWebLocalFrameImpl(localFrame2) | 9196 EXPECT_EQ(uniqueName2.utf8(), |
9136 ->frame() | 9197 WebString(toWebLocalFrameImpl(localFrame2) |
9137 ->loader() | 9198 ->frame() |
9138 .currentItem() | 9199 ->loader() |
9139 ->target()) | 9200 .currentItem() |
9140 .utf8()); | 9201 ->target()) |
| 9202 .utf8()); |
9141 | 9203 |
9142 // Manually reset to break WebViewHelper's dependency on the stack allocated | 9204 // Manually reset to break WebViewHelper's dependency on the stack allocated |
9143 // TestWebFrameClient. | 9205 // TestWebFrameClient. |
9144 reset(); | 9206 reset(); |
9145 remoteFrame->close(); | 9207 remoteFrame->close(); |
9146 remoteFrame2->close(); | 9208 remoteFrame2->close(); |
9147 } | 9209 } |
9148 | 9210 |
9149 class RemoteNavigationClient | 9211 class RemoteNavigationClient |
9150 : public FrameTestHelpers::TestWebRemoteFrameClient { | 9212 : public FrameTestHelpers::TestWebRemoteFrameClient { |
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9817 registerMockedHttpURLLoad("overscroll/overscroll.html"); | 9879 registerMockedHttpURLLoad("overscroll/overscroll.html"); |
9818 FrameTestHelpers::WebViewHelper webViewHelper; | 9880 FrameTestHelpers::WebViewHelper webViewHelper; |
9819 webViewHelper.initializeAndLoad(m_baseURL + "overscroll/overscroll.html", | 9881 webViewHelper.initializeAndLoad(m_baseURL + "overscroll/overscroll.html", |
9820 true, nullptr, &client, nullptr, | 9882 true, nullptr, &client, nullptr, |
9821 configureAndroid); | 9883 configureAndroid); |
9822 webViewHelper.resize(WebSize(200, 200)); | 9884 webViewHelper.resize(WebSize(200, 200)); |
9823 | 9885 |
9824 // Calculation of accumulatedRootOverscroll and unusedDelta on multiple | 9886 // Calculation of accumulatedRootOverscroll and unusedDelta on multiple |
9825 // scrollUpdate. | 9887 // scrollUpdate. |
9826 ScrollBegin(&webViewHelper); | 9888 ScrollBegin(&webViewHelper); |
9827 EXPECT_CALL(client, didOverscroll(WebFloatSize(8, 16), WebFloatSize(8, 16), | 9889 EXPECT_CALL(client, |
9828 WebFloatPoint(100, 100), WebFloatSize())); | 9890 didOverscroll(WebFloatSize(8, 16), WebFloatSize(8, 16), |
| 9891 WebFloatPoint(100, 100), WebFloatSize())); |
9829 ScrollUpdate(&webViewHelper, -308, -316); | 9892 ScrollUpdate(&webViewHelper, -308, -316); |
9830 Mock::VerifyAndClearExpectations(&client); | 9893 Mock::VerifyAndClearExpectations(&client); |
9831 | 9894 |
9832 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, 13), WebFloatSize(8, 29), | 9895 EXPECT_CALL(client, |
9833 WebFloatPoint(100, 100), WebFloatSize())); | 9896 didOverscroll(WebFloatSize(0, 13), WebFloatSize(8, 29), |
| 9897 WebFloatPoint(100, 100), WebFloatSize())); |
9834 ScrollUpdate(&webViewHelper, 0, -13); | 9898 ScrollUpdate(&webViewHelper, 0, -13); |
9835 Mock::VerifyAndClearExpectations(&client); | 9899 Mock::VerifyAndClearExpectations(&client); |
9836 | 9900 |
9837 EXPECT_CALL(client, didOverscroll(WebFloatSize(20, 13), WebFloatSize(28, 42), | 9901 EXPECT_CALL(client, |
9838 WebFloatPoint(100, 100), WebFloatSize())); | 9902 didOverscroll(WebFloatSize(20, 13), WebFloatSize(28, 42), |
| 9903 WebFloatPoint(100, 100), WebFloatSize())); |
9839 ScrollUpdate(&webViewHelper, -20, -13); | 9904 ScrollUpdate(&webViewHelper, -20, -13); |
9840 Mock::VerifyAndClearExpectations(&client); | 9905 Mock::VerifyAndClearExpectations(&client); |
9841 | 9906 |
9842 // Overscroll is not reported. | 9907 // Overscroll is not reported. |
9843 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 9908 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
9844 ScrollUpdate(&webViewHelper, 0, 1); | 9909 ScrollUpdate(&webViewHelper, 0, 1); |
9845 Mock::VerifyAndClearExpectations(&client); | 9910 Mock::VerifyAndClearExpectations(&client); |
9846 | 9911 |
9847 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 9912 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
9848 ScrollUpdate(&webViewHelper, 1, 0); | 9913 ScrollUpdate(&webViewHelper, 1, 0); |
(...skipping 26 matching lines...) Expand all Loading... |
9875 | 9940 |
9876 // Scroll the Div to the end. | 9941 // Scroll the Div to the end. |
9877 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 9942 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
9878 ScrollUpdate(&webViewHelper, 0, -316); | 9943 ScrollUpdate(&webViewHelper, 0, -316); |
9879 Mock::VerifyAndClearExpectations(&client); | 9944 Mock::VerifyAndClearExpectations(&client); |
9880 | 9945 |
9881 ScrollEnd(&webViewHelper); | 9946 ScrollEnd(&webViewHelper); |
9882 ScrollBegin(&webViewHelper); | 9947 ScrollBegin(&webViewHelper); |
9883 | 9948 |
9884 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled. | 9949 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled. |
9885 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, 100), WebFloatSize(0, 100), | 9950 EXPECT_CALL(client, |
9886 WebFloatPoint(100, 100), WebFloatSize())); | 9951 didOverscroll(WebFloatSize(0, 100), WebFloatSize(0, 100), |
| 9952 WebFloatPoint(100, 100), WebFloatSize())); |
9887 ScrollUpdate(&webViewHelper, 0, -100); | 9953 ScrollUpdate(&webViewHelper, 0, -100); |
9888 ScrollUpdate(&webViewHelper, 0, -100); | 9954 ScrollUpdate(&webViewHelper, 0, -100); |
9889 Mock::VerifyAndClearExpectations(&client); | 9955 Mock::VerifyAndClearExpectations(&client); |
9890 | 9956 |
9891 // TODO(bokan): This has never worked but by the accident that this test was | 9957 // TODO(bokan): This has never worked but by the accident that this test was |
9892 // being run in a WebView without a size. This test should be fixed along with | 9958 // being run in a WebView without a size. This test should be fixed along with |
9893 // the bug, crbug.com/589320. | 9959 // the bug, crbug.com/589320. |
9894 // Page scrolls vertically, but over-scrolls horizontally. | 9960 // Page scrolls vertically, but over-scrolls horizontally. |
9895 // EXPECT_CALL(client, didOverscroll(WebFloatSize(-100, 0), WebFloatSize(-100, | 9961 // EXPECT_CALL(client, didOverscroll(WebFloatSize(-100, 0), WebFloatSize(-100, |
9896 // 0), WebFloatPoint(100, 100), WebFloatSize())); | 9962 // 0), WebFloatPoint(100, 100), WebFloatSize())); |
(...skipping 25 matching lines...) Expand all Loading... |
9922 | 9988 |
9923 // Scroll the Div to the end. | 9989 // Scroll the Div to the end. |
9924 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 9990 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
9925 ScrollUpdate(&webViewHelper, 0, -316); | 9991 ScrollUpdate(&webViewHelper, 0, -316); |
9926 Mock::VerifyAndClearExpectations(&client); | 9992 Mock::VerifyAndClearExpectations(&client); |
9927 | 9993 |
9928 ScrollEnd(&webViewHelper); | 9994 ScrollEnd(&webViewHelper); |
9929 ScrollBegin(&webViewHelper); | 9995 ScrollBegin(&webViewHelper); |
9930 | 9996 |
9931 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled. | 9997 // Now On Scrolling DIV, scroll is bubbled and root layer is over-scrolled. |
9932 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, 50), WebFloatSize(0, 50), | 9998 EXPECT_CALL(client, |
9933 WebFloatPoint(100, 100), WebFloatSize())); | 9999 didOverscroll(WebFloatSize(0, 50), WebFloatSize(0, 50), |
| 10000 WebFloatPoint(100, 100), WebFloatSize())); |
9934 ScrollUpdate(&webViewHelper, 0, -150); | 10001 ScrollUpdate(&webViewHelper, 0, -150); |
9935 Mock::VerifyAndClearExpectations(&client); | 10002 Mock::VerifyAndClearExpectations(&client); |
9936 } | 10003 } |
9937 | 10004 |
9938 TEST_P(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll) { | 10005 TEST_P(WebFrameOverscrollTest, RootLayerOverscrolledOnInnerIFrameOverScroll) { |
9939 OverscrollWebViewClient client; | 10006 OverscrollWebViewClient client; |
9940 registerMockedHttpURLLoad("overscroll/iframe-overscroll.html"); | 10007 registerMockedHttpURLLoad("overscroll/iframe-overscroll.html"); |
9941 registerMockedHttpURLLoad("overscroll/scrollable-iframe.html"); | 10008 registerMockedHttpURLLoad("overscroll/scrollable-iframe.html"); |
9942 FrameTestHelpers::WebViewHelper webViewHelper; | 10009 FrameTestHelpers::WebViewHelper webViewHelper; |
9943 webViewHelper.initializeAndLoad( | 10010 webViewHelper.initializeAndLoad( |
(...skipping 11 matching lines...) Expand all Loading... |
9955 | 10022 |
9956 // This scroll will again target the iframe but wont bubble further up. Make | 10023 // This scroll will again target the iframe but wont bubble further up. Make |
9957 // sure that the unused scroll isn't handled as overscroll. | 10024 // sure that the unused scroll isn't handled as overscroll. |
9958 ScrollUpdate(&webViewHelper, 0, -50); | 10025 ScrollUpdate(&webViewHelper, 0, -50); |
9959 Mock::VerifyAndClearExpectations(&client); | 10026 Mock::VerifyAndClearExpectations(&client); |
9960 | 10027 |
9961 ScrollEnd(&webViewHelper); | 10028 ScrollEnd(&webViewHelper); |
9962 ScrollBegin(&webViewHelper); | 10029 ScrollBegin(&webViewHelper); |
9963 | 10030 |
9964 // Now On Scrolling IFrame, scroll is bubbled and root layer is over-scrolled. | 10031 // Now On Scrolling IFrame, scroll is bubbled and root layer is over-scrolled. |
9965 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, 50), WebFloatSize(0, 50), | 10032 EXPECT_CALL(client, |
9966 WebFloatPoint(100, 100), WebFloatSize())); | 10033 didOverscroll(WebFloatSize(0, 50), WebFloatSize(0, 50), |
| 10034 WebFloatPoint(100, 100), WebFloatSize())); |
9967 ScrollUpdate(&webViewHelper, 0, -150); | 10035 ScrollUpdate(&webViewHelper, 0, -150); |
9968 Mock::VerifyAndClearExpectations(&client); | 10036 Mock::VerifyAndClearExpectations(&client); |
9969 | 10037 |
9970 ScrollEnd(&webViewHelper); | 10038 ScrollEnd(&webViewHelper); |
9971 } | 10039 } |
9972 | 10040 |
9973 TEST_P(WebFrameOverscrollTest, ScaledPageRootLayerOverscrolled) { | 10041 TEST_P(WebFrameOverscrollTest, ScaledPageRootLayerOverscrolled) { |
9974 OverscrollWebViewClient client; | 10042 OverscrollWebViewClient client; |
9975 registerMockedHttpURLLoad("overscroll/overscroll.html"); | 10043 registerMockedHttpURLLoad("overscroll/overscroll.html"); |
9976 FrameTestHelpers::WebViewHelper webViewHelper; | 10044 FrameTestHelpers::WebViewHelper webViewHelper; |
9977 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad( | 10045 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad( |
9978 m_baseURL + "overscroll/overscroll.html", true, nullptr, &client, nullptr, | 10046 m_baseURL + "overscroll/overscroll.html", true, nullptr, &client, nullptr, |
9979 configureAndroid); | 10047 configureAndroid); |
9980 webViewHelper.resize(WebSize(200, 200)); | 10048 webViewHelper.resize(WebSize(200, 200)); |
9981 webViewImpl->setPageScaleFactor(3.0); | 10049 webViewImpl->setPageScaleFactor(3.0); |
9982 | 10050 |
9983 // Calculation of accumulatedRootOverscroll and unusedDelta on scaled page. | 10051 // Calculation of accumulatedRootOverscroll and unusedDelta on scaled page. |
9984 // The point is (99, 99) because we clamp in the division by 3 to 33 so when | 10052 // The point is (99, 99) because we clamp in the division by 3 to 33 so when |
9985 // we go back to viewport coordinates it becomes (99, 99). | 10053 // we go back to viewport coordinates it becomes (99, 99). |
9986 ScrollBegin(&webViewHelper); | 10054 ScrollBegin(&webViewHelper); |
9987 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, -30), WebFloatSize(0, -30), | 10055 EXPECT_CALL(client, |
9988 WebFloatPoint(99, 99), WebFloatSize())); | 10056 didOverscroll(WebFloatSize(0, -30), WebFloatSize(0, -30), |
| 10057 WebFloatPoint(99, 99), WebFloatSize())); |
9989 ScrollUpdate(&webViewHelper, 0, 30); | 10058 ScrollUpdate(&webViewHelper, 0, 30); |
9990 Mock::VerifyAndClearExpectations(&client); | 10059 Mock::VerifyAndClearExpectations(&client); |
9991 | 10060 |
9992 EXPECT_CALL(client, didOverscroll(WebFloatSize(0, -30), WebFloatSize(0, -60), | 10061 EXPECT_CALL(client, |
9993 WebFloatPoint(99, 99), WebFloatSize())); | 10062 didOverscroll(WebFloatSize(0, -30), WebFloatSize(0, -60), |
| 10063 WebFloatPoint(99, 99), WebFloatSize())); |
9994 ScrollUpdate(&webViewHelper, 0, 30); | 10064 ScrollUpdate(&webViewHelper, 0, 30); |
9995 Mock::VerifyAndClearExpectations(&client); | 10065 Mock::VerifyAndClearExpectations(&client); |
9996 | 10066 |
9997 EXPECT_CALL(client, | 10067 EXPECT_CALL(client, |
9998 didOverscroll(WebFloatSize(-30, -30), WebFloatSize(-30, -90), | 10068 didOverscroll(WebFloatSize(-30, -30), WebFloatSize(-30, -90), |
9999 WebFloatPoint(99, 99), WebFloatSize())); | 10069 WebFloatPoint(99, 99), WebFloatSize())); |
10000 ScrollUpdate(&webViewHelper, 30, 30); | 10070 ScrollUpdate(&webViewHelper, 30, 30); |
10001 Mock::VerifyAndClearExpectations(&client); | 10071 Mock::VerifyAndClearExpectations(&client); |
10002 | 10072 |
10003 EXPECT_CALL(client, | 10073 EXPECT_CALL(client, |
(...skipping 23 matching lines...) Expand all Loading... |
10027 WebFloatPoint(100, 100), WebFloatSize())); | 10097 WebFloatPoint(100, 100), WebFloatSize())); |
10028 ScrollUpdate(&webViewHelper, 10, 10); | 10098 ScrollUpdate(&webViewHelper, 10, 10); |
10029 Mock::VerifyAndClearExpectations(&client); | 10099 Mock::VerifyAndClearExpectations(&client); |
10030 | 10100 |
10031 EXPECT_CALL(client, | 10101 EXPECT_CALL(client, |
10032 didOverscroll(WebFloatSize(0, -0.10), WebFloatSize(-10, -10.10), | 10102 didOverscroll(WebFloatSize(0, -0.10), WebFloatSize(-10, -10.10), |
10033 WebFloatPoint(100, 100), WebFloatSize())); | 10103 WebFloatPoint(100, 100), WebFloatSize())); |
10034 ScrollUpdate(&webViewHelper, 0, 0.10); | 10104 ScrollUpdate(&webViewHelper, 0, 0.10); |
10035 Mock::VerifyAndClearExpectations(&client); | 10105 Mock::VerifyAndClearExpectations(&client); |
10036 | 10106 |
10037 EXPECT_CALL(client, didOverscroll(WebFloatSize(-0.10, 0), | 10107 EXPECT_CALL( |
10038 WebFloatSize(-10.10, -10.10), | 10108 client, |
10039 WebFloatPoint(100, 100), WebFloatSize())); | 10109 didOverscroll(WebFloatSize(-0.10, 0), WebFloatSize(-10.10, -10.10), |
| 10110 WebFloatPoint(100, 100), WebFloatSize())); |
10040 ScrollUpdate(&webViewHelper, 0.10, 0); | 10111 ScrollUpdate(&webViewHelper, 0.10, 0); |
10041 Mock::VerifyAndClearExpectations(&client); | 10112 Mock::VerifyAndClearExpectations(&client); |
10042 | 10113 |
10043 // For residual values overscrollDelta should be reset and didOverscroll | 10114 // For residual values overscrollDelta should be reset and didOverscroll |
10044 // shouldn't be called. | 10115 // shouldn't be called. |
10045 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 10116 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
10046 ScrollUpdate(&webViewHelper, 0, 0.09); | 10117 ScrollUpdate(&webViewHelper, 0, 0.09); |
10047 Mock::VerifyAndClearExpectations(&client); | 10118 Mock::VerifyAndClearExpectations(&client); |
10048 | 10119 |
10049 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); | 10120 EXPECT_CALL(client, didOverscroll(_, _, _, _)).Times(0); |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10402 FrameTestHelpers::WebViewHelper helper; | 10473 FrameTestHelpers::WebViewHelper helper; |
10403 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); | 10474 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); |
10404 webView->resize(WebSize(400, 400)); | 10475 webView->resize(WebSize(400, 400)); |
10405 | 10476 |
10406 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( | 10477 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( |
10407 WebClipboard::BufferStandard); | 10478 WebClipboard::BufferStandard); |
10408 | 10479 |
10409 WebLocalFrame* localFrame = webView->mainFrameImpl(); | 10480 WebLocalFrame* localFrame = webView->mainFrameImpl(); |
10410 localFrame->copyImageAt(WebPoint(50, 50)); | 10481 localFrame->copyImageAt(WebPoint(50, 50)); |
10411 | 10482 |
10412 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber( | 10483 EXPECT_NE(sequence, |
10413 WebClipboard::BufferStandard)); | 10484 Platform::current()->clipboard()->sequenceNumber( |
| 10485 WebClipboard::BufferStandard)); |
10414 | 10486 |
10415 WebImage image = | 10487 WebImage image = |
10416 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) | 10488 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) |
10417 ->readRawImage(WebClipboard::Buffer()); | 10489 ->readRawImage(WebClipboard::Buffer()); |
10418 | 10490 |
10419 SkAutoLockPixels autoLock(image.getSkBitmap()); | 10491 SkAutoLockPixels autoLock(image.getSkBitmap()); |
10420 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); | 10492 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); |
10421 }; | 10493 }; |
10422 | 10494 |
10423 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) { | 10495 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) { |
10424 std::string url = m_baseURL + "canvas-copy-image.html"; | 10496 std::string url = m_baseURL + "canvas-copy-image.html"; |
10425 registerMockedURLLoadFromBase(m_baseURL, "canvas-copy-image.html"); | 10497 registerMockedURLLoadFromBase(m_baseURL, "canvas-copy-image.html"); |
10426 | 10498 |
10427 FrameTestHelpers::WebViewHelper helper; | 10499 FrameTestHelpers::WebViewHelper helper; |
10428 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); | 10500 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); |
10429 webView->resize(WebSize(400, 400)); | 10501 webView->resize(WebSize(400, 400)); |
10430 webView->updateAllLifecyclePhases(); | 10502 webView->updateAllLifecyclePhases(); |
10431 webView->setPageScaleFactor(2); | 10503 webView->setPageScaleFactor(2); |
10432 webView->setVisualViewportOffset(WebFloatPoint(200, 200)); | 10504 webView->setVisualViewportOffset(WebFloatPoint(200, 200)); |
10433 | 10505 |
10434 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( | 10506 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( |
10435 WebClipboard::BufferStandard); | 10507 WebClipboard::BufferStandard); |
10436 | 10508 |
10437 WebLocalFrame* localFrame = webView->mainFrameImpl(); | 10509 WebLocalFrame* localFrame = webView->mainFrameImpl(); |
10438 localFrame->copyImageAt(WebPoint(0, 0)); | 10510 localFrame->copyImageAt(WebPoint(0, 0)); |
10439 | 10511 |
10440 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber( | 10512 EXPECT_NE(sequence, |
10441 WebClipboard::BufferStandard)); | 10513 Platform::current()->clipboard()->sequenceNumber( |
| 10514 WebClipboard::BufferStandard)); |
10442 | 10515 |
10443 WebImage image = | 10516 WebImage image = |
10444 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) | 10517 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) |
10445 ->readRawImage(WebClipboard::Buffer()); | 10518 ->readRawImage(WebClipboard::Buffer()); |
10446 | 10519 |
10447 SkAutoLockPixels autoLock(image.getSkBitmap()); | 10520 SkAutoLockPixels autoLock(image.getSkBitmap()); |
10448 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); | 10521 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); |
10449 }; | 10522 }; |
10450 | 10523 |
10451 TEST_F(WebFrameTest, CopyImageWithImageMap) { | 10524 TEST_F(WebFrameTest, CopyImageWithImageMap) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10486 | 10559 |
10487 std::string redirectURL = m_baseURL + "foo.html"; | 10560 std::string redirectURL = m_baseURL + "foo.html"; |
10488 URLTestHelpers::registerMockedURLLoad(toKURL(redirectURL), | 10561 URLTestHelpers::registerMockedURLLoad(toKURL(redirectURL), |
10489 testing::webTestDataPath("foo.html")); | 10562 testing::webTestDataPath("foo.html")); |
10490 WebURLRequest request(toKURL("javascript:location='" + redirectURL + "'")); | 10563 WebURLRequest request(toKURL("javascript:location='" + redirectURL + "'")); |
10491 helper.webView()->mainFrameImpl()->loadRequest(request); | 10564 helper.webView()->mainFrameImpl()->loadRequest(request); |
10492 | 10565 |
10493 // Normally, the result of the JS url replaces the existing contents on the | 10566 // Normally, the result of the JS url replaces the existing contents on the |
10494 // Document. However, if the JS triggers a navigation, the contents should | 10567 // Document. However, if the JS triggers a navigation, the contents should |
10495 // not be replaced. | 10568 // not be replaced. |
10496 EXPECT_EQ("", toLocalFrame(helper.webView()->page()->mainFrame()) | 10569 EXPECT_EQ("", |
10497 ->document() | 10570 toLocalFrame(helper.webView()->page()->mainFrame()) |
10498 ->documentElement() | 10571 ->document() |
10499 ->innerText()); | 10572 ->documentElement() |
| 10573 ->innerText()); |
10500 } | 10574 } |
10501 | 10575 |
10502 class TestResourcePriorityWebFrameClient | 10576 class TestResourcePriorityWebFrameClient |
10503 : public FrameTestHelpers::TestWebFrameClient { | 10577 : public FrameTestHelpers::TestWebFrameClient { |
10504 public: | 10578 public: |
10505 class ExpectedRequest { | 10579 class ExpectedRequest { |
10506 public: | 10580 public: |
10507 ExpectedRequest(const KURL& url, WebURLRequest::Priority priority) | 10581 ExpectedRequest(const KURL& url, WebURLRequest::Priority priority) |
10508 : url(url), priority(priority), seen(false) {} | 10582 : url(url), priority(priority), seen(false) {} |
10509 | 10583 |
(...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11386 | 11460 |
11387 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); | 11461 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); |
11388 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); | 11462 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); |
11389 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); | 11463 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); |
11390 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); | 11464 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); |
11391 | 11465 |
11392 webViewHelper.reset(); | 11466 webViewHelper.reset(); |
11393 } | 11467 } |
11394 | 11468 |
11395 } // namespace blink | 11469 } // namespace blink |
OLD | NEW |