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

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

Issue 219123002: Read the default min-width value from the UA style sheets (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/web/tests/ViewportTest.cpp ('k') | Source/web/tests/data/no_viewport_tag.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 22 matching lines...) Expand all
33 #include "WebFrame.h" 33 #include "WebFrame.h"
34 34
35 #include <gmock/gmock.h> 35 #include <gmock/gmock.h>
36 #include <gtest/gtest.h> 36 #include <gtest/gtest.h>
37 #include <v8.h> 37 #include <v8.h>
38 #include "FrameTestHelpers.h" 38 #include "FrameTestHelpers.h"
39 #include "RuntimeEnabledFeatures.h" 39 #include "RuntimeEnabledFeatures.h"
40 #include "SkBitmap.h" 40 #include "SkBitmap.h"
41 #include "SkCanvas.h" 41 #include "SkCanvas.h"
42 #include "URLTestHelpers.h" 42 #include "URLTestHelpers.h"
43 #include "UserAgentStyleSheets.h"
43 #include "WebDataSource.h" 44 #include "WebDataSource.h"
44 #include "WebDocument.h" 45 #include "WebDocument.h"
45 #include "WebFindOptions.h" 46 #include "WebFindOptions.h"
46 #include "WebFormElement.h" 47 #include "WebFormElement.h"
47 #include "WebFrameClient.h" 48 #include "WebFrameClient.h"
48 #include "WebFrameImpl.h" 49 #include "WebFrameImpl.h"
49 #include "WebHistoryItem.h" 50 #include "WebHistoryItem.h"
50 #include "WebRange.h" 51 #include "WebRange.h"
51 #include "WebScriptSource.h" 52 #include "WebScriptSource.h"
52 #include "WebSearchableFormData.h" 53 #include "WebSearchableFormData.h"
53 #include "WebSecurityOrigin.h" 54 #include "WebSecurityOrigin.h"
54 #include "WebSecurityPolicy.h" 55 #include "WebSecurityPolicy.h"
55 #include "WebSettings.h" 56 #include "WebSettings.h"
56 #include "WebSpellCheckClient.h" 57 #include "WebSpellCheckClient.h"
57 #include "WebTextCheckingCompletion.h" 58 #include "WebTextCheckingCompletion.h"
58 #include "WebTextCheckingResult.h" 59 #include "WebTextCheckingResult.h"
59 #include "WebViewClient.h" 60 #include "WebViewClient.h"
60 #include "WebViewImpl.h" 61 #include "WebViewImpl.h"
61 #include "core/clipboard/Clipboard.h" 62 #include "core/clipboard/Clipboard.h"
63 #include "core/css/StyleSheetContents.h"
64 #include "core/css/resolver/ViewportStyleResolver.h"
62 #include "core/dom/DocumentMarkerController.h" 65 #include "core/dom/DocumentMarkerController.h"
63 #include "core/dom/FullscreenElementStack.h" 66 #include "core/dom/FullscreenElementStack.h"
64 #include "core/dom/Range.h" 67 #include "core/dom/Range.h"
65 #include "core/editing/Editor.h" 68 #include "core/editing/Editor.h"
66 #include "core/editing/FrameSelection.h" 69 #include "core/editing/FrameSelection.h"
67 #include "core/editing/SpellChecker.h" 70 #include "core/editing/SpellChecker.h"
68 #include "core/editing/VisiblePosition.h" 71 #include "core/editing/VisiblePosition.h"
69 #include "core/events/MouseEvent.h" 72 #include "core/events/MouseEvent.h"
70 #include "core/frame/FrameView.h" 73 #include "core/frame/FrameView.h"
71 #include "core/frame/LocalFrame.h" 74 #include "core/frame/LocalFrame.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 void registerMockedHttpURLLoad(const std::string& fileName) 153 void registerMockedHttpURLLoad(const std::string& fileName)
151 { 154 {
152 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU RL.c_str()), WebString::fromUTF8(fileName.c_str())); 155 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseU RL.c_str()), WebString::fromUTF8(fileName.c_str()));
153 } 156 }
154 157
155 void registerMockedChromeURLLoad(const std::string& fileName) 158 void registerMockedChromeURLLoad(const std::string& fileName)
156 { 159 {
157 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_chrom eURL.c_str()), WebString::fromUTF8(fileName.c_str())); 160 URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_chrom eURL.c_str()), WebString::fromUTF8(fileName.c_str()));
158 } 161 }
159 162
163 void applyViewportStyleOverride(FrameTestHelpers::WebViewHelper* webViewHelp er)
164 {
165 RefPtrWillBeRawPtr<WebCore::StyleSheetContents> styleSheet = WebCore::St yleSheetContents::create(WebCore::CSSParserContext(WebCore::UASheetMode, 0));
166 styleSheet->parseString(String(WebCore::viewportAndroidUserAgentStyleShe et, sizeof(WebCore::viewportAndroidUserAgentStyleSheet)));
167 OwnPtrWillBeRawPtr<WebCore::RuleSet> ruleSet = WebCore::RuleSet::create( );
168 ruleSet->addRulesFromSheet(styleSheet.get(), WebCore::MediaQueryEvaluato r("screen"));
169
170 Document* document = webViewHelper->webViewImpl()->page()->mainFrame()-> document();
171 document->ensureStyleResolver().viewportStyleResolver()->collectViewport Rules(ruleSet.get(), WebCore::ViewportStyleResolver::UserAgentOrigin);
172 document->ensureStyleResolver().viewportStyleResolver()->resolve();
173 }
174
160 static void configueCompositingWebView(WebSettings* settings) 175 static void configueCompositingWebView(WebSettings* settings)
161 { 176 {
162 settings->setForceCompositingMode(true); 177 settings->setForceCompositingMode(true);
163 settings->setAcceleratedCompositingEnabled(true); 178 settings->setAcceleratedCompositingEnabled(true);
164 settings->setAcceleratedCompositingForFixedPositionEnabled(true); 179 settings->setAcceleratedCompositingForFixedPositionEnabled(true);
165 settings->setAcceleratedCompositingForOverflowScrollEnabled(true); 180 settings->setAcceleratedCompositingForOverflowScrollEnabled(true);
166 settings->setAcceleratedCompositingForScrollableFramesEnabled(true); 181 settings->setAcceleratedCompositingForScrollableFramesEnabled(true);
167 settings->setCompositedScrollingForFramesEnabled(true); 182 settings->setCompositedScrollingForFramesEnabled(true);
168 } 183 }
169 184
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 UseMockScrollbarSettings mockScrollbarSettings; 890 UseMockScrollbarSettings mockScrollbarSettings;
876 registerMockedHttpURLLoad("no_viewport_tag.html"); 891 registerMockedHttpURLLoad("no_viewport_tag.html");
877 892
878 FixedLayoutTestWebViewClient client; 893 FixedLayoutTestWebViewClient client;
879 client.m_screenInfo.deviceScaleFactor = 1; 894 client.m_screenInfo.deviceScaleFactor = 1;
880 int viewportWidth = 640; 895 int viewportWidth = 640;
881 int viewportHeight = 480; 896 int viewportHeight = 480;
882 897
883 FrameTestHelpers::WebViewHelper webViewHelper; 898 FrameTestHelpers::WebViewHelper webViewHelper;
884 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); 899 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings);
900 applyViewportStyleOverride(&webViewHelper);
885 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue); 901 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr ue);
886 webViewHelper.webView()->settings()->setUseWideViewport(true); 902 webViewHelper.webView()->settings()->setUseWideViewport(true);
887 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 903 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
888 904
889 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH eight)); 905 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH eight));
890 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs Layout()); 906 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs Layout());
891 webViewHelper.webView()->layout(); 907 webViewHelper.webView()->layout();
892 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width()); 908 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame View()->contentsSize().width());
893 909
894 webViewHelper.webView()->setFixedLayoutSize(WebSize(0, 0)); 910 webViewHelper.webView()->setFixedLayoutSize(WebSize(0, 0));
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
1130 UseMockScrollbarSettings mockScrollbarSettings; 1146 UseMockScrollbarSettings mockScrollbarSettings;
1131 registerMockedHttpURLLoad("no_viewport_tag.html"); 1147 registerMockedHttpURLLoad("no_viewport_tag.html");
1132 1148
1133 FixedLayoutTestWebViewClient client; 1149 FixedLayoutTestWebViewClient client;
1134 client.m_screenInfo.deviceScaleFactor = 1; 1150 client.m_screenInfo.deviceScaleFactor = 1;
1135 int viewportWidth = 640; 1151 int viewportWidth = 640;
1136 int viewportHeight = 480; 1152 int viewportHeight = 480;
1137 1153
1138 FrameTestHelpers::WebViewHelper webViewHelper; 1154 FrameTestHelpers::WebViewHelper webViewHelper;
1139 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings); 1155 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0, &client, enableViewportSettings);
1156 applyViewportStyleOverride(&webViewHelper);
1140 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1157 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1141 webViewHelper.webView()->settings()->setUseWideViewport(true); 1158 webViewHelper.webView()->settings()->setUseWideViewport(true);
1142 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1159 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1143 1160
1144 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width()); 1161 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width());
1145 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height()); 1162 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height());
1146 } 1163 }
1147 1164
1148 TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta) 1165 TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta)
1149 { 1166 {
(...skipping 19 matching lines...) Expand all
1169 UseMockScrollbarSettings mockScrollbarSettings; 1186 UseMockScrollbarSettings mockScrollbarSettings;
1170 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); 1187 registerMockedHttpURLLoad("viewport-2x-initial-scale.html");
1171 1188
1172 FixedLayoutTestWebViewClient client; 1189 FixedLayoutTestWebViewClient client;
1173 client.m_screenInfo.deviceScaleFactor = 1; 1190 client.m_screenInfo.deviceScaleFactor = 1;
1174 int viewportWidth = 640; 1191 int viewportWidth = 640;
1175 int viewportHeight = 480; 1192 int viewportHeight = 480;
1176 1193
1177 FrameTestHelpers::WebViewHelper webViewHelper; 1194 FrameTestHelpers::WebViewHelper webViewHelper;
1178 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html" , true, 0, &client, enableViewportSettings); 1195 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html" , true, 0, &client, enableViewportSettings);
1196 applyViewportStyleOverride(&webViewHelper);
1179 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1197 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1180 webViewHelper.webView()->settings()->setUseWideViewport(true); 1198 webViewHelper.webView()->settings()->setUseWideViewport(true);
1181 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1199 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
1182 1200
1183 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width()); 1201 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co ntentsSize().width());
1184 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height()); 1202 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl( )->mainFrameImpl()->frameView()->contentsSize().height());
1185 } 1203 }
1186 1204
1187 TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode) 1205 TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode)
1188 { 1206 {
(...skipping 19 matching lines...) Expand all
1208 UseMockScrollbarSettings mockScrollbarSettings; 1226 UseMockScrollbarSettings mockScrollbarSettings;
1209 1227
1210 registerMockedHttpURLLoad("fixed_layout.html"); 1228 registerMockedHttpURLLoad("fixed_layout.html");
1211 1229
1212 FixedLayoutTestWebViewClient client; 1230 FixedLayoutTestWebViewClient client;
1213 client.m_screenInfo.deviceScaleFactor = 1; 1231 client.m_screenInfo.deviceScaleFactor = 1;
1214 float enforcedPageScaleFactor = 2.0f; 1232 float enforcedPageScaleFactor = 2.0f;
1215 1233
1216 FrameTestHelpers::WebViewHelper webViewHelper; 1234 FrameTestHelpers::WebViewHelper webViewHelper;
1217 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings); 1235 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c lient, enableViewportSettings);
1236 applyViewportStyleOverride(&webViewHelper);
1218 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); 1237 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true);
1219 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); 1238 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false);
1220 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor ); 1239 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor );
1221 webViewHelper.webView()->layout(); 1240 webViewHelper.webView()->layout();
1222 1241
1223 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( )); 1242 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor( ));
1224 1243
1225 int viewportWidth = 640; 1244 int viewportWidth = 640;
1226 int viewportHeight = 480; 1245 int viewportHeight = 480;
1227 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); 1246 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight));
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 FixedLayoutTestWebViewClient client; 1310 FixedLayoutTestWebViewClient client;
1292 client.m_screenInfo.deviceScaleFactor = 1; 1311 client.m_screenInfo.deviceScaleFactor = 1;
1293 int viewportWidth = 400; 1312 int viewportWidth = 400;
1294 int viewportHeight = 300; 1313 int viewportHeight = 300;
1295 float enforcedPageScaleFactor = 0.75f; 1314 float enforcedPageScaleFactor = 0.75f;
1296 1315
1297 for (size_t i = 0; i < ARRAY_SIZE(pages); ++i) { 1316 for (size_t i = 0; i < ARRAY_SIZE(pages); ++i) {
1298 for (int quirkEnabled = 0; quirkEnabled <= 1; ++quirkEnabled) { 1317 for (int quirkEnabled = 0; quirkEnabled <= 1; ++quirkEnabled) {
1299 FrameTestHelpers::WebViewHelper webViewHelper; 1318 FrameTestHelpers::WebViewHelper webViewHelper;
1300 webViewHelper.initializeAndLoad(m_baseURL + pages[i], true, 0, &clie nt, enableViewportSettings); 1319 webViewHelper.initializeAndLoad(m_baseURL + pages[i], true, 0, &clie nt, enableViewportSettings);
1320 applyViewportStyleOverride(&webViewHelper);
1301 webViewHelper.webView()->settings()->setClobberUserAgentInitialScale Quirk(quirkEnabled); 1321 webViewHelper.webView()->settings()->setClobberUserAgentInitialScale Quirk(quirkEnabled);
1302 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageSca leFactor); 1322 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageSca leFactor);
1303 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh t)); 1323 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh t));
1304 1324
1305 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor; 1325 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor;
1306 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal eFactor()); 1326 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal eFactor());
1307 } 1327 }
1308 } 1328 }
1309 } 1329 }
1310 1330
(...skipping 4079 matching lines...) Expand 10 before | Expand all | Expand 10 after
5390 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); 5410 EXPECT_EQ(2U, container->percentHeightDescendants()->size());
5391 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA nonymous)); 5411 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA nonymous));
5392 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir ectChild)); 5412 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir ectChild));
5393 5413
5394 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB lock(); 5414 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB lock();
5395 EXPECT_TRUE(anonymousBlock->isAnonymous()); 5415 EXPECT_TRUE(anonymousBlock->isAnonymous());
5396 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); 5416 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants());
5397 } 5417 }
5398 5418
5399 } // namespace 5419 } // namespace
OLDNEW
« no previous file with comments | « Source/web/tests/ViewportTest.cpp ('k') | Source/web/tests/data/no_viewport_tag.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698