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

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

Issue 53053002: [Android WebView] Add a legacy quirk for 'user-scalable=no' case (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Moved min/max scale reset under the quirk condition, rebased Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 1764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1775 webViewHelper.webView()->settings()->setUseWideViewport(false); 1775 webViewHelper.webView()->settings()->setUseWideViewport(false);
1776 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1776 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1777 webViewHelper.webView()->layout(); 1777 webViewHelper.webView()->layout();
1778 1778
1779 const float pageZoom = 0.25f; 1779 const float pageZoom = 0.25f;
1780 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom , webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width( ), 1.0f); 1780 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom , webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width( ), 1.0f);
1781 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh t(), 1.0f); 1781 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh t(), 1.0f);
1782 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f); 1782 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f);
1783 } 1783 }
1784 1784
1785 TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScale)
1786 {
1787 UseMockScrollbarSettings mockScrollbarSettings;
1788 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" );
1789
1790 FixedLayoutTestWebViewClient client;
1791 int viewportWidth = 640;
1792 int viewportHeight = 480;
1793
1794 FrameTestHelpers::WebViewHelper webViewHelper;
1795 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client);
1796 webViewHelper.webView()->settings()->setViewportEnabled(true);
1797 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
1798 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1799 webViewHelper.webView()->layout();
1800
1801 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f);
1802 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f);
1803 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f);
1804 }
1805
1806 TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonWideViewport)
1807 {
1808 UseMockScrollbarSettings mockScrollbarSettings;
1809 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" );
1810
1811 FixedLayoutTestWebViewClient client;
1812 client.m_screenInfo.deviceScaleFactor = 1.33f;
1813 int viewportWidth = 640;
1814 int viewportHeight = 480;
1815
1816 FrameTestHelpers::WebViewHelper webViewHelper;
1817 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client);
1818 webViewHelper.webView()->settings()->setViewportEnabled(true);
1819 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue);
1820 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
1821 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1822 webViewHelper.webView()->settings()->setUseWideViewport(false);
1823 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1824 webViewHelper.webView()->layout();
1825
1826 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f);
1827 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f);
1828 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f);
1829 }
1830
1831 TEST_F(WebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWideViewport)
1832 {
1833 UseMockScrollbarSettings mockScrollbarSettings;
1834 registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html" );
1835
1836 FixedLayoutTestWebViewClient client;
1837 int viewportWidth = 640;
1838 int viewportHeight = 480;
1839
1840 FrameTestHelpers::WebViewHelper webViewHelper;
1841 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-u ser-scalable.html", true, 0, &client);
1842 webViewHelper.webView()->settings()->setViewportEnabled(true);
1843 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
1844 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1845 webViewHelper.webView()->settings()->setUseWideViewport(true);
1846 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1847
1848 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f);
1849 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f);
1850 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f);
1851 }
1852
1785 class WebFrameResizeTest : public WebFrameTest { 1853 class WebFrameResizeTest : public WebFrameTest {
1786 protected: 1854 protected:
1787 1855
1788 static WebCore::FloatSize computeRelativeOffset(const WebCore::IntPoint& abs oluteOffset, const WebCore::LayoutRect& rect) 1856 static WebCore::FloatSize computeRelativeOffset(const WebCore::IntPoint& abs oluteOffset, const WebCore::LayoutRect& rect)
1789 { 1857 {
1790 WebCore::FloatSize relativeOffset = WebCore::FloatPoint(absoluteOffset) - rect.location(); 1858 WebCore::FloatSize relativeOffset = WebCore::FloatPoint(absoluteOffset) - rect.location();
1791 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height()); 1859 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height());
1792 return relativeOffset; 1860 return relativeOffset;
1793 } 1861 }
1794 1862
(...skipping 3008 matching lines...) Expand 10 before | Expand all | Expand 10 after
4803 4871
4804 FrameTestHelpers::loadFrame(frame, 4872 FrameTestHelpers::loadFrame(frame,
4805 "javascript:window.frames[1].location.assign('" + m_baseURL + "find.html ')"); 4873 "javascript:window.frames[1].location.assign('" + m_baseURL + "find.html ')");
4806 runPendingTasks(); 4874 runPendingTasks();
4807 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); 4875 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
4808 EXPECT_EQ(client.frame(), iframe); 4876 EXPECT_EQ(client.frame(), iframe);
4809 EXPECT_FALSE(client.replacesCurrentHistoryItem()); 4877 EXPECT_FALSE(client.replacesCurrentHistoryItem());
4810 } 4878 }
4811 4879
4812 } // namespace 4880 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698