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

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

Issue 1413513009: Use mocked scrollbar in webkit unit tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 #include "web/tests/FrameTestHelpers.h" 124 #include "web/tests/FrameTestHelpers.h"
125 #include "wtf/Forward.h" 125 #include "wtf/Forward.h"
126 #include "wtf/dtoa/utils.h" 126 #include "wtf/dtoa/utils.h"
127 #include <gmock/gmock.h> 127 #include <gmock/gmock.h>
128 #include <gtest/gtest.h> 128 #include <gtest/gtest.h>
129 #include <map> 129 #include <map>
130 #include <stdarg.h> 130 #include <stdarg.h>
131 #include <v8.h> 131 #include <v8.h>
132 132
133 using blink::URLTestHelpers::toKURL; 133 using blink::URLTestHelpers::toKURL;
134 using blink::FrameTestHelpers::UseMockScrollbarSettings;
135 using blink::testing::runPendingTasks; 134 using blink::testing::runPendingTasks;
136 using testing::ElementsAre; 135 using testing::ElementsAre;
137 using testing::Mock; 136 using testing::Mock;
138 using testing::_; 137 using testing::_;
139 138
140 namespace blink { 139 namespace blink {
141 140
142 ::std::ostream& operator<<(::std::ostream& os, const WebFloatSize& size) 141 ::std::ostream& operator<<(::std::ostream& os, const WebFloatSize& size)
143 { 142 {
144 return os << "WebFloatSize: [" 143 return os << "WebFloatSize: ["
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 void removeElementById(WebLocalFrameImpl* frame, const AtomicString& id) 265 void removeElementById(WebLocalFrameImpl* frame, const AtomicString& id)
267 { 266 {
268 Element* element = frame->frame()->document()->getElementById(id); 267 Element* element = frame->frame()->document()->getElementById(id);
269 ASSERT(element); 268 ASSERT(element);
270 element->remove(); 269 element->remove();
271 } 270 }
272 271
273 std::string m_baseURL; 272 std::string m_baseURL;
274 std::string m_notBaseURL; 273 std::string m_notBaseURL;
275 std::string m_chromeURL; 274 std::string m_chromeURL;
275 FrameTestHelpers::UseMockScrollbarSettings m_mockScrollbarSettings;
276 }; 276 };
277 277
278 enum ParameterizedWebFrameTestConfig { 278 enum ParameterizedWebFrameTestConfig {
279 Default, 279 Default,
280 RootLayerScrolls 280 RootLayerScrolls
281 }; 281 };
282 282
283 class ParameterizedWebFrameTest 283 class ParameterizedWebFrameTest
284 : public WebFrameTest 284 : public WebFrameTest
285 , public ::testing::WithParamInterface<ParameterizedWebFrameTestConfig> 285 , public ::testing::WithParamInterface<ParameterizedWebFrameTestConfig>
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 multiplierChecked = true; 904 multiplierChecked = true;
905 } 905 }
906 } 906 }
907 return multiplierChecked; 907 return multiplierChecked;
908 } 908 }
909 909
910 } // anonymous namespace 910 } // anonymous namespace
911 911
912 TEST_P(ParameterizedWebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipl iers) 912 TEST_P(ParameterizedWebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipl iers)
913 { 913 {
914 UseMockScrollbarSettings mockScrollbarSettings;
915 registerMockedHttpURLLoad("fixed_layout.html"); 914 registerMockedHttpURLLoad("fixed_layout.html");
916 915
917 FixedLayoutTestWebViewClient client; 916 FixedLayoutTestWebViewClient client;
918 int viewportWidth = 640; 917 int viewportWidth = 640;
919 int viewportHeight = 480; 918 int viewportHeight = 480;
920 919
921 FrameTestHelpers::WebViewHelper webViewHelper(this); 920 FrameTestHelpers::WebViewHelper webViewHelper(this);
922 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 921 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
923 922
924 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document(); 923 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document();
925 document->settings()->setTextAutosizingEnabled(true); 924 document->settings()->setTextAutosizingEnabled(true);
926 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); 925 EXPECT_TRUE(document->settings()->textAutosizingEnabled());
927 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); 926 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight));
928 webViewHelper.webViewImpl()->layout(); 927 webViewHelper.webViewImpl()->layout();
929 928
930 EXPECT_TRUE(setTextAutosizingMultiplier(document, 2)); 929 EXPECT_TRUE(setTextAutosizingMultiplier(document, 2));
931 930
932 ViewportDescription description = document->viewportDescription(); 931 ViewportDescription description = document->viewportDescription();
933 // Choose a width that's not going match the viewport width of the loaded do cument. 932 // Choose a width that's not going match the viewport width of the loaded do cument.
934 description.minWidth = Length(100, blink::Fixed); 933 description.minWidth = Length(100, blink::Fixed);
935 description.maxWidth = Length(100, blink::Fixed); 934 description.maxWidth = Length(100, blink::Fixed);
936 webViewHelper.webViewImpl()->updatePageDefinedViewportConstraints(descriptio n); 935 webViewHelper.webViewImpl()->updatePageDefinedViewportConstraints(descriptio n);
937 936
938 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 1)); 937 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 1));
939 } 938 }
940 939
941 TEST_P(ParameterizedWebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewpo rt) 940 TEST_P(ParameterizedWebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewpo rt)
942 { 941 {
943 UseMockScrollbarSettings mockScrollbarSettings;
chrishtr 2015/10/29 23:08:43 Why remove all these?
Xianzhu 2015/10/29 23:40:28 I put UseMockScrollbarSettings m_mockScrollbarSett
944 const std::string htmlFile = "fixed_layout.html"; 942 const std::string htmlFile = "fixed_layout.html";
945 registerMockedHttpURLLoad(htmlFile); 943 registerMockedHttpURLLoad(htmlFile);
946 944
947 FixedLayoutTestWebViewClient client; 945 FixedLayoutTestWebViewClient client;
948 946
949 FrameTestHelpers::WebViewHelper webViewHelper(this); 947 FrameTestHelpers::WebViewHelper webViewHelper(this);
950 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf igureAndroid); 948 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf igureAndroid);
951 949
952 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document(); 950 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document();
953 document->settings()->setTextAutosizingEnabled(true); 951 document->settings()->setTextAutosizingEnabled(true);
954 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); 952 EXPECT_TRUE(document->settings()->textAutosizingEnabled());
955 953
956 webViewHelper.webView()->resize(WebSize(490, 800)); 954 webViewHelper.webView()->resize(WebSize(490, 800));
957 955
958 // Multiplier: 980 / 490 = 2.0 956 // Multiplier: 980 / 490 = 2.0
959 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 2.0)); 957 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 2.0));
960 } 958 }
961 959
962 TEST_P(ParameterizedWebFrameTest, VisualViewportSetSizeInvalidatesTextAutosizing Multipliers) 960 TEST_P(ParameterizedWebFrameTest, VisualViewportSetSizeInvalidatesTextAutosizing Multipliers)
963 { 961 {
964 UseMockScrollbarSettings mockScrollbarSettings;
965 registerMockedHttpURLLoad("iframe_reload.html"); 962 registerMockedHttpURLLoad("iframe_reload.html");
966 registerMockedHttpURLLoad("visible_iframe.html"); 963 registerMockedHttpURLLoad("visible_iframe.html");
967 964
968 FixedLayoutTestWebViewClient client; 965 FixedLayoutTestWebViewClient client;
969 int viewportWidth = 640; 966 int viewportWidth = 640;
970 int viewportHeight = 480; 967 int viewportHeight = 480;
971 968
972 FrameTestHelpers::WebViewHelper webViewHelper(this); 969 FrameTestHelpers::WebViewHelper webViewHelper(this);
973 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, 0, & client, enableViewportSettings); 970 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, 0, & client, enableViewportSettings);
974 971
(...skipping 22 matching lines...) Expand all
997 continue; 994 continue;
998 for (LayoutObject* layoutObject = toLocalFrame(frame)->document()->layou tView(); layoutObject; layoutObject = layoutObject->nextInPreOrder()) { 995 for (LayoutObject* layoutObject = toLocalFrame(frame)->document()->layou tView(); layoutObject; layoutObject = layoutObject->nextInPreOrder()) {
999 if (layoutObject->isText()) 996 if (layoutObject->isText())
1000 EXPECT_TRUE(layoutObject->needsLayout()); 997 EXPECT_TRUE(layoutObject->needsLayout());
1001 } 998 }
1002 } 999 }
1003 } 1000 }
1004 1001
1005 TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) 1002 TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored)
1006 { 1003 {
1007 UseMockScrollbarSettings mockScrollbarSettings;
1008
1009 FixedLayoutTestWebViewClient client; 1004 FixedLayoutTestWebViewClient client;
1010 client.m_screenInfo.deviceScaleFactor = 1; 1005 client.m_screenInfo.deviceScaleFactor = 1;
1011 int viewportWidth = 1280; 1006 int viewportWidth = 1280;
1012 int viewportHeight = 0; 1007 int viewportHeight = 0;
1013 1008
1014 FrameTestHelpers::WebViewHelper webViewHelper(this); 1009 FrameTestHelpers::WebViewHelper webViewHelper(this);
1015 webViewHelper.initialize(true, 0, &client, enableViewportSettings); 1010 webViewHelper.initialize(true, 0, &client, enableViewportSettings);
1016 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1011 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1017 1012
1018 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->layoutSize().width()); 1013 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->layoutSize().width());
1019 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->layoutSize().height()); 1014 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->layoutSize().height());
1020 } 1015 }
1021 1016
1022 TEST_P(ParameterizedWebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag ) 1017 TEST_P(ParameterizedWebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag )
1023 { 1018 {
1024 UseMockScrollbarSettings mockScrollbarSettings;
1025 registerMockedHttpURLLoad("no_viewport_tag.html"); 1019 registerMockedHttpURLLoad("no_viewport_tag.html");
1026 1020
1027 int viewportWidth = 640; 1021 int viewportWidth = 640;
1028 int viewportHeight = 480; 1022 int viewportHeight = 480;
1029 1023
1030 FixedLayoutTestWebViewClient client; 1024 FixedLayoutTestWebViewClient client;
1031 client.m_screenInfo.deviceScaleFactor = 2; 1025 client.m_screenInfo.deviceScaleFactor = 2;
1032 1026
1033 FrameTestHelpers::WebViewHelper webViewHelper(this); 1027 FrameTestHelpers::WebViewHelper webViewHelper(this);
1034 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); 1028 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings);
1035 1029
1036 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1030 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1037 webViewHelper.webView()->layout(); 1031 webViewHelper.webView()->layout();
1038 1032
1039 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); 1033 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor());
1040 1034
1041 // Device scale factor should be independent of page scale. 1035 // Device scale factor should be independent of page scale.
1042 webViewHelper.webView()->setDefaultPageScaleLimits(1, 2); 1036 webViewHelper.webView()->setDefaultPageScaleLimits(1, 2);
1043 webViewHelper.webView()->setPageScaleFactor(0.5); 1037 webViewHelper.webView()->setPageScaleFactor(0.5);
1044 webViewHelper.webView()->layout(); 1038 webViewHelper.webView()->layout();
1045 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); 1039 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor());
1046 1040
1047 // Force the layout to happen before leaving the test. 1041 // Force the layout to happen before leaving the test.
1048 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8(); 1042 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8();
1049 } 1043 }
1050 1044
1051 TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) 1045 TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale)
1052 { 1046 {
1053 UseMockScrollbarSettings mockScrollbarSettings;
1054
1055 registerMockedHttpURLLoad("fixed_layout.html"); 1047 registerMockedHttpURLLoad("fixed_layout.html");
1056 1048
1057 FixedLayoutTestWebViewClient client; 1049 FixedLayoutTestWebViewClient client;
1058 client.m_screenInfo.deviceScaleFactor = 1; 1050 client.m_screenInfo.deviceScaleFactor = 1;
1059 int viewportWidth = 640; 1051 int viewportWidth = 640;
1060 int viewportHeight = 480; 1052 int viewportHeight = 480;
1061 1053
1062 // Make sure we initialize to minimum scale, even if the window size 1054 // Make sure we initialize to minimum scale, even if the window size
1063 // only becomes available after the load begins. 1055 // only becomes available after the load begins.
1064 FrameTestHelpers::WebViewHelper webViewHelper(this); 1056 FrameTestHelpers::WebViewHelper webViewHelper(this);
(...skipping 17 matching lines...) Expand all
1082 webViewHelper.webViewImpl()->didChangeContentsSize(); 1074 webViewHelper.webViewImpl()->didChangeContentsSize();
1083 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ()); 1075 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ());
1084 1076
1085 // Make sure we don't reset to initial scale if the viewport size changes. 1077 // Make sure we don't reset to initial scale if the viewport size changes.
1086 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100) ); 1078 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100) );
1087 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ()); 1079 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ());
1088 } 1080 }
1089 1081
1090 TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale) 1082 TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale)
1091 { 1083 {
1092 UseMockScrollbarSettings mockScrollbarSettings;
1093
1094 registerMockedHttpURLLoad("wide_document.html"); 1084 registerMockedHttpURLLoad("wide_document.html");
1095 1085
1096 FixedLayoutTestWebViewClient client; 1086 FixedLayoutTestWebViewClient client;
1097 client.m_screenInfo.deviceScaleFactor = 1; 1087 client.m_screenInfo.deviceScaleFactor = 1;
1098 int viewportWidth = 640; 1088 int viewportWidth = 640;
1099 int viewportHeight = 480; 1089 int viewportHeight = 480;
1100 1090
1101 // Make sure we initialize to minimum scale, even if the window size 1091 // Make sure we initialize to minimum scale, even if the window size
1102 // only becomes available after the load begins. 1092 // only becomes available after the load begins.
1103 FrameTestHelpers::WebViewHelper webViewHelper(this); 1093 FrameTestHelpers::WebViewHelper webViewHelper(this);
(...skipping 17 matching lines...) Expand all
1121 webViewHelper.webViewImpl()->didChangeContentsSize(); 1111 webViewHelper.webViewImpl()->didChangeContentsSize();
1122 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ()); 1112 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ());
1123 1113
1124 // Make sure we don't reset to initial scale if the viewport size changes. 1114 // Make sure we don't reset to initial scale if the viewport size changes.
1125 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100) ); 1115 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100) );
1126 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ()); 1116 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor ());
1127 } 1117 }
1128 1118
1129 TEST_P(ParameterizedWebFrameTest, DelayedViewportInitialScale) 1119 TEST_P(ParameterizedWebFrameTest, DelayedViewportInitialScale)
1130 { 1120 {
1131 UseMockScrollbarSettings mockScrollbarSettings;
1132 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1121 registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
1133 1122
1134 FixedLayoutTestWebViewClient client; 1123 FixedLayoutTestWebViewClient client;
1135 client.m_screenInfo.deviceScaleFactor = 1; 1124 client.m_screenInfo.deviceScaleFactor = 1;
1136 int viewportWidth = 640; 1125 int viewportWidth = 640;
1137 int viewportHeight = 480; 1126 int viewportHeight = 480;
1138 1127
1139 FrameTestHelpers::WebViewHelper webViewHelper(this); 1128 FrameTestHelpers::WebViewHelper webViewHelper(this);
1140 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings); 1129 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings);
1141 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1130 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1142 1131
1143 EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor()); 1132 EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor());
1144 1133
1145 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document(); 1134 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF rame())->document();
1146 ViewportDescription description = document->viewportDescription(); 1135 ViewportDescription description = document->viewportDescription();
1147 description.zoom = 2; 1136 description.zoom = 2;
1148 document->setViewportDescription(description); 1137 document->setViewportDescription(description);
1149 webViewHelper.webView()->layout(); 1138 webViewHelper.webView()->layout();
1150 EXPECT_EQ(2, webViewHelper.webView()->pageScaleFactor()); 1139 EXPECT_EQ(2, webViewHelper.webView()->pageScaleFactor());
1151 } 1140 }
1152 1141
1153 TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) 1142 TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse)
1154 { 1143 {
1155 UseMockScrollbarSettings mockScrollbarSettings;
1156 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1144 registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
1157 1145
1158 FixedLayoutTestWebViewClient client; 1146 FixedLayoutTestWebViewClient client;
1159 client.m_screenInfo.deviceScaleFactor = 1; 1147 client.m_screenInfo.deviceScaleFactor = 1;
1160 int viewportWidth = 640; 1148 int viewportWidth = 640;
1161 int viewportHeight = 480; 1149 int viewportHeight = 480;
1162 1150
1163 FrameTestHelpers::WebViewHelper webViewHelper(this); 1151 FrameTestHelpers::WebViewHelper webViewHelper(this);
1164 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings); 1152 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings);
1165 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1153 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1166 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1154 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1167 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1155 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1168 1156
1169 // The page must be displayed at 100% zoom. 1157 // The page must be displayed at 100% zoom.
1170 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); 1158 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor());
1171 } 1159 }
1172 1160
1173 TEST_P(ParameterizedWebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewpor t) 1161 TEST_P(ParameterizedWebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewpor t)
1174 { 1162 {
1175 UseMockScrollbarSettings mockScrollbarSettings;
1176 registerMockedHttpURLLoad("large-div.html"); 1163 registerMockedHttpURLLoad("large-div.html");
1177 1164
1178 FixedLayoutTestWebViewClient client; 1165 FixedLayoutTestWebViewClient client;
1179 client.m_screenInfo.deviceScaleFactor = 1; 1166 client.m_screenInfo.deviceScaleFactor = 1;
1180 int viewportWidth = 640; 1167 int viewportWidth = 640;
1181 int viewportHeight = 480; 1168 int viewportHeight = 480;
1182 1169
1183 FrameTestHelpers::WebViewHelper webViewHelper(this); 1170 FrameTestHelpers::WebViewHelper webViewHelper(this);
1184 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings); 1171 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings);
1185 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1172 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1186 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1173 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1187 webViewHelper.webView()->settings()->setUseWideViewport(false); 1174 webViewHelper.webView()->settings()->setUseWideViewport(false);
1188 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1175 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1189 1176
1190 // The page must be displayed at 100% zoom, despite that it hosts a wide div element. 1177 // The page must be displayed at 100% zoom, despite that it hosts a wide div element.
1191 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); 1178 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor());
1192 } 1179 }
1193 1180
1194 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) 1181 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth)
1195 { 1182 {
1196 UseMockScrollbarSettings mockScrollbarSettings;
1197 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1183 registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
1198 1184
1199 FixedLayoutTestWebViewClient client; 1185 FixedLayoutTestWebViewClient client;
1200 client.m_screenInfo.deviceScaleFactor = 1; 1186 client.m_screenInfo.deviceScaleFactor = 1;
1201 int viewportWidth = 640; 1187 int viewportWidth = 640;
1202 int viewportHeight = 480; 1188 int viewportHeight = 480;
1203 1189
1204 FrameTestHelpers::WebViewHelper webViewHelper(this); 1190 FrameTestHelpers::WebViewHelper webViewHelper(this);
1205 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings); 1191 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings);
1206 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1192 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1207 webViewHelper.webView()->settings()->setUseWideViewport(false); 1193 webViewHelper.webView()->settings()->setUseWideViewport(false);
1208 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1194 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1209 1195
1210 // The page sets viewport width to 3000, but with UseWideViewport == false i s must be ignored. 1196 // The page sets viewport width to 3000, but with UseWideViewport == false i s must be ignored.
1211 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width()); 1197 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width());
1212 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->contentsSize().height()); 1198 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->contentsSize().height());
1213 } 1199 }
1214 1200
1215 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccou ntsScale) 1201 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccou ntsScale)
1216 { 1202 {
1217 UseMockScrollbarSettings mockScrollbarSettings;
1218 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1203 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1219 1204
1220 FixedLayoutTestWebViewClient client; 1205 FixedLayoutTestWebViewClient client;
1221 client.m_screenInfo.deviceScaleFactor = 1; 1206 client.m_screenInfo.deviceScaleFactor = 1;
1222 int viewportWidth = 640; 1207 int viewportWidth = 640;
1223 int viewportHeight = 480; 1208 int viewportHeight = 480;
1224 1209
1225 FrameTestHelpers::WebViewHelper webViewHelper(this); 1210 FrameTestHelpers::WebViewHelper webViewHelper(this);
1226 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings); 1211 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings);
1227 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1212 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1228 webViewHelper.webView()->settings()->setUseWideViewport(false); 1213 webViewHelper.webView()->settings()->setUseWideViewport(false);
1229 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1214 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1230 1215
1231 // The page sets viewport width to 3000, but with UseWideViewport == false i t must be ignored. 1216 // The page sets viewport width to 3000, but with UseWideViewport == false i t must be ignored.
1232 // While the initial scale specified by the page must be accounted. 1217 // While the initial scale specified by the page must be accounted.
1233 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f rameView()->contentsSize().width()); 1218 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f rameView()->contentsSize().width());
1234 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()-> frameView()->contentsSize().height()); 1219 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()-> frameView()->contentsSize().height());
1235 } 1220 }
1236 1221
1237 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) 1222 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag)
1238 { 1223 {
1239 UseMockScrollbarSettings mockScrollbarSettings;
1240 registerMockedHttpURLLoad("no_viewport_tag.html"); 1224 registerMockedHttpURLLoad("no_viewport_tag.html");
1241 1225
1242 FixedLayoutTestWebViewClient client; 1226 FixedLayoutTestWebViewClient client;
1243 client.m_screenInfo.deviceScaleFactor = 1; 1227 client.m_screenInfo.deviceScaleFactor = 1;
1244 int viewportWidth = 640; 1228 int viewportWidth = 640;
1245 int viewportHeight = 480; 1229 int viewportHeight = 480;
1246 1230
1247 FrameTestHelpers::WebViewHelper webViewHelper(this); 1231 FrameTestHelpers::WebViewHelper webViewHelper(this);
1248 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); 1232 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings);
1249 applyViewportStyleOverride(&webViewHelper); 1233 applyViewportStyleOverride(&webViewHelper);
1250 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1234 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1251 webViewHelper.webView()->settings()->setUseWideViewport(true); 1235 webViewHelper.webView()->settings()->setUseWideViewport(true);
1252 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1236 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1253 1237
1254 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width()); 1238 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width());
1255 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height()); 1239 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height());
1256 } 1240 }
1257 1241
1258 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) 1242 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp)
1259 { 1243 {
1260 UseMockScrollbarSettings mockScrollbarSettings;
1261 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); 1244 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html");
1262 1245
1263 FixedLayoutTestWebViewClient client; 1246 FixedLayoutTestWebViewClient client;
1264 client.m_screenInfo.deviceScaleFactor = 1; 1247 client.m_screenInfo.deviceScaleFactor = 1;
1265 int viewportWidth = 640; 1248 int viewportWidth = 640;
1266 int viewportHeight = 480; 1249 int viewportHeight = 480;
1267 1250
1268 FrameTestHelpers::WebViewHelper webViewHelper(this); 1251 FrameTestHelpers::WebViewHelper webViewHelper(this);
1269 webViewHelper.initialize(true, 0, &client, enableViewportSettings); 1252 webViewHelper.initialize(true, 0, &client, enableViewportSettings);
1270 applyViewportStyleOverride(&webViewHelper); 1253 applyViewportStyleOverride(&webViewHelper);
1271 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1254 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1272 webViewHelper.webView()->settings()->setUseWideViewport(true); 1255 webViewHelper.webView()->settings()->setUseWideViewport(true);
1273 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport/viewport-legacy-xhtmlmp.html"); 1256 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport/viewport-legacy-xhtmlmp.html");
1274 1257
1275 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1258 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1276 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width()); 1259 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width());
1277 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->contentsSize().height()); 1260 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram eView()->contentsSize().height());
1278 } 1261 }
1279 1262
1280 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) 1263 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta)
1281 { 1264 {
1282 UseMockScrollbarSettings mockScrollbarSettings;
1283 registerMockedHttpURLLoad("viewport-height-1000.html"); 1265 registerMockedHttpURLLoad("viewport-height-1000.html");
1284 1266
1285 FixedLayoutTestWebViewClient client; 1267 FixedLayoutTestWebViewClient client;
1286 client.m_screenInfo.deviceScaleFactor = 1; 1268 client.m_screenInfo.deviceScaleFactor = 1;
1287 int viewportWidth = 640; 1269 int viewportWidth = 640;
1288 int viewportHeight = 480; 1270 int viewportHeight = 480;
1289 1271
1290 FrameTestHelpers::WebViewHelper webViewHelper(this); 1272 FrameTestHelpers::WebViewHelper webViewHelper(this);
1291 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru e, 0, &client, enableViewportSettings); 1273 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru e, 0, &client, enableViewportSettings);
1292 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1274 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1293 webViewHelper.webView()->settings()->setUseWideViewport(false); 1275 webViewHelper.webView()->settings()->setUseWideViewport(false);
1294 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1276 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1295 1277
1296 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width()); 1278 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width());
1297 } 1279 }
1298 1280
1299 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) 1281 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth)
1300 { 1282 {
1301 UseMockScrollbarSettings mockScrollbarSettings;
1302 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); 1283 registerMockedHttpURLLoad("viewport-2x-initial-scale.html");
1303 1284
1304 FixedLayoutTestWebViewClient client; 1285 FixedLayoutTestWebViewClient client;
1305 client.m_screenInfo.deviceScaleFactor = 1; 1286 client.m_screenInfo.deviceScaleFactor = 1;
1306 int viewportWidth = 640; 1287 int viewportWidth = 640;
1307 int viewportHeight = 480; 1288 int viewportHeight = 480;
1308 1289
1309 FrameTestHelpers::WebViewHelper webViewHelper(this); 1290 FrameTestHelpers::WebViewHelper webViewHelper(this);
1310 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html" , true, 0, &client, enableViewportSettings); 1291 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html" , true, 0, &client, enableViewportSettings);
1311 applyViewportStyleOverride(&webViewHelper); 1292 applyViewportStyleOverride(&webViewHelper);
1312 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1293 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1313 webViewHelper.webView()->settings()->setUseWideViewport(true); 1294 webViewHelper.webView()->settings()->setUseWideViewport(true);
1314 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1295 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1315 1296
1316 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width()); 1297 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width());
1317 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height()); 1298 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height());
1318 } 1299 }
1319 1300
1320 TEST_P(ParameterizedWebFrameTest, PageViewportInitialScaleOverridesLoadWithOverv iewMode) 1301 TEST_P(ParameterizedWebFrameTest, PageViewportInitialScaleOverridesLoadWithOverv iewMode)
1321 { 1302 {
1322 UseMockScrollbarSettings mockScrollbarSettings;
1323 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1303 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1324 1304
1325 FixedLayoutTestWebViewClient client; 1305 FixedLayoutTestWebViewClient client;
1326 client.m_screenInfo.deviceScaleFactor = 1; 1306 client.m_screenInfo.deviceScaleFactor = 1;
1327 int viewportWidth = 640; 1307 int viewportWidth = 640;
1328 int viewportHeight = 480; 1308 int viewportHeight = 480;
1329 1309
1330 FrameTestHelpers::WebViewHelper webViewHelper(this); 1310 FrameTestHelpers::WebViewHelper webViewHelper(this);
1331 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings); 1311 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings);
1332 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1312 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1333 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1313 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1334 1314
1335 // The page must be displayed at 200% zoom, as specified in its viewport met a tag. 1315 // The page must be displayed at 200% zoom, as specified in its viewport met a tag.
1336 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); 1316 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor());
1337 } 1317 }
1338 1318
1339 TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) 1319 TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently)
1340 { 1320 {
1341 UseMockScrollbarSettings mockScrollbarSettings;
1342
1343 registerMockedHttpURLLoad("fixed_layout.html"); 1321 registerMockedHttpURLLoad("fixed_layout.html");
1344 1322
1345 FixedLayoutTestWebViewClient client; 1323 FixedLayoutTestWebViewClient client;
1346 client.m_screenInfo.deviceScaleFactor = 1; 1324 client.m_screenInfo.deviceScaleFactor = 1;
1347 float enforcedPageScaleFactor = 2.0f; 1325 float enforcedPageScaleFactor = 2.0f;
1348 1326
1349 FrameTestHelpers::WebViewHelper webViewHelper(this); 1327 FrameTestHelpers::WebViewHelper webViewHelper(this);
1350 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1328 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
1351 applyViewportStyleOverride(&webViewHelper); 1329 applyViewportStyleOverride(&webViewHelper);
1352 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1330 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
(...skipping 10 matching lines...) Expand all
1363 1341
1364 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1342 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1365 1343
1366 webViewHelper.webView()->setInitialPageScaleOverride(-1); 1344 webViewHelper.webView()->setInitialPageScaleOverride(-1);
1367 webViewHelper.webView()->layout(); 1345 webViewHelper.webView()->layout();
1368 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor()); 1346 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor());
1369 } 1347 }
1370 1348
1371 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWi thOverviewMode) 1349 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWi thOverviewMode)
1372 { 1350 {
1373 UseMockScrollbarSettings mockScrollbarSettings;
1374 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); 1351 registerMockedHttpURLLoad("viewport-auto-initial-scale.html");
1375 1352
1376 FixedLayoutTestWebViewClient client; 1353 FixedLayoutTestWebViewClient client;
1377 client.m_screenInfo.deviceScaleFactor = 1; 1354 client.m_screenInfo.deviceScaleFactor = 1;
1378 int viewportWidth = 640; 1355 int viewportWidth = 640;
1379 int viewportHeight = 480; 1356 int viewportHeight = 480;
1380 float enforcedPageScaleFactor = 0.5f; 1357 float enforcedPageScaleFactor = 0.5f;
1381 1358
1382 FrameTestHelpers::WebViewHelper webViewHelper(this); 1359 FrameTestHelpers::WebViewHelper webViewHelper(this);
1383 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings); 1360 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm l", true, 0, &client, enableViewportSettings);
1384 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1361 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1385 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor ); 1362 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor );
1386 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1363 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1387 1364
1388 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1365 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1389 } 1366 }
1390 1367
1391 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesPageVi ewportInitialScale) 1368 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesPageVi ewportInitialScale)
1392 { 1369 {
1393 UseMockScrollbarSettings mockScrollbarSettings;
1394 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); 1370 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html");
1395 1371
1396 FixedLayoutTestWebViewClient client; 1372 FixedLayoutTestWebViewClient client;
1397 client.m_screenInfo.deviceScaleFactor = 1; 1373 client.m_screenInfo.deviceScaleFactor = 1;
1398 int viewportWidth = 640; 1374 int viewportWidth = 640;
1399 int viewportHeight = 480; 1375 int viewportHeight = 480;
1400 float enforcedPageScaleFactor = 0.5f; 1376 float enforcedPageScaleFactor = 0.5f;
1401 1377
1402 FrameTestHelpers::WebViewHelper webViewHelper(this); 1378 FrameTestHelpers::WebViewHelper webViewHelper(this);
1403 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings); 1379 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale. html", true, 0, &client, enableViewportSettings);
1404 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor ); 1380 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor );
1405 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1381 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1406 1382
1407 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1383 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1408 } 1384 }
1409 1385
1410 TEST_P(ParameterizedWebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbere d) 1386 TEST_P(ParameterizedWebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbere d)
1411 { 1387 {
1412 UseMockScrollbarSettings mockScrollbarSettings;
1413 const char* pages[] = { 1388 const char* pages[] = {
1414 // These pages trigger the clobbering condition. There must be a matchin g item in "pageScaleFactors" array. 1389 // These pages trigger the clobbering condition. There must be a matchin g item in "pageScaleFactors" array.
1415 "viewport-device-0.5x-initial-scale.html", 1390 "viewport-device-0.5x-initial-scale.html",
1416 "viewport-initial-scale-1.html", 1391 "viewport-initial-scale-1.html",
1417 // These ones do not. 1392 // These ones do not.
1418 "viewport-auto-initial-scale.html", 1393 "viewport-auto-initial-scale.html",
1419 "viewport-target-densitydpi-device-and-fixed-width.html" 1394 "viewport-target-densitydpi-device-and-fixed-width.html"
1420 }; 1395 };
1421 float pageScaleFactors[] = { 0.5f, 1.0f }; 1396 float pageScaleFactors[] = { 0.5f, 1.0f };
1422 for (size_t i = 0; i < ARRAY_SIZE(pages); ++i) 1397 for (size_t i = 0; i < ARRAY_SIZE(pages); ++i)
(...skipping 15 matching lines...) Expand all
1438 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh t)); 1413 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh t));
1439 1414
1440 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor; 1415 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor;
1441 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal eFactor()); 1416 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal eFactor());
1442 } 1417 }
1443 } 1418 }
1444 } 1419 }
1445 1420
1446 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWi dth) 1421 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWi dth)
1447 { 1422 {
1448 UseMockScrollbarSettings mockScrollbarSettings;
1449
1450 FixedLayoutTestWebViewClient client; 1423 FixedLayoutTestWebViewClient client;
1451 client.m_screenInfo.deviceScaleFactor = 1; 1424 client.m_screenInfo.deviceScaleFactor = 1;
1452 int viewportWidth = 640; 1425 int viewportWidth = 640;
1453 int viewportHeight = 480; 1426 int viewportHeight = 480;
1454 float enforcedPageScaleFactor = 0.5; 1427 float enforcedPageScaleFactor = 0.5;
1455 1428
1456 FrameTestHelpers::WebViewHelper webViewHelper(this); 1429 FrameTestHelpers::WebViewHelper webViewHelper(this);
1457 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings); 1430 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings);
1458 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1431 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1459 webViewHelper.webView()->settings()->setUseWideViewport(false); 1432 webViewHelper.webView()->settings()->setUseWideViewport(false);
1460 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1433 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1461 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor ); 1434 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor );
1462 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1435 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1463 1436
1464 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->contentsSize().width()); 1437 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->contentsSize().width());
1465 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1438 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1466 } 1439 }
1467 1440
1468 TEST_P(ParameterizedWebFrameTest, DocumentElementClientHeightWorksWithWrapConten tMode) 1441 TEST_P(ParameterizedWebFrameTest, DocumentElementClientHeightWorksWithWrapConten tMode)
1469 { 1442 {
1470 UseMockScrollbarSettings mockScrollbarSettings;
1471 registerMockedHttpURLLoad("0-by-0.html"); 1443 registerMockedHttpURLLoad("0-by-0.html");
1472 1444
1473 FixedLayoutTestWebViewClient client; 1445 FixedLayoutTestWebViewClient client;
1474 client.m_screenInfo.deviceScaleFactor = 1; 1446 client.m_screenInfo.deviceScaleFactor = 1;
1475 int viewportWidth = 640; 1447 int viewportWidth = 640;
1476 int viewportHeight = 480; 1448 int viewportHeight = 480;
1477 1449
1478 FrameTestHelpers::WebViewHelper webViewHelper(this); 1450 FrameTestHelpers::WebViewHelper webViewHelper(this);
1479 1451
1480 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client, configureAndroid); 1452 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client, configureAndroid);
1481 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); 1453 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true);
1482 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1454 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1483 1455
1484 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); 1456 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame();
1485 Document* document = frame->document(); 1457 Document* document = frame->document();
1486 EXPECT_EQ(viewportHeight, document->documentElement()->clientHeight()); 1458 EXPECT_EQ(viewportHeight, document->documentElement()->clientHeight());
1487 EXPECT_EQ(viewportWidth, document->documentElement()->clientWidth()); 1459 EXPECT_EQ(viewportWidth, document->documentElement()->clientWidth());
1488 } 1460 }
1489 1461
1490 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMo de) 1462 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMo de)
1491 { 1463 {
1492 UseMockScrollbarSettings mockScrollbarSettings;
1493 registerMockedHttpURLLoad("0-by-0.html"); 1464 registerMockedHttpURLLoad("0-by-0.html");
1494 1465
1495 FixedLayoutTestWebViewClient client; 1466 FixedLayoutTestWebViewClient client;
1496 client.m_screenInfo.deviceScaleFactor = 1; 1467 client.m_screenInfo.deviceScaleFactor = 1;
1497 int viewportWidth = 640; 1468 int viewportWidth = 640;
1498 int viewportHeight = 480; 1469 int viewportHeight = 480;
1499 1470
1500 FrameTestHelpers::WebViewHelper webViewHelper(this); 1471 FrameTestHelpers::WebViewHelper webViewHelper(this);
1501 1472
1502 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client, configureAndroid); 1473 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client, configureAndroid);
(...skipping 22 matching lines...) Expand all
1525 1496
1526 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); 1497 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame();
1527 VisualViewport& visualViewport = frame->page()->frameHost().visualViewport() ; 1498 VisualViewport& visualViewport = frame->page()->frameHost().visualViewport() ;
1528 EXPECT_EQ(viewportHeight, visualViewport.containerLayer()->size().height()); 1499 EXPECT_EQ(viewportHeight, visualViewport.containerLayer()->size().height());
1529 EXPECT_TRUE(visualViewport.containerLayer()->platformLayer()->masksToBounds( )); 1500 EXPECT_TRUE(visualViewport.containerLayer()->platformLayer()->masksToBounds( ));
1530 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds()) ; 1501 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds()) ;
1531 } 1502 }
1532 1503
1533 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) 1504 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight)
1534 { 1505 {
1535 UseMockScrollbarSettings mockScrollbarSettings;
1536 registerMockedHttpURLLoad("200-by-300.html"); 1506 registerMockedHttpURLLoad("200-by-300.html");
1537 1507
1538 FixedLayoutTestWebViewClient client; 1508 FixedLayoutTestWebViewClient client;
1539 client.m_screenInfo.deviceScaleFactor = 1; 1509 client.m_screenInfo.deviceScaleFactor = 1;
1540 int viewportWidth = 640; 1510 int viewportWidth = 640;
1541 int viewportHeight = 480; 1511 int viewportHeight = 480;
1542 1512
1543 FrameTestHelpers::WebViewHelper webViewHelper(this); 1513 FrameTestHelpers::WebViewHelper webViewHelper(this);
1544 1514
1545 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings); 1515 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings);
(...skipping 19 matching lines...) Expand all
1565 } 1535 }
1566 1536
1567 TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksWithRelayoutsWhenHeightChanged ) 1537 TEST_F(WebFrameTest, SetForceZeroLayoutHeightWorksWithRelayoutsWhenHeightChanged )
1568 { 1538 {
1569 // this unit test is an attempt to target a real world case where an app cou ld 1539 // this unit test is an attempt to target a real world case where an app cou ld
1570 // 1. call resize(width, 0) and setForceZeroLayoutHeight(true) 1540 // 1. call resize(width, 0) and setForceZeroLayoutHeight(true)
1571 // 2. load content (hoping that the viewport height would increase 1541 // 2. load content (hoping that the viewport height would increase
1572 // as more content is added) 1542 // as more content is added)
1573 // 3. fail to register touch events aimed at the loaded content 1543 // 3. fail to register touch events aimed at the loaded content
1574 // because the layout is only updated if either width or height is changed 1544 // because the layout is only updated if either width or height is changed
1575 UseMockScrollbarSettings mockScrollbarSettings;
1576 registerMockedHttpURLLoad("button.html"); 1545 registerMockedHttpURLLoad("button.html");
1577 1546
1578 FixedLayoutTestWebViewClient client; 1547 FixedLayoutTestWebViewClient client;
1579 client.m_screenInfo.deviceScaleFactor = 1; 1548 client.m_screenInfo.deviceScaleFactor = 1;
1580 int viewportWidth = 640; 1549 int viewportWidth = 640;
1581 int viewportHeight = 480; 1550 int viewportHeight = 480;
1582 1551
1583 FrameTestHelpers::WebViewHelper webViewHelper; 1552 FrameTestHelpers::WebViewHelper webViewHelper;
1584 1553
1585 webViewHelper.initializeAndLoad(m_baseURL + "button.html", true, 0, &client, configureAndroid); 1554 webViewHelper.initializeAndLoad(m_baseURL + "button.html", true, 0, &client, configureAndroid);
(...skipping 16 matching lines...) Expand all
1602 EXPECT_EQ(String("oldValue"), element->innerText()); 1571 EXPECT_EQ(String("oldValue"), element->innerText());
1603 1572
1604 PlatformGestureEvent gestureEvent(PlatformEvent::Type::GestureTap, hitPoint, hitPoint, IntSize(0, 0), 0, PlatformEvent::NoModifiers, PlatformGestureSourceTo uchscreen); 1573 PlatformGestureEvent gestureEvent(PlatformEvent::Type::GestureTap, hitPoint, hitPoint, IntSize(0, 0), 0, PlatformEvent::NoModifiers, PlatformGestureSourceTo uchscreen);
1605 webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handle GestureEvent(gestureEvent); 1574 webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handle GestureEvent(gestureEvent);
1606 // when pressed, the button changes its own text to "updatedValue" 1575 // when pressed, the button changes its own text to "updatedValue"
1607 EXPECT_EQ(String("updatedValue"), element->innerText()); 1576 EXPECT_EQ(String("updatedValue"), element->innerText());
1608 } 1577 }
1609 1578
1610 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations ) 1579 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations )
1611 { 1580 {
1612 UseMockScrollbarSettings mockScrollbarSettings;
1613 registerMockedHttpURLLoad("200-by-300.html"); 1581 registerMockedHttpURLLoad("200-by-300.html");
1614 registerMockedHttpURLLoad("large-div.html"); 1582 registerMockedHttpURLLoad("large-div.html");
1615 1583
1616 FixedLayoutTestWebViewClient client; 1584 FixedLayoutTestWebViewClient client;
1617 client.m_screenInfo.deviceScaleFactor = 1; 1585 client.m_screenInfo.deviceScaleFactor = 1;
1618 int viewportWidth = 640; 1586 int viewportWidth = 640;
1619 int viewportHeight = 480; 1587 int viewportHeight = 480;
1620 1588
1621 FrameTestHelpers::WebViewHelper webViewHelper(this); 1589 FrameTestHelpers::WebViewHelper webViewHelper(this);
1622 1590
1623 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings); 1591 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings);
1624 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); 1592 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true);
1625 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1593 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1626 webViewHelper.webView()->layout(); 1594 webViewHelper.webView()->layout();
1627 1595
1628 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "large-div.html"); 1596 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "large-div.html");
1629 webViewHelper.webView()->layout(); 1597 webViewHelper.webView()->layout();
1630 1598
1631 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo utSize().height()); 1599 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo utSize().height());
1632 } 1600 }
1633 1601
1634 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk) 1602 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk)
1635 { 1603 {
1636 UseMockScrollbarSettings mockScrollbarSettings;
1637 registerMockedHttpURLLoad("200-by-300.html"); 1604 registerMockedHttpURLLoad("200-by-300.html");
1638 1605
1639 FixedLayoutTestWebViewClient client; 1606 FixedLayoutTestWebViewClient client;
1640 client.m_screenInfo.deviceScaleFactor = 1; 1607 client.m_screenInfo.deviceScaleFactor = 1;
1641 int viewportWidth = 640; 1608 int viewportWidth = 640;
1642 int viewportHeight = 480; 1609 int viewportHeight = 480;
1643 1610
1644 FrameTestHelpers::WebViewHelper webViewHelper(this); 1611 FrameTestHelpers::WebViewHelper webViewHelper(this);
1645 1612
1646 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings); 1613 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli ent, enableViewportSettings);
1647 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1614 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1648 webViewHelper.webView()->settings()->setUseWideViewport(true); 1615 webViewHelper.webView()->settings()->setUseWideViewport(true);
1649 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); 1616 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true);
1650 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1617 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1651 webViewHelper.webView()->layout(); 1618 webViewHelper.webView()->layout();
1652 1619
1653 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo utSize().height()); 1620 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo utSize().height());
1654 } 1621 }
1655 1622
1656 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) 1623 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale)
1657 { 1624 {
1658 UseMockScrollbarSettings mockScrollbarSettings;
1659 registerMockedHttpURLLoad("wide_document_width_viewport.html"); 1625 registerMockedHttpURLLoad("wide_document_width_viewport.html");
1660 registerMockedHttpURLLoad("white-1x1.png"); 1626 registerMockedHttpURLLoad("white-1x1.png");
1661 1627
1662 FixedLayoutTestWebViewClient client; 1628 FixedLayoutTestWebViewClient client;
1663 client.m_screenInfo.deviceScaleFactor = 1; 1629 client.m_screenInfo.deviceScaleFactor = 1;
1664 int viewportWidth = 600; 1630 int viewportWidth = 600;
1665 int viewportHeight = 800; 1631 int viewportHeight = 800;
1666 1632
1667 FrameTestHelpers::WebViewHelper webViewHelper(this); 1633 FrameTestHelpers::WebViewHelper webViewHelper(this);
1668 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings); 1634 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings);
1669 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1635 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1670 webViewHelper.webView()->settings()->setUseWideViewport(true); 1636 webViewHelper.webView()->settings()->setUseWideViewport(true);
1671 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); 1637 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
1672 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1638 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1673 1639
1674 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "wide_document_width_viewport.html"); 1640 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "wide_document_width_viewport.html");
1675 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1641 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1676 1642
1677 int wideDocumentWidth = 800; 1643 int wideDocumentWidth = 800;
1678 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; 1644 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth;
1679 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFact or()); 1645 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFact or());
1680 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->minimumPageSc aleFactor()); 1646 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->minimumPageSc aleFactor());
1681 } 1647 }
1682 1648
1683 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) 1649 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight)
1684 { 1650 {
1685 UseMockScrollbarSettings mockScrollbarSettings;
1686 registerMockedHttpURLLoad("viewport-height-1000.html"); 1651 registerMockedHttpURLLoad("viewport-height-1000.html");
1687 1652
1688 FixedLayoutTestWebViewClient client; 1653 FixedLayoutTestWebViewClient client;
1689 client.m_screenInfo.deviceScaleFactor = 1; 1654 client.m_screenInfo.deviceScaleFactor = 1;
1690 int viewportWidth = 600; 1655 int viewportWidth = 600;
1691 int viewportHeight = 800; 1656 int viewportHeight = 800;
1692 1657
1693 FrameTestHelpers::WebViewHelper webViewHelper(this); 1658 FrameTestHelpers::WebViewHelper webViewHelper(this);
1694 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings); 1659 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings);
1695 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1660 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1696 webViewHelper.webView()->settings()->setUseWideViewport(false); 1661 webViewHelper.webView()->settings()->setUseWideViewport(false);
1697 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); 1662 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true);
1698 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1663 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1699 1664
1700 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-height-1000.html"); 1665 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-height-1000.html");
1701 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1666 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1702 1667
1703 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la youtSize().height()); 1668 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la youtSize().height());
1704 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); 1669 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor());
1705 } 1670 }
1706 1671
1707 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) 1672 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk)
1708 { 1673 {
1709 UseMockScrollbarSettings mockScrollbarSettings;
1710 registerMockedHttpURLLoad("viewport/viewport-30.html"); 1674 registerMockedHttpURLLoad("viewport/viewport-30.html");
1711 1675
1712 FixedLayoutTestWebViewClient client; 1676 FixedLayoutTestWebViewClient client;
1713 client.m_screenInfo.deviceScaleFactor = 1; 1677 client.m_screenInfo.deviceScaleFactor = 1;
1714 int viewportWidth = 600; 1678 int viewportWidth = 600;
1715 int viewportHeight = 800; 1679 int viewportHeight = 800;
1716 1680
1717 FrameTestHelpers::WebViewHelper webViewHelper(this); 1681 FrameTestHelpers::WebViewHelper webViewHelper(this);
1718 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings); 1682 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp ortSettings);
1719 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1683 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1751 EXPECT_EQ(1000, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->l ayoutSize().height()); 1715 EXPECT_EQ(1000, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->l ayoutSize().height());
1752 1716
1753 description.maxHeight = Length(320, blink::Fixed); 1717 description.maxHeight = Length(320, blink::Fixed);
1754 document->setViewportDescription(description); 1718 document->setViewportDescription(description);
1755 webViewHelper.webView()->layout(); 1719 webViewHelper.webView()->layout();
1756 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la youtSize().height()); 1720 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la youtSize().height());
1757 } 1721 }
1758 1722
1759 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) 1723 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk)
1760 { 1724 {
1761 UseMockScrollbarSettings mockScrollbarSettings;
1762 registerMockedHttpURLLoad("viewport-zero-values.html"); 1725 registerMockedHttpURLLoad("viewport-zero-values.html");
1763 1726
1764 FixedLayoutTestWebViewClient client; 1727 FixedLayoutTestWebViewClient client;
1765 client.m_screenInfo.deviceScaleFactor = 1; 1728 client.m_screenInfo.deviceScaleFactor = 1;
1766 int viewportWidth = 640; 1729 int viewportWidth = 640;
1767 int viewportHeight = 480; 1730 int viewportHeight = 480;
1768 1731
1769 FrameTestHelpers::WebViewHelper webViewHelper(this); 1732 FrameTestHelpers::WebViewHelper webViewHelper(this);
1770 webViewHelper.initialize(true, 0, &client, enableViewportSettings); 1733 webViewHelper.initialize(true, 0, &client, enableViewportSettings);
1771 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); 1734 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1839 webViewHelper.webView()->settings()->setIgnoreMainFrameOverflowHiddenQuirk(t rue); 1802 webViewHelper.webView()->settings()->setIgnoreMainFrameOverflowHiddenQuirk(t rue);
1840 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "body-overflow-hidden.html"); 1803 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "body-overflow-hidden.html");
1841 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1804 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1842 1805
1843 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); 1806 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView();
1844 EXPECT_TRUE(view->userInputScrollable(VerticalScrollbar)); 1807 EXPECT_TRUE(view->userInputScrollable(VerticalScrollbar));
1845 } 1808 }
1846 1809
1847 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) 1810 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk)
1848 { 1811 {
1849 UseMockScrollbarSettings mockScrollbarSettings;
1850 registerMockedHttpURLLoad("viewport-nonzero-values.html"); 1812 registerMockedHttpURLLoad("viewport-nonzero-values.html");
1851 1813
1852 FixedLayoutTestWebViewClient client; 1814 FixedLayoutTestWebViewClient client;
1853 client.m_screenInfo.deviceScaleFactor = 1; 1815 client.m_screenInfo.deviceScaleFactor = 1;
1854 int viewportWidth = 640; 1816 int viewportWidth = 640;
1855 int viewportHeight = 480; 1817 int viewportHeight = 480;
1856 float expectedPageScaleFactor = 0.5f; 1818 float expectedPageScaleFactor = 0.5f;
1857 1819
1858 FrameTestHelpers::WebViewHelper webViewHelper(this); 1820 FrameTestHelpers::WebViewHelper webViewHelper(this);
1859 webViewHelper.initialize(true, 0, &client, enableViewportSettings); 1821 webViewHelper.initialize(true, 0, &client, enableViewportSettings);
1860 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); 1822 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true);
1861 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1823 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1862 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-nonzero-values.html"); 1824 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "viewport-nonzero-values.html");
1863 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1825 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1864 1826
1865 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->layoutSize().width()); 1827 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->layoutSize().width());
1866 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1828 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1867 1829
1868 webViewHelper.webView()->settings()->setUseWideViewport(true); 1830 webViewHelper.webView()->settings()->setUseWideViewport(true);
1869 webViewHelper.webView()->layout(); 1831 webViewHelper.webView()->layout();
1870 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->layoutSize().width()); 1832 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl ()->mainFrameImpl()->frameView()->layoutSize().width());
1871 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1833 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1872 } 1834 }
1873 1835
1874 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) 1836 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout)
1875 { 1837 {
1876 UseMockScrollbarSettings mockScrollbarSettings;
1877 registerMockedHttpURLLoad("fixed_layout.html"); 1838 registerMockedHttpURLLoad("fixed_layout.html");
1878 1839
1879 FixedLayoutTestWebViewClient client; 1840 FixedLayoutTestWebViewClient client;
1880 client.m_screenInfo.deviceScaleFactor = 1; 1841 client.m_screenInfo.deviceScaleFactor = 1;
1881 // Small viewport to ensure there are always scrollbars. 1842 // Small viewport to ensure there are always scrollbars.
1882 int viewportWidth = 64; 1843 int viewportWidth = 64;
1883 int viewportHeight = 48; 1844 int viewportHeight = 48;
1884 1845
1885 FrameTestHelpers::WebViewHelper webViewHelper(this); 1846 FrameTestHelpers::WebViewHelper webViewHelper(this);
1886 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1847 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
1887 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1848 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1888 webViewHelper.webView()->layout(); 1849 webViewHelper.webView()->layout();
1889 1850
1890 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie w()->layoutCount(); 1851 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie w()->layoutCount();
1891 webViewHelper.webViewImpl()->setPageScaleFactor(3); 1852 webViewHelper.webViewImpl()->setPageScaleFactor(3);
1892 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need sLayout()); 1853 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need sLayout());
1893 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutCount()); 1854 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutCount());
1894 } 1855 }
1895 1856
1896 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNot Layout) 1857 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNot Layout)
1897 { 1858 {
1898 UseMockScrollbarSettings mockScrollbarSettings;
1899
1900 registerMockedHttpURLLoad("fixed_layout.html"); 1859 registerMockedHttpURLLoad("fixed_layout.html");
1901 1860
1902 FixedLayoutTestWebViewClient client; 1861 FixedLayoutTestWebViewClient client;
1903 client.m_screenInfo.deviceScaleFactor = 1; 1862 client.m_screenInfo.deviceScaleFactor = 1;
1904 int viewportWidth = 640; 1863 int viewportWidth = 640;
1905 int viewportHeight = 480; 1864 int viewportHeight = 480;
1906 1865
1907 FrameTestHelpers::WebViewHelper webViewHelper(this); 1866 FrameTestHelpers::WebViewHelper webViewHelper(this);
1908 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1867 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
1909 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1868 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1910 webViewHelper.webView()->layout(); 1869 webViewHelper.webView()->layout();
1911 1870
1912 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie w()->layoutCount(); 1871 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie w()->layoutCount();
1913 webViewHelper.webViewImpl()->setPageScaleFactor(30); 1872 webViewHelper.webViewImpl()->setPageScaleFactor(30);
1914 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need sLayout()); 1873 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need sLayout());
1915 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutCount()); 1874 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutCount());
1916 1875
1917 } 1876 }
1918 1877
1919 TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) 1878 TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem)
1920 { 1879 {
1921 UseMockScrollbarSettings mockScrollbarSettings;
1922 registerMockedHttpURLLoad("fixed_layout.html"); 1880 registerMockedHttpURLLoad("fixed_layout.html");
1923 1881
1924 FixedLayoutTestWebViewClient client; 1882 FixedLayoutTestWebViewClient client;
1925 client.m_screenInfo.deviceScaleFactor = 1; 1883 client.m_screenInfo.deviceScaleFactor = 1;
1926 int viewportWidth = 640; 1884 int viewportWidth = 640;
1927 int viewportHeight = 480; 1885 int viewportHeight = 480;
1928 1886
1929 FrameTestHelpers::WebViewHelper webViewHelper(this); 1887 FrameTestHelpers::WebViewHelper webViewHelper(this);
1930 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1888 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
1931 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1889 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1932 webViewHelper.webView()->layout(); 1890 webViewHelper.webView()->layout();
1933 1891
1934 webViewHelper.webView()->setPageScaleFactor(3); 1892 webViewHelper.webView()->setPageScaleFactor(3);
1935 EXPECT_EQ(3, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())- >loader().currentItem()->pageScaleFactor()); 1893 EXPECT_EQ(3, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())- >loader().currentItem()->pageScaleFactor());
1936 } 1894 }
1937 1895
1938 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) 1896 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem)
1939 { 1897 {
1940 UseMockScrollbarSettings mockScrollbarSettings;
1941 registerMockedHttpURLLoad("fixed_layout.html"); 1898 registerMockedHttpURLLoad("fixed_layout.html");
1942 1899
1943 FixedLayoutTestWebViewClient client; 1900 FixedLayoutTestWebViewClient client;
1944 client.m_screenInfo.deviceScaleFactor = 1; 1901 client.m_screenInfo.deviceScaleFactor = 1;
1945 int viewportWidth = 640; 1902 int viewportWidth = 640;
1946 int viewportHeight = 480; 1903 int viewportHeight = 480;
1947 1904
1948 FrameTestHelpers::WebViewHelper webViewHelper(this); 1905 FrameTestHelpers::WebViewHelper webViewHelper(this);
1949 webViewHelper.initialize(true, 0, &client, enableViewportSettings); 1906 webViewHelper.initialize(true, 0, &client, enableViewportSettings);
1950 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); 1907 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5);
1951 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html"); 1908 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL + "fixed_layout.html");
1952 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1909 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1953 webViewHelper.webView()->layout(); 1910 webViewHelper.webView()->layout();
1954 1911
1955 int defaultFixedLayoutWidth = 980; 1912 int defaultFixedLayoutWidth = 980;
1956 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid th; 1913 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid th;
1957 EXPECT_EQ(minimumPageScaleFactor, toLocalFrame(webViewHelper.webViewImpl()-> page()->mainFrame())->loader().currentItem()->pageScaleFactor()); 1914 EXPECT_EQ(minimumPageScaleFactor, toLocalFrame(webViewHelper.webViewImpl()-> page()->mainFrame())->loader().currentItem()->pageScaleFactor());
1958 } 1915 }
1959 1916
1960 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) 1917 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView)
1961 { 1918 {
1962 UseMockScrollbarSettings mockScrollbarSettings;
1963 registerMockedHttpURLLoad("large-div.html"); 1919 registerMockedHttpURLLoad("large-div.html");
1964 1920
1965 FixedLayoutTestWebViewClient client; 1921 FixedLayoutTestWebViewClient client;
1966 client.m_screenInfo.deviceScaleFactor = 1; 1922 client.m_screenInfo.deviceScaleFactor = 1;
1967 // Small viewport to ensure there are always scrollbars. 1923 // Small viewport to ensure there are always scrollbars.
1968 int viewportWidth = 64; 1924 int viewportWidth = 64;
1969 int viewportHeight = 48; 1925 int viewportHeight = 48;
1970 1926
1971 FrameTestHelpers::WebViewHelper webViewHelper(this); 1927 FrameTestHelpers::WebViewHelper webViewHelper(this);
1972 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings); 1928 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings);
(...skipping 20 matching lines...) Expand all
1993 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width()); 1949 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width());
1994 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height()) ; 1950 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height()) ;
1995 1951
1996 IntSize frameViewSize = view->visibleContentRect().size(); 1952 IntSize frameViewSize = view->visibleContentRect().size();
1997 EXPECT_EQ(viewportWidthMinusScrollbar, frameViewSize.width()); 1953 EXPECT_EQ(viewportWidthMinusScrollbar, frameViewSize.width());
1998 EXPECT_EQ(viewportHeightMinusScrollbar, frameViewSize.height()); 1954 EXPECT_EQ(viewportHeightMinusScrollbar, frameViewSize.height());
1999 } 1955 }
2000 1956
2001 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform) 1957 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform)
2002 { 1958 {
2003 UseMockScrollbarSettings mockScrollbarSettings;
2004 registerMockedHttpURLLoad("fixed_layout.html"); 1959 registerMockedHttpURLLoad("fixed_layout.html");
2005 1960
2006 FixedLayoutTestWebViewClient client; 1961 FixedLayoutTestWebViewClient client;
2007 client.m_screenInfo.deviceScaleFactor = 1; 1962 client.m_screenInfo.deviceScaleFactor = 1;
2008 int viewportWidth = 640; 1963 int viewportWidth = 640;
2009 int viewportHeight = 480; 1964 int viewportHeight = 480;
2010 1965
2011 FrameTestHelpers::WebViewHelper webViewHelper(this); 1966 FrameTestHelpers::WebViewHelper webViewHelper(this);
2012 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1967 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
2013 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1968 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2014 webViewHelper.webView()->layout(); 1969 webViewHelper.webView()->layout();
2015 1970
2016 webViewHelper.webView()->setPageScaleFactor(2); 1971 webViewHelper.webView()->setPageScaleFactor(2);
2017 1972
2018 EXPECT_EQ(980, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame() )->contentLayoutObject()->unscaledDocumentRect().width()); 1973 EXPECT_EQ(980, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame() )->contentLayoutObject()->unscaledDocumentRect().width());
2019 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width()); 1974 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width());
2020 } 1975 }
2021 1976
2022 TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) 1977 TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh)
2023 { 1978 {
2024 UseMockScrollbarSettings mockScrollbarSettings;
2025 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); 1979 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html");
2026 1980
2027 FixedLayoutTestWebViewClient client; 1981 FixedLayoutTestWebViewClient client;
2028 // high-dpi = 240 1982 // high-dpi = 240
2029 float targetDpi = 240.0f; 1983 float targetDpi = 240.0f;
2030 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; 1984 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
2031 int viewportWidth = 640; 1985 int viewportWidth = 640;
2032 int viewportHeight = 480; 1986 int viewportHeight = 480;
2033 1987
2034 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { 1988 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) {
(...skipping 11 matching lines...) Expand all
2046 // physical pixels. 2000 // physical pixels.
2047 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; 2001 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi;
2048 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webViewI mpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); 2002 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webViewI mpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f);
2049 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView Impl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); 2003 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView Impl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f);
2050 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc aleFactor(), 0.01f); 2004 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc aleFactor(), 0.01f);
2051 } 2005 }
2052 } 2006 }
2053 2007
2054 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) 2008 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice)
2055 { 2009 {
2056 UseMockScrollbarSettings mockScrollbarSettings;
2057 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); 2010 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html");
2058 2011
2059 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; 2012 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
2060 2013
2061 FixedLayoutTestWebViewClient client; 2014 FixedLayoutTestWebViewClient client;
2062 int viewportWidth = 640; 2015 int viewportWidth = 640;
2063 int viewportHeight = 480; 2016 int viewportHeight = 480;
2064 2017
2065 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { 2018 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) {
2066 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; 2019 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i];
2067 2020
2068 FrameTestHelpers::WebViewHelper webViewHelper(this); 2021 FrameTestHelpers::WebViewHelper webViewHelper(this);
2069 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi- device.html", true, 0, &client, enableViewportSettings); 2022 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi- device.html", true, 0, &client, enableViewportSettings);
2070 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2023 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2071 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP I(true); 2024 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP I(true);
2072 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2025 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2073 2026
2074 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi ewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f ); 2027 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi ewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f );
2075 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV iewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1. 0f); 2028 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV iewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1. 0f);
2076 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper. webView()->pageScaleFactor(), 0.01f); 2029 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper. webView()->pageScaleFactor(), 0.01f);
2077 } 2030 }
2078 } 2031 }
2079 2032
2080 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth) 2033 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth)
2081 { 2034 {
2082 UseMockScrollbarSettings mockScrollbarSettings;
2083 registerMockedHttpURLLoad("viewport-target-densitydpi-device-and-fixed-width .html"); 2035 registerMockedHttpURLLoad("viewport-target-densitydpi-device-and-fixed-width .html");
2084 2036
2085 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; 2037 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f };
2086 2038
2087 FixedLayoutTestWebViewClient client; 2039 FixedLayoutTestWebViewClient client;
2088 int viewportWidth = 640; 2040 int viewportWidth = 640;
2089 int viewportHeight = 480; 2041 int viewportHeight = 480;
2090 2042
2091 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { 2043 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) {
2092 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; 2044 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i];
2093 2045
2094 FrameTestHelpers::WebViewHelper webViewHelper(this); 2046 FrameTestHelpers::WebViewHelper webViewHelper(this);
2095 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi- device-and-fixed-width.html", true, 0, &client, enableViewportSettings); 2047 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi- device-and-fixed-width.html", true, 0, &client, enableViewportSettings);
2096 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2048 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2097 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP I(true); 2049 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP I(true);
2098 webViewHelper.webView()->settings()->setUseWideViewport(true); 2050 webViewHelper.webView()->settings()->setUseWideViewport(true);
2099 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2051 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2100 2052
2101 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()- >frameView()->layoutSize().width(), 1.0f); 2053 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()- >frameView()->layoutSize().width(), 1.0f);
2102 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl() ->frameView()->layoutSize().height(), 1.0f); 2054 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl() ->frameView()->layoutSize().height(), 1.0f);
2103 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); 2055 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f);
2104 } 2056 }
2105 } 2057 }
2106 2058
2107 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) 2059 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne)
2108 { 2060 {
2109 UseMockScrollbarSettings mockScrollbarSettings;
2110 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); 2061 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html");
2111 2062
2112 FixedLayoutTestWebViewClient client; 2063 FixedLayoutTestWebViewClient client;
2113 client.m_screenInfo.deviceScaleFactor = 1.33f; 2064 client.m_screenInfo.deviceScaleFactor = 1.33f;
2114 int viewportWidth = 640; 2065 int viewportWidth = 640;
2115 int viewportHeight = 480; 2066 int viewportHeight = 480;
2116 2067
2117 FrameTestHelpers::WebViewHelper webViewHelper(this); 2068 FrameTestHelpers::WebViewHelper webViewHelper(this);
2118 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha n-1.html", true, 0, &client, enableViewportSettings); 2069 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha n-1.html", true, 0, &client, enableViewportSettings);
2119 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue); 2070 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue);
2120 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2071 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2121 webViewHelper.webView()->settings()->setUseWideViewport(false); 2072 webViewHelper.webView()->settings()->setUseWideViewport(false);
2122 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2073 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2123 webViewHelper.webView()->layout(); 2074 webViewHelper.webView()->layout();
2124 2075
2125 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); 2076 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f);
2126 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); 2077 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f);
2127 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f); 2078 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f);
2128 } 2079 }
2129 2080
2130 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWid th) 2081 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWid th)
2131 { 2082 {
2132 UseMockScrollbarSettings mockScrollbarSettings;
2133 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1-device-width.h tml"); 2083 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1-device-width.h tml");
2134 2084
2135 FixedLayoutTestWebViewClient client; 2085 FixedLayoutTestWebViewClient client;
2136 client.m_screenInfo.deviceScaleFactor = 1.33f; 2086 client.m_screenInfo.deviceScaleFactor = 1.33f;
2137 int viewportWidth = 640; 2087 int viewportWidth = 640;
2138 int viewportHeight = 480; 2088 int viewportHeight = 480;
2139 2089
2140 FrameTestHelpers::WebViewHelper webViewHelper(this); 2090 FrameTestHelpers::WebViewHelper webViewHelper(this);
2141 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha n-1-device-width.html", true, 0, &client, enableViewportSettings); 2091 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha n-1-device-width.html", true, 0, &client, enableViewportSettings);
2142 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue); 2092 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue);
2143 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2093 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2144 webViewHelper.webView()->settings()->setUseWideViewport(false); 2094 webViewHelper.webView()->settings()->setUseWideViewport(false);
2145 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2095 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2146 webViewHelper.webView()->layout(); 2096 webViewHelper.webView()->layout();
2147 2097
2148 const float pageZoom = 0.25f; 2098 const float pageZoom = 0.25f;
2149 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom , webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width( ), 1.0f); 2099 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom , webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width( ), 1.0f);
2150 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh t(), 1.0f); 2100 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh t(), 1.0f);
2151 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f); 2101 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f);
2152 } 2102 }
2153 2103
2154 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndNoViewportWithInitialPageScal eOverride) 2104 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndNoViewportWithInitialPageScal eOverride)
2155 { 2105 {
2156 UseMockScrollbarSettings mockScrollbarSettings;
2157 registerMockedHttpURLLoad("large-div.html"); 2106 registerMockedHttpURLLoad("large-div.html");
2158 2107
2159 FixedLayoutTestWebViewClient client; 2108 FixedLayoutTestWebViewClient client;
2160 int viewportWidth = 640; 2109 int viewportWidth = 640;
2161 int viewportHeight = 480; 2110 int viewportHeight = 480;
2162 float enforcedPageScaleFactor = 5.0f; 2111 float enforcedPageScaleFactor = 5.0f;
2163 2112
2164 FrameTestHelpers::WebViewHelper webViewHelper(this); 2113 FrameTestHelpers::WebViewHelper webViewHelper(this);
2165 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings); 2114 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie nt, enableViewportSettings);
2166 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); 2115 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5);
2167 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2116 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2168 webViewHelper.webView()->settings()->setUseWideViewport(false); 2117 webViewHelper.webView()->settings()->setUseWideViewport(false);
2169 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor ); 2118 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor );
2170 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2119 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2171 webViewHelper.webView()->layout(); 2120 webViewHelper.webView()->layout();
2172 2121
2173 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewIm pl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); 2122 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewIm pl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f);
2174 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webViewI mpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); 2123 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webViewI mpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f);
2175 EXPECT_NEAR(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFacto r(), 0.01f); 2124 EXPECT_NEAR(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFacto r(), 0.01f);
2176 } 2125 }
2177 2126
2178 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) 2127 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale)
2179 { 2128 {
2180 UseMockScrollbarSettings mockScrollbarSettings;
2181 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" ); 2129 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" );
2182 2130
2183 FixedLayoutTestWebViewClient client; 2131 FixedLayoutTestWebViewClient client;
2184 int viewportWidth = 640; 2132 int viewportWidth = 640;
2185 int viewportHeight = 480; 2133 int viewportHeight = 480;
2186 2134
2187 FrameTestHelpers::WebViewHelper webViewHelper(this); 2135 FrameTestHelpers::WebViewHelper webViewHelper(this);
2188 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client, enableViewportSettings); 2136 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client, enableViewportSettings);
2189 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e); 2137 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
2190 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2138 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2191 webViewHelper.webView()->layout(); 2139 webViewHelper.webView()->layout();
2192 2140
2193 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f); 2141 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f);
2194 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f); 2142 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f);
2195 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); 2143 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f);
2196 } 2144 }
2197 2145
2198 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonW ideViewport) 2146 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonW ideViewport)
2199 { 2147 {
2200 UseMockScrollbarSettings mockScrollbarSettings;
2201 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" ); 2148 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html" );
2202 2149
2203 FixedLayoutTestWebViewClient client; 2150 FixedLayoutTestWebViewClient client;
2204 client.m_screenInfo.deviceScaleFactor = 1.33f; 2151 client.m_screenInfo.deviceScaleFactor = 1.33f;
2205 int viewportWidth = 640; 2152 int viewportWidth = 640;
2206 int viewportHeight = 480; 2153 int viewportHeight = 480;
2207 2154
2208 FrameTestHelpers::WebViewHelper webViewHelper(this); 2155 FrameTestHelpers::WebViewHelper webViewHelper(this);
2209 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client, enableViewportSettings); 2156 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user -scalable-no.html", true, 0, &client, enableViewportSettings);
2210 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue); 2157 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue);
2211 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e); 2158 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
2212 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2159 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2213 webViewHelper.webView()->settings()->setUseWideViewport(false); 2160 webViewHelper.webView()->settings()->setUseWideViewport(false);
2214 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2161 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2215 webViewHelper.webView()->layout(); 2162 webViewHelper.webView()->layout();
2216 2163
2217 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); 2164 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f);
2218 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); 2165 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f);
2219 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f); 2166 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV iew()->pageScaleFactor(), 0.01f);
2220 } 2167 }
2221 2168
2222 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWide Viewport) 2169 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWide Viewport)
2223 { 2170 {
2224 UseMockScrollbarSettings mockScrollbarSettings;
2225 registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html" ); 2171 registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html" );
2226 2172
2227 FixedLayoutTestWebViewClient client; 2173 FixedLayoutTestWebViewClient client;
2228 int viewportWidth = 640; 2174 int viewportWidth = 640;
2229 int viewportHeight = 480; 2175 int viewportHeight = 480;
2230 2176
2231 FrameTestHelpers::WebViewHelper webViewHelper(this); 2177 FrameTestHelpers::WebViewHelper webViewHelper(this);
2232 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-u ser-scalable.html", true, 0, &client, enableViewportSettings); 2178 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-u ser-scalable.html", true, 0, &client, enableViewportSettings);
2233 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e); 2179 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru e);
2234 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2180 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
2235 webViewHelper.webView()->settings()->setUseWideViewport(true); 2181 webViewHelper.webView()->settings()->setUseWideViewport(true);
2236 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2182 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2237 2183
2238 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f); 2184 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra meView()->layoutSize().width(), 1.0f);
2239 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f); 2185 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr ameView()->layoutSize().height(), 1.0f);
2240 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); 2186 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f);
2241 } 2187 }
2242 2188
2243 TEST_P(ParameterizedWebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurn edOff) 2189 TEST_P(ParameterizedWebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurn edOff)
2244 { 2190 {
2245 UseMockScrollbarSettings mockScrollbarSettings;
2246 registerMockedHttpURLLoad("no_viewport_tag.html"); 2191 registerMockedHttpURLLoad("no_viewport_tag.html");
2247 2192
2248 FixedLayoutTestWebViewClient client; 2193 FixedLayoutTestWebViewClient client;
2249 int viewportWidth = 640; 2194 int viewportWidth = 640;
2250 int viewportHeight = 480; 2195 int viewportHeight = 480;
2251 2196
2252 FrameTestHelpers::WebViewHelper webViewHelper(this); 2197 FrameTestHelpers::WebViewHelper webViewHelper(this);
2253 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); 2198 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings);
2254 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); 2199 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5);
2255 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 2200 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
(...skipping 13 matching lines...) Expand all
2269 FloatSize relativeOffset = FloatPoint(absoluteOffset) - FloatPoint(rect. location()); 2214 FloatSize relativeOffset = FloatPoint(absoluteOffset) - FloatPoint(rect. location());
2270 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height()); 2215 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height());
2271 return relativeOffset; 2216 return relativeOffset;
2272 } 2217 }
2273 2218
2274 void testResizeYieldsCorrectScrollAndScale(const char* url, 2219 void testResizeYieldsCorrectScrollAndScale(const char* url,
2275 const float initialPageScaleFacto r, 2220 const float initialPageScaleFacto r,
2276 const WebSize scrollOffset, 2221 const WebSize scrollOffset,
2277 const WebSize viewportSize, 2222 const WebSize viewportSize,
2278 const bool shouldScaleRelativeToV iewportWidth) { 2223 const bool shouldScaleRelativeToV iewportWidth) {
2279 UseMockScrollbarSettings mockScrollbarSettings;
2280 registerMockedHttpURLLoad(url); 2224 registerMockedHttpURLLoad(url);
2281 2225
2282 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp ortSize.height; 2226 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp ortSize.height;
2283 2227
2284 FrameTestHelpers::WebViewHelper webViewHelper(this); 2228 FrameTestHelpers::WebViewHelper webViewHelper(this);
2285 webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, enableViewp ortSettings); 2229 webViewHelper.initializeAndLoad(m_baseURL + url, true, 0, 0, enableViewp ortSettings);
2286 webViewHelper.webViewImpl()->setDefaultPageScaleLimits(0.25f, 5); 2230 webViewHelper.webViewImpl()->setDefaultPageScaleLimits(0.25f, 5);
2287 2231
2288 // Origin scrollOffsets preserved under resize. 2232 // Origin scrollOffsets preserved under resize.
2289 { 2233 {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
2369 const WebSize scrollOffset(200, 400); 2313 const WebSize scrollOffset(200, 400);
2370 const WebSize viewportSize(320, 240); 2314 const WebSize viewportSize(320, 240);
2371 const bool shouldScaleRelativeToViewportWidth = true; 2315 const bool shouldScaleRelativeToViewportWidth = true;
2372 2316
2373 testResizeYieldsCorrectScrollAndScale( 2317 testResizeYieldsCorrectScrollAndScale(
2374 url, initialPageScaleFactor, scrollOffset, viewportSize, shouldScaleRela tiveToViewportWidth); 2318 url, initialPageScaleFactor, scrollOffset, viewportSize, shouldScaleRela tiveToViewportWidth);
2375 } 2319 }
2376 2320
2377 TEST_P(ParameterizedWebFrameTest, pageScaleFactorUpdatesScrollbars) 2321 TEST_P(ParameterizedWebFrameTest, pageScaleFactorUpdatesScrollbars)
2378 { 2322 {
2379 UseMockScrollbarSettings mockScrollbarSettings;
2380 registerMockedHttpURLLoad("fixed_layout.html"); 2323 registerMockedHttpURLLoad("fixed_layout.html");
2381 2324
2382 FixedLayoutTestWebViewClient client; 2325 FixedLayoutTestWebViewClient client;
2383 client.m_screenInfo.deviceScaleFactor = 1; 2326 client.m_screenInfo.deviceScaleFactor = 1;
2384 int viewportWidth = 640; 2327 int viewportWidth = 640;
2385 int viewportHeight = 480; 2328 int viewportHeight = 480;
2386 2329
2387 FrameTestHelpers::WebViewHelper webViewHelper(this); 2330 FrameTestHelpers::WebViewHelper webViewHelper(this);
2388 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 2331 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
2389 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 2332 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
2390 webViewHelper.webView()->layout(); 2333 webViewHelper.webView()->layout();
2391 2334
2392 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); 2335 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView();
2393 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width( ) - view->visibleContentRect().width()); 2336 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width( ) - view->visibleContentRect().width());
2394 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height() - view->visibleContentRect().height()); 2337 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height() - view->visibleContentRect().height());
2395 2338
2396 webViewHelper.webView()->setPageScaleFactor(10); 2339 webViewHelper.webView()->setPageScaleFactor(10);
2397 2340
2398 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width( ) - view->visibleContentRect().width()); 2341 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width( ) - view->visibleContentRect().width());
2399 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height() - view->visibleContentRect().height()); 2342 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height() - view->visibleContentRect().height());
2400 } 2343 }
2401 2344
2402 TEST_P(ParameterizedWebFrameTest, CanOverrideScaleLimits) 2345 TEST_P(ParameterizedWebFrameTest, CanOverrideScaleLimits)
2403 { 2346 {
2404 UseMockScrollbarSettings mockScrollbarSettings;
2405
2406 registerMockedHttpURLLoad("no_scale_for_you.html"); 2347 registerMockedHttpURLLoad("no_scale_for_you.html");
2407 2348
2408 FixedLayoutTestWebViewClient client; 2349 FixedLayoutTestWebViewClient client;
2409 client.m_screenInfo.deviceScaleFactor = 1; 2350 client.m_screenInfo.deviceScaleFactor = 1;
2410 int viewportWidth = 640; 2351 int viewportWidth = 640;
2411 int viewportHeight = 480; 2352 int viewportHeight = 480;
2412 2353
2413 FrameTestHelpers::WebViewHelper webViewHelper(this); 2354 FrameTestHelpers::WebViewHelper webViewHelper(this);
2414 webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0 , &client, enableViewportSettings); 2355 webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0 , &client, enableViewportSettings);
2415 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); 2356 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5);
(...skipping 15 matching lines...) Expand all
2431 EXPECT_EQ(2.0f, webViewHelper.webViewImpl()->maximumPageScaleFactor()); 2372 EXPECT_EQ(2.0f, webViewHelper.webViewImpl()->maximumPageScaleFactor());
2432 } 2373 }
2433 2374
2434 // Android doesn't have scrollbars on the main FrameView 2375 // Android doesn't have scrollbars on the main FrameView
2435 #if OS(ANDROID) 2376 #if OS(ANDROID)
2436 TEST_F(WebFrameTest, DISABLED_updateOverlayScrollbarLayers) 2377 TEST_F(WebFrameTest, DISABLED_updateOverlayScrollbarLayers)
2437 #else 2378 #else
2438 TEST_F(WebFrameTest, updateOverlayScrollbarLayers) 2379 TEST_F(WebFrameTest, updateOverlayScrollbarLayers)
2439 #endif 2380 #endif
2440 { 2381 {
2441 UseMockScrollbarSettings mockScrollbarSettings;
2442
2443 registerMockedHttpURLLoad("large-div.html"); 2382 registerMockedHttpURLLoad("large-div.html");
2444 2383
2445 int viewWidth = 500; 2384 int viewWidth = 500;
2446 int viewHeight = 500; 2385 int viewHeight = 500;
2447 2386
2448 OwnPtr<FakeCompositingWebViewClient> fakeCompositingWebViewClient = adoptPtr (new FakeCompositingWebViewClient()); 2387 OwnPtr<FakeCompositingWebViewClient> fakeCompositingWebViewClient = adoptPtr (new FakeCompositingWebViewClient());
2449 FrameTestHelpers::WebViewHelper webViewHelper; 2388 FrameTestHelpers::WebViewHelper webViewHelper;
2450 webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &confi gueCompositingWebView); 2389 webViewHelper.initialize(true, 0, fakeCompositingWebViewClient.get(), &confi gueCompositingWebView);
2451 2390
2452 webViewHelper.webView()->resize(WebSize(viewWidth, viewHeight)); 2391 webViewHelper.webView()->resize(WebSize(viewWidth, viewHeight));
(...skipping 2386 matching lines...) Expand 10 before | Expand all | Expand 10 after
4839 webViewHelper.webView()->resize(WebSize(1000, 1000)); 4778 webViewHelper.webView()->resize(WebSize(1000, 1000));
4840 webViewHelper.webView()->layout(); 4779 webViewHelper.webView()->layout();
4841 4780
4842 client.resetTriggered(); 4781 client.resetTriggered();
4843 webViewHelper.webView()->handleInputEvent(fatTap(50, 50)); 4782 webViewHelper.webView()->handleInputEvent(fatTap(50, 50));
4844 EXPECT_FALSE(client.triggered()); 4783 EXPECT_FALSE(client.triggered());
4845 } 4784 }
4846 4785
4847 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) 4786 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite)
4848 { 4787 {
4849 UseMockScrollbarSettings mockScrollbarSettings;
4850 const std::string htmlFile = "disambiguation_popup_mobile_site.html"; 4788 const std::string htmlFile = "disambiguation_popup_mobile_site.html";
4851 registerMockedHttpURLLoad(htmlFile); 4789 registerMockedHttpURLLoad(htmlFile);
4852 4790
4853 DisambiguationPopupTestWebViewClient client; 4791 DisambiguationPopupTestWebViewClient client;
4854 4792
4855 // Make sure we initialize to minimum scale, even if the window size 4793 // Make sure we initialize to minimum scale, even if the window size
4856 // only becomes available after the load begins. 4794 // only becomes available after the load begins.
4857 FrameTestHelpers::WebViewHelper webViewHelper(this); 4795 FrameTestHelpers::WebViewHelper webViewHelper(this);
4858 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enab leViewportSettings); 4796 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enab leViewportSettings);
4859 webViewHelper.webView()->resize(WebSize(1000, 1000)); 4797 webViewHelper.webView()->resize(WebSize(1000, 1000));
(...skipping 15 matching lines...) Expand all
4875 4813
4876 for (int i = 0; i <= 46; i++) { 4814 for (int i = 0; i <= 46; i++) {
4877 client.resetTriggered(); 4815 client.resetTriggered();
4878 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); 4816 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590));
4879 EXPECT_FALSE(client.triggered()); 4817 EXPECT_FALSE(client.triggered());
4880 } 4818 }
4881 } 4819 }
4882 4820
4883 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) 4821 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite)
4884 { 4822 {
4885 UseMockScrollbarSettings mockScrollbarSettings;
4886 const std::string htmlFile = "disambiguation_popup_viewport_site.html"; 4823 const std::string htmlFile = "disambiguation_popup_viewport_site.html";
4887 registerMockedHttpURLLoad(htmlFile); 4824 registerMockedHttpURLLoad(htmlFile);
4888 4825
4889 DisambiguationPopupTestWebViewClient client; 4826 DisambiguationPopupTestWebViewClient client;
4890 4827
4891 // Make sure we initialize to minimum scale, even if the window size 4828 // Make sure we initialize to minimum scale, even if the window size
4892 // only becomes available after the load begins. 4829 // only becomes available after the load begins.
4893 FrameTestHelpers::WebViewHelper webViewHelper(this); 4830 FrameTestHelpers::WebViewHelper webViewHelper(this);
4894 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enab leViewportSettings); 4831 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, enab leViewportSettings);
4895 webViewHelper.webView()->resize(WebSize(1000, 1000)); 4832 webViewHelper.webView()->resize(WebSize(1000, 1000));
(...skipping 15 matching lines...) Expand all
4911 4848
4912 for (int i = 0; i <= 46; i++) { 4849 for (int i = 0; i <= 46; i++) {
4913 client.resetTriggered(); 4850 client.resetTriggered();
4914 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); 4851 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590));
4915 EXPECT_FALSE(client.triggered()); 4852 EXPECT_FALSE(client.triggered());
4916 } 4853 }
4917 } 4854 }
4918 4855
4919 TEST_F(WebFrameTest, DisambiguationPopupVisualViewport) 4856 TEST_F(WebFrameTest, DisambiguationPopupVisualViewport)
4920 { 4857 {
4921 UseMockScrollbarSettings mockScrollbarSettings;
4922 const std::string htmlFile = "disambiguation_popup_200_by_800.html"; 4858 const std::string htmlFile = "disambiguation_popup_200_by_800.html";
4923 registerMockedHttpURLLoad(htmlFile); 4859 registerMockedHttpURLLoad(htmlFile);
4924 4860
4925 DisambiguationPopupTestWebViewClient client; 4861 DisambiguationPopupTestWebViewClient client;
4926 4862
4927 FrameTestHelpers::WebViewHelper webViewHelper; 4863 FrameTestHelpers::WebViewHelper webViewHelper;
4928 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf igureAndroid); 4864 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf igureAndroid);
4929 4865
4930 WebViewImpl* webViewImpl = webViewHelper.webViewImpl(); 4866 WebViewImpl* webViewImpl = webViewHelper.webViewImpl();
4931 ASSERT_TRUE(webViewImpl); 4867 ASSERT_TRUE(webViewImpl);
(...skipping 1408 matching lines...) Expand 10 before | Expand all | Expand 10 after
6340 registerMockedHttpURLLoad("create_child_frame_fail.html"); 6276 registerMockedHttpURLLoad("create_child_frame_fail.html");
6341 FailCreateChildFrame client; 6277 FailCreateChildFrame client;
6342 FrameTestHelpers::WebViewHelper webViewHelper(this); 6278 FrameTestHelpers::WebViewHelper webViewHelper(this);
6343 webViewHelper.initializeAndLoad(m_baseURL + "create_child_frame_fail.html", true, &client); 6279 webViewHelper.initializeAndLoad(m_baseURL + "create_child_frame_fail.html", true, &client);
6344 6280
6345 EXPECT_EQ(1, client.callCount()); 6281 EXPECT_EQ(1, client.callCount());
6346 } 6282 }
6347 6283
6348 TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) 6284 TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport)
6349 { 6285 {
6350 UseMockScrollbarSettings mockScrollbarSettings;
6351 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); 6286 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html");
6352 FrameTestHelpers::WebViewHelper webViewHelper(this); 6287 FrameTestHelpers::WebViewHelper webViewHelper(this);
6353 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor t.html", true, 0, 0, enableViewportSettings); 6288 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor t.html", true, 0, 0, enableViewportSettings);
6354 6289
6355 WebView* webView = webViewHelper.webView(); 6290 WebView* webView = webViewHelper.webView();
6356 webView->resize(WebSize(100, 100)); 6291 webView->resize(WebSize(100, 100));
6357 6292
6358 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc ument(); 6293 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc ument();
6359 Element* bottomFixed = document->getElementById("bottom-fixed"); 6294 Element* bottomFixed = document->getElementById("bottom-fixed");
6360 Element* topBottomFixed = document->getElementById("top-bottom-fixed"); 6295 Element* topBottomFixed = document->getElementById("top-bottom-fixed");
(...skipping 21 matching lines...) Expand all
6382 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew(); 6317 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew();
6383 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect()); 6318 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect());
6384 frameView->setFrameRect(IntRect(100, 100, 200, 200)); 6319 frameView->setFrameRect(IntRect(100, 100, 200, 200));
6385 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect()); 6320 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect());
6386 } 6321 }
6387 6322
6388 TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls) 6323 TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls)
6389 { 6324 {
6390 FakeCompositingWebViewClient client; 6325 FakeCompositingWebViewClient client;
6391 registerMockedHttpURLLoad("long_scroll.html"); 6326 registerMockedHttpURLLoad("long_scroll.html");
6392 UseMockScrollbarSettings mockScrollbarSettings;
6393 FrameTestHelpers::WebViewHelper webViewHelper; 6327 FrameTestHelpers::WebViewHelper webViewHelper;
6394 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl ient, configureAndroid); 6328 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl ient, configureAndroid);
6395 6329
6396 WebViewImpl* webView = webViewHelper.webViewImpl(); 6330 WebViewImpl* webView = webViewHelper.webViewImpl();
6397 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew(); 6331 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew();
6398 6332
6399 float topControlsHeight = 40; 6333 float topControlsHeight = 40;
6400 webView->setTopControlsHeight(topControlsHeight, false); 6334 webView->setTopControlsHeight(topControlsHeight, false);
6401 webView->resize(WebSize(100, 100)); 6335 webView->resize(WebSize(100, 100));
6402 webView->setPageScaleFactor(2.0f); 6336 webView->setPageScaleFactor(2.0f);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
6445 // main frame. 6379 // main frame.
6446 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 1.0f / topControlsHeight); 6380 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 1.0f / topControlsHeight);
6447 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); 6381 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition());
6448 6382
6449 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 2.0f / topControlsHeight); 6383 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(), 1.0f, 2.0f / topControlsHeight);
6450 EXPECT_POINT_EQ(IntPoint(0, 1903), frameView->maximumScrollPosition()); 6384 EXPECT_POINT_EQ(IntPoint(0, 1903), frameView->maximumScrollPosition());
6451 } 6385 }
6452 6386
6453 TEST_F(WebFrameTest, MaximumScrollPositionCanBeNegative) 6387 TEST_F(WebFrameTest, MaximumScrollPositionCanBeNegative)
6454 { 6388 {
6455 UseMockScrollbarSettings mockScrollbarSettings;
6456 registerMockedHttpURLLoad("rtl-overview-mode.html"); 6389 registerMockedHttpURLLoad("rtl-overview-mode.html");
6457 6390
6458 FixedLayoutTestWebViewClient client; 6391 FixedLayoutTestWebViewClient client;
6459 client.m_screenInfo.deviceScaleFactor = 1; 6392 client.m_screenInfo.deviceScaleFactor = 1;
6460 int viewportWidth = 640; 6393 int viewportWidth = 640;
6461 int viewportHeight = 480; 6394 int viewportHeight = 480;
6462 6395
6463 FrameTestHelpers::WebViewHelper webViewHelper; 6396 FrameTestHelpers::WebViewHelper webViewHelper;
6464 webViewHelper.initializeAndLoad(m_baseURL + "rtl-overview-mode.html", true, 0, &client, enableViewportSettings); 6397 webViewHelper.initializeAndLoad(m_baseURL + "rtl-overview-mode.html", true, 0, &client, enableViewportSettings);
6465 webViewHelper.webView()->setInitialPageScaleOverride(-1); 6398 webViewHelper.webView()->setInitialPageScaleOverride(-1);
(...skipping 1827 matching lines...) Expand 10 before | Expand all | Expand 10 after
8293 EXPECT_TRUE(resource); 8226 EXPECT_TRUE(resource);
8294 EXPECT_NE(0, resource->loadFinishTime()); 8227 EXPECT_NE(0, resource->loadFinishTime());
8295 8228
8296 DocumentLoader* loader = document->loader(); 8229 DocumentLoader* loader = document->loader();
8297 8230
8298 EXPECT_TRUE(loader); 8231 EXPECT_TRUE(loader);
8299 EXPECT_EQ(loader->timing().responseEnd(), resource->loadFinishTime()); 8232 EXPECT_EQ(loader->timing().responseEnd(), resource->loadFinishTime());
8300 } 8233 }
8301 8234
8302 } // namespace blink 8235 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698