| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 ASSERT(frame); | 235 ASSERT(frame); |
| 236 Element* element = frame->document()->getElementById(testcase.c_str()); | 236 Element* element = frame->document()->getElementById(testcase.c_str()); |
| 237 return frame->nodeImage(*element); | 237 return frame->nodeImage(*element); |
| 238 } | 238 } |
| 239 | 239 |
| 240 std::string m_baseURL; | 240 std::string m_baseURL; |
| 241 std::string m_notBaseURL; | 241 std::string m_notBaseURL; |
| 242 std::string m_chromeURL; | 242 std::string m_chromeURL; |
| 243 }; | 243 }; |
| 244 | 244 |
| 245 enum ParametrizedWebFrameTestConfig { | 245 enum ParameterizedWebFrameTestConfig { |
| 246 Default, | 246 Default, |
| 247 RootLayerScrolls | 247 RootLayerScrolls |
| 248 }; | 248 }; |
| 249 | 249 |
| 250 class ParametrizedWebFrameTest | 250 class ParameterizedWebFrameTest |
| 251 : public WebFrameTest | 251 : public WebFrameTest |
| 252 , public ::testing::WithParamInterface<ParametrizedWebFrameTestConfig> | 252 , public ::testing::WithParamInterface<ParameterizedWebFrameTestConfig> |
| 253 , public FrameTestHelpers::SettingOverrider { | 253 , public FrameTestHelpers::SettingOverrider { |
| 254 public: | 254 public: |
| 255 | 255 |
| 256 virtual void overrideSettings(WebSettings* settings) | 256 virtual void overrideSettings(WebSettings* settings) |
| 257 { | 257 { |
| 258 switch (GetParam()) { | 258 switch (GetParam()) { |
| 259 case Default: | 259 case Default: |
| 260 break; | 260 break; |
| 261 case RootLayerScrolls: | 261 case RootLayerScrolls: |
| 262 settings->setRootLayerScrolls(true); | 262 settings->setRootLayerScrolls(true); |
| 263 break; | 263 break; |
| 264 } | 264 } |
| 265 } | 265 } |
| 266 }; | 266 }; |
| 267 | 267 |
| 268 // Friendly string for gtest failure messages. | 268 // Friendly string for gtest failure messages. |
| 269 void PrintTo(ParametrizedWebFrameTestConfig config, ::std::ostream* os) | 269 void PrintTo(ParameterizedWebFrameTestConfig config, ::std::ostream* os) |
| 270 { | 270 { |
| 271 switch (config) { | 271 switch (config) { |
| 272 case Default: | 272 case Default: |
| 273 *os << "Default"; | 273 *os << "Default"; |
| 274 break; | 274 break; |
| 275 case RootLayerScrolls: | 275 case RootLayerScrolls: |
| 276 *os << "RootLayerScrolls"; | 276 *os << "RootLayerScrolls"; |
| 277 break; | 277 break; |
| 278 } | 278 } |
| 279 } | 279 } |
| 280 | 280 |
| 281 INSTANTIATE_TEST_CASE_P(All, ParametrizedWebFrameTest, ::testing::Values( | 281 INSTANTIATE_TEST_CASE_P(All, ParameterizedWebFrameTest, ::testing::Values( |
| 282 ParametrizedWebFrameTestConfig::Default, | 282 ParameterizedWebFrameTestConfig::Default, |
| 283 ParametrizedWebFrameTestConfig::RootLayerScrolls)); | 283 ParameterizedWebFrameTestConfig::RootLayerScrolls)); |
| 284 | 284 |
| 285 TEST_P(ParametrizedWebFrameTest, ContentText) | 285 TEST_P(ParameterizedWebFrameTest, ContentText) |
| 286 { | 286 { |
| 287 registerMockedHttpURLLoad("iframes_test.html"); | 287 registerMockedHttpURLLoad("iframes_test.html"); |
| 288 registerMockedHttpURLLoad("visible_iframe.html"); | 288 registerMockedHttpURLLoad("visible_iframe.html"); |
| 289 registerMockedHttpURLLoad("invisible_iframe.html"); | 289 registerMockedHttpURLLoad("invisible_iframe.html"); |
| 290 registerMockedHttpURLLoad("zero_sized_iframe.html"); | 290 registerMockedHttpURLLoad("zero_sized_iframe.html"); |
| 291 | 291 |
| 292 FrameTestHelpers::WebViewHelper webViewHelper(this); | 292 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 293 webViewHelper.initializeAndLoad(m_baseURL + "iframes_test.html"); | 293 webViewHelper.initializeAndLoad(m_baseURL + "iframes_test.html"); |
| 294 | 294 |
| 295 // Now retrieve the frames text and test it only includes visible elements. | 295 // Now retrieve the frames text and test it only includes visible elements. |
| 296 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); | 296 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); |
| 297 EXPECT_NE(std::string::npos, content.find(" visible paragraph")); | 297 EXPECT_NE(std::string::npos, content.find(" visible paragraph")); |
| 298 EXPECT_NE(std::string::npos, content.find(" visible iframe")); | 298 EXPECT_NE(std::string::npos, content.find(" visible iframe")); |
| 299 EXPECT_EQ(std::string::npos, content.find(" invisible pararaph")); | 299 EXPECT_EQ(std::string::npos, content.find(" invisible pararaph")); |
| 300 EXPECT_EQ(std::string::npos, content.find(" invisible iframe")); | 300 EXPECT_EQ(std::string::npos, content.find(" invisible iframe")); |
| 301 EXPECT_EQ(std::string::npos, content.find("iframe with zero size")); | 301 EXPECT_EQ(std::string::npos, content.find("iframe with zero size")); |
| 302 } | 302 } |
| 303 | 303 |
| 304 TEST_P(ParametrizedWebFrameTest, FrameForEnteredContext) | 304 TEST_P(ParameterizedWebFrameTest, FrameForEnteredContext) |
| 305 { | 305 { |
| 306 registerMockedHttpURLLoad("iframes_test.html"); | 306 registerMockedHttpURLLoad("iframes_test.html"); |
| 307 registerMockedHttpURLLoad("visible_iframe.html"); | 307 registerMockedHttpURLLoad("visible_iframe.html"); |
| 308 registerMockedHttpURLLoad("invisible_iframe.html"); | 308 registerMockedHttpURLLoad("invisible_iframe.html"); |
| 309 registerMockedHttpURLLoad("zero_sized_iframe.html"); | 309 registerMockedHttpURLLoad("zero_sized_iframe.html"); |
| 310 | 310 |
| 311 FrameTestHelpers::WebViewHelper webViewHelper(this); | 311 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 312 webViewHelper.initializeAndLoad(m_baseURL + "iframes_test.html", true); | 312 webViewHelper.initializeAndLoad(m_baseURL + "iframes_test.html", true); |
| 313 | 313 |
| 314 v8::HandleScope scope(v8::Isolate::GetCurrent()); | 314 v8::HandleScope scope(v8::Isolate::GetCurrent()); |
| 315 EXPECT_EQ(webViewHelper.webView()->mainFrame(), WebLocalFrame::frameForConte
xt(webViewHelper.webView()->mainFrame()->mainWorldScriptContext())); | 315 EXPECT_EQ(webViewHelper.webView()->mainFrame(), WebLocalFrame::frameForConte
xt(webViewHelper.webView()->mainFrame()->mainWorldScriptContext())); |
| 316 EXPECT_EQ(webViewHelper.webView()->mainFrame()->firstChild(), WebLocalFrame:
:frameForContext(webViewHelper.webView()->mainFrame()->firstChild()->mainWorldSc
riptContext())); | 316 EXPECT_EQ(webViewHelper.webView()->mainFrame()->firstChild(), WebLocalFrame:
:frameForContext(webViewHelper.webView()->mainFrame()->firstChild()->mainWorldSc
riptContext())); |
| 317 } | 317 } |
| 318 | 318 |
| 319 TEST_P(ParametrizedWebFrameTest, FormWithNullFrame) | 319 TEST_P(ParameterizedWebFrameTest, FormWithNullFrame) |
| 320 { | 320 { |
| 321 registerMockedHttpURLLoad("form.html"); | 321 registerMockedHttpURLLoad("form.html"); |
| 322 | 322 |
| 323 FrameTestHelpers::WebViewHelper webViewHelper(this); | 323 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 324 webViewHelper.initializeAndLoad(m_baseURL + "form.html"); | 324 webViewHelper.initializeAndLoad(m_baseURL + "form.html"); |
| 325 | 325 |
| 326 WebVector<WebFormElement> forms; | 326 WebVector<WebFormElement> forms; |
| 327 webViewHelper.webView()->mainFrame()->document().forms(forms); | 327 webViewHelper.webView()->mainFrame()->document().forms(forms); |
| 328 webViewHelper.reset(); | 328 webViewHelper.reset(); |
| 329 | 329 |
| 330 EXPECT_EQ(forms.size(), 1U); | 330 EXPECT_EQ(forms.size(), 1U); |
| 331 | 331 |
| 332 // This test passes if this doesn't crash. | 332 // This test passes if this doesn't crash. |
| 333 WebSearchableFormData searchableDataForm(forms[0]); | 333 WebSearchableFormData searchableDataForm(forms[0]); |
| 334 } | 334 } |
| 335 | 335 |
| 336 TEST_P(ParametrizedWebFrameTest, ChromePageJavascript) | 336 TEST_P(ParameterizedWebFrameTest, ChromePageJavascript) |
| 337 { | 337 { |
| 338 registerMockedChromeURLLoad("history.html"); | 338 registerMockedChromeURLLoad("history.html"); |
| 339 | 339 |
| 340 // Pass true to enable JavaScript. | 340 // Pass true to enable JavaScript. |
| 341 FrameTestHelpers::WebViewHelper webViewHelper(this); | 341 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 342 webViewHelper.initializeAndLoad(m_chromeURL + "history.html", true); | 342 webViewHelper.initializeAndLoad(m_chromeURL + "history.html", true); |
| 343 | 343 |
| 344 // Try to run JS against the chrome-style URL. | 344 // Try to run JS against the chrome-style URL. |
| 345 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Clobbered'))"); | 345 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Clobbered'))"); |
| 346 | 346 |
| 347 // Required to see any updates in contentAsText. | 347 // Required to see any updates in contentAsText. |
| 348 webViewHelper.webView()->layout(); | 348 webViewHelper.webView()->layout(); |
| 349 | 349 |
| 350 // Now retrieve the frame's text and ensure it was modified by running javas
cript. | 350 // Now retrieve the frame's text and ensure it was modified by running javas
cript. |
| 351 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); | 351 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); |
| 352 EXPECT_NE(std::string::npos, content.find("Clobbered")); | 352 EXPECT_NE(std::string::npos, content.find("Clobbered")); |
| 353 } | 353 } |
| 354 | 354 |
| 355 TEST_P(ParametrizedWebFrameTest, ChromePageNoJavascript) | 355 TEST_P(ParameterizedWebFrameTest, ChromePageNoJavascript) |
| 356 { | 356 { |
| 357 registerMockedChromeURLLoad("history.html"); | 357 registerMockedChromeURLLoad("history.html"); |
| 358 | 358 |
| 359 /// Pass true to enable JavaScript. | 359 /// Pass true to enable JavaScript. |
| 360 FrameTestHelpers::WebViewHelper webViewHelper(this); | 360 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 361 webViewHelper.initializeAndLoad(m_chromeURL + "history.html", true); | 361 webViewHelper.initializeAndLoad(m_chromeURL + "history.html", true); |
| 362 | 362 |
| 363 // Try to run JS against the chrome-style URL after prohibiting it. | 363 // Try to run JS against the chrome-style URL after prohibiting it. |
| 364 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs("chrome"); | 364 WebSecurityPolicy::registerURLSchemeAsNotAllowingJavascriptURLs("chrome"); |
| 365 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Clobbered'))"); | 365 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Clobbered'))"); |
| 366 | 366 |
| 367 // Required to see any updates in contentAsText. | 367 // Required to see any updates in contentAsText. |
| 368 webViewHelper.webView()->layout(); | 368 webViewHelper.webView()->layout(); |
| 369 | 369 |
| 370 // Now retrieve the frame's text and ensure it wasn't modified by running ja
vascript. | 370 // Now retrieve the frame's text and ensure it wasn't modified by running ja
vascript. |
| 371 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); | 371 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); |
| 372 EXPECT_EQ(std::string::npos, content.find("Clobbered")); | 372 EXPECT_EQ(std::string::npos, content.find("Clobbered")); |
| 373 } | 373 } |
| 374 | 374 |
| 375 TEST_P(ParametrizedWebFrameTest, LocationSetHostWithMissingPort) | 375 TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) |
| 376 { | 376 { |
| 377 std::string fileName = "print-location-href.html"; | 377 std::string fileName = "print-location-href.html"; |
| 378 registerMockedHttpURLLoad(fileName); | 378 registerMockedHttpURLLoad(fileName); |
| 379 URLTestHelpers::registerMockedURLLoad(toKURL("http://internal.test:0/" + fil
eName), WebString::fromUTF8(fileName)); | 379 URLTestHelpers::registerMockedURLLoad(toKURL("http://internal.test:0/" + fil
eName), WebString::fromUTF8(fileName)); |
| 380 | 380 |
| 381 FrameTestHelpers::WebViewHelper webViewHelper(this); | 381 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 382 | 382 |
| 383 /// Pass true to enable JavaScript. | 383 /// Pass true to enable JavaScript. |
| 384 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); | 384 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); |
| 385 | 385 |
| 386 // Setting host to "hostname:" should be treated as "hostname:0". | 386 // Setting host to "hostname:" should be treated as "hostname:0". |
| 387 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:location.host = 'internal.test:'; void 0;"); | 387 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:location.host = 'internal.test:'; void 0;"); |
| 388 | 388 |
| 389 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.textContent = location.href; void 0;"); | 389 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.textContent = location.href; void 0;"); |
| 390 | 390 |
| 391 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); | 391 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); |
| 392 EXPECT_EQ("http://internal.test:0/" + fileName, content); | 392 EXPECT_EQ("http://internal.test:0/" + fileName, content); |
| 393 } | 393 } |
| 394 | 394 |
| 395 TEST_P(ParametrizedWebFrameTest, LocationSetEmptyPort) | 395 TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) |
| 396 { | 396 { |
| 397 std::string fileName = "print-location-href.html"; | 397 std::string fileName = "print-location-href.html"; |
| 398 registerMockedHttpURLLoad(fileName); | 398 registerMockedHttpURLLoad(fileName); |
| 399 URLTestHelpers::registerMockedURLLoad(toKURL("http://internal.test:0/" + fil
eName), WebString::fromUTF8(fileName)); | 399 URLTestHelpers::registerMockedURLLoad(toKURL("http://internal.test:0/" + fil
eName), WebString::fromUTF8(fileName)); |
| 400 | 400 |
| 401 FrameTestHelpers::WebViewHelper webViewHelper(this); | 401 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 402 | 402 |
| 403 /// Pass true to enable JavaScript. | 403 /// Pass true to enable JavaScript. |
| 404 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); | 404 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); |
| 405 | 405 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 422 m_executing = true; | 422 m_executing = true; |
| 423 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); | 423 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); |
| 424 frame->executeScriptAndReturnValue(WebScriptSource(WebString("window.som
eProperty = 42;"))); | 424 frame->executeScriptAndReturnValue(WebScriptSource(WebString("window.som
eProperty = 42;"))); |
| 425 m_executing = false; | 425 m_executing = false; |
| 426 } | 426 } |
| 427 | 427 |
| 428 bool m_executing; | 428 bool m_executing; |
| 429 bool m_wasExecuted; | 429 bool m_wasExecuted; |
| 430 }; | 430 }; |
| 431 | 431 |
| 432 TEST_P(ParametrizedWebFrameTest, DidClearWindowObjectIsNotRecursive) | 432 TEST_P(ParameterizedWebFrameTest, DidClearWindowObjectIsNotRecursive) |
| 433 { | 433 { |
| 434 EvaluateOnLoadWebFrameClient webFrameClient; | 434 EvaluateOnLoadWebFrameClient webFrameClient; |
| 435 FrameTestHelpers::WebViewHelper webViewHelper(this); | 435 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 436 webViewHelper.initializeAndLoad("about:blank", true, &webFrameClient); | 436 webViewHelper.initializeAndLoad("about:blank", true, &webFrameClient); |
| 437 EXPECT_TRUE(webFrameClient.m_wasExecuted); | 437 EXPECT_TRUE(webFrameClient.m_wasExecuted); |
| 438 } | 438 } |
| 439 | 439 |
| 440 class CSSCallbackWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 440 class CSSCallbackWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
| 441 public: | 441 public: |
| 442 CSSCallbackWebFrameClient() : m_updateCount(0) { } | 442 CSSCallbackWebFrameClient() : m_updateCount(0) { } |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 selectors.push_back(WebString::fromUTF8("p span")); // Not compound. | 697 selectors.push_back(WebString::fromUTF8("p span")); // Not compound. |
| 698 doc().watchCSSSelectors(WebVector<WebString>(selectors)); | 698 doc().watchCSSSelectors(WebVector<WebString>(selectors)); |
| 699 m_frame->view()->layout(); | 699 m_frame->view()->layout(); |
| 700 runPendingTasks(); | 700 runPendingTasks(); |
| 701 | 701 |
| 702 EXPECT_EQ(1, updateCount()); | 702 EXPECT_EQ(1, updateCount()); |
| 703 EXPECT_THAT(matchedSelectors(), ElementsAre("span")) | 703 EXPECT_THAT(matchedSelectors(), ElementsAre("span")) |
| 704 << "An invalid selector shouldn't prevent other selectors from matching.
"; | 704 << "An invalid selector shouldn't prevent other selectors from matching.
"; |
| 705 } | 705 } |
| 706 | 706 |
| 707 TEST_P(ParametrizedWebFrameTest, DispatchMessageEventWithOriginCheck) | 707 TEST_P(ParameterizedWebFrameTest, DispatchMessageEventWithOriginCheck) |
| 708 { | 708 { |
| 709 registerMockedHttpURLLoad("postmessage_test.html"); | 709 registerMockedHttpURLLoad("postmessage_test.html"); |
| 710 | 710 |
| 711 // Pass true to enable JavaScript. | 711 // Pass true to enable JavaScript. |
| 712 FrameTestHelpers::WebViewHelper webViewHelper(this); | 712 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 713 webViewHelper.initializeAndLoad(m_baseURL + "postmessage_test.html", true); | 713 webViewHelper.initializeAndLoad(m_baseURL + "postmessage_test.html", true); |
| 714 | 714 |
| 715 // Send a message with the correct origin. | 715 // Send a message with the correct origin. |
| 716 WebSecurityOrigin correctOrigin(WebSecurityOrigin::create(toKURL(m_baseURL))
); | 716 WebSecurityOrigin correctOrigin(WebSecurityOrigin::create(toKURL(m_baseURL))
); |
| 717 WebDOMEvent event = webViewHelper.webView()->mainFrame()->document().createE
vent("MessageEvent"); | 717 WebDOMEvent event = webViewHelper.webView()->mainFrame()->document().createE
vent("MessageEvent"); |
| 718 WebDOMMessageEvent message = event.to<WebDOMMessageEvent>(); | 718 WebDOMMessageEvent message = event.to<WebDOMMessageEvent>(); |
| 719 WebSerializedScriptValue data(WebSerializedScriptValue::fromString("foo")); | 719 WebSerializedScriptValue data(WebSerializedScriptValue::fromString("foo")); |
| 720 message.initMessageEvent("message", false, false, data, "http://origin.com",
0, ""); | 720 message.initMessageEvent("message", false, false, data, "http://origin.com",
0, ""); |
| 721 webViewHelper.webView()->mainFrame()->dispatchMessageEventWithOriginCheck(co
rrectOrigin, message); | 721 webViewHelper.webView()->mainFrame()->dispatchMessageEventWithOriginCheck(co
rrectOrigin, message); |
| 722 | 722 |
| 723 // Send another message with incorrect origin. | 723 // Send another message with incorrect origin. |
| 724 WebSecurityOrigin incorrectOrigin(WebSecurityOrigin::create(toKURL(m_chromeU
RL))); | 724 WebSecurityOrigin incorrectOrigin(WebSecurityOrigin::create(toKURL(m_chromeU
RL))); |
| 725 webViewHelper.webView()->mainFrame()->dispatchMessageEventWithOriginCheck(in
correctOrigin, message); | 725 webViewHelper.webView()->mainFrame()->dispatchMessageEventWithOriginCheck(in
correctOrigin, message); |
| 726 | 726 |
| 727 // Required to see any updates in contentAsText. | 727 // Required to see any updates in contentAsText. |
| 728 webViewHelper.webView()->layout(); | 728 webViewHelper.webView()->layout(); |
| 729 | 729 |
| 730 // Verify that only the first addition is in the body of the page. | 730 // Verify that only the first addition is in the body of the page. |
| 731 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); | 731 std::string content = webViewHelper.webView()->mainFrame()->contentAsText(10
24).utf8(); |
| 732 EXPECT_NE(std::string::npos, content.find("Message 1.")); | 732 EXPECT_NE(std::string::npos, content.find("Message 1.")); |
| 733 EXPECT_EQ(std::string::npos, content.find("Message 2.")); | 733 EXPECT_EQ(std::string::npos, content.find("Message 2.")); |
| 734 } | 734 } |
| 735 | 735 |
| 736 TEST_P(ParametrizedWebFrameTest, PostMessageThenDetach) | 736 TEST_P(ParameterizedWebFrameTest, PostMessageThenDetach) |
| 737 { | 737 { |
| 738 FrameTestHelpers::WebViewHelper webViewHelper(this); | 738 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 739 webViewHelper.initializeAndLoad("about:blank"); | 739 webViewHelper.initializeAndLoad("about:blank"); |
| 740 | 740 |
| 741 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImp
l()->page()->mainFrame()); | 741 RefPtrWillBeRawPtr<LocalFrame> frame = toLocalFrame(webViewHelper.webViewImp
l()->page()->mainFrame()); |
| 742 NonThrowableExceptionState exceptionState; | 742 NonThrowableExceptionState exceptionState; |
| 743 frame->domWindow()->postMessage(SerializedScriptValueFactory::instance().cre
ate("message"), 0, "*", frame->localDOMWindow(), exceptionState); | 743 frame->domWindow()->postMessage(SerializedScriptValueFactory::instance().cre
ate("message"), 0, "*", frame->localDOMWindow(), exceptionState); |
| 744 webViewHelper.reset(); | 744 webViewHelper.reset(); |
| 745 EXPECT_FALSE(exceptionState.hadException()); | 745 EXPECT_FALSE(exceptionState.hadException()); |
| 746 | 746 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 788 bool multiplierChecked = false; | 788 bool multiplierChecked = false; |
| 789 for (LayoutObject* layoutObject = document->layoutView(); layoutObject; layo
utObject = layoutObject->nextInPreOrder()) { | 789 for (LayoutObject* layoutObject = document->layoutView(); layoutObject; layo
utObject = layoutObject->nextInPreOrder()) { |
| 790 if (layoutObject->style() && layoutObject->isText()) { | 790 if (layoutObject->style() && layoutObject->isText()) { |
| 791 EXPECT_EQ(multiplier, layoutObject->style()->textAutosizingMultiplie
r()); | 791 EXPECT_EQ(multiplier, layoutObject->style()->textAutosizingMultiplie
r()); |
| 792 multiplierChecked = true; | 792 multiplierChecked = true; |
| 793 } | 793 } |
| 794 } | 794 } |
| 795 return multiplierChecked; | 795 return multiplierChecked; |
| 796 } | 796 } |
| 797 | 797 |
| 798 TEST_P(ParametrizedWebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipli
ers) | 798 TEST_P(ParameterizedWebFrameTest, ChangeInFixedLayoutResetsTextAutosizingMultipl
iers) |
| 799 { | 799 { |
| 800 UseMockScrollbarSettings mockScrollbarSettings; | 800 UseMockScrollbarSettings mockScrollbarSettings; |
| 801 registerMockedHttpURLLoad("fixed_layout.html"); | 801 registerMockedHttpURLLoad("fixed_layout.html"); |
| 802 | 802 |
| 803 FixedLayoutTestWebViewClient client; | 803 FixedLayoutTestWebViewClient client; |
| 804 int viewportWidth = 640; | 804 int viewportWidth = 640; |
| 805 int viewportHeight = 480; | 805 int viewportHeight = 480; |
| 806 | 806 |
| 807 FrameTestHelpers::WebViewHelper webViewHelper(this); | 807 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 808 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 808 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 809 | 809 |
| 810 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 810 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 811 document->settings()->setTextAutosizingEnabled(true); | 811 document->settings()->setTextAutosizingEnabled(true); |
| 812 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); | 812 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); |
| 813 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); | 813 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); |
| 814 webViewHelper.webViewImpl()->layout(); | 814 webViewHelper.webViewImpl()->layout(); |
| 815 | 815 |
| 816 EXPECT_TRUE(setTextAutosizingMultiplier(document, 2)); | 816 EXPECT_TRUE(setTextAutosizingMultiplier(document, 2)); |
| 817 | 817 |
| 818 ViewportDescription description = document->viewportDescription(); | 818 ViewportDescription description = document->viewportDescription(); |
| 819 // Choose a width that's not going match the viewport width of the loaded do
cument. | 819 // Choose a width that's not going match the viewport width of the loaded do
cument. |
| 820 description.minWidth = Length(100, blink::Fixed); | 820 description.minWidth = Length(100, blink::Fixed); |
| 821 description.maxWidth = Length(100, blink::Fixed); | 821 description.maxWidth = Length(100, blink::Fixed); |
| 822 webViewHelper.webViewImpl()->updatePageDefinedViewportConstraints(descriptio
n); | 822 webViewHelper.webViewImpl()->updatePageDefinedViewportConstraints(descriptio
n); |
| 823 | 823 |
| 824 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 1)); | 824 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 1)); |
| 825 } | 825 } |
| 826 | 826 |
| 827 TEST_P(ParametrizedWebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewpor
t) | 827 TEST_P(ParameterizedWebFrameTest, WorkingTextAutosizingMultipliers_VirtualViewpo
rt) |
| 828 { | 828 { |
| 829 UseMockScrollbarSettings mockScrollbarSettings; | 829 UseMockScrollbarSettings mockScrollbarSettings; |
| 830 const std::string htmlFile = "fixed_layout.html"; | 830 const std::string htmlFile = "fixed_layout.html"; |
| 831 registerMockedHttpURLLoad(htmlFile); | 831 registerMockedHttpURLLoad(htmlFile); |
| 832 | 832 |
| 833 FixedLayoutTestWebViewClient client; | 833 FixedLayoutTestWebViewClient client; |
| 834 | 834 |
| 835 FrameTestHelpers::WebViewHelper webViewHelper(this); | 835 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 836 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf
igureAndroid); | 836 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client, conf
igureAndroid); |
| 837 | 837 |
| 838 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 838 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 839 document->settings()->setTextAutosizingEnabled(true); | 839 document->settings()->setTextAutosizingEnabled(true); |
| 840 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); | 840 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); |
| 841 | 841 |
| 842 webViewHelper.webView()->resize(WebSize(490, 800)); | 842 webViewHelper.webView()->resize(WebSize(490, 800)); |
| 843 | 843 |
| 844 // Multiplier: 980 / 490 = 2.0 | 844 // Multiplier: 980 / 490 = 2.0 |
| 845 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 2.0)); | 845 EXPECT_TRUE(checkTextAutosizingMultiplier(document, 2.0)); |
| 846 } | 846 } |
| 847 | 847 |
| 848 TEST_P(ParametrizedWebFrameTest, PinchViewportSetSizeInvalidatesTextAutosizingMu
ltipliers) | 848 TEST_P(ParameterizedWebFrameTest, PinchViewportSetSizeInvalidatesTextAutosizingM
ultipliers) |
| 849 { | 849 { |
| 850 UseMockScrollbarSettings mockScrollbarSettings; | 850 UseMockScrollbarSettings mockScrollbarSettings; |
| 851 registerMockedHttpURLLoad("iframe_reload.html"); | 851 registerMockedHttpURLLoad("iframe_reload.html"); |
| 852 registerMockedHttpURLLoad("visible_iframe.html"); | 852 registerMockedHttpURLLoad("visible_iframe.html"); |
| 853 | 853 |
| 854 FixedLayoutTestWebViewClient client; | 854 FixedLayoutTestWebViewClient client; |
| 855 int viewportWidth = 640; | 855 int viewportWidth = 640; |
| 856 int viewportHeight = 480; | 856 int viewportHeight = 480; |
| 857 | 857 |
| 858 FrameTestHelpers::WebViewHelper webViewHelper(this); | 858 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 881 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ | 881 for (Frame* frame = mainFrame; frame; frame = frame->tree().traverseNext())
{ |
| 882 if (!frame->isLocalFrame()) | 882 if (!frame->isLocalFrame()) |
| 883 continue; | 883 continue; |
| 884 for (LayoutObject* layoutObject = toLocalFrame(frame)->document()->layou
tView(); layoutObject; layoutObject = layoutObject->nextInPreOrder()) { | 884 for (LayoutObject* layoutObject = toLocalFrame(frame)->document()->layou
tView(); layoutObject; layoutObject = layoutObject->nextInPreOrder()) { |
| 885 if (layoutObject->isText()) | 885 if (layoutObject->isText()) |
| 886 EXPECT_TRUE(layoutObject->needsLayout()); | 886 EXPECT_TRUE(layoutObject->needsLayout()); |
| 887 } | 887 } |
| 888 } | 888 } |
| 889 } | 889 } |
| 890 | 890 |
| 891 TEST_P(ParametrizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) | 891 TEST_P(ParameterizedWebFrameTest, ZeroHeightPositiveWidthNotIgnored) |
| 892 { | 892 { |
| 893 UseMockScrollbarSettings mockScrollbarSettings; | 893 UseMockScrollbarSettings mockScrollbarSettings; |
| 894 | 894 |
| 895 FixedLayoutTestWebViewClient client; | 895 FixedLayoutTestWebViewClient client; |
| 896 client.m_screenInfo.deviceScaleFactor = 1; | 896 client.m_screenInfo.deviceScaleFactor = 1; |
| 897 int viewportWidth = 1280; | 897 int viewportWidth = 1280; |
| 898 int viewportHeight = 0; | 898 int viewportHeight = 0; |
| 899 | 899 |
| 900 FrameTestHelpers::WebViewHelper webViewHelper(this); | 900 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 901 webViewHelper.initialize(true, 0, &client, enableViewportSettings); | 901 webViewHelper.initialize(true, 0, &client, enableViewportSettings); |
| 902 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 902 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 903 | 903 |
| 904 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); | 904 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 905 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->layoutSize().height()); | 905 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->layoutSize().height()); |
| 906 } | 906 } |
| 907 | 907 |
| 908 TEST_P(ParametrizedWebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) | 908 TEST_P(ParameterizedWebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag
) |
| 909 { | 909 { |
| 910 UseMockScrollbarSettings mockScrollbarSettings; | 910 UseMockScrollbarSettings mockScrollbarSettings; |
| 911 registerMockedHttpURLLoad("no_viewport_tag.html"); | 911 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 912 | 912 |
| 913 int viewportWidth = 640; | 913 int viewportWidth = 640; |
| 914 int viewportHeight = 480; | 914 int viewportHeight = 480; |
| 915 | 915 |
| 916 FixedLayoutTestWebViewClient client; | 916 FixedLayoutTestWebViewClient client; |
| 917 client.m_screenInfo.deviceScaleFactor = 2; | 917 client.m_screenInfo.deviceScaleFactor = 2; |
| 918 | 918 |
| 919 FrameTestHelpers::WebViewHelper webViewHelper(this); | 919 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 920 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); | 920 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); |
| 921 | 921 |
| 922 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 922 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 923 webViewHelper.webView()->layout(); | 923 webViewHelper.webView()->layout(); |
| 924 | 924 |
| 925 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); | 925 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); |
| 926 | 926 |
| 927 // Device scale factor should be independent of page scale. | 927 // Device scale factor should be independent of page scale. |
| 928 webViewHelper.webView()->setDefaultPageScaleLimits(1, 2); | 928 webViewHelper.webView()->setDefaultPageScaleLimits(1, 2); |
| 929 webViewHelper.webView()->setPageScaleFactor(0.5); | 929 webViewHelper.webView()->setPageScaleFactor(0.5); |
| 930 webViewHelper.webView()->layout(); | 930 webViewHelper.webView()->layout(); |
| 931 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 931 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
| 932 | 932 |
| 933 // Force the layout to happen before leaving the test. | 933 // Force the layout to happen before leaving the test. |
| 934 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8(); | 934 webViewHelper.webView()->mainFrame()->contentAsText(1024).utf8(); |
| 935 } | 935 } |
| 936 | 936 |
| 937 TEST_P(ParametrizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) | 937 TEST_P(ParameterizedWebFrameTest, FixedLayoutInitializeAtMinimumScale) |
| 938 { | 938 { |
| 939 UseMockScrollbarSettings mockScrollbarSettings; | 939 UseMockScrollbarSettings mockScrollbarSettings; |
| 940 | 940 |
| 941 registerMockedHttpURLLoad("fixed_layout.html"); | 941 registerMockedHttpURLLoad("fixed_layout.html"); |
| 942 | 942 |
| 943 FixedLayoutTestWebViewClient client; | 943 FixedLayoutTestWebViewClient client; |
| 944 client.m_screenInfo.deviceScaleFactor = 1; | 944 client.m_screenInfo.deviceScaleFactor = 1; |
| 945 int viewportWidth = 640; | 945 int viewportWidth = 640; |
| 946 int viewportHeight = 480; | 946 int viewportHeight = 480; |
| 947 | 947 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 966 // Make sure we don't reset to initial scale if the page continues to load. | 966 // Make sure we don't reset to initial scale if the page continues to load. |
| 967 webViewHelper.webViewImpl()->didCommitLoad(false, false); | 967 webViewHelper.webViewImpl()->didCommitLoad(false, false); |
| 968 webViewHelper.webViewImpl()->didChangeContentsSize(); | 968 webViewHelper.webViewImpl()->didChangeContentsSize(); |
| 969 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 969 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 970 | 970 |
| 971 // Make sure we don't reset to initial scale if the viewport size changes. | 971 // Make sure we don't reset to initial scale if the viewport size changes. |
| 972 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); | 972 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); |
| 973 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 973 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 974 } | 974 } |
| 975 | 975 |
| 976 TEST_P(ParametrizedWebFrameTest, WideDocumentInitializeAtMinimumScale) | 976 TEST_P(ParameterizedWebFrameTest, WideDocumentInitializeAtMinimumScale) |
| 977 { | 977 { |
| 978 UseMockScrollbarSettings mockScrollbarSettings; | 978 UseMockScrollbarSettings mockScrollbarSettings; |
| 979 | 979 |
| 980 registerMockedHttpURLLoad("wide_document.html"); | 980 registerMockedHttpURLLoad("wide_document.html"); |
| 981 | 981 |
| 982 FixedLayoutTestWebViewClient client; | 982 FixedLayoutTestWebViewClient client; |
| 983 client.m_screenInfo.deviceScaleFactor = 1; | 983 client.m_screenInfo.deviceScaleFactor = 1; |
| 984 int viewportWidth = 640; | 984 int viewportWidth = 640; |
| 985 int viewportHeight = 480; | 985 int viewportHeight = 480; |
| 986 | 986 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1005 // Make sure we don't reset to initial scale if the page continues to load. | 1005 // Make sure we don't reset to initial scale if the page continues to load. |
| 1006 webViewHelper.webViewImpl()->didCommitLoad(false, false); | 1006 webViewHelper.webViewImpl()->didCommitLoad(false, false); |
| 1007 webViewHelper.webViewImpl()->didChangeContentsSize(); | 1007 webViewHelper.webViewImpl()->didChangeContentsSize(); |
| 1008 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 1008 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 1009 | 1009 |
| 1010 // Make sure we don't reset to initial scale if the viewport size changes. | 1010 // Make sure we don't reset to initial scale if the viewport size changes. |
| 1011 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); | 1011 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight + 100)
); |
| 1012 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); | 1012 EXPECT_EQ(userPinchPageScaleFactor, webViewHelper.webView()->pageScaleFactor
()); |
| 1013 } | 1013 } |
| 1014 | 1014 |
| 1015 TEST_P(ParametrizedWebFrameTest, DelayedViewportInitialScale) | 1015 TEST_P(ParameterizedWebFrameTest, DelayedViewportInitialScale) |
| 1016 { | 1016 { |
| 1017 UseMockScrollbarSettings mockScrollbarSettings; | 1017 UseMockScrollbarSettings mockScrollbarSettings; |
| 1018 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 1018 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 1019 | 1019 |
| 1020 FixedLayoutTestWebViewClient client; | 1020 FixedLayoutTestWebViewClient client; |
| 1021 client.m_screenInfo.deviceScaleFactor = 1; | 1021 client.m_screenInfo.deviceScaleFactor = 1; |
| 1022 int viewportWidth = 640; | 1022 int viewportWidth = 640; |
| 1023 int viewportHeight = 480; | 1023 int viewportHeight = 480; |
| 1024 | 1024 |
| 1025 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1025 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1026 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); | 1026 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); |
| 1027 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1027 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1028 | 1028 |
| 1029 EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor()); | 1029 EXPECT_EQ(0.25f, webViewHelper.webView()->pageScaleFactor()); |
| 1030 | 1030 |
| 1031 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 1031 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 1032 ViewportDescription description = document->viewportDescription(); | 1032 ViewportDescription description = document->viewportDescription(); |
| 1033 description.zoom = 2; | 1033 description.zoom = 2; |
| 1034 document->setViewportDescription(description); | 1034 document->setViewportDescription(description); |
| 1035 webViewHelper.webView()->layout(); | 1035 webViewHelper.webView()->layout(); |
| 1036 EXPECT_EQ(2, webViewHelper.webView()->pageScaleFactor()); | 1036 EXPECT_EQ(2, webViewHelper.webView()->pageScaleFactor()); |
| 1037 } | 1037 } |
| 1038 | 1038 |
| 1039 TEST_P(ParametrizedWebFrameTest, setLoadWithOverviewModeToFalse) | 1039 TEST_P(ParameterizedWebFrameTest, setLoadWithOverviewModeToFalse) |
| 1040 { | 1040 { |
| 1041 UseMockScrollbarSettings mockScrollbarSettings; | 1041 UseMockScrollbarSettings mockScrollbarSettings; |
| 1042 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 1042 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 1043 | 1043 |
| 1044 FixedLayoutTestWebViewClient client; | 1044 FixedLayoutTestWebViewClient client; |
| 1045 client.m_screenInfo.deviceScaleFactor = 1; | 1045 client.m_screenInfo.deviceScaleFactor = 1; |
| 1046 int viewportWidth = 640; | 1046 int viewportWidth = 640; |
| 1047 int viewportHeight = 480; | 1047 int viewportHeight = 480; |
| 1048 | 1048 |
| 1049 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1049 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1050 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); | 1050 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); |
| 1051 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1051 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1052 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1052 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 1053 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1053 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1054 | 1054 |
| 1055 // The page must be displayed at 100% zoom. | 1055 // The page must be displayed at 100% zoom. |
| 1056 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 1056 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 1057 } | 1057 } |
| 1058 | 1058 |
| 1059 TEST_P(ParametrizedWebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport
) | 1059 TEST_P(ParameterizedWebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewpor
t) |
| 1060 { | 1060 { |
| 1061 UseMockScrollbarSettings mockScrollbarSettings; | 1061 UseMockScrollbarSettings mockScrollbarSettings; |
| 1062 registerMockedHttpURLLoad("large-div.html"); | 1062 registerMockedHttpURLLoad("large-div.html"); |
| 1063 | 1063 |
| 1064 FixedLayoutTestWebViewClient client; | 1064 FixedLayoutTestWebViewClient client; |
| 1065 client.m_screenInfo.deviceScaleFactor = 1; | 1065 client.m_screenInfo.deviceScaleFactor = 1; |
| 1066 int viewportWidth = 640; | 1066 int viewportWidth = 640; |
| 1067 int viewportHeight = 480; | 1067 int viewportHeight = 480; |
| 1068 | 1068 |
| 1069 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1069 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1070 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); | 1070 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); |
| 1071 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1071 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 1072 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1072 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1073 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1073 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1074 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1074 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1075 | 1075 |
| 1076 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. | 1076 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. |
| 1077 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 1077 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 1078 } | 1078 } |
| 1079 | 1079 |
| 1080 TEST_P(ParametrizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) | 1080 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidth) |
| 1081 { | 1081 { |
| 1082 UseMockScrollbarSettings mockScrollbarSettings; | 1082 UseMockScrollbarSettings mockScrollbarSettings; |
| 1083 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 1083 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 1084 | 1084 |
| 1085 FixedLayoutTestWebViewClient client; | 1085 FixedLayoutTestWebViewClient client; |
| 1086 client.m_screenInfo.deviceScaleFactor = 1; | 1086 client.m_screenInfo.deviceScaleFactor = 1; |
| 1087 int viewportWidth = 640; | 1087 int viewportWidth = 640; |
| 1088 int viewportHeight = 480; | 1088 int viewportHeight = 480; |
| 1089 | 1089 |
| 1090 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1090 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1091 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); | 1091 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); |
| 1092 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1092 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1093 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1093 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1094 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1094 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1095 | 1095 |
| 1096 // The page sets viewport width to 3000, but with UseWideViewport == false i
s must be ignored. | 1096 // The page sets viewport width to 3000, but with UseWideViewport == false i
s must be ignored. |
| 1097 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 1097 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 1098 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); | 1098 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); |
| 1099 } | 1099 } |
| 1100 | 1100 |
| 1101 TEST_P(ParametrizedWebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccoun
tsScale) | 1101 TEST_P(ParameterizedWebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccou
ntsScale) |
| 1102 { | 1102 { |
| 1103 UseMockScrollbarSettings mockScrollbarSettings; | 1103 UseMockScrollbarSettings mockScrollbarSettings; |
| 1104 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1104 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 1105 | 1105 |
| 1106 FixedLayoutTestWebViewClient client; | 1106 FixedLayoutTestWebViewClient client; |
| 1107 client.m_screenInfo.deviceScaleFactor = 1; | 1107 client.m_screenInfo.deviceScaleFactor = 1; |
| 1108 int viewportWidth = 640; | 1108 int viewportWidth = 640; |
| 1109 int viewportHeight = 480; | 1109 int viewportHeight = 480; |
| 1110 | 1110 |
| 1111 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1111 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1112 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); | 1112 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); |
| 1113 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1113 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1114 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1114 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1115 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1115 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1116 | 1116 |
| 1117 // The page sets viewport width to 3000, but with UseWideViewport == false i
t must be ignored. | 1117 // The page sets viewport width to 3000, but with UseWideViewport == false i
t must be ignored. |
| 1118 // While the initial scale specified by the page must be accounted. | 1118 // While the initial scale specified by the page must be accounted. |
| 1119 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f
rameView()->contentsSize().width()); | 1119 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f
rameView()->contentsSize().width()); |
| 1120 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()->
frameView()->contentsSize().height()); | 1120 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()->
frameView()->contentsSize().height()); |
| 1121 } | 1121 } |
| 1122 | 1122 |
| 1123 TEST_P(ParametrizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) | 1123 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithoutViewportTag) |
| 1124 { | 1124 { |
| 1125 UseMockScrollbarSettings mockScrollbarSettings; | 1125 UseMockScrollbarSettings mockScrollbarSettings; |
| 1126 registerMockedHttpURLLoad("no_viewport_tag.html"); | 1126 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 1127 | 1127 |
| 1128 FixedLayoutTestWebViewClient client; | 1128 FixedLayoutTestWebViewClient client; |
| 1129 client.m_screenInfo.deviceScaleFactor = 1; | 1129 client.m_screenInfo.deviceScaleFactor = 1; |
| 1130 int viewportWidth = 640; | 1130 int viewportWidth = 640; |
| 1131 int viewportHeight = 480; | 1131 int viewportHeight = 480; |
| 1132 | 1132 |
| 1133 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1133 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1134 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); | 1134 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); |
| 1135 applyViewportStyleOverride(&webViewHelper); | 1135 applyViewportStyleOverride(&webViewHelper); |
| 1136 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1136 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1137 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1137 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1138 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1138 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1139 | 1139 |
| 1140 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 1140 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 1141 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); | 1141 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); |
| 1142 } | 1142 } |
| 1143 | 1143 |
| 1144 TEST_P(ParametrizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) | 1144 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithXhtmlMp) |
| 1145 { | 1145 { |
| 1146 UseMockScrollbarSettings mockScrollbarSettings; | 1146 UseMockScrollbarSettings mockScrollbarSettings; |
| 1147 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); | 1147 registerMockedHttpURLLoad("viewport/viewport-legacy-xhtmlmp.html"); |
| 1148 | 1148 |
| 1149 FixedLayoutTestWebViewClient client; | 1149 FixedLayoutTestWebViewClient client; |
| 1150 client.m_screenInfo.deviceScaleFactor = 1; | 1150 client.m_screenInfo.deviceScaleFactor = 1; |
| 1151 int viewportWidth = 640; | 1151 int viewportWidth = 640; |
| 1152 int viewportHeight = 480; | 1152 int viewportHeight = 480; |
| 1153 | 1153 |
| 1154 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1154 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1155 webViewHelper.initialize(true, 0, &client, enableViewportSettings); | 1155 webViewHelper.initialize(true, 0, &client, enableViewportSettings); |
| 1156 applyViewportStyleOverride(&webViewHelper); | 1156 applyViewportStyleOverride(&webViewHelper); |
| 1157 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1157 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1158 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1158 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1159 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport/viewport-legacy-xhtmlmp.html"); | 1159 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport/viewport-legacy-xhtmlmp.html"); |
| 1160 | 1160 |
| 1161 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1161 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1162 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 1162 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 1163 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); | 1163 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); |
| 1164 } | 1164 } |
| 1165 | 1165 |
| 1166 TEST_P(ParametrizedWebFrameTest, NoWideViewportAndHeightInMeta) | 1166 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndHeightInMeta) |
| 1167 { | 1167 { |
| 1168 UseMockScrollbarSettings mockScrollbarSettings; | 1168 UseMockScrollbarSettings mockScrollbarSettings; |
| 1169 registerMockedHttpURLLoad("viewport-height-1000.html"); | 1169 registerMockedHttpURLLoad("viewport-height-1000.html"); |
| 1170 | 1170 |
| 1171 FixedLayoutTestWebViewClient client; | 1171 FixedLayoutTestWebViewClient client; |
| 1172 client.m_screenInfo.deviceScaleFactor = 1; | 1172 client.m_screenInfo.deviceScaleFactor = 1; |
| 1173 int viewportWidth = 640; | 1173 int viewportWidth = 640; |
| 1174 int viewportHeight = 480; | 1174 int viewportHeight = 480; |
| 1175 | 1175 |
| 1176 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1176 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1177 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru
e, 0, &client, enableViewportSettings); | 1177 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru
e, 0, &client, enableViewportSettings); |
| 1178 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1178 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1179 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1179 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1180 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1180 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1181 | 1181 |
| 1182 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 1182 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 1183 } | 1183 } |
| 1184 | 1184 |
| 1185 TEST_P(ParametrizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) | 1185 TEST_P(ParameterizedWebFrameTest, WideViewportSetsTo980WithAutoWidth) |
| 1186 { | 1186 { |
| 1187 UseMockScrollbarSettings mockScrollbarSettings; | 1187 UseMockScrollbarSettings mockScrollbarSettings; |
| 1188 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); | 1188 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); |
| 1189 | 1189 |
| 1190 FixedLayoutTestWebViewClient client; | 1190 FixedLayoutTestWebViewClient client; |
| 1191 client.m_screenInfo.deviceScaleFactor = 1; | 1191 client.m_screenInfo.deviceScaleFactor = 1; |
| 1192 int viewportWidth = 640; | 1192 int viewportWidth = 640; |
| 1193 int viewportHeight = 480; | 1193 int viewportHeight = 480; |
| 1194 | 1194 |
| 1195 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1195 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1196 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html"
, true, 0, &client, enableViewportSettings); | 1196 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html"
, true, 0, &client, enableViewportSettings); |
| 1197 applyViewportStyleOverride(&webViewHelper); | 1197 applyViewportStyleOverride(&webViewHelper); |
| 1198 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1198 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1199 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1199 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1200 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1200 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1201 | 1201 |
| 1202 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 1202 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 1203 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); | 1203 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); |
| 1204 } | 1204 } |
| 1205 | 1205 |
| 1206 TEST_P(ParametrizedWebFrameTest, PageViewportInitialScaleOverridesLoadWithOvervi
ewMode) | 1206 TEST_P(ParameterizedWebFrameTest, PageViewportInitialScaleOverridesLoadWithOverv
iewMode) |
| 1207 { | 1207 { |
| 1208 UseMockScrollbarSettings mockScrollbarSettings; | 1208 UseMockScrollbarSettings mockScrollbarSettings; |
| 1209 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1209 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 1210 | 1210 |
| 1211 FixedLayoutTestWebViewClient client; | 1211 FixedLayoutTestWebViewClient client; |
| 1212 client.m_screenInfo.deviceScaleFactor = 1; | 1212 client.m_screenInfo.deviceScaleFactor = 1; |
| 1213 int viewportWidth = 640; | 1213 int viewportWidth = 640; |
| 1214 int viewportHeight = 480; | 1214 int viewportHeight = 480; |
| 1215 | 1215 |
| 1216 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1216 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1217 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); | 1217 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); |
| 1218 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1218 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 1219 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1219 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1220 | 1220 |
| 1221 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. | 1221 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. |
| 1222 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); | 1222 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); |
| 1223 } | 1223 } |
| 1224 | 1224 |
| 1225 TEST_P(ParametrizedWebFrameTest, setInitialPageScaleFactorPermanently) | 1225 TEST_P(ParameterizedWebFrameTest, setInitialPageScaleFactorPermanently) |
| 1226 { | 1226 { |
| 1227 UseMockScrollbarSettings mockScrollbarSettings; | 1227 UseMockScrollbarSettings mockScrollbarSettings; |
| 1228 | 1228 |
| 1229 registerMockedHttpURLLoad("fixed_layout.html"); | 1229 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1230 | 1230 |
| 1231 FixedLayoutTestWebViewClient client; | 1231 FixedLayoutTestWebViewClient client; |
| 1232 client.m_screenInfo.deviceScaleFactor = 1; | 1232 client.m_screenInfo.deviceScaleFactor = 1; |
| 1233 float enforcedPageScaleFactor = 2.0f; | 1233 float enforcedPageScaleFactor = 2.0f; |
| 1234 | 1234 |
| 1235 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1235 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1247 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1247 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1248 webViewHelper.webView()->layout(); | 1248 webViewHelper.webView()->layout(); |
| 1249 | 1249 |
| 1250 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1250 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1251 | 1251 |
| 1252 webViewHelper.webView()->setInitialPageScaleOverride(-1); | 1252 webViewHelper.webView()->setInitialPageScaleOverride(-1); |
| 1253 webViewHelper.webView()->layout(); | 1253 webViewHelper.webView()->layout(); |
| 1254 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor()); | 1254 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor()); |
| 1255 } | 1255 } |
| 1256 | 1256 |
| 1257 TEST_P(ParametrizedWebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWit
hOverviewMode) | 1257 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWi
thOverviewMode) |
| 1258 { | 1258 { |
| 1259 UseMockScrollbarSettings mockScrollbarSettings; | 1259 UseMockScrollbarSettings mockScrollbarSettings; |
| 1260 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 1260 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 1261 | 1261 |
| 1262 FixedLayoutTestWebViewClient client; | 1262 FixedLayoutTestWebViewClient client; |
| 1263 client.m_screenInfo.deviceScaleFactor = 1; | 1263 client.m_screenInfo.deviceScaleFactor = 1; |
| 1264 int viewportWidth = 640; | 1264 int viewportWidth = 640; |
| 1265 int viewportHeight = 480; | 1265 int viewportHeight = 480; |
| 1266 float enforcedPageScaleFactor = 0.5f; | 1266 float enforcedPageScaleFactor = 0.5f; |
| 1267 | 1267 |
| 1268 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1268 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1269 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); | 1269 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client, enableViewportSettings); |
| 1270 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1270 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 1271 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); | 1271 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
| 1272 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1272 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1273 | 1273 |
| 1274 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1274 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1275 } | 1275 } |
| 1276 | 1276 |
| 1277 TEST_P(ParametrizedWebFrameTest, PermanentInitialPageScaleFactorOverridesPageVie
wportInitialScale) | 1277 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorOverridesPageVi
ewportInitialScale) |
| 1278 { | 1278 { |
| 1279 UseMockScrollbarSettings mockScrollbarSettings; | 1279 UseMockScrollbarSettings mockScrollbarSettings; |
| 1280 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 1280 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 1281 | 1281 |
| 1282 FixedLayoutTestWebViewClient client; | 1282 FixedLayoutTestWebViewClient client; |
| 1283 client.m_screenInfo.deviceScaleFactor = 1; | 1283 client.m_screenInfo.deviceScaleFactor = 1; |
| 1284 int viewportWidth = 640; | 1284 int viewportWidth = 640; |
| 1285 int viewportHeight = 480; | 1285 int viewportHeight = 480; |
| 1286 float enforcedPageScaleFactor = 0.5f; | 1286 float enforcedPageScaleFactor = 0.5f; |
| 1287 | 1287 |
| 1288 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1288 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1289 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); | 1289 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client, enableViewportSettings); |
| 1290 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); | 1290 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
| 1291 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1291 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1292 | 1292 |
| 1293 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1293 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1294 } | 1294 } |
| 1295 | 1295 |
| 1296 TEST_P(ParametrizedWebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbered
) | 1296 TEST_P(ParameterizedWebFrameTest, SmallPermanentInitialPageScaleFactorIsClobbere
d) |
| 1297 { | 1297 { |
| 1298 UseMockScrollbarSettings mockScrollbarSettings; | 1298 UseMockScrollbarSettings mockScrollbarSettings; |
| 1299 const char* pages[] = { | 1299 const char* pages[] = { |
| 1300 // These pages trigger the clobbering condition. There must be a matchin
g item in "pageScaleFactors" array. | 1300 // These pages trigger the clobbering condition. There must be a matchin
g item in "pageScaleFactors" array. |
| 1301 "viewport-device-0.5x-initial-scale.html", | 1301 "viewport-device-0.5x-initial-scale.html", |
| 1302 "viewport-initial-scale-1.html", | 1302 "viewport-initial-scale-1.html", |
| 1303 // These ones do not. | 1303 // These ones do not. |
| 1304 "viewport-auto-initial-scale.html", | 1304 "viewport-auto-initial-scale.html", |
| 1305 "viewport-target-densitydpi-device-and-fixed-width.html" | 1305 "viewport-target-densitydpi-device-and-fixed-width.html" |
| 1306 }; | 1306 }; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1322 webViewHelper.webView()->settings()->setClobberUserAgentInitialScale
Quirk(quirkEnabled); | 1322 webViewHelper.webView()->settings()->setClobberUserAgentInitialScale
Quirk(quirkEnabled); |
| 1323 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageSca
leFactor); | 1323 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageSca
leFactor); |
| 1324 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh
t)); | 1324 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeigh
t)); |
| 1325 | 1325 |
| 1326 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS
caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor; | 1326 float expectedPageScaleFactor = quirkEnabled && i < ARRAY_SIZE(pageS
caleFactors) ? pageScaleFactors[i] : enforcedPageScaleFactor; |
| 1327 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal
eFactor()); | 1327 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScal
eFactor()); |
| 1328 } | 1328 } |
| 1329 } | 1329 } |
| 1330 } | 1330 } |
| 1331 | 1331 |
| 1332 TEST_P(ParametrizedWebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWid
th) | 1332 TEST_P(ParameterizedWebFrameTest, PermanentInitialPageScaleFactorAffectsLayoutWi
dth) |
| 1333 { | 1333 { |
| 1334 UseMockScrollbarSettings mockScrollbarSettings; | 1334 UseMockScrollbarSettings mockScrollbarSettings; |
| 1335 | 1335 |
| 1336 FixedLayoutTestWebViewClient client; | 1336 FixedLayoutTestWebViewClient client; |
| 1337 client.m_screenInfo.deviceScaleFactor = 1; | 1337 client.m_screenInfo.deviceScaleFactor = 1; |
| 1338 int viewportWidth = 640; | 1338 int viewportWidth = 640; |
| 1339 int viewportHeight = 480; | 1339 int viewportHeight = 480; |
| 1340 float enforcedPageScaleFactor = 0.5; | 1340 float enforcedPageScaleFactor = 0.5; |
| 1341 | 1341 |
| 1342 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1342 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1343 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); | 1343 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); |
| 1344 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1344 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1345 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1345 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1346 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 1346 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 1347 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); | 1347 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
| 1348 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1348 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1349 | 1349 |
| 1350 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->contentsSize().width()); | 1350 EXPECT_EQ(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->contentsSize().width()); |
| 1351 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1351 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1352 } | 1352 } |
| 1353 | 1353 |
| 1354 TEST_P(ParametrizedWebFrameTest, DocumentElementClientHeightWorksWithWrapContent
Mode) | 1354 TEST_P(ParameterizedWebFrameTest, DocumentElementClientHeightWorksWithWrapConten
tMode) |
| 1355 { | 1355 { |
| 1356 UseMockScrollbarSettings mockScrollbarSettings; | 1356 UseMockScrollbarSettings mockScrollbarSettings; |
| 1357 registerMockedHttpURLLoad("0-by-0.html"); | 1357 registerMockedHttpURLLoad("0-by-0.html"); |
| 1358 | 1358 |
| 1359 FixedLayoutTestWebViewClient client; | 1359 FixedLayoutTestWebViewClient client; |
| 1360 client.m_screenInfo.deviceScaleFactor = 1; | 1360 client.m_screenInfo.deviceScaleFactor = 1; |
| 1361 int viewportWidth = 640; | 1361 int viewportWidth = 640; |
| 1362 int viewportHeight = 480; | 1362 int viewportHeight = 480; |
| 1363 | 1363 |
| 1364 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1364 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1365 | 1365 |
| 1366 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client,
configureAndroid); | 1366 webViewHelper.initializeAndLoad(m_baseURL + "0-by-0.html", true, 0, &client,
configureAndroid); |
| 1367 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 1367 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
| 1368 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1368 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1369 | 1369 |
| 1370 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); | 1370 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); |
| 1371 Document* document = frame->document(); | 1371 Document* document = frame->document(); |
| 1372 EXPECT_EQ(viewportHeight, document->documentElement()->clientHeight()); | 1372 EXPECT_EQ(viewportHeight, document->documentElement()->clientHeight()); |
| 1373 EXPECT_EQ(viewportWidth, document->documentElement()->clientWidth()); | 1373 EXPECT_EQ(viewportWidth, document->documentElement()->clientWidth()); |
| 1374 } | 1374 } |
| 1375 | 1375 |
| 1376 TEST_P(ParametrizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMod
e) | 1376 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksWithWrapContentMo
de) |
| 1377 { | 1377 { |
| 1378 UseMockScrollbarSettings mockScrollbarSettings; | 1378 UseMockScrollbarSettings mockScrollbarSettings; |
| 1379 registerMockedHttpURLLoad("0-by-0.html"); | 1379 registerMockedHttpURLLoad("0-by-0.html"); |
| 1380 | 1380 |
| 1381 FixedLayoutTestWebViewClient client; | 1381 FixedLayoutTestWebViewClient client; |
| 1382 client.m_screenInfo.deviceScaleFactor = 1; | 1382 client.m_screenInfo.deviceScaleFactor = 1; |
| 1383 int viewportWidth = 640; | 1383 int viewportWidth = 640; |
| 1384 int viewportHeight = 480; | 1384 int viewportHeight = 480; |
| 1385 | 1385 |
| 1386 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1386 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1409 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); | 1409 EXPECT_EQ(viewportWidth, compositor->containerLayer()->size().width()); |
| 1410 EXPECT_EQ(viewportHeight, compositor->containerLayer()->size().height()); | 1410 EXPECT_EQ(viewportHeight, compositor->containerLayer()->size().height()); |
| 1411 | 1411 |
| 1412 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); | 1412 LocalFrame* frame = webViewHelper.webViewImpl()->mainFrameImpl()->frame(); |
| 1413 PinchViewport& pinchViewport = frame->page()->frameHost().pinchViewport(); | 1413 PinchViewport& pinchViewport = frame->page()->frameHost().pinchViewport(); |
| 1414 EXPECT_EQ(viewportHeight, pinchViewport.containerLayer()->size().height()); | 1414 EXPECT_EQ(viewportHeight, pinchViewport.containerLayer()->size().height()); |
| 1415 EXPECT_TRUE(pinchViewport.containerLayer()->platformLayer()->masksToBounds()
); | 1415 EXPECT_TRUE(pinchViewport.containerLayer()->platformLayer()->masksToBounds()
); |
| 1416 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds())
; | 1416 EXPECT_FALSE(compositor->containerLayer()->platformLayer()->masksToBounds())
; |
| 1417 } | 1417 } |
| 1418 | 1418 |
| 1419 TEST_P(ParametrizedWebFrameTest, SetForceZeroLayoutHeight) | 1419 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeight) |
| 1420 { | 1420 { |
| 1421 UseMockScrollbarSettings mockScrollbarSettings; | 1421 UseMockScrollbarSettings mockScrollbarSettings; |
| 1422 registerMockedHttpURLLoad("200-by-300.html"); | 1422 registerMockedHttpURLLoad("200-by-300.html"); |
| 1423 | 1423 |
| 1424 FixedLayoutTestWebViewClient client; | 1424 FixedLayoutTestWebViewClient client; |
| 1425 client.m_screenInfo.deviceScaleFactor = 1; | 1425 client.m_screenInfo.deviceScaleFactor = 1; |
| 1426 int viewportWidth = 640; | 1426 int viewportWidth = 640; |
| 1427 int viewportHeight = 480; | 1427 int viewportHeight = 480; |
| 1428 | 1428 |
| 1429 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1429 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1486 | 1486 |
| 1487 ASSERT_NE(nullptr, element); | 1487 ASSERT_NE(nullptr, element); |
| 1488 EXPECT_EQ(String("oldValue"), element->innerText()); | 1488 EXPECT_EQ(String("oldValue"), element->innerText()); |
| 1489 | 1489 |
| 1490 PlatformGestureEvent gestureEvent(PlatformEvent::Type::GestureTap, hitPoint,
hitPoint, IntSize(0, 0), 0, false, false, false, false); | 1490 PlatformGestureEvent gestureEvent(PlatformEvent::Type::GestureTap, hitPoint,
hitPoint, IntSize(0, 0), 0, false, false, false, false); |
| 1491 webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handle
GestureEvent(gestureEvent); | 1491 webViewHelper.webViewImpl()->mainFrameImpl()->frame()->eventHandler().handle
GestureEvent(gestureEvent); |
| 1492 // when pressed, the button changes its own text to "updatedValue" | 1492 // when pressed, the button changes its own text to "updatedValue" |
| 1493 EXPECT_EQ(String("updatedValue"), element->innerText()); | 1493 EXPECT_EQ(String("updatedValue"), element->innerText()); |
| 1494 } | 1494 } |
| 1495 | 1495 |
| 1496 TEST_P(ParametrizedWebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations) | 1496 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWorksAcrossNavigations
) |
| 1497 { | 1497 { |
| 1498 UseMockScrollbarSettings mockScrollbarSettings; | 1498 UseMockScrollbarSettings mockScrollbarSettings; |
| 1499 registerMockedHttpURLLoad("200-by-300.html"); | 1499 registerMockedHttpURLLoad("200-by-300.html"); |
| 1500 registerMockedHttpURLLoad("large-div.html"); | 1500 registerMockedHttpURLLoad("large-div.html"); |
| 1501 | 1501 |
| 1502 FixedLayoutTestWebViewClient client; | 1502 FixedLayoutTestWebViewClient client; |
| 1503 client.m_screenInfo.deviceScaleFactor = 1; | 1503 client.m_screenInfo.deviceScaleFactor = 1; |
| 1504 int viewportWidth = 640; | 1504 int viewportWidth = 640; |
| 1505 int viewportHeight = 480; | 1505 int viewportHeight = 480; |
| 1506 | 1506 |
| 1507 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1507 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1508 | 1508 |
| 1509 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent, enableViewportSettings); | 1509 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent, enableViewportSettings); |
| 1510 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 1510 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
| 1511 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1511 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1512 webViewHelper.webView()->layout(); | 1512 webViewHelper.webView()->layout(); |
| 1513 | 1513 |
| 1514 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "large-div.html"); | 1514 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "large-div.html"); |
| 1515 webViewHelper.webView()->layout(); | 1515 webViewHelper.webView()->layout(); |
| 1516 | 1516 |
| 1517 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo
utSize().height()); | 1517 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo
utSize().height()); |
| 1518 } | 1518 } |
| 1519 | 1519 |
| 1520 TEST_P(ParametrizedWebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk) | 1520 TEST_P(ParameterizedWebFrameTest, SetForceZeroLayoutHeightWithWideViewportQuirk) |
| 1521 { | 1521 { |
| 1522 UseMockScrollbarSettings mockScrollbarSettings; | 1522 UseMockScrollbarSettings mockScrollbarSettings; |
| 1523 registerMockedHttpURLLoad("200-by-300.html"); | 1523 registerMockedHttpURLLoad("200-by-300.html"); |
| 1524 | 1524 |
| 1525 FixedLayoutTestWebViewClient client; | 1525 FixedLayoutTestWebViewClient client; |
| 1526 client.m_screenInfo.deviceScaleFactor = 1; | 1526 client.m_screenInfo.deviceScaleFactor = 1; |
| 1527 int viewportWidth = 640; | 1527 int viewportWidth = 640; |
| 1528 int viewportHeight = 480; | 1528 int viewportHeight = 480; |
| 1529 | 1529 |
| 1530 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1530 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1531 | 1531 |
| 1532 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent, enableViewportSettings); | 1532 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent, enableViewportSettings); |
| 1533 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1533 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1534 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1534 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1535 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); | 1535 webViewHelper.webView()->settings()->setForceZeroLayoutHeight(true); |
| 1536 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1536 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1537 webViewHelper.webView()->layout(); | 1537 webViewHelper.webView()->layout(); |
| 1538 | 1538 |
| 1539 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo
utSize().height()); | 1539 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layo
utSize().height()); |
| 1540 } | 1540 } |
| 1541 | 1541 |
| 1542 TEST_P(ParametrizedWebFrameTest, WideViewportAndWideContentWithInitialScale) | 1542 TEST_P(ParameterizedWebFrameTest, WideViewportAndWideContentWithInitialScale) |
| 1543 { | 1543 { |
| 1544 UseMockScrollbarSettings mockScrollbarSettings; | 1544 UseMockScrollbarSettings mockScrollbarSettings; |
| 1545 registerMockedHttpURLLoad("wide_document_width_viewport.html"); | 1545 registerMockedHttpURLLoad("wide_document_width_viewport.html"); |
| 1546 | 1546 |
| 1547 FixedLayoutTestWebViewClient client; | 1547 FixedLayoutTestWebViewClient client; |
| 1548 client.m_screenInfo.deviceScaleFactor = 1; | 1548 client.m_screenInfo.deviceScaleFactor = 1; |
| 1549 int viewportWidth = 600; | 1549 int viewportWidth = 600; |
| 1550 int viewportHeight = 800; | 1550 int viewportHeight = 800; |
| 1551 | 1551 |
| 1552 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1552 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1553 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); | 1553 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); |
| 1554 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1554 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1555 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1555 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1556 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 1556 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
| 1557 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1557 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1558 | 1558 |
| 1559 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "wide_document_width_viewport.html"); | 1559 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "wide_document_width_viewport.html"); |
| 1560 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1560 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1561 | 1561 |
| 1562 int wideDocumentWidth = 800; | 1562 int wideDocumentWidth = 800; |
| 1563 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; | 1563 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| 1564 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFact
or()); | 1564 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->pageScaleFact
or()); |
| 1565 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->minimumPageSc
aleFactor()); | 1565 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webViewImpl()->minimumPageSc
aleFactor()); |
| 1566 } | 1566 } |
| 1567 | 1567 |
| 1568 TEST_P(ParametrizedWebFrameTest, WideViewportQuirkClobbersHeight) | 1568 TEST_P(ParameterizedWebFrameTest, WideViewportQuirkClobbersHeight) |
| 1569 { | 1569 { |
| 1570 UseMockScrollbarSettings mockScrollbarSettings; | 1570 UseMockScrollbarSettings mockScrollbarSettings; |
| 1571 registerMockedHttpURLLoad("viewport-height-1000.html"); | 1571 registerMockedHttpURLLoad("viewport-height-1000.html"); |
| 1572 | 1572 |
| 1573 FixedLayoutTestWebViewClient client; | 1573 FixedLayoutTestWebViewClient client; |
| 1574 client.m_screenInfo.deviceScaleFactor = 1; | 1574 client.m_screenInfo.deviceScaleFactor = 1; |
| 1575 int viewportWidth = 600; | 1575 int viewportWidth = 600; |
| 1576 int viewportHeight = 800; | 1576 int viewportHeight = 800; |
| 1577 | 1577 |
| 1578 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1578 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1579 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); | 1579 webViewHelper.initializeAndLoad("about:blank", true, 0, &client, enableViewp
ortSettings); |
| 1580 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1580 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1581 webViewHelper.webView()->settings()->setUseWideViewport(false); | 1581 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 1582 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 1582 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
| 1583 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1583 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1584 | 1584 |
| 1585 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-height-1000.html"); | 1585 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-height-1000.html"); |
| 1586 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1586 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1587 | 1587 |
| 1588 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la
youtSize().height()); | 1588 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la
youtSize().height()); |
| 1589 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 1589 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
| 1590 } | 1590 } |
| 1591 | 1591 |
| 1592 TEST_P(ParametrizedWebFrameTest, LayoutSize320Quirk) | 1592 TEST_P(ParameterizedWebFrameTest, LayoutSize320Quirk) |
| 1593 { | 1593 { |
| 1594 UseMockScrollbarSettings mockScrollbarSettings; | 1594 UseMockScrollbarSettings mockScrollbarSettings; |
| 1595 registerMockedHttpURLLoad("viewport/viewport-30.html"); | 1595 registerMockedHttpURLLoad("viewport/viewport-30.html"); |
| 1596 | 1596 |
| 1597 FixedLayoutTestWebViewClient client; | 1597 FixedLayoutTestWebViewClient client; |
| 1598 client.m_screenInfo.deviceScaleFactor = 1; | 1598 client.m_screenInfo.deviceScaleFactor = 1; |
| 1599 int viewportWidth = 600; | 1599 int viewportWidth = 600; |
| 1600 int viewportHeight = 800; | 1600 int viewportHeight = 800; |
| 1601 | 1601 |
| 1602 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1602 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1634 document->setViewportDescription(description); | 1634 document->setViewportDescription(description); |
| 1635 webViewHelper.webView()->layout(); | 1635 webViewHelper.webView()->layout(); |
| 1636 EXPECT_EQ(1000, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->l
ayoutSize().height()); | 1636 EXPECT_EQ(1000, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->l
ayoutSize().height()); |
| 1637 | 1637 |
| 1638 description.maxHeight = Length(320, blink::Fixed); | 1638 description.maxHeight = Length(320, blink::Fixed); |
| 1639 document->setViewportDescription(description); | 1639 document->setViewportDescription(description); |
| 1640 webViewHelper.webView()->layout(); | 1640 webViewHelper.webView()->layout(); |
| 1641 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la
youtSize().height()); | 1641 EXPECT_EQ(800, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->la
youtSize().height()); |
| 1642 } | 1642 } |
| 1643 | 1643 |
| 1644 TEST_P(ParametrizedWebFrameTest, ZeroValuesQuirk) | 1644 TEST_P(ParameterizedWebFrameTest, ZeroValuesQuirk) |
| 1645 { | 1645 { |
| 1646 UseMockScrollbarSettings mockScrollbarSettings; | 1646 UseMockScrollbarSettings mockScrollbarSettings; |
| 1647 registerMockedHttpURLLoad("viewport-zero-values.html"); | 1647 registerMockedHttpURLLoad("viewport-zero-values.html"); |
| 1648 | 1648 |
| 1649 FixedLayoutTestWebViewClient client; | 1649 FixedLayoutTestWebViewClient client; |
| 1650 client.m_screenInfo.deviceScaleFactor = 1; | 1650 client.m_screenInfo.deviceScaleFactor = 1; |
| 1651 int viewportWidth = 640; | 1651 int viewportWidth = 640; |
| 1652 int viewportHeight = 480; | 1652 int viewportHeight = 480; |
| 1653 | 1653 |
| 1654 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1654 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1655 webViewHelper.initialize(true, 0, &client, enableViewportSettings); | 1655 webViewHelper.initialize(true, 0, &client, enableViewportSettings); |
| 1656 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 1656 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
| 1657 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1657 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1658 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 1658 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
| 1659 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-zero-values.html"); | 1659 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-zero-values.html"); |
| 1660 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1660 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1661 | 1661 |
| 1662 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); | 1662 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 1663 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 1663 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 1664 | 1664 |
| 1665 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1665 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1666 webViewHelper.webView()->layout(); | 1666 webViewHelper.webView()->layout(); |
| 1667 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); | 1667 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 1668 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 1668 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 1669 } | 1669 } |
| 1670 | 1670 |
| 1671 TEST_P(ParametrizedWebFrameTest, OverflowHiddenDisablesScrolling) | 1671 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrolling) |
| 1672 { | 1672 { |
| 1673 registerMockedHttpURLLoad("body-overflow-hidden.html"); | 1673 registerMockedHttpURLLoad("body-overflow-hidden.html"); |
| 1674 | 1674 |
| 1675 FixedLayoutTestWebViewClient client; | 1675 FixedLayoutTestWebViewClient client; |
| 1676 client.m_screenInfo.deviceScaleFactor = 1; | 1676 client.m_screenInfo.deviceScaleFactor = 1; |
| 1677 int viewportWidth = 640; | 1677 int viewportWidth = 640; |
| 1678 int viewportHeight = 480; | 1678 int viewportHeight = 480; |
| 1679 | 1679 |
| 1680 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1680 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1681 webViewHelper.initialize(true, 0, &client); | 1681 webViewHelper.initialize(true, 0, &client); |
| 1682 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "body-overflow-hidden.html"); | 1682 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "body-overflow-hidden.html"); |
| 1683 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1683 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1684 | 1684 |
| 1685 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); | 1685 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); |
| 1686 EXPECT_FALSE(view->userInputScrollable(VerticalScrollbar)); | 1686 EXPECT_FALSE(view->userInputScrollable(VerticalScrollbar)); |
| 1687 EXPECT_FALSE(view->userInputScrollable(HorizontalScrollbar)); | 1687 EXPECT_FALSE(view->userInputScrollable(HorizontalScrollbar)); |
| 1688 } | 1688 } |
| 1689 | 1689 |
| 1690 TEST_P(ParametrizedWebFrameTest, OverflowHiddenDisablesScrollingWithSetCanHaveSc
rollbars) | 1690 TEST_P(ParameterizedWebFrameTest, OverflowHiddenDisablesScrollingWithSetCanHaveS
crollbars) |
| 1691 { | 1691 { |
| 1692 registerMockedHttpURLLoad("body-overflow-hidden-short.html"); | 1692 registerMockedHttpURLLoad("body-overflow-hidden-short.html"); |
| 1693 | 1693 |
| 1694 FixedLayoutTestWebViewClient client; | 1694 FixedLayoutTestWebViewClient client; |
| 1695 client.m_screenInfo.deviceScaleFactor = 1; | 1695 client.m_screenInfo.deviceScaleFactor = 1; |
| 1696 int viewportWidth = 640; | 1696 int viewportWidth = 640; |
| 1697 int viewportHeight = 480; | 1697 int viewportHeight = 480; |
| 1698 | 1698 |
| 1699 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1699 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1700 webViewHelper.initialize(true, 0, &client); | 1700 webViewHelper.initialize(true, 0, &client); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1722 FrameTestHelpers::WebViewHelper webViewHelper; | 1722 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1723 webViewHelper.initialize(true, 0, &client); | 1723 webViewHelper.initialize(true, 0, &client); |
| 1724 webViewHelper.webView()->settings()->setIgnoreMainFrameOverflowHiddenQuirk(t
rue); | 1724 webViewHelper.webView()->settings()->setIgnoreMainFrameOverflowHiddenQuirk(t
rue); |
| 1725 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "body-overflow-hidden.html"); | 1725 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "body-overflow-hidden.html"); |
| 1726 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1726 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1727 | 1727 |
| 1728 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); | 1728 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); |
| 1729 EXPECT_TRUE(view->userInputScrollable(VerticalScrollbar)); | 1729 EXPECT_TRUE(view->userInputScrollable(VerticalScrollbar)); |
| 1730 } | 1730 } |
| 1731 | 1731 |
| 1732 TEST_P(ParametrizedWebFrameTest, NonZeroValuesNoQuirk) | 1732 TEST_P(ParameterizedWebFrameTest, NonZeroValuesNoQuirk) |
| 1733 { | 1733 { |
| 1734 UseMockScrollbarSettings mockScrollbarSettings; | 1734 UseMockScrollbarSettings mockScrollbarSettings; |
| 1735 registerMockedHttpURLLoad("viewport-nonzero-values.html"); | 1735 registerMockedHttpURLLoad("viewport-nonzero-values.html"); |
| 1736 | 1736 |
| 1737 FixedLayoutTestWebViewClient client; | 1737 FixedLayoutTestWebViewClient client; |
| 1738 client.m_screenInfo.deviceScaleFactor = 1; | 1738 client.m_screenInfo.deviceScaleFactor = 1; |
| 1739 int viewportWidth = 640; | 1739 int viewportWidth = 640; |
| 1740 int viewportHeight = 480; | 1740 int viewportHeight = 480; |
| 1741 float expectedPageScaleFactor = 0.5f; | 1741 float expectedPageScaleFactor = 0.5f; |
| 1742 | 1742 |
| 1743 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1743 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1744 webViewHelper.initialize(true, 0, &client, enableViewportSettings); | 1744 webViewHelper.initialize(true, 0, &client, enableViewportSettings); |
| 1745 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 1745 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
| 1746 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1746 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1747 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-nonzero-values.html"); | 1747 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-nonzero-values.html"); |
| 1748 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1748 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1749 | 1749 |
| 1750 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); | 1750 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
| 1751 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1751 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1752 | 1752 |
| 1753 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1753 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1754 webViewHelper.webView()->layout(); | 1754 webViewHelper.webView()->layout(); |
| 1755 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); | 1755 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
| 1756 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1756 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1757 } | 1757 } |
| 1758 | 1758 |
| 1759 TEST_P(ParametrizedWebFrameTest, setPageScaleFactorDoesNotLayout) | 1759 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorDoesNotLayout) |
| 1760 { | 1760 { |
| 1761 UseMockScrollbarSettings mockScrollbarSettings; | 1761 UseMockScrollbarSettings mockScrollbarSettings; |
| 1762 registerMockedHttpURLLoad("fixed_layout.html"); | 1762 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1763 | 1763 |
| 1764 FixedLayoutTestWebViewClient client; | 1764 FixedLayoutTestWebViewClient client; |
| 1765 client.m_screenInfo.deviceScaleFactor = 1; | 1765 client.m_screenInfo.deviceScaleFactor = 1; |
| 1766 // Small viewport to ensure there are always scrollbars. | 1766 // Small viewport to ensure there are always scrollbars. |
| 1767 int viewportWidth = 64; | 1767 int viewportWidth = 64; |
| 1768 int viewportHeight = 48; | 1768 int viewportHeight = 48; |
| 1769 | 1769 |
| 1770 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1770 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1771 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1771 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1772 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1772 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1773 webViewHelper.webView()->layout(); | 1773 webViewHelper.webView()->layout(); |
| 1774 | 1774 |
| 1775 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1775 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1776 webViewHelper.webViewImpl()->setPageScaleFactor(3); | 1776 webViewHelper.webViewImpl()->setPageScaleFactor(3); |
| 1777 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1777 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1778 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1778 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1779 } | 1779 } |
| 1780 | 1780 |
| 1781 TEST_P(ParametrizedWebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotL
ayout) | 1781 TEST_P(ParameterizedWebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNot
Layout) |
| 1782 { | 1782 { |
| 1783 UseMockScrollbarSettings mockScrollbarSettings; | 1783 UseMockScrollbarSettings mockScrollbarSettings; |
| 1784 | 1784 |
| 1785 registerMockedHttpURLLoad("fixed_layout.html"); | 1785 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1786 | 1786 |
| 1787 FixedLayoutTestWebViewClient client; | 1787 FixedLayoutTestWebViewClient client; |
| 1788 client.m_screenInfo.deviceScaleFactor = 1; | 1788 client.m_screenInfo.deviceScaleFactor = 1; |
| 1789 int viewportWidth = 640; | 1789 int viewportWidth = 640; |
| 1790 int viewportHeight = 480; | 1790 int viewportHeight = 480; |
| 1791 | 1791 |
| 1792 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1792 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1793 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1793 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1794 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1794 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1795 webViewHelper.webView()->layout(); | 1795 webViewHelper.webView()->layout(); |
| 1796 | 1796 |
| 1797 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1797 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1798 webViewHelper.webViewImpl()->setPageScaleFactor(30); | 1798 webViewHelper.webViewImpl()->setPageScaleFactor(30); |
| 1799 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1799 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1800 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1800 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1801 | 1801 |
| 1802 } | 1802 } |
| 1803 | 1803 |
| 1804 TEST_P(ParametrizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) | 1804 TEST_P(ParameterizedWebFrameTest, pageScaleFactorWrittenToHistoryItem) |
| 1805 { | 1805 { |
| 1806 UseMockScrollbarSettings mockScrollbarSettings; | 1806 UseMockScrollbarSettings mockScrollbarSettings; |
| 1807 registerMockedHttpURLLoad("fixed_layout.html"); | 1807 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1808 | 1808 |
| 1809 FixedLayoutTestWebViewClient client; | 1809 FixedLayoutTestWebViewClient client; |
| 1810 client.m_screenInfo.deviceScaleFactor = 1; | 1810 client.m_screenInfo.deviceScaleFactor = 1; |
| 1811 int viewportWidth = 640; | 1811 int viewportWidth = 640; |
| 1812 int viewportHeight = 480; | 1812 int viewportHeight = 480; |
| 1813 | 1813 |
| 1814 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1814 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1815 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1815 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1816 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1816 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1817 webViewHelper.webView()->layout(); | 1817 webViewHelper.webView()->layout(); |
| 1818 | 1818 |
| 1819 webViewHelper.webView()->setPageScaleFactor(3); | 1819 webViewHelper.webView()->setPageScaleFactor(3); |
| 1820 EXPECT_EQ(3, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())-
>loader().currentItem()->pageScaleFactor()); | 1820 EXPECT_EQ(3, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())-
>loader().currentItem()->pageScaleFactor()); |
| 1821 } | 1821 } |
| 1822 | 1822 |
| 1823 TEST_P(ParametrizedWebFrameTest, initialScaleWrittenToHistoryItem) | 1823 TEST_P(ParameterizedWebFrameTest, initialScaleWrittenToHistoryItem) |
| 1824 { | 1824 { |
| 1825 UseMockScrollbarSettings mockScrollbarSettings; | 1825 UseMockScrollbarSettings mockScrollbarSettings; |
| 1826 registerMockedHttpURLLoad("fixed_layout.html"); | 1826 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1827 | 1827 |
| 1828 FixedLayoutTestWebViewClient client; | 1828 FixedLayoutTestWebViewClient client; |
| 1829 client.m_screenInfo.deviceScaleFactor = 1; | 1829 client.m_screenInfo.deviceScaleFactor = 1; |
| 1830 int viewportWidth = 640; | 1830 int viewportWidth = 640; |
| 1831 int viewportHeight = 480; | 1831 int viewportHeight = 480; |
| 1832 | 1832 |
| 1833 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1833 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1834 webViewHelper.initialize(true, 0, &client, enableViewportSettings); | 1834 webViewHelper.initialize(true, 0, &client, enableViewportSettings); |
| 1835 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); | 1835 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); |
| 1836 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "fixed_layout.html"); | 1836 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "fixed_layout.html"); |
| 1837 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1837 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1838 webViewHelper.webView()->layout(); | 1838 webViewHelper.webView()->layout(); |
| 1839 | 1839 |
| 1840 int defaultFixedLayoutWidth = 980; | 1840 int defaultFixedLayoutWidth = 980; |
| 1841 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; | 1841 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; |
| 1842 EXPECT_EQ(minimumPageScaleFactor, toLocalFrame(webViewHelper.webViewImpl()->
page()->mainFrame())->loader().currentItem()->pageScaleFactor()); | 1842 EXPECT_EQ(minimumPageScaleFactor, toLocalFrame(webViewHelper.webViewImpl()->
page()->mainFrame())->loader().currentItem()->pageScaleFactor()); |
| 1843 } | 1843 } |
| 1844 | 1844 |
| 1845 TEST_P(ParametrizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) | 1845 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesntShrinkFrameView) |
| 1846 { | 1846 { |
| 1847 UseMockScrollbarSettings mockScrollbarSettings; | 1847 UseMockScrollbarSettings mockScrollbarSettings; |
| 1848 registerMockedHttpURLLoad("large-div.html"); | 1848 registerMockedHttpURLLoad("large-div.html"); |
| 1849 | 1849 |
| 1850 FixedLayoutTestWebViewClient client; | 1850 FixedLayoutTestWebViewClient client; |
| 1851 client.m_screenInfo.deviceScaleFactor = 1; | 1851 client.m_screenInfo.deviceScaleFactor = 1; |
| 1852 // Small viewport to ensure there are always scrollbars. | 1852 // Small viewport to ensure there are always scrollbars. |
| 1853 int viewportWidth = 64; | 1853 int viewportWidth = 64; |
| 1854 int viewportHeight = 48; | 1854 int viewportHeight = 48; |
| 1855 | 1855 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1876 | 1876 |
| 1877 IntSize unscaledSizeMinusScrollbar = view->visibleContentSize(ExcludeScrollb
ars); | 1877 IntSize unscaledSizeMinusScrollbar = view->visibleContentSize(ExcludeScrollb
ars); |
| 1878 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width()); | 1878 EXPECT_EQ(viewportWidthMinusScrollbar, unscaledSizeMinusScrollbar.width()); |
| 1879 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height())
; | 1879 EXPECT_EQ(viewportHeightMinusScrollbar, unscaledSizeMinusScrollbar.height())
; |
| 1880 | 1880 |
| 1881 IntSize frameViewSize = view->visibleContentRect().size(); | 1881 IntSize frameViewSize = view->visibleContentRect().size(); |
| 1882 EXPECT_EQ(viewportWidthMinusScrollbar, frameViewSize.width()); | 1882 EXPECT_EQ(viewportWidthMinusScrollbar, frameViewSize.width()); |
| 1883 EXPECT_EQ(viewportHeightMinusScrollbar, frameViewSize.height()); | 1883 EXPECT_EQ(viewportHeightMinusScrollbar, frameViewSize.height()); |
| 1884 } | 1884 } |
| 1885 | 1885 |
| 1886 TEST_P(ParametrizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform) | 1886 TEST_P(ParameterizedWebFrameTest, pageScaleFactorDoesNotApplyCssTransform) |
| 1887 { | 1887 { |
| 1888 UseMockScrollbarSettings mockScrollbarSettings; | 1888 UseMockScrollbarSettings mockScrollbarSettings; |
| 1889 registerMockedHttpURLLoad("fixed_layout.html"); | 1889 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1890 | 1890 |
| 1891 FixedLayoutTestWebViewClient client; | 1891 FixedLayoutTestWebViewClient client; |
| 1892 client.m_screenInfo.deviceScaleFactor = 1; | 1892 client.m_screenInfo.deviceScaleFactor = 1; |
| 1893 int viewportWidth = 640; | 1893 int viewportWidth = 640; |
| 1894 int viewportHeight = 480; | 1894 int viewportHeight = 480; |
| 1895 | 1895 |
| 1896 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1896 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1897 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 1897 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 1898 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1898 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1899 webViewHelper.webView()->layout(); | 1899 webViewHelper.webView()->layout(); |
| 1900 | 1900 |
| 1901 webViewHelper.webView()->setPageScaleFactor(2); | 1901 webViewHelper.webView()->setPageScaleFactor(2); |
| 1902 | 1902 |
| 1903 EXPECT_EQ(980, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame()
)->contentLayoutObject()->unscaledDocumentRect().width()); | 1903 EXPECT_EQ(980, toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame()
)->contentLayoutObject()->unscaledDocumentRect().width()); |
| 1904 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 1904 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 1905 } | 1905 } |
| 1906 | 1906 |
| 1907 TEST_P(ParametrizedWebFrameTest, targetDensityDpiHigh) | 1907 TEST_P(ParameterizedWebFrameTest, targetDensityDpiHigh) |
| 1908 { | 1908 { |
| 1909 UseMockScrollbarSettings mockScrollbarSettings; | 1909 UseMockScrollbarSettings mockScrollbarSettings; |
| 1910 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 1910 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
| 1911 | 1911 |
| 1912 FixedLayoutTestWebViewClient client; | 1912 FixedLayoutTestWebViewClient client; |
| 1913 // high-dpi = 240 | 1913 // high-dpi = 240 |
| 1914 float targetDpi = 240.0f; | 1914 float targetDpi = 240.0f; |
| 1915 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 1915 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| 1916 int viewportWidth = 640; | 1916 int viewportWidth = 640; |
| 1917 int viewportHeight = 480; | 1917 int viewportHeight = 480; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1929 | 1929 |
| 1930 // We need to account for the fact that logical pixels are unconditional
ly multiplied by deviceScaleFactor to produce | 1930 // We need to account for the fact that logical pixels are unconditional
ly multiplied by deviceScaleFactor to produce |
| 1931 // physical pixels. | 1931 // physical pixels. |
| 1932 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; | 1932 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; |
| 1933 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webViewI
mpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); | 1933 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webViewI
mpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); |
| 1934 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView
Impl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); | 1934 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView
Impl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); |
| 1935 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc
aleFactor(), 0.01f); | 1935 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc
aleFactor(), 0.01f); |
| 1936 } | 1936 } |
| 1937 } | 1937 } |
| 1938 | 1938 |
| 1939 TEST_P(ParametrizedWebFrameTest, targetDensityDpiDevice) | 1939 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDevice) |
| 1940 { | 1940 { |
| 1941 UseMockScrollbarSettings mockScrollbarSettings; | 1941 UseMockScrollbarSettings mockScrollbarSettings; |
| 1942 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); | 1942 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
| 1943 | 1943 |
| 1944 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 1944 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| 1945 | 1945 |
| 1946 FixedLayoutTestWebViewClient client; | 1946 FixedLayoutTestWebViewClient client; |
| 1947 int viewportWidth = 640; | 1947 int viewportWidth = 640; |
| 1948 int viewportHeight = 480; | 1948 int viewportHeight = 480; |
| 1949 | 1949 |
| 1950 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 1950 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
| 1951 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; | 1951 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; |
| 1952 | 1952 |
| 1953 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1953 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1954 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
device.html", true, 0, &client, enableViewportSettings); | 1954 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
device.html", true, 0, &client, enableViewportSettings); |
| 1955 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1955 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1956 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); | 1956 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); |
| 1957 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1957 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1958 | 1958 |
| 1959 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi
ewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f
); | 1959 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi
ewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f
); |
| 1960 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV
iewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.
0f); | 1960 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV
iewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.
0f); |
| 1961 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.
webView()->pageScaleFactor(), 0.01f); | 1961 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.
webView()->pageScaleFactor(), 0.01f); |
| 1962 } | 1962 } |
| 1963 } | 1963 } |
| 1964 | 1964 |
| 1965 TEST_P(ParametrizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth) | 1965 TEST_P(ParameterizedWebFrameTest, targetDensityDpiDeviceAndFixedWidth) |
| 1966 { | 1966 { |
| 1967 UseMockScrollbarSettings mockScrollbarSettings; | 1967 UseMockScrollbarSettings mockScrollbarSettings; |
| 1968 registerMockedHttpURLLoad("viewport-target-densitydpi-device-and-fixed-width
.html"); | 1968 registerMockedHttpURLLoad("viewport-target-densitydpi-device-and-fixed-width
.html"); |
| 1969 | 1969 |
| 1970 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 1970 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| 1971 | 1971 |
| 1972 FixedLayoutTestWebViewClient client; | 1972 FixedLayoutTestWebViewClient client; |
| 1973 int viewportWidth = 640; | 1973 int viewportWidth = 640; |
| 1974 int viewportHeight = 480; | 1974 int viewportHeight = 480; |
| 1975 | 1975 |
| 1976 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 1976 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
| 1977 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; | 1977 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; |
| 1978 | 1978 |
| 1979 FrameTestHelpers::WebViewHelper webViewHelper(this); | 1979 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 1980 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
device-and-fixed-width.html", true, 0, &client, enableViewportSettings); | 1980 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
device-and-fixed-width.html", true, 0, &client, enableViewportSettings); |
| 1981 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 1981 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1982 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); | 1982 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); |
| 1983 webViewHelper.webView()->settings()->setUseWideViewport(true); | 1983 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1984 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1984 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1985 | 1985 |
| 1986 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()-
>frameView()->layoutSize().width(), 1.0f); | 1986 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()-
>frameView()->layoutSize().width(), 1.0f); |
| 1987 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()
->frameView()->layoutSize().height(), 1.0f); | 1987 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()
->frameView()->layoutSize().height(), 1.0f); |
| 1988 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 1988 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
| 1989 } | 1989 } |
| 1990 } | 1990 } |
| 1991 | 1991 |
| 1992 TEST_P(ParametrizedWebFrameTest, NoWideViewportAndScaleLessThanOne) | 1992 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOne) |
| 1993 { | 1993 { |
| 1994 UseMockScrollbarSettings mockScrollbarSettings; | 1994 UseMockScrollbarSettings mockScrollbarSettings; |
| 1995 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); | 1995 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1.html"); |
| 1996 | 1996 |
| 1997 FixedLayoutTestWebViewClient client; | 1997 FixedLayoutTestWebViewClient client; |
| 1998 client.m_screenInfo.deviceScaleFactor = 1.33f; | 1998 client.m_screenInfo.deviceScaleFactor = 1.33f; |
| 1999 int viewportWidth = 640; | 1999 int viewportWidth = 640; |
| 2000 int viewportHeight = 480; | 2000 int viewportHeight = 480; |
| 2001 | 2001 |
| 2002 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2002 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2003 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha
n-1.html", true, 0, &client, enableViewportSettings); | 2003 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha
n-1.html", true, 0, &client, enableViewportSettings); |
| 2004 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); | 2004 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); |
| 2005 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2005 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 2006 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2006 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 2007 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2007 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2008 webViewHelper.webView()->layout(); | 2008 webViewHelper.webView()->layout(); |
| 2009 | 2009 |
| 2010 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe
lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); | 2010 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe
lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); |
| 2011 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH
elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); | 2011 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH
elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); |
| 2012 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); | 2012 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); |
| 2013 } | 2013 } |
| 2014 | 2014 |
| 2015 TEST_P(ParametrizedWebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWidt
h) | 2015 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndScaleLessThanOneWithDeviceWid
th) |
| 2016 { | 2016 { |
| 2017 UseMockScrollbarSettings mockScrollbarSettings; | 2017 UseMockScrollbarSettings mockScrollbarSettings; |
| 2018 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1-device-width.h
tml"); | 2018 registerMockedHttpURLLoad("viewport-initial-scale-less-than-1-device-width.h
tml"); |
| 2019 | 2019 |
| 2020 FixedLayoutTestWebViewClient client; | 2020 FixedLayoutTestWebViewClient client; |
| 2021 client.m_screenInfo.deviceScaleFactor = 1.33f; | 2021 client.m_screenInfo.deviceScaleFactor = 1.33f; |
| 2022 int viewportWidth = 640; | 2022 int viewportWidth = 640; |
| 2023 int viewportHeight = 480; | 2023 int viewportHeight = 480; |
| 2024 | 2024 |
| 2025 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2025 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2026 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha
n-1-device-width.html", true, 0, &client, enableViewportSettings); | 2026 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-less-tha
n-1-device-width.html", true, 0, &client, enableViewportSettings); |
| 2027 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); | 2027 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); |
| 2028 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2028 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 2029 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2029 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 2030 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2030 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2031 webViewHelper.webView()->layout(); | 2031 webViewHelper.webView()->layout(); |
| 2032 | 2032 |
| 2033 const float pageZoom = 0.25f; | 2033 const float pageZoom = 0.25f; |
| 2034 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom
, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(
), 1.0f); | 2034 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor / pageZoom
, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(
), 1.0f); |
| 2035 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo
m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh
t(), 1.0f); | 2035 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor / pageZoo
m, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().heigh
t(), 1.0f); |
| 2036 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); | 2036 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); |
| 2037 } | 2037 } |
| 2038 | 2038 |
| 2039 TEST_P(ParametrizedWebFrameTest, NoWideViewportAndNoViewportWithInitialPageScale
Override) | 2039 TEST_P(ParameterizedWebFrameTest, NoWideViewportAndNoViewportWithInitialPageScal
eOverride) |
| 2040 { | 2040 { |
| 2041 UseMockScrollbarSettings mockScrollbarSettings; | 2041 UseMockScrollbarSettings mockScrollbarSettings; |
| 2042 registerMockedHttpURLLoad("large-div.html"); | 2042 registerMockedHttpURLLoad("large-div.html"); |
| 2043 | 2043 |
| 2044 FixedLayoutTestWebViewClient client; | 2044 FixedLayoutTestWebViewClient client; |
| 2045 int viewportWidth = 640; | 2045 int viewportWidth = 640; |
| 2046 int viewportHeight = 480; | 2046 int viewportHeight = 480; |
| 2047 float enforcedPageScaleFactor = 5.0f; | 2047 float enforcedPageScaleFactor = 5.0f; |
| 2048 | 2048 |
| 2049 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2049 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2050 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); | 2050 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt, enableViewportSettings); |
| 2051 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); | 2051 webViewHelper.webView()->setDefaultPageScaleLimits(0.25f, 5); |
| 2052 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2052 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 2053 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2053 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 2054 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); | 2054 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
| 2055 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2055 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2056 webViewHelper.webView()->layout(); | 2056 webViewHelper.webView()->layout(); |
| 2057 | 2057 |
| 2058 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewIm
pl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); | 2058 EXPECT_NEAR(viewportWidth / enforcedPageScaleFactor, webViewHelper.webViewIm
pl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); |
| 2059 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webViewI
mpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); | 2059 EXPECT_NEAR(viewportHeight / enforcedPageScaleFactor, webViewHelper.webViewI
mpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); |
| 2060 EXPECT_NEAR(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFacto
r(), 0.01f); | 2060 EXPECT_NEAR(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFacto
r(), 0.01f); |
| 2061 } | 2061 } |
| 2062 | 2062 |
| 2063 TEST_P(ParametrizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) | 2063 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScale) |
| 2064 { | 2064 { |
| 2065 UseMockScrollbarSettings mockScrollbarSettings; | 2065 UseMockScrollbarSettings mockScrollbarSettings; |
| 2066 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"
); | 2066 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"
); |
| 2067 | 2067 |
| 2068 FixedLayoutTestWebViewClient client; | 2068 FixedLayoutTestWebViewClient client; |
| 2069 int viewportWidth = 640; | 2069 int viewportWidth = 640; |
| 2070 int viewportHeight = 480; | 2070 int viewportHeight = 480; |
| 2071 | 2071 |
| 2072 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2072 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2073 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user
-scalable-no.html", true, 0, &client, enableViewportSettings); | 2073 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user
-scalable-no.html", true, 0, &client, enableViewportSettings); |
| 2074 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); | 2074 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); |
| 2075 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2075 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2076 webViewHelper.webView()->layout(); | 2076 webViewHelper.webView()->layout(); |
| 2077 | 2077 |
| 2078 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutSize().width(), 1.0f); | 2078 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutSize().width(), 1.0f); |
| 2079 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr
ameView()->layoutSize().height(), 1.0f); | 2079 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr
ameView()->layoutSize().height(), 1.0f); |
| 2080 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2080 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
| 2081 } | 2081 } |
| 2082 | 2082 |
| 2083 TEST_P(ParametrizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonWi
deViewport) | 2083 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForNonW
ideViewport) |
| 2084 { | 2084 { |
| 2085 UseMockScrollbarSettings mockScrollbarSettings; | 2085 UseMockScrollbarSettings mockScrollbarSettings; |
| 2086 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"
); | 2086 registerMockedHttpURLLoad("viewport-initial-scale-and-user-scalable-no.html"
); |
| 2087 | 2087 |
| 2088 FixedLayoutTestWebViewClient client; | 2088 FixedLayoutTestWebViewClient client; |
| 2089 client.m_screenInfo.deviceScaleFactor = 1.33f; | 2089 client.m_screenInfo.deviceScaleFactor = 1.33f; |
| 2090 int viewportWidth = 640; | 2090 int viewportWidth = 640; |
| 2091 int viewportHeight = 480; | 2091 int viewportHeight = 480; |
| 2092 | 2092 |
| 2093 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2093 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2094 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user
-scalable-no.html", true, 0, &client, enableViewportSettings); | 2094 webViewHelper.initializeAndLoad(m_baseURL + "viewport-initial-scale-and-user
-scalable-no.html", true, 0, &client, enableViewportSettings); |
| 2095 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); | 2095 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); |
| 2096 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); | 2096 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); |
| 2097 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2097 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 2098 webViewHelper.webView()->settings()->setUseWideViewport(false); | 2098 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 2099 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2099 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2100 webViewHelper.webView()->layout(); | 2100 webViewHelper.webView()->layout(); |
| 2101 | 2101 |
| 2102 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe
lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); | 2102 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webViewHe
lper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); |
| 2103 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH
elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); | 2103 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webViewH
elper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); |
| 2104 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); | 2104 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.webV
iew()->pageScaleFactor(), 0.01f); |
| 2105 } | 2105 } |
| 2106 | 2106 |
| 2107 TEST_P(ParametrizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWideV
iewport) | 2107 TEST_P(ParameterizedWebFrameTest, NoUserScalableQuirkIgnoresViewportScaleForWide
Viewport) |
| 2108 { | 2108 { |
| 2109 UseMockScrollbarSettings mockScrollbarSettings; | 2109 UseMockScrollbarSettings mockScrollbarSettings; |
| 2110 registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html"
); | 2110 registerMockedHttpURLLoad("viewport-2x-initial-scale-non-user-scalable.html"
); |
| 2111 | 2111 |
| 2112 FixedLayoutTestWebViewClient client; | 2112 FixedLayoutTestWebViewClient client; |
| 2113 int viewportWidth = 640; | 2113 int viewportWidth = 640; |
| 2114 int viewportHeight = 480; | 2114 int viewportHeight = 480; |
| 2115 | 2115 |
| 2116 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2116 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2117 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-u
ser-scalable.html", true, 0, &client, enableViewportSettings); | 2117 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale-non-u
ser-scalable.html", true, 0, &client, enableViewportSettings); |
| 2118 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); | 2118 webViewHelper.webView()->settings()->setViewportMetaNonUserScalableQuirk(tru
e); |
| 2119 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 2119 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 2120 webViewHelper.webView()->settings()->setUseWideViewport(true); | 2120 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 2121 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2121 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2122 | 2122 |
| 2123 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutSize().width(), 1.0f); | 2123 EXPECT_NEAR(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutSize().width(), 1.0f); |
| 2124 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr
ameView()->layoutSize().height(), 1.0f); | 2124 EXPECT_NEAR(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fr
ameView()->layoutSize().height(), 1.0f); |
| 2125 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); | 2125 EXPECT_NEAR(1.0f, webViewHelper.webView()->pageScaleFactor(), 0.01f); |
| 2126 } | 2126 } |
| 2127 | 2127 |
| 2128 TEST_P(ParametrizedWebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurne
dOff) | 2128 TEST_P(ParameterizedWebFrameTest, DesktopPageCanBeZoomedInWhenWideViewportIsTurn
edOff) |
| 2129 { | 2129 { |
| 2130 UseMockScrollbarSettings mockScrollbarSettings; | 2130 UseMockScrollbarSettings mockScrollbarSettings; |
| 2131 registerMockedHttpURLLoad("no_viewport_tag.html"); | 2131 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 2132 | 2132 |
| 2133 FixedLayoutTestWebViewClient client; | 2133 FixedLayoutTestWebViewClient client; |
| 2134 int viewportWidth = 640; | 2134 int viewportWidth = 640; |
| 2135 int viewportHeight = 480; | 2135 int viewportHeight = 480; |
| 2136 | 2136 |
| 2137 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2137 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2138 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); | 2138 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client, enableViewportSettings); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2248 const char* url = "resize_scroll_fixed_layout.html"; | 2248 const char* url = "resize_scroll_fixed_layout.html"; |
| 2249 const float initialPageScaleFactor = 2; | 2249 const float initialPageScaleFactor = 2; |
| 2250 const WebSize scrollOffset(200, 400); | 2250 const WebSize scrollOffset(200, 400); |
| 2251 const WebSize viewportSize(320, 240); | 2251 const WebSize viewportSize(320, 240); |
| 2252 const bool shouldScaleRelativeToViewportWidth = true; | 2252 const bool shouldScaleRelativeToViewportWidth = true; |
| 2253 | 2253 |
| 2254 testResizeYieldsCorrectScrollAndScale( | 2254 testResizeYieldsCorrectScrollAndScale( |
| 2255 url, initialPageScaleFactor, scrollOffset, viewportSize, shouldScaleRela
tiveToViewportWidth); | 2255 url, initialPageScaleFactor, scrollOffset, viewportSize, shouldScaleRela
tiveToViewportWidth); |
| 2256 } | 2256 } |
| 2257 | 2257 |
| 2258 TEST_P(ParametrizedWebFrameTest, pageScaleFactorUpdatesScrollbars) | 2258 TEST_P(ParameterizedWebFrameTest, pageScaleFactorUpdatesScrollbars) |
| 2259 { | 2259 { |
| 2260 UseMockScrollbarSettings mockScrollbarSettings; | 2260 UseMockScrollbarSettings mockScrollbarSettings; |
| 2261 registerMockedHttpURLLoad("fixed_layout.html"); | 2261 registerMockedHttpURLLoad("fixed_layout.html"); |
| 2262 | 2262 |
| 2263 FixedLayoutTestWebViewClient client; | 2263 FixedLayoutTestWebViewClient client; |
| 2264 client.m_screenInfo.deviceScaleFactor = 1; | 2264 client.m_screenInfo.deviceScaleFactor = 1; |
| 2265 int viewportWidth = 640; | 2265 int viewportWidth = 640; |
| 2266 int viewportHeight = 480; | 2266 int viewportHeight = 480; |
| 2267 | 2267 |
| 2268 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2268 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2269 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); | 2269 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient, enableViewportSettings); |
| 2270 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2270 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2271 webViewHelper.webView()->layout(); | 2271 webViewHelper.webView()->layout(); |
| 2272 | 2272 |
| 2273 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); | 2273 FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->frameView(); |
| 2274 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width(
) - view->visibleContentRect().width()); | 2274 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width(
) - view->visibleContentRect().width()); |
| 2275 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height()
- view->visibleContentRect().height()); | 2275 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height()
- view->visibleContentRect().height()); |
| 2276 | 2276 |
| 2277 webViewHelper.webView()->setPageScaleFactor(10); | 2277 webViewHelper.webView()->setPageScaleFactor(10); |
| 2278 | 2278 |
| 2279 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width(
) - view->visibleContentRect().width()); | 2279 EXPECT_EQ(view->scrollSize(HorizontalScrollbar), view->contentsSize().width(
) - view->visibleContentRect().width()); |
| 2280 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height()
- view->visibleContentRect().height()); | 2280 EXPECT_EQ(view->scrollSize(VerticalScrollbar), view->contentsSize().height()
- view->visibleContentRect().height()); |
| 2281 } | 2281 } |
| 2282 | 2282 |
| 2283 TEST_P(ParametrizedWebFrameTest, CanOverrideScaleLimits) | 2283 TEST_P(ParameterizedWebFrameTest, CanOverrideScaleLimits) |
| 2284 { | 2284 { |
| 2285 UseMockScrollbarSettings mockScrollbarSettings; | 2285 UseMockScrollbarSettings mockScrollbarSettings; |
| 2286 | 2286 |
| 2287 registerMockedHttpURLLoad("no_scale_for_you.html"); | 2287 registerMockedHttpURLLoad("no_scale_for_you.html"); |
| 2288 | 2288 |
| 2289 FixedLayoutTestWebViewClient client; | 2289 FixedLayoutTestWebViewClient client; |
| 2290 client.m_screenInfo.deviceScaleFactor = 1; | 2290 client.m_screenInfo.deviceScaleFactor = 1; |
| 2291 int viewportWidth = 640; | 2291 int viewportWidth = 640; |
| 2292 int viewportHeight = 480; | 2292 int viewportHeight = 480; |
| 2293 | 2293 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2364 simulatePageScale(webViewImpl, scale); | 2364 simulatePageScale(webViewImpl, scale); |
| 2365 } | 2365 } |
| 2366 | 2366 |
| 2367 void simulateDoubleTap(WebViewImpl* webViewImpl, WebPoint& point, float& scale) | 2367 void simulateDoubleTap(WebViewImpl* webViewImpl, WebPoint& point, float& scale) |
| 2368 { | 2368 { |
| 2369 webViewImpl->animateDoubleTapZoom(point); | 2369 webViewImpl->animateDoubleTapZoom(point); |
| 2370 EXPECT_TRUE(webViewImpl->fakeDoubleTapAnimationPendingForTesting()); | 2370 EXPECT_TRUE(webViewImpl->fakeDoubleTapAnimationPendingForTesting()); |
| 2371 simulatePageScale(webViewImpl, scale); | 2371 simulatePageScale(webViewImpl, scale); |
| 2372 } | 2372 } |
| 2373 | 2373 |
| 2374 TEST_P(ParametrizedWebFrameTest, DivAutoZoomParamsTest) | 2374 TEST_P(ParameterizedWebFrameTest, DivAutoZoomParamsTest) |
| 2375 { | 2375 { |
| 2376 registerMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html"); | 2376 registerMockedHttpURLLoad("get_scale_for_auto_zoom_into_div_test.html"); |
| 2377 | 2377 |
| 2378 const float deviceScaleFactor = 2.0f; | 2378 const float deviceScaleFactor = 2.0f; |
| 2379 int viewportWidth = 640 / deviceScaleFactor; | 2379 int viewportWidth = 640 / deviceScaleFactor; |
| 2380 int viewportHeight = 1280 / deviceScaleFactor; | 2380 int viewportHeight = 1280 / deviceScaleFactor; |
| 2381 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2381 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2382 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2382 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2383 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html", false, 0, 0, configureAndroid); | 2383 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html", false, 0, 0, configureAndroid); |
| 2384 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2384 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2417 | 2417 |
| 2418 // Test double-tap zooming into tall div. | 2418 // Test double-tap zooming into tall div. |
| 2419 WebRect tallBlockBound = webViewHelper.webViewImpl()->computeBlockBound(doub
leTapPointTall, false); | 2419 WebRect tallBlockBound = webViewHelper.webViewImpl()->computeBlockBound(doub
leTapPointTall, false); |
| 2420 webViewHelper.webViewImpl()->computeScaleAndScrollForBlockRect(WebPoint(doub
leTapPointTall.x, doubleTapPointTall.y), tallBlockBound, touchPointPadding, doub
leTapZoomAlreadyLegibleScale, scale, scroll); | 2420 webViewHelper.webViewImpl()->computeScaleAndScrollForBlockRect(WebPoint(doub
leTapPointTall.x, doubleTapPointTall.y), tallBlockBound, touchPointPadding, doub
leTapZoomAlreadyLegibleScale, scale, scroll); |
| 2421 // The div should start at the top left of the viewport. | 2421 // The div should start at the top left of the viewport. |
| 2422 EXPECT_NEAR(viewportWidth / (float) tallDiv.width, scale, 0.1); | 2422 EXPECT_NEAR(viewportWidth / (float) tallDiv.width, scale, 0.1); |
| 2423 EXPECT_NEAR(tallDiv.x, scroll.x, 20); | 2423 EXPECT_NEAR(tallDiv.x, scroll.x, 20); |
| 2424 EXPECT_NEAR(tallDiv.y, scroll.y, 20); | 2424 EXPECT_NEAR(tallDiv.y, scroll.y, 20); |
| 2425 } | 2425 } |
| 2426 | 2426 |
| 2427 TEST_P(ParametrizedWebFrameTest, DivAutoZoomWideDivTest) | 2427 TEST_P(ParameterizedWebFrameTest, DivAutoZoomWideDivTest) |
| 2428 { | 2428 { |
| 2429 registerMockedHttpURLLoad("get_wide_div_for_auto_zoom_test.html"); | 2429 registerMockedHttpURLLoad("get_wide_div_for_auto_zoom_test.html"); |
| 2430 | 2430 |
| 2431 const float deviceScaleFactor = 2.0f; | 2431 const float deviceScaleFactor = 2.0f; |
| 2432 int viewportWidth = 640 / deviceScaleFactor; | 2432 int viewportWidth = 640 / deviceScaleFactor; |
| 2433 int viewportHeight = 1280 / deviceScaleFactor; | 2433 int viewportHeight = 1280 / deviceScaleFactor; |
| 2434 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2434 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2435 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2435 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2436 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html", false, 0, 0, configureAndroid); | 2436 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html", false, 0, 0, configureAndroid); |
| 2437 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2437 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 2438 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 2438 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 2439 webViewHelper.webView()->setPageScaleFactor(1.0f); | 2439 webViewHelper.webView()->setPageScaleFactor(1.0f); |
| 2440 webViewHelper.webView()->layout(); | 2440 webViewHelper.webView()->layout(); |
| 2441 | 2441 |
| 2442 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 2442 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 2443 | 2443 |
| 2444 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; | 2444 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; |
| 2445 | 2445 |
| 2446 WebRect div(0, 100, viewportWidth, 150); | 2446 WebRect div(0, 100, viewportWidth, 150); |
| 2447 WebPoint point(div.x + 50, div.y + 50); | 2447 WebPoint point(div.x + 50, div.y + 50); |
| 2448 float scale; | 2448 float scale; |
| 2449 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); | 2449 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); |
| 2450 | 2450 |
| 2451 simulateDoubleTap(webViewHelper.webViewImpl(), point, scale); | 2451 simulateDoubleTap(webViewHelper.webViewImpl(), point, scale); |
| 2452 EXPECT_FLOAT_EQ(doubleTapZoomAlreadyLegibleScale, scale); | 2452 EXPECT_FLOAT_EQ(doubleTapZoomAlreadyLegibleScale, scale); |
| 2453 simulateDoubleTap(webViewHelper.webViewImpl(), point, scale); | 2453 simulateDoubleTap(webViewHelper.webViewImpl(), point, scale); |
| 2454 EXPECT_FLOAT_EQ(webViewHelper.webViewImpl()->minimumPageScaleFactor(), scale
); | 2454 EXPECT_FLOAT_EQ(webViewHelper.webViewImpl()->minimumPageScaleFactor(), scale
); |
| 2455 } | 2455 } |
| 2456 | 2456 |
| 2457 TEST_P(ParametrizedWebFrameTest, DivAutoZoomVeryTallTest) | 2457 TEST_P(ParameterizedWebFrameTest, DivAutoZoomVeryTallTest) |
| 2458 { | 2458 { |
| 2459 // When a block is taller than the viewport and a zoom targets a lower part | 2459 // When a block is taller than the viewport and a zoom targets a lower part |
| 2460 // of it, then we should keep the target point onscreen instead of snapping | 2460 // of it, then we should keep the target point onscreen instead of snapping |
| 2461 // back up the top of the block. | 2461 // back up the top of the block. |
| 2462 registerMockedHttpURLLoad("very_tall_div.html"); | 2462 registerMockedHttpURLLoad("very_tall_div.html"); |
| 2463 | 2463 |
| 2464 const float deviceScaleFactor = 2.0f; | 2464 const float deviceScaleFactor = 2.0f; |
| 2465 int viewportWidth = 640 / deviceScaleFactor; | 2465 int viewportWidth = 640 / deviceScaleFactor; |
| 2466 int viewportHeight = 1280 / deviceScaleFactor; | 2466 int viewportHeight = 1280 / deviceScaleFactor; |
| 2467 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2467 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2745 doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimumPageS
caleFactor() * doubleTapZoomAlreadyLegibleRatio; | 2745 doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimumPageS
caleFactor() * doubleTapZoomAlreadyLegibleRatio; |
| 2746 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); | 2746 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), WebPoint(0, 0), (web
ViewHelper.webViewImpl()->minimumPageScaleFactor()) * (1 + doubleTapZoomAlreadyL
egibleRatio) / 2); |
| 2747 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); | 2747 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); |
| 2748 EXPECT_FLOAT_EQ(legibleScale, scale); | 2748 EXPECT_FLOAT_EQ(legibleScale, scale); |
| 2749 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); | 2749 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); |
| 2750 EXPECT_FLOAT_EQ(webViewHelper.webViewImpl()->minimumPageScaleFactor(), scale
); | 2750 EXPECT_FLOAT_EQ(webViewHelper.webViewImpl()->minimumPageScaleFactor(), scale
); |
| 2751 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); | 2751 simulateDoubleTap(webViewHelper.webViewImpl(), doubleTapPoint, scale); |
| 2752 EXPECT_FLOAT_EQ(legibleScale, scale); | 2752 EXPECT_FLOAT_EQ(legibleScale, scale); |
| 2753 } | 2753 } |
| 2754 | 2754 |
| 2755 TEST_P(ParametrizedWebFrameTest, BlockBoundTest) | 2755 TEST_P(ParameterizedWebFrameTest, BlockBoundTest) |
| 2756 { | 2756 { |
| 2757 registerMockedHttpURLLoad("block_bound.html"); | 2757 registerMockedHttpURLLoad("block_bound.html"); |
| 2758 | 2758 |
| 2759 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2759 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2760 webViewHelper.initializeAndLoad(m_baseURL + "block_bound.html", false, 0, 0,
configureAndroid); | 2760 webViewHelper.initializeAndLoad(m_baseURL + "block_bound.html", false, 0, 0,
configureAndroid); |
| 2761 | 2761 |
| 2762 IntRect rectBack = IntRect(0, 0, 200, 200); | 2762 IntRect rectBack = IntRect(0, 0, 200, 200); |
| 2763 IntRect rectLeftTop = IntRect(10, 10, 80, 80); | 2763 IntRect rectLeftTop = IntRect(10, 10, 80, 80); |
| 2764 IntRect rectRightBottom = IntRect(110, 110, 80, 80); | 2764 IntRect rectRightBottom = IntRect(110, 110, 80, 80); |
| 2765 IntRect blockBound; | 2765 IntRect blockBound; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2779 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(90, 90), true)); | 2779 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(90, 90), true)); |
| 2780 EXPECT_RECT_EQ(rectBack, blockBound); | 2780 EXPECT_RECT_EQ(rectBack, blockBound); |
| 2781 | 2781 |
| 2782 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(109, 109), true)); | 2782 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(109, 109), true)); |
| 2783 EXPECT_RECT_EQ(rectBack, blockBound); | 2783 EXPECT_RECT_EQ(rectBack, blockBound); |
| 2784 | 2784 |
| 2785 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(110, 110), true)); | 2785 blockBound = IntRect(webViewHelper.webViewImpl()->computeBlockBound(WebPoint
(110, 110), true)); |
| 2786 EXPECT_RECT_EQ(rectRightBottom, blockBound); | 2786 EXPECT_RECT_EQ(rectRightBottom, blockBound); |
| 2787 } | 2787 } |
| 2788 | 2788 |
| 2789 TEST_P(ParametrizedWebFrameTest, DivMultipleTargetZoomMultipleDivsTest) | 2789 TEST_P(ParameterizedWebFrameTest, DivMultipleTargetZoomMultipleDivsTest) |
| 2790 { | 2790 { |
| 2791 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); | 2791 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); |
| 2792 | 2792 |
| 2793 const float deviceScaleFactor = 2.0f; | 2793 const float deviceScaleFactor = 2.0f; |
| 2794 int viewportWidth = 640 / deviceScaleFactor; | 2794 int viewportWidth = 640 / deviceScaleFactor; |
| 2795 int viewportHeight = 1280 / deviceScaleFactor; | 2795 int viewportHeight = 1280 / deviceScaleFactor; |
| 2796 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 2796 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 2797 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2797 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2798 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); | 2798 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); |
| 2799 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 2799 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2899 // Zoom out slightly. | 2899 // Zoom out slightly. |
| 2900 const float withinToleranceScale = scale * 0.9f; | 2900 const float withinToleranceScale = scale * 0.9f; |
| 2901 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), scroll, withinTolera
nceScale); | 2901 setScaleAndScrollAndLayout(webViewHelper.webViewImpl(), scroll, withinTolera
nceScale); |
| 2902 // Move focus back to the second edit box. | 2902 // Move focus back to the second edit box. |
| 2903 webViewHelper.webView()->advanceFocus(false); | 2903 webViewHelper.webView()->advanceFocus(false); |
| 2904 webViewHelper.webViewImpl()->computeScaleAndScrollForFocusedNode(webViewHelp
er.webViewImpl()->focusedElement(), scale, scroll, needAnimation); | 2904 webViewHelper.webViewImpl()->computeScaleAndScrollForFocusedNode(webViewHelp
er.webViewImpl()->focusedElement(), scale, scroll, needAnimation); |
| 2905 // The scale should not be adjusted as the zoomed out scale was sufficiently
close to the previously focused scale. | 2905 // The scale should not be adjusted as the zoomed out scale was sufficiently
close to the previously focused scale. |
| 2906 EXPECT_FALSE(needAnimation); | 2906 EXPECT_FALSE(needAnimation); |
| 2907 } | 2907 } |
| 2908 | 2908 |
| 2909 TEST_P(ParametrizedWebFrameTest, CharacterIndexAtPointWithPinchZoom) | 2909 TEST_P(ParameterizedWebFrameTest, CharacterIndexAtPointWithPinchZoom) |
| 2910 { | 2910 { |
| 2911 registerMockedHttpURLLoad("sometext.html"); | 2911 registerMockedHttpURLLoad("sometext.html"); |
| 2912 | 2912 |
| 2913 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2913 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2914 webViewHelper.initializeAndLoad(m_baseURL + "sometext.html"); | 2914 webViewHelper.initializeAndLoad(m_baseURL + "sometext.html"); |
| 2915 webViewHelper.webViewImpl()->resize(WebSize(640, 480)); | 2915 webViewHelper.webViewImpl()->resize(WebSize(640, 480)); |
| 2916 webViewHelper.webViewImpl()->layout(); | 2916 webViewHelper.webViewImpl()->layout(); |
| 2917 | 2917 |
| 2918 | 2918 |
| 2919 webViewHelper.webViewImpl()->setPageScaleFactor(2); | 2919 webViewHelper.webViewImpl()->setPageScaleFactor(2); |
| 2920 webViewHelper.webViewImpl()->setPinchViewportOffset(WebFloatPoint(50, 60)); | 2920 webViewHelper.webViewImpl()->setPinchViewportOffset(WebFloatPoint(50, 60)); |
| 2921 | 2921 |
| 2922 WebRect baseRect; | 2922 WebRect baseRect; |
| 2923 WebRect extentRect; | 2923 WebRect extentRect; |
| 2924 | 2924 |
| 2925 WebFrame* mainFrame = webViewHelper.webViewImpl()->mainFrame(); | 2925 WebFrame* mainFrame = webViewHelper.webViewImpl()->mainFrame(); |
| 2926 size_t ix = mainFrame->characterIndexForPoint(WebPoint(320, 388)); | 2926 size_t ix = mainFrame->characterIndexForPoint(WebPoint(320, 388)); |
| 2927 | 2927 |
| 2928 EXPECT_EQ(2ul, ix); | 2928 EXPECT_EQ(2ul, ix); |
| 2929 } | 2929 } |
| 2930 | 2930 |
| 2931 TEST_P(ParametrizedWebFrameTest, FirstRectForCharacterRangeWithPinchZoom) | 2931 TEST_P(ParameterizedWebFrameTest, FirstRectForCharacterRangeWithPinchZoom) |
| 2932 { | 2932 { |
| 2933 registerMockedHttpURLLoad("textbox.html"); | 2933 registerMockedHttpURLLoad("textbox.html"); |
| 2934 | 2934 |
| 2935 FrameTestHelpers::WebViewHelper webViewHelper(this); | 2935 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 2936 webViewHelper.initializeAndLoad(m_baseURL + "textbox.html", true); | 2936 webViewHelper.initializeAndLoad(m_baseURL + "textbox.html", true); |
| 2937 webViewHelper.webViewImpl()->resize(WebSize(640, 480)); | 2937 webViewHelper.webViewImpl()->resize(WebSize(640, 480)); |
| 2938 | 2938 |
| 2939 WebFrame* mainFrame = webViewHelper.webViewImpl()->mainFrame(); | 2939 WebFrame* mainFrame = webViewHelper.webViewImpl()->mainFrame(); |
| 2940 mainFrame->executeScript(WebScriptSource("selectRange();")); | 2940 mainFrame->executeScript(WebScriptSource("selectRange();")); |
| 2941 | 2941 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3017 | 3017 |
| 3018 class TestReloadDoesntRedirectWebFrameClient : public FrameTestHelpers::TestWebF
rameClient { | 3018 class TestReloadDoesntRedirectWebFrameClient : public FrameTestHelpers::TestWebF
rameClient { |
| 3019 public: | 3019 public: |
| 3020 virtual WebNavigationPolicy decidePolicyForNavigation(const NavigationPolicy
Info& info) override | 3020 virtual WebNavigationPolicy decidePolicyForNavigation(const NavigationPolicy
Info& info) override |
| 3021 { | 3021 { |
| 3022 EXPECT_FALSE(info.isRedirect); | 3022 EXPECT_FALSE(info.isRedirect); |
| 3023 return WebNavigationPolicyCurrentTab; | 3023 return WebNavigationPolicyCurrentTab; |
| 3024 } | 3024 } |
| 3025 }; | 3025 }; |
| 3026 | 3026 |
| 3027 TEST_P(ParametrizedWebFrameTest, ReloadDoesntSetRedirect) | 3027 TEST_P(ParameterizedWebFrameTest, ReloadDoesntSetRedirect) |
| 3028 { | 3028 { |
| 3029 // Test for case in http://crbug.com/73104. Reloading a frame very quickly | 3029 // Test for case in http://crbug.com/73104. Reloading a frame very quickly |
| 3030 // would sometimes call decidePolicyForNavigation with isRedirect=true | 3030 // would sometimes call decidePolicyForNavigation with isRedirect=true |
| 3031 registerMockedHttpURLLoad("form.html"); | 3031 registerMockedHttpURLLoad("form.html"); |
| 3032 | 3032 |
| 3033 TestReloadDoesntRedirectWebFrameClient webFrameClient; | 3033 TestReloadDoesntRedirectWebFrameClient webFrameClient; |
| 3034 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3034 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3035 webViewHelper.initializeAndLoad(m_baseURL + "form.html", false, &webFrameCli
ent); | 3035 webViewHelper.initializeAndLoad(m_baseURL + "form.html", false, &webFrameCli
ent); |
| 3036 | 3036 |
| 3037 webViewHelper.webView()->mainFrame()->reload(true); | 3037 webViewHelper.webView()->mainFrame()->reload(true); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3106 | 3106 |
| 3107 // Reload the page while ignoring the cache. State should not be propagated. | 3107 // Reload the page while ignoring the cache. State should not be propagated. |
| 3108 Platform::current()->currentThread()->postTask( | 3108 Platform::current()->currentThread()->postTask( |
| 3109 FROM_HERE, new ReloadWithOverrideURLTask(webViewHelper.webViewImpl()->ma
inFrame(), toKURL(m_baseURL + thirdURL), true)); | 3109 FROM_HERE, new ReloadWithOverrideURLTask(webViewHelper.webViewImpl()->ma
inFrame(), toKURL(m_baseURL + thirdURL), true)); |
| 3110 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webViewImpl()->m
ainFrame()); | 3110 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webViewImpl()->m
ainFrame()); |
| 3111 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().width)
; | 3111 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().width)
; |
| 3112 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().height
); | 3112 EXPECT_EQ(0, webViewHelper.webViewImpl()->mainFrame()->scrollOffset().height
); |
| 3113 EXPECT_EQ(1.0f, webViewHelper.webViewImpl()->pageScaleFactor()); | 3113 EXPECT_EQ(1.0f, webViewHelper.webViewImpl()->pageScaleFactor()); |
| 3114 } | 3114 } |
| 3115 | 3115 |
| 3116 TEST_P(ParametrizedWebFrameTest, ReloadWhileProvisional) | 3116 TEST_P(ParameterizedWebFrameTest, ReloadWhileProvisional) |
| 3117 { | 3117 { |
| 3118 // Test that reloading while the previous load is still pending does not cau
se the initial | 3118 // Test that reloading while the previous load is still pending does not cau
se the initial |
| 3119 // request to get lost. | 3119 // request to get lost. |
| 3120 registerMockedHttpURLLoad("fixed_layout.html"); | 3120 registerMockedHttpURLLoad("fixed_layout.html"); |
| 3121 | 3121 |
| 3122 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3122 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3123 webViewHelper.initialize(); | 3123 webViewHelper.initialize(); |
| 3124 WebURLRequest request; | 3124 WebURLRequest request; |
| 3125 request.initialize(); | 3125 request.initialize(); |
| 3126 request.setURL(toKURL(m_baseURL + "fixed_layout.html")); | 3126 request.setURL(toKURL(m_baseURL + "fixed_layout.html")); |
| 3127 webViewHelper.webView()->mainFrame()->loadRequest(request); | 3127 webViewHelper.webView()->mainFrame()->loadRequest(request); |
| 3128 // start reload before first request is delivered. | 3128 // start reload before first request is delivered. |
| 3129 FrameTestHelpers::reloadFrameIgnoringCache(webViewHelper.webView()->mainFram
e()); | 3129 FrameTestHelpers::reloadFrameIgnoringCache(webViewHelper.webView()->mainFram
e()); |
| 3130 | 3130 |
| 3131 WebDataSource* dataSource = webViewHelper.webView()->mainFrame()->dataSource
(); | 3131 WebDataSource* dataSource = webViewHelper.webView()->mainFrame()->dataSource
(); |
| 3132 ASSERT_TRUE(dataSource); | 3132 ASSERT_TRUE(dataSource); |
| 3133 EXPECT_EQ(toKURL(m_baseURL + "fixed_layout.html"), toKURL(dataSource->reques
t().url().spec())); | 3133 EXPECT_EQ(toKURL(m_baseURL + "fixed_layout.html"), toKURL(dataSource->reques
t().url().spec())); |
| 3134 } | 3134 } |
| 3135 | 3135 |
| 3136 TEST_P(ParametrizedWebFrameTest, AppendRedirects) | 3136 TEST_P(ParameterizedWebFrameTest, AppendRedirects) |
| 3137 { | 3137 { |
| 3138 const std::string firstURL = "about:blank"; | 3138 const std::string firstURL = "about:blank"; |
| 3139 const std::string secondURL = "http://internal.test"; | 3139 const std::string secondURL = "http://internal.test"; |
| 3140 | 3140 |
| 3141 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3141 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3142 webViewHelper.initializeAndLoad(firstURL, true); | 3142 webViewHelper.initializeAndLoad(firstURL, true); |
| 3143 | 3143 |
| 3144 WebDataSource* dataSource = webViewHelper.webView()->mainFrame()->dataSource
(); | 3144 WebDataSource* dataSource = webViewHelper.webView()->mainFrame()->dataSource
(); |
| 3145 ASSERT_TRUE(dataSource); | 3145 ASSERT_TRUE(dataSource); |
| 3146 dataSource->appendRedirect(toKURL(secondURL)); | 3146 dataSource->appendRedirect(toKURL(secondURL)); |
| 3147 | 3147 |
| 3148 WebVector<WebURL> redirects; | 3148 WebVector<WebURL> redirects; |
| 3149 dataSource->redirectChain(redirects); | 3149 dataSource->redirectChain(redirects); |
| 3150 ASSERT_EQ(2U, redirects.size()); | 3150 ASSERT_EQ(2U, redirects.size()); |
| 3151 EXPECT_EQ(toKURL(firstURL), toKURL(redirects[0].spec().data())); | 3151 EXPECT_EQ(toKURL(firstURL), toKURL(redirects[0].spec().data())); |
| 3152 EXPECT_EQ(toKURL(secondURL), toKURL(redirects[1].spec().data())); | 3152 EXPECT_EQ(toKURL(secondURL), toKURL(redirects[1].spec().data())); |
| 3153 } | 3153 } |
| 3154 | 3154 |
| 3155 TEST_P(ParametrizedWebFrameTest, IframeRedirect) | 3155 TEST_P(ParameterizedWebFrameTest, IframeRedirect) |
| 3156 { | 3156 { |
| 3157 registerMockedHttpURLLoad("iframe_redirect.html"); | 3157 registerMockedHttpURLLoad("iframe_redirect.html"); |
| 3158 registerMockedHttpURLLoad("visible_iframe.html"); | 3158 registerMockedHttpURLLoad("visible_iframe.html"); |
| 3159 | 3159 |
| 3160 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3160 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3161 webViewHelper.initializeAndLoad(m_baseURL + "iframe_redirect.html", true); | 3161 webViewHelper.initializeAndLoad(m_baseURL + "iframe_redirect.html", true); |
| 3162 // Pump pending requests one more time. The test page loads script that navi
gates. | 3162 // Pump pending requests one more time. The test page loads script that navi
gates. |
| 3163 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); | 3163 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); |
| 3164 | 3164 |
| 3165 WebFrame* iframe = webViewHelper.webView()->findFrameByName(WebString::fromU
TF8("ifr")); | 3165 WebFrame* iframe = webViewHelper.webView()->findFrameByName(WebString::fromU
TF8("ifr")); |
| 3166 ASSERT_TRUE(iframe); | 3166 ASSERT_TRUE(iframe); |
| 3167 WebDataSource* iframeDataSource = iframe->dataSource(); | 3167 WebDataSource* iframeDataSource = iframe->dataSource(); |
| 3168 ASSERT_TRUE(iframeDataSource); | 3168 ASSERT_TRUE(iframeDataSource); |
| 3169 WebVector<WebURL> redirects; | 3169 WebVector<WebURL> redirects; |
| 3170 iframeDataSource->redirectChain(redirects); | 3170 iframeDataSource->redirectChain(redirects); |
| 3171 ASSERT_EQ(2U, redirects.size()); | 3171 ASSERT_EQ(2U, redirects.size()); |
| 3172 EXPECT_EQ(toKURL("about:blank"), toKURL(redirects[0].spec().data())); | 3172 EXPECT_EQ(toKURL("about:blank"), toKURL(redirects[0].spec().data())); |
| 3173 EXPECT_EQ(toKURL("http://internal.test/visible_iframe.html"), toKURL(redirec
ts[1].spec().data())); | 3173 EXPECT_EQ(toKURL("http://internal.test/visible_iframe.html"), toKURL(redirec
ts[1].spec().data())); |
| 3174 } | 3174 } |
| 3175 | 3175 |
| 3176 TEST_P(ParametrizedWebFrameTest, ClearFocusedNodeTest) | 3176 TEST_P(ParameterizedWebFrameTest, ClearFocusedNodeTest) |
| 3177 { | 3177 { |
| 3178 registerMockedHttpURLLoad("iframe_clear_focused_node_test.html"); | 3178 registerMockedHttpURLLoad("iframe_clear_focused_node_test.html"); |
| 3179 registerMockedHttpURLLoad("autofocus_input_field_iframe.html"); | 3179 registerMockedHttpURLLoad("autofocus_input_field_iframe.html"); |
| 3180 | 3180 |
| 3181 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3181 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3182 webViewHelper.initializeAndLoad(m_baseURL + "iframe_clear_focused_node_test.
html", true); | 3182 webViewHelper.initializeAndLoad(m_baseURL + "iframe_clear_focused_node_test.
html", true); |
| 3183 | 3183 |
| 3184 // Clear the focused node. | 3184 // Clear the focused node. |
| 3185 webViewHelper.webView()->clearFocusedElement(); | 3185 webViewHelper.webView()->clearFocusedElement(); |
| 3186 | 3186 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3242 createNotifications.push_back(new Notification(frame, context, worldId))
; | 3242 createNotifications.push_back(new Notification(frame, context, worldId))
; |
| 3243 } | 3243 } |
| 3244 | 3244 |
| 3245 virtual void willReleaseScriptContext(WebLocalFrame* frame, v8::Local<v8::Co
ntext> context, int worldId) override | 3245 virtual void willReleaseScriptContext(WebLocalFrame* frame, v8::Local<v8::Co
ntext> context, int worldId) override |
| 3246 { | 3246 { |
| 3247 releaseNotifications.push_back(new Notification(frame, context, worldId)
); | 3247 releaseNotifications.push_back(new Notification(frame, context, worldId)
); |
| 3248 } | 3248 } |
| 3249 }; | 3249 }; |
| 3250 | 3250 |
| 3251 // TODO(aa): Deflake this test. | 3251 // TODO(aa): Deflake this test. |
| 3252 TEST_P(ParametrizedWebFrameTest, FLAKY_ContextNotificationsLoadUnload) | 3252 TEST_P(ParameterizedWebFrameTest, FLAKY_ContextNotificationsLoadUnload) |
| 3253 { | 3253 { |
| 3254 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); | 3254 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); |
| 3255 | 3255 |
| 3256 registerMockedHttpURLLoad("context_notifications_test.html"); | 3256 registerMockedHttpURLLoad("context_notifications_test.html"); |
| 3257 registerMockedHttpURLLoad("context_notifications_test_frame.html"); | 3257 registerMockedHttpURLLoad("context_notifications_test_frame.html"); |
| 3258 | 3258 |
| 3259 // Load a frame with an iframe, make sure we get the right create notificati
ons. | 3259 // Load a frame with an iframe, make sure we get the right create notificati
ons. |
| 3260 ContextLifetimeTestWebFrameClient webFrameClient; | 3260 ContextLifetimeTestWebFrameClient webFrameClient; |
| 3261 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3261 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3262 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); | 3262 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 3282 webViewHelper.reset(); | 3282 webViewHelper.reset(); |
| 3283 | 3283 |
| 3284 ASSERT_EQ(2u, webFrameClient.releaseNotifications.size()); | 3284 ASSERT_EQ(2u, webFrameClient.releaseNotifications.size()); |
| 3285 ContextLifetimeTestWebFrameClient::Notification* firstReleaseNotification =
webFrameClient.releaseNotifications[0]; | 3285 ContextLifetimeTestWebFrameClient::Notification* firstReleaseNotification =
webFrameClient.releaseNotifications[0]; |
| 3286 ContextLifetimeTestWebFrameClient::Notification* secondReleaseNotification =
webFrameClient.releaseNotifications[1]; | 3286 ContextLifetimeTestWebFrameClient::Notification* secondReleaseNotification =
webFrameClient.releaseNotifications[1]; |
| 3287 | 3287 |
| 3288 ASSERT_TRUE(firstCreateNotification->Equals(secondReleaseNotification)); | 3288 ASSERT_TRUE(firstCreateNotification->Equals(secondReleaseNotification)); |
| 3289 ASSERT_TRUE(secondCreateNotification->Equals(firstReleaseNotification)); | 3289 ASSERT_TRUE(secondCreateNotification->Equals(firstReleaseNotification)); |
| 3290 } | 3290 } |
| 3291 | 3291 |
| 3292 TEST_P(ParametrizedWebFrameTest, ContextNotificationsReload) | 3292 TEST_P(ParameterizedWebFrameTest, ContextNotificationsReload) |
| 3293 { | 3293 { |
| 3294 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); | 3294 v8::HandleScope handleScope(v8::Isolate::GetCurrent()); |
| 3295 | 3295 |
| 3296 registerMockedHttpURLLoad("context_notifications_test.html"); | 3296 registerMockedHttpURLLoad("context_notifications_test.html"); |
| 3297 registerMockedHttpURLLoad("context_notifications_test_frame.html"); | 3297 registerMockedHttpURLLoad("context_notifications_test_frame.html"); |
| 3298 | 3298 |
| 3299 ContextLifetimeTestWebFrameClient webFrameClient; | 3299 ContextLifetimeTestWebFrameClient webFrameClient; |
| 3300 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3300 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3301 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); | 3301 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); |
| 3302 | 3302 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3319 | 3319 |
| 3320 EXPECT_EQ(mainFrame, firstRefreshNotification->frame); | 3320 EXPECT_EQ(mainFrame, firstRefreshNotification->frame); |
| 3321 EXPECT_EQ(mainFrame->mainWorldScriptContext(), firstRefreshNotification->con
text); | 3321 EXPECT_EQ(mainFrame->mainWorldScriptContext(), firstRefreshNotification->con
text); |
| 3322 EXPECT_EQ(0, firstRefreshNotification->worldId); | 3322 EXPECT_EQ(0, firstRefreshNotification->worldId); |
| 3323 | 3323 |
| 3324 EXPECT_EQ(childFrame, secondRefreshNotification->frame); | 3324 EXPECT_EQ(childFrame, secondRefreshNotification->frame); |
| 3325 EXPECT_EQ(childFrame->mainWorldScriptContext(), secondRefreshNotification->c
ontext); | 3325 EXPECT_EQ(childFrame->mainWorldScriptContext(), secondRefreshNotification->c
ontext); |
| 3326 EXPECT_EQ(0, secondRefreshNotification->worldId); | 3326 EXPECT_EQ(0, secondRefreshNotification->worldId); |
| 3327 } | 3327 } |
| 3328 | 3328 |
| 3329 TEST_P(ParametrizedWebFrameTest, ContextNotificationsIsolatedWorlds) | 3329 TEST_P(ParameterizedWebFrameTest, ContextNotificationsIsolatedWorlds) |
| 3330 { | 3330 { |
| 3331 v8::Isolate* isolate = v8::Isolate::GetCurrent(); | 3331 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| 3332 v8::HandleScope handleScope(isolate); | 3332 v8::HandleScope handleScope(isolate); |
| 3333 | 3333 |
| 3334 registerMockedHttpURLLoad("context_notifications_test.html"); | 3334 registerMockedHttpURLLoad("context_notifications_test.html"); |
| 3335 registerMockedHttpURLLoad("context_notifications_test_frame.html"); | 3335 registerMockedHttpURLLoad("context_notifications_test_frame.html"); |
| 3336 | 3336 |
| 3337 ContextLifetimeTestWebFrameClient webFrameClient; | 3337 ContextLifetimeTestWebFrameClient webFrameClient; |
| 3338 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3338 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3339 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); | 3339 webViewHelper.initializeAndLoad(m_baseURL + "context_notifications_test.html
", true, &webFrameClient); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3363 | 3363 |
| 3364 // And one of them should be exactly the same as the create notification for
the isolated context. | 3364 // And one of them should be exactly the same as the create notification for
the isolated context. |
| 3365 int matchCount = 0; | 3365 int matchCount = 0; |
| 3366 for (size_t i = 0; i < webFrameClient.releaseNotifications.size(); ++i) { | 3366 for (size_t i = 0; i < webFrameClient.releaseNotifications.size(); ++i) { |
| 3367 if (webFrameClient.releaseNotifications[i]->Equals(webFrameClient.createNo
tifications[0])) | 3367 if (webFrameClient.releaseNotifications[i]->Equals(webFrameClient.createNo
tifications[0])) |
| 3368 ++matchCount; | 3368 ++matchCount; |
| 3369 } | 3369 } |
| 3370 EXPECT_EQ(1, matchCount); | 3370 EXPECT_EQ(1, matchCount); |
| 3371 } | 3371 } |
| 3372 | 3372 |
| 3373 TEST_P(ParametrizedWebFrameTest, FindInPage) | 3373 TEST_P(ParameterizedWebFrameTest, FindInPage) |
| 3374 { | 3374 { |
| 3375 registerMockedHttpURLLoad("find.html"); | 3375 registerMockedHttpURLLoad("find.html"); |
| 3376 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3376 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3377 webViewHelper.initializeAndLoad(m_baseURL + "find.html"); | 3377 webViewHelper.initializeAndLoad(m_baseURL + "find.html"); |
| 3378 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 3378 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 3379 const int findIdentifier = 12345; | 3379 const int findIdentifier = 12345; |
| 3380 WebFindOptions options; | 3380 WebFindOptions options; |
| 3381 | 3381 |
| 3382 // Find in a <div> element. | 3382 // Find in a <div> element. |
| 3383 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar1"), options
, false, 0)); | 3383 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar1"), options
, false, 0)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3420 | 3420 |
| 3421 // Find in <select> content. | 3421 // Find in <select> content. |
| 3422 EXPECT_FALSE(frame->find(findIdentifier, WebString::fromUTF8("bar5"), option
s, false, 0)); | 3422 EXPECT_FALSE(frame->find(findIdentifier, WebString::fromUTF8("bar5"), option
s, false, 0)); |
| 3423 // If there are any matches, stopFinding will set the selection on the found
text. | 3423 // If there are any matches, stopFinding will set the selection on the found
text. |
| 3424 // However, we do not expect any matches, so check that the selection is nul
l. | 3424 // However, we do not expect any matches, so check that the selection is nul
l. |
| 3425 frame->stopFinding(false); | 3425 frame->stopFinding(false); |
| 3426 range = frame->selectionRange(); | 3426 range = frame->selectionRange(); |
| 3427 ASSERT_TRUE(range.isNull()); | 3427 ASSERT_TRUE(range.isNull()); |
| 3428 } | 3428 } |
| 3429 | 3429 |
| 3430 TEST_P(ParametrizedWebFrameTest, GetContentAsPlainText) | 3430 TEST_P(ParameterizedWebFrameTest, GetContentAsPlainText) |
| 3431 { | 3431 { |
| 3432 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3432 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3433 webViewHelper.initializeAndLoad("about:blank", true); | 3433 webViewHelper.initializeAndLoad("about:blank", true); |
| 3434 // We set the size because it impacts line wrapping, which changes the | 3434 // We set the size because it impacts line wrapping, which changes the |
| 3435 // resulting text value. | 3435 // resulting text value. |
| 3436 webViewHelper.webView()->resize(WebSize(640, 480)); | 3436 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3437 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 3437 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 3438 | 3438 |
| 3439 // Generate a simple test case. | 3439 // Generate a simple test case. |
| 3440 const char simpleSource[] = "<div>Foo bar</div><div></div>baz"; | 3440 const char simpleSource[] = "<div>Foo bar</div><div></div>baz"; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3462 | 3462 |
| 3463 text = frame->contentAsText(std::numeric_limits<size_t>::max()); | 3463 text = frame->contentAsText(std::numeric_limits<size_t>::max()); |
| 3464 EXPECT_EQ("Hello world\n\nsub\ntext", text.utf8()); | 3464 EXPECT_EQ("Hello world\n\nsub\ntext", text.utf8()); |
| 3465 | 3465 |
| 3466 // Get the frame text where the subframe separator falls on the boundary of | 3466 // Get the frame text where the subframe separator falls on the boundary of |
| 3467 // what we'll take. There used to be a crash in this case. | 3467 // what we'll take. There used to be a crash in this case. |
| 3468 text = frame->contentAsText(12); | 3468 text = frame->contentAsText(12); |
| 3469 EXPECT_EQ("Hello world", text.utf8()); | 3469 EXPECT_EQ("Hello world", text.utf8()); |
| 3470 } | 3470 } |
| 3471 | 3471 |
| 3472 TEST_P(ParametrizedWebFrameTest, GetFullHtmlOfPage) | 3472 TEST_P(ParameterizedWebFrameTest, GetFullHtmlOfPage) |
| 3473 { | 3473 { |
| 3474 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3474 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3475 webViewHelper.initializeAndLoad("about:blank", true); | 3475 webViewHelper.initializeAndLoad("about:blank", true); |
| 3476 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 3476 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 3477 | 3477 |
| 3478 // Generate a simple test case. | 3478 // Generate a simple test case. |
| 3479 const char simpleSource[] = "<p>Hello</p><p>World</p>"; | 3479 const char simpleSource[] = "<p>Hello</p><p>World</p>"; |
| 3480 KURL testURL = toKURL("about:blank"); | 3480 KURL testURL = toKURL("about:blank"); |
| 3481 FrameTestHelpers::loadHTMLString(frame, simpleSource, testURL); | 3481 FrameTestHelpers::loadHTMLString(frame, simpleSource, testURL); |
| 3482 | 3482 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3504 } | 3504 } |
| 3505 | 3505 |
| 3506 class TestExecuteScriptDuringDidCreateScriptContext : public FrameTestHelpers::T
estWebFrameClient { | 3506 class TestExecuteScriptDuringDidCreateScriptContext : public FrameTestHelpers::T
estWebFrameClient { |
| 3507 public: | 3507 public: |
| 3508 virtual void didCreateScriptContext(WebLocalFrame* frame, v8::Local<v8::Cont
ext> context, int extensionGroup, int worldId) override | 3508 virtual void didCreateScriptContext(WebLocalFrame* frame, v8::Local<v8::Cont
ext> context, int extensionGroup, int worldId) override |
| 3509 { | 3509 { |
| 3510 frame->executeScript(WebScriptSource("window.history = 'replaced';")); | 3510 frame->executeScript(WebScriptSource("window.history = 'replaced';")); |
| 3511 } | 3511 } |
| 3512 }; | 3512 }; |
| 3513 | 3513 |
| 3514 TEST_P(ParametrizedWebFrameTest, ExecuteScriptDuringDidCreateScriptContext) | 3514 TEST_P(ParameterizedWebFrameTest, ExecuteScriptDuringDidCreateScriptContext) |
| 3515 { | 3515 { |
| 3516 registerMockedHttpURLLoad("hello_world.html"); | 3516 registerMockedHttpURLLoad("hello_world.html"); |
| 3517 | 3517 |
| 3518 TestExecuteScriptDuringDidCreateScriptContext webFrameClient; | 3518 TestExecuteScriptDuringDidCreateScriptContext webFrameClient; |
| 3519 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3519 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3520 webViewHelper.initializeAndLoad(m_baseURL + "hello_world.html", true, &webFr
ameClient); | 3520 webViewHelper.initializeAndLoad(m_baseURL + "hello_world.html", true, &webFr
ameClient); |
| 3521 | 3521 |
| 3522 FrameTestHelpers::reloadFrame(webViewHelper.webView()->mainFrame()); | 3522 FrameTestHelpers::reloadFrame(webViewHelper.webView()->mainFrame()); |
| 3523 } | 3523 } |
| 3524 | 3524 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 3538 } | 3538 } |
| 3539 | 3539 |
| 3540 bool findResultsAreReady() const { return m_findResultsAreReady; } | 3540 bool findResultsAreReady() const { return m_findResultsAreReady; } |
| 3541 int count() const { return m_count; } | 3541 int count() const { return m_count; } |
| 3542 | 3542 |
| 3543 private: | 3543 private: |
| 3544 bool m_findResultsAreReady; | 3544 bool m_findResultsAreReady; |
| 3545 int m_count; | 3545 int m_count; |
| 3546 }; | 3546 }; |
| 3547 | 3547 |
| 3548 TEST_P(ParametrizedWebFrameTest, FindInPageMatchRects) | 3548 TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) |
| 3549 { | 3549 { |
| 3550 registerMockedHttpURLLoad("find_in_page.html"); | 3550 registerMockedHttpURLLoad("find_in_page.html"); |
| 3551 registerMockedHttpURLLoad("find_in_page_frame.html"); | 3551 registerMockedHttpURLLoad("find_in_page_frame.html"); |
| 3552 | 3552 |
| 3553 FindUpdateWebFrameClient client; | 3553 FindUpdateWebFrameClient client; |
| 3554 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3554 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3555 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3555 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3556 webViewHelper.webView()->resize(WebSize(640, 480)); | 3556 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3557 webViewHelper.webView()->setMaximumLegibleScale(1.f); | 3557 webViewHelper.webView()->setMaximumLegibleScale(1.f); |
| 3558 webViewHelper.webView()->layout(); | 3558 webViewHelper.webView()->layout(); |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3659 // immediate containing div. Consequently, result 18 should be above result
17. | 3659 // immediate containing div. Consequently, result 18 should be above result
17. |
| 3660 EXPECT_TRUE(webMatchRects[17].y > webMatchRects[18].y); | 3660 EXPECT_TRUE(webMatchRects[17].y > webMatchRects[18].y); |
| 3661 | 3661 |
| 3662 // Resizing should update the rects version. | 3662 // Resizing should update the rects version. |
| 3663 webViewHelper.webView()->resize(WebSize(800, 600)); | 3663 webViewHelper.webView()->resize(WebSize(800, 600)); |
| 3664 webViewHelper.webView()->layout(); | 3664 webViewHelper.webView()->layout(); |
| 3665 runPendingTasks(); | 3665 runPendingTasks(); |
| 3666 EXPECT_TRUE(mainFrame->findMatchMarkersVersion() != rectsVersion); | 3666 EXPECT_TRUE(mainFrame->findMatchMarkersVersion() != rectsVersion); |
| 3667 } | 3667 } |
| 3668 | 3668 |
| 3669 TEST_P(ParametrizedWebFrameTest, FindInPageSkipsHiddenFrames) | 3669 TEST_P(ParameterizedWebFrameTest, FindInPageSkipsHiddenFrames) |
| 3670 { | 3670 { |
| 3671 registerMockedHttpURLLoad("find_in_hidden_frame.html"); | 3671 registerMockedHttpURLLoad("find_in_hidden_frame.html"); |
| 3672 | 3672 |
| 3673 FindUpdateWebFrameClient client; | 3673 FindUpdateWebFrameClient client; |
| 3674 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3674 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3675 webViewHelper.initializeAndLoad(m_baseURL + "find_in_hidden_frame.html", tru
e, &client); | 3675 webViewHelper.initializeAndLoad(m_baseURL + "find_in_hidden_frame.html", tru
e, &client); |
| 3676 webViewHelper.webView()->resize(WebSize(640, 480)); | 3676 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3677 webViewHelper.webView()->layout(); | 3677 webViewHelper.webView()->layout(); |
| 3678 runPendingTasks(); | 3678 runPendingTasks(); |
| 3679 | 3679 |
| 3680 static const char* kFindString = "hello"; | 3680 static const char* kFindString = "hello"; |
| 3681 static const int kFindIdentifier = 12345; | 3681 static const int kFindIdentifier = 12345; |
| 3682 static const int kNumResults = 1; | 3682 static const int kNumResults = 1; |
| 3683 | 3683 |
| 3684 WebFindOptions options; | 3684 WebFindOptions options; |
| 3685 WebString searchText = WebString::fromUTF8(kFindString); | 3685 WebString searchText = WebString::fromUTF8(kFindString); |
| 3686 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 3686 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3687 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; | 3687 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 3688 | 3688 |
| 3689 mainFrame->resetMatchCount(); | 3689 mainFrame->resetMatchCount(); |
| 3690 | 3690 |
| 3691 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3691 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3692 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 3692 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 3693 | 3693 |
| 3694 runPendingTasks(); | 3694 runPendingTasks(); |
| 3695 EXPECT_TRUE(client.findResultsAreReady()); | 3695 EXPECT_TRUE(client.findResultsAreReady()); |
| 3696 EXPECT_EQ(kNumResults, client.count()); | 3696 EXPECT_EQ(kNumResults, client.count()); |
| 3697 } | 3697 } |
| 3698 | 3698 |
| 3699 TEST_P(ParametrizedWebFrameTest, FindOnDetachedFrame) | 3699 TEST_P(ParameterizedWebFrameTest, FindOnDetachedFrame) |
| 3700 { | 3700 { |
| 3701 registerMockedHttpURLLoad("find_in_page.html"); | 3701 registerMockedHttpURLLoad("find_in_page.html"); |
| 3702 registerMockedHttpURLLoad("find_in_page_frame.html"); | 3702 registerMockedHttpURLLoad("find_in_page_frame.html"); |
| 3703 | 3703 |
| 3704 FindUpdateWebFrameClient client; | 3704 FindUpdateWebFrameClient client; |
| 3705 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3705 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3706 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3706 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3707 webViewHelper.webView()->resize(WebSize(640, 480)); | 3707 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3708 webViewHelper.webView()->layout(); | 3708 webViewHelper.webView()->layout(); |
| 3709 runPendingTasks(); | 3709 runPendingTasks(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 3728 | 3728 |
| 3729 mainFrame->resetMatchCount(); | 3729 mainFrame->resetMatchCount(); |
| 3730 | 3730 |
| 3731 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3731 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3732 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 3732 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 3733 | 3733 |
| 3734 runPendingTasks(); | 3734 runPendingTasks(); |
| 3735 EXPECT_TRUE(client.findResultsAreReady()); | 3735 EXPECT_TRUE(client.findResultsAreReady()); |
| 3736 } | 3736 } |
| 3737 | 3737 |
| 3738 TEST_P(ParametrizedWebFrameTest, FindDetachFrameBeforeScopeStrings) | 3738 TEST_P(ParameterizedWebFrameTest, FindDetachFrameBeforeScopeStrings) |
| 3739 { | 3739 { |
| 3740 registerMockedHttpURLLoad("find_in_page.html"); | 3740 registerMockedHttpURLLoad("find_in_page.html"); |
| 3741 registerMockedHttpURLLoad("find_in_page_frame.html"); | 3741 registerMockedHttpURLLoad("find_in_page_frame.html"); |
| 3742 | 3742 |
| 3743 FindUpdateWebFrameClient client; | 3743 FindUpdateWebFrameClient client; |
| 3744 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3744 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3745 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3745 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3746 webViewHelper.webView()->resize(WebSize(640, 480)); | 3746 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3747 webViewHelper.webView()->layout(); | 3747 webViewHelper.webView()->layout(); |
| 3748 runPendingTasks(); | 3748 runPendingTasks(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 3767 | 3767 |
| 3768 mainFrame->resetMatchCount(); | 3768 mainFrame->resetMatchCount(); |
| 3769 | 3769 |
| 3770 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3770 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3771 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 3771 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 3772 | 3772 |
| 3773 runPendingTasks(); | 3773 runPendingTasks(); |
| 3774 EXPECT_TRUE(client.findResultsAreReady()); | 3774 EXPECT_TRUE(client.findResultsAreReady()); |
| 3775 } | 3775 } |
| 3776 | 3776 |
| 3777 TEST_P(ParametrizedWebFrameTest, FindDetachFrameWhileScopingStrings) | 3777 TEST_P(ParameterizedWebFrameTest, FindDetachFrameWhileScopingStrings) |
| 3778 { | 3778 { |
| 3779 registerMockedHttpURLLoad("find_in_page.html"); | 3779 registerMockedHttpURLLoad("find_in_page.html"); |
| 3780 registerMockedHttpURLLoad("find_in_page_frame.html"); | 3780 registerMockedHttpURLLoad("find_in_page_frame.html"); |
| 3781 | 3781 |
| 3782 FindUpdateWebFrameClient client; | 3782 FindUpdateWebFrameClient client; |
| 3783 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3783 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3784 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3784 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| 3785 webViewHelper.webView()->resize(WebSize(640, 480)); | 3785 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3786 webViewHelper.webView()->layout(); | 3786 webViewHelper.webView()->layout(); |
| 3787 runPendingTasks(); | 3787 runPendingTasks(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 3806 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) | 3806 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3807 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); | 3807 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); |
| 3808 | 3808 |
| 3809 // The first scopeStringMatches will have reset the state. Detach before it
actually scopes. | 3809 // The first scopeStringMatches will have reset the state. Detach before it
actually scopes. |
| 3810 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove()); | 3810 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove()); |
| 3811 | 3811 |
| 3812 runPendingTasks(); | 3812 runPendingTasks(); |
| 3813 EXPECT_TRUE(client.findResultsAreReady()); | 3813 EXPECT_TRUE(client.findResultsAreReady()); |
| 3814 } | 3814 } |
| 3815 | 3815 |
| 3816 TEST_P(ParametrizedWebFrameTest, ResetMatchCount) | 3816 TEST_P(ParameterizedWebFrameTest, ResetMatchCount) |
| 3817 { | 3817 { |
| 3818 registerMockedHttpURLLoad("find_in_generated_frame.html"); | 3818 registerMockedHttpURLLoad("find_in_generated_frame.html"); |
| 3819 | 3819 |
| 3820 FindUpdateWebFrameClient client; | 3820 FindUpdateWebFrameClient client; |
| 3821 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3821 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3822 webViewHelper.initializeAndLoad(m_baseURL + "find_in_generated_frame.html",
true, &client); | 3822 webViewHelper.initializeAndLoad(m_baseURL + "find_in_generated_frame.html",
true, &client); |
| 3823 webViewHelper.webView()->resize(WebSize(640, 480)); | 3823 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3824 webViewHelper.webView()->layout(); | 3824 webViewHelper.webView()->layout(); |
| 3825 runPendingTasks(); | 3825 runPendingTasks(); |
| 3826 | 3826 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3837 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
{ | 3837 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
{ |
| 3838 EXPECT_FALSE(frame->find(kFindIdentifier, searchText, options, false, 0)
); | 3838 EXPECT_FALSE(frame->find(kFindIdentifier, searchText, options, false, 0)
); |
| 3839 } | 3839 } |
| 3840 | 3840 |
| 3841 runPendingTasks(); | 3841 runPendingTasks(); |
| 3842 EXPECT_FALSE(client.findResultsAreReady()); | 3842 EXPECT_FALSE(client.findResultsAreReady()); |
| 3843 | 3843 |
| 3844 mainFrame->resetMatchCount(); | 3844 mainFrame->resetMatchCount(); |
| 3845 } | 3845 } |
| 3846 | 3846 |
| 3847 TEST_P(ParametrizedWebFrameTest, SetTickmarks) | 3847 TEST_P(ParameterizedWebFrameTest, SetTickmarks) |
| 3848 { | 3848 { |
| 3849 registerMockedHttpURLLoad("find.html"); | 3849 registerMockedHttpURLLoad("find.html"); |
| 3850 | 3850 |
| 3851 FindUpdateWebFrameClient client; | 3851 FindUpdateWebFrameClient client; |
| 3852 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3852 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3853 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client); | 3853 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client); |
| 3854 webViewHelper.webView()->resize(WebSize(640, 480)); | 3854 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3855 webViewHelper.webView()->layout(); | 3855 webViewHelper.webView()->layout(); |
| 3856 runPendingTasks(); | 3856 runPendingTasks(); |
| 3857 | 3857 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3915 static WebRect elementBounds(WebFrame* frame, const WebString& id) | 3915 static WebRect elementBounds(WebFrame* frame, const WebString& id) |
| 3916 { | 3916 { |
| 3917 return frame->document().getElementById(id).boundsInViewportSpace(); | 3917 return frame->document().getElementById(id).boundsInViewportSpace(); |
| 3918 } | 3918 } |
| 3919 | 3919 |
| 3920 static std::string selectionAsString(WebFrame* frame) | 3920 static std::string selectionAsString(WebFrame* frame) |
| 3921 { | 3921 { |
| 3922 return frame->selectionAsText().utf8(); | 3922 return frame->selectionAsText().utf8(); |
| 3923 } | 3923 } |
| 3924 | 3924 |
| 3925 TEST_P(ParametrizedWebFrameTest, SelectRange) | 3925 TEST_P(ParameterizedWebFrameTest, SelectRange) |
| 3926 { | 3926 { |
| 3927 WebFrame* frame; | 3927 WebFrame* frame; |
| 3928 WebRect startWebRect; | 3928 WebRect startWebRect; |
| 3929 WebRect endWebRect; | 3929 WebRect endWebRect; |
| 3930 | 3930 |
| 3931 registerMockedHttpURLLoad("select_range_basic.html"); | 3931 registerMockedHttpURLLoad("select_range_basic.html"); |
| 3932 registerMockedHttpURLLoad("select_range_scroll.html"); | 3932 registerMockedHttpURLLoad("select_range_scroll.html"); |
| 3933 | 3933 |
| 3934 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3934 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3935 initializeTextSelectionWebView(m_baseURL + "select_range_basic.html", &webVi
ewHelper); | 3935 initializeTextSelectionWebView(m_baseURL + "select_range_basic.html", &webVi
ewHelper); |
| 3936 frame = webViewHelper.webView()->mainFrame(); | 3936 frame = webViewHelper.webView()->mainFrame(); |
| 3937 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); | 3937 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); |
| 3938 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 3938 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 3939 frame->executeCommand(WebString::fromUTF8("Unselect")); | 3939 frame->executeCommand(WebString::fromUTF8("Unselect")); |
| 3940 EXPECT_EQ("", selectionAsString(frame)); | 3940 EXPECT_EQ("", selectionAsString(frame)); |
| 3941 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | 3941 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); |
| 3942 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); | 3942 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); |
| 3943 | 3943 |
| 3944 initializeTextSelectionWebView(m_baseURL + "select_range_scroll.html", &webV
iewHelper); | 3944 initializeTextSelectionWebView(m_baseURL + "select_range_scroll.html", &webV
iewHelper); |
| 3945 frame = webViewHelper.webView()->mainFrame(); | 3945 frame = webViewHelper.webView()->mainFrame(); |
| 3946 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame))
; | 3946 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame))
; |
| 3947 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 3947 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 3948 frame->executeCommand(WebString::fromUTF8("Unselect")); | 3948 frame->executeCommand(WebString::fromUTF8("Unselect")); |
| 3949 EXPECT_EQ("", selectionAsString(frame)); | 3949 EXPECT_EQ("", selectionAsString(frame)); |
| 3950 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | 3950 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); |
| 3951 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame))
; | 3951 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame))
; |
| 3952 } | 3952 } |
| 3953 | 3953 |
| 3954 TEST_P(ParametrizedWebFrameTest, SelectRangeInIframe) | 3954 TEST_P(ParameterizedWebFrameTest, SelectRangeInIframe) |
| 3955 { | 3955 { |
| 3956 WebFrame* frame; | 3956 WebFrame* frame; |
| 3957 WebRect startWebRect; | 3957 WebRect startWebRect; |
| 3958 WebRect endWebRect; | 3958 WebRect endWebRect; |
| 3959 | 3959 |
| 3960 registerMockedHttpURLLoad("select_range_iframe.html"); | 3960 registerMockedHttpURLLoad("select_range_iframe.html"); |
| 3961 registerMockedHttpURLLoad("select_range_basic.html"); | 3961 registerMockedHttpURLLoad("select_range_basic.html"); |
| 3962 | 3962 |
| 3963 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3963 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3964 initializeTextSelectionWebView(m_baseURL + "select_range_iframe.html", &webV
iewHelper); | 3964 initializeTextSelectionWebView(m_baseURL + "select_range_iframe.html", &webV
iewHelper); |
| 3965 frame = webViewHelper.webView()->mainFrame(); | 3965 frame = webViewHelper.webView()->mainFrame(); |
| 3966 WebFrame* subframe = frame->firstChild(); | 3966 WebFrame* subframe = frame->firstChild(); |
| 3967 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); | 3967 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); |
| 3968 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 3968 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 3969 subframe->executeCommand(WebString::fromUTF8("Unselect")); | 3969 subframe->executeCommand(WebString::fromUTF8("Unselect")); |
| 3970 EXPECT_EQ("", selectionAsString(subframe)); | 3970 EXPECT_EQ("", selectionAsString(subframe)); |
| 3971 subframe->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)
); | 3971 subframe->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)
); |
| 3972 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); | 3972 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); |
| 3973 } | 3973 } |
| 3974 | 3974 |
| 3975 TEST_P(ParametrizedWebFrameTest, SelectRangeDivContentEditable) | 3975 TEST_P(ParameterizedWebFrameTest, SelectRangeDivContentEditable) |
| 3976 { | 3976 { |
| 3977 WebFrame* frame; | 3977 WebFrame* frame; |
| 3978 WebRect startWebRect; | 3978 WebRect startWebRect; |
| 3979 WebRect endWebRect; | 3979 WebRect endWebRect; |
| 3980 | 3980 |
| 3981 registerMockedHttpURLLoad("select_range_div_editable.html"); | 3981 registerMockedHttpURLLoad("select_range_div_editable.html"); |
| 3982 | 3982 |
| 3983 // Select the middle of an editable element, then try to extend the selectio
n to the top of the document. | 3983 // Select the middle of an editable element, then try to extend the selectio
n to the top of the document. |
| 3984 // The selection range should be clipped to the bounds of the editable eleme
nt. | 3984 // The selection range should be clipped to the bounds of the editable eleme
nt. |
| 3985 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3985 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 4000 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4000 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4001 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4001 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4002 | 4002 |
| 4003 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4003 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4004 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); | 4004 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); |
| 4005 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr
ing(frame)); | 4005 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr
ing(frame)); |
| 4006 } | 4006 } |
| 4007 | 4007 |
| 4008 // positionForPoint returns the wrong values for contenteditable spans. See | 4008 // positionForPoint returns the wrong values for contenteditable spans. See |
| 4009 // http://crbug.com/238334. | 4009 // http://crbug.com/238334. |
| 4010 TEST_P(ParametrizedWebFrameTest, DISABLED_SelectRangeSpanContentEditable) | 4010 TEST_P(ParameterizedWebFrameTest, DISABLED_SelectRangeSpanContentEditable) |
| 4011 { | 4011 { |
| 4012 WebFrame* frame; | 4012 WebFrame* frame; |
| 4013 WebRect startWebRect; | 4013 WebRect startWebRect; |
| 4014 WebRect endWebRect; | 4014 WebRect endWebRect; |
| 4015 | 4015 |
| 4016 registerMockedHttpURLLoad("select_range_span_editable.html"); | 4016 registerMockedHttpURLLoad("select_range_span_editable.html"); |
| 4017 | 4017 |
| 4018 // Select the middle of an editable element, then try to extend the selectio
n to the top of the document. | 4018 // Select the middle of an editable element, then try to extend the selectio
n to the top of the document. |
| 4019 // The selection range should be clipped to the bounds of the editable eleme
nt. | 4019 // The selection range should be clipped to the bounds of the editable eleme
nt. |
| 4020 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4020 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 4034 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | 4034 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); |
| 4035 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4035 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4036 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4036 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4037 | 4037 |
| 4038 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4038 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4039 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4039 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4040 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); | 4040 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); |
| 4041 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr
ing(frame)); | 4041 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr
ing(frame)); |
| 4042 } | 4042 } |
| 4043 | 4043 |
| 4044 TEST_P(ParametrizedWebFrameTest, SelectRangeCanMoveSelectionStart) | 4044 TEST_P(ParameterizedWebFrameTest, SelectRangeCanMoveSelectionStart) |
| 4045 { | 4045 { |
| 4046 registerMockedHttpURLLoad("text_selection.html"); | 4046 registerMockedHttpURLLoad("text_selection.html"); |
| 4047 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4047 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4048 initializeTextSelectionWebView(m_baseURL + "text_selection.html", &webViewHe
lper); | 4048 initializeTextSelectionWebView(m_baseURL + "text_selection.html", &webViewHe
lper); |
| 4049 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 4049 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 4050 | 4050 |
| 4051 // Select second span. We can move the start to include the first span. | 4051 // Select second span. We can move the start to include the first span. |
| 4052 frame->executeScript(WebScriptSource("selectElement('header_2');")); | 4052 frame->executeScript(WebScriptSource("selectElement('header_2');")); |
| 4053 EXPECT_EQ("Header 2.", selectionAsString(frame)); | 4053 EXPECT_EQ("Header 2.", selectionAsString(frame)); |
| 4054 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "header_2")), to
pLeft(elementBounds(frame, "header_1"))); | 4054 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "header_2")), to
pLeft(elementBounds(frame, "header_1"))); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 4082 | 4082 |
| 4083 // If the selection is editable text, we can't extend it into non-editable t
ext. | 4083 // If the selection is editable text, we can't extend it into non-editable t
ext. |
| 4084 frame->executeScript(WebScriptSource("selectElement('editable_2');")); | 4084 frame->executeScript(WebScriptSource("selectElement('editable_2');")); |
| 4085 EXPECT_EQ("Editable 2.", selectionAsString(frame)); | 4085 EXPECT_EQ("Editable 2.", selectionAsString(frame)); |
| 4086 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "editable_2")),
topLeft(elementBounds(frame, "header_2"))); | 4086 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "editable_2")),
topLeft(elementBounds(frame, "header_2"))); |
| 4087 // positionForPoint returns the wrong values for contenteditable spans. See | 4087 // positionForPoint returns the wrong values for contenteditable spans. See |
| 4088 // http://crbug.com/238334. | 4088 // http://crbug.com/238334. |
| 4089 // EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); | 4089 // EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); |
| 4090 } | 4090 } |
| 4091 | 4091 |
| 4092 TEST_P(ParametrizedWebFrameTest, SelectRangeCanMoveSelectionEnd) | 4092 TEST_P(ParameterizedWebFrameTest, SelectRangeCanMoveSelectionEnd) |
| 4093 { | 4093 { |
| 4094 registerMockedHttpURLLoad("text_selection.html"); | 4094 registerMockedHttpURLLoad("text_selection.html"); |
| 4095 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4095 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4096 initializeTextSelectionWebView(m_baseURL + "text_selection.html", &webViewHe
lper); | 4096 initializeTextSelectionWebView(m_baseURL + "text_selection.html", &webViewHe
lper); |
| 4097 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 4097 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 4098 | 4098 |
| 4099 // Select first span. We can move the end to include the second span. | 4099 // Select first span. We can move the end to include the second span. |
| 4100 frame->executeScript(WebScriptSource("selectElement('header_1');")); | 4100 frame->executeScript(WebScriptSource("selectElement('header_1');")); |
| 4101 EXPECT_EQ("Header 1.", selectionAsString(frame)); | 4101 EXPECT_EQ("Header 1.", selectionAsString(frame)); |
| 4102 frame->selectRange(topLeft(elementBounds(frame, "header_1")), bottomRightMin
usOne(elementBounds(frame, "header_2"))); | 4102 frame->selectRange(topLeft(elementBounds(frame, "header_1")), bottomRightMin
usOne(elementBounds(frame, "header_2"))); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 4130 | 4130 |
| 4131 // If the selection is editable text, we can't extend it into non-editable t
ext. | 4131 // If the selection is editable text, we can't extend it into non-editable t
ext. |
| 4132 frame->executeScript(WebScriptSource("selectElement('editable_1');")); | 4132 frame->executeScript(WebScriptSource("selectElement('editable_1');")); |
| 4133 EXPECT_EQ("Editable 1.", selectionAsString(frame)); | 4133 EXPECT_EQ("Editable 1.", selectionAsString(frame)); |
| 4134 frame->selectRange(topLeft(elementBounds(frame, "editable_1")), bottomRightM
inusOne(elementBounds(frame, "footer_1"))); | 4134 frame->selectRange(topLeft(elementBounds(frame, "editable_1")), bottomRightM
inusOne(elementBounds(frame, "footer_1"))); |
| 4135 // positionForPoint returns the wrong values for contenteditable spans. See | 4135 // positionForPoint returns the wrong values for contenteditable spans. See |
| 4136 // http://crbug.com/238334. | 4136 // http://crbug.com/238334. |
| 4137 // EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); | 4137 // EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); |
| 4138 } | 4138 } |
| 4139 | 4139 |
| 4140 TEST_P(ParametrizedWebFrameTest, MoveRangeSelectionExtent) | 4140 TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtent) |
| 4141 { | 4141 { |
| 4142 WebLocalFrameImpl* frame; | 4142 WebLocalFrameImpl* frame; |
| 4143 WebRect startWebRect; | 4143 WebRect startWebRect; |
| 4144 WebRect endWebRect; | 4144 WebRect endWebRect; |
| 4145 | 4145 |
| 4146 registerMockedHttpURLLoad("move_range_selection_extent.html"); | 4146 registerMockedHttpURLLoad("move_range_selection_extent.html"); |
| 4147 | 4147 |
| 4148 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4148 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4149 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent.html
", &webViewHelper); | 4149 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent.html
", &webViewHelper); |
| 4150 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4150 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 4164 frame->moveRangeSelectionExtent(WebPoint(640, 480)); | 4164 frame->moveRangeSelectionExtent(WebPoint(640, 480)); |
| 4165 EXPECT_EQ(" 16-char footer.", selectionAsString(frame)); | 4165 EXPECT_EQ(" 16-char footer.", selectionAsString(frame)); |
| 4166 | 4166 |
| 4167 frame->moveRangeSelectionExtent(WebPoint(0, 0)); | 4167 frame->moveRangeSelectionExtent(WebPoint(0, 0)); |
| 4168 EXPECT_EQ("16-char header. This text is initially selected.", selectionAsStr
ing(frame)); | 4168 EXPECT_EQ("16-char header. This text is initially selected.", selectionAsStr
ing(frame)); |
| 4169 | 4169 |
| 4170 frame->executeCommand(WebString::fromUTF8("Unselect")); | 4170 frame->executeCommand(WebString::fromUTF8("Unselect")); |
| 4171 EXPECT_EQ("", selectionAsString(frame)); | 4171 EXPECT_EQ("", selectionAsString(frame)); |
| 4172 } | 4172 } |
| 4173 | 4173 |
| 4174 TEST_P(ParametrizedWebFrameTest, MoveRangeSelectionExtentCannotCollapse) | 4174 TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtentCannotCollapse) |
| 4175 { | 4175 { |
| 4176 WebLocalFrameImpl* frame; | 4176 WebLocalFrameImpl* frame; |
| 4177 WebRect startWebRect; | 4177 WebRect startWebRect; |
| 4178 WebRect endWebRect; | 4178 WebRect endWebRect; |
| 4179 | 4179 |
| 4180 registerMockedHttpURLLoad("move_range_selection_extent.html"); | 4180 registerMockedHttpURLLoad("move_range_selection_extent.html"); |
| 4181 | 4181 |
| 4182 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4182 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4183 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent.html
", &webViewHelper); | 4183 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent.html
", &webViewHelper); |
| 4184 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4184 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| 4185 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4185 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4186 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4186 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4187 | 4187 |
| 4188 frame->moveRangeSelectionExtent(bottomRightMinusOne(startWebRect)); | 4188 frame->moveRangeSelectionExtent(bottomRightMinusOne(startWebRect)); |
| 4189 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4189 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4190 | 4190 |
| 4191 // Reset with swapped base and extent. | 4191 // Reset with swapped base and extent. |
| 4192 frame->selectRange(topLeft(endWebRect), bottomRightMinusOne(startWebRect)); | 4192 frame->selectRange(topLeft(endWebRect), bottomRightMinusOne(startWebRect)); |
| 4193 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4193 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4194 | 4194 |
| 4195 frame->moveRangeSelectionExtent(bottomRightMinusOne(endWebRect)); | 4195 frame->moveRangeSelectionExtent(bottomRightMinusOne(endWebRect)); |
| 4196 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 4196 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 4197 } | 4197 } |
| 4198 | 4198 |
| 4199 TEST_P(ParametrizedWebFrameTest, MoveRangeSelectionExtentScollsInputField) | 4199 TEST_P(ParameterizedWebFrameTest, MoveRangeSelectionExtentScollsInputField) |
| 4200 { | 4200 { |
| 4201 WebLocalFrameImpl* frame; | 4201 WebLocalFrameImpl* frame; |
| 4202 WebRect startWebRect; | 4202 WebRect startWebRect; |
| 4203 WebRect endWebRect; | 4203 WebRect endWebRect; |
| 4204 | 4204 |
| 4205 registerMockedHttpURLLoad("move_range_selection_extent_input_field.html"); | 4205 registerMockedHttpURLLoad("move_range_selection_extent_input_field.html"); |
| 4206 | 4206 |
| 4207 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4207 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4208 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent_inpu
t_field.html", &webViewHelper); | 4208 initializeTextSelectionWebView(m_baseURL + "move_range_selection_extent_inpu
t_field.html", &webViewHelper); |
| 4209 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4209 frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| 4210 EXPECT_EQ("Length", selectionAsString(frame)); | 4210 EXPECT_EQ("Length", selectionAsString(frame)); |
| 4211 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); | 4211 webViewHelper.webView()->selectionBounds(startWebRect, endWebRect); |
| 4212 | 4212 |
| 4213 EXPECT_EQ(0, frame->frame()->selection().rootEditableElement()->scrollLeft()
); | 4213 EXPECT_EQ(0, frame->frame()->selection().rootEditableElement()->scrollLeft()
); |
| 4214 frame->moveRangeSelectionExtent(WebPoint(endWebRect.x + 500, endWebRect.y)); | 4214 frame->moveRangeSelectionExtent(WebPoint(endWebRect.x + 500, endWebRect.y)); |
| 4215 EXPECT_GE(frame->frame()->selection().rootEditableElement()->scrollLeft(), 1
); | 4215 EXPECT_GE(frame->frame()->selection().rootEditableElement()->scrollLeft(), 1
); |
| 4216 EXPECT_EQ("Lengthy text goes here.", selectionAsString(frame)); | 4216 EXPECT_EQ("Lengthy text goes here.", selectionAsString(frame)); |
| 4217 } | 4217 } |
| 4218 | 4218 |
| 4219 static int computeOffset(LayoutObject* layoutObject, int x, int y) | 4219 static int computeOffset(LayoutObject* layoutObject, int x, int y) |
| 4220 { | 4220 { |
| 4221 return VisiblePosition(layoutObject->positionForPoint(LayoutPoint(x, y))).de
epEquivalent().computeOffsetInContainerNode(); | 4221 return VisiblePosition(layoutObject->positionForPoint(LayoutPoint(x, y))).de
epEquivalent().computeOffsetInContainerNode(); |
| 4222 } | 4222 } |
| 4223 | 4223 |
| 4224 // positionForPoint returns the wrong values for contenteditable spans. See | 4224 // positionForPoint returns the wrong values for contenteditable spans. See |
| 4225 // http://crbug.com/238334. | 4225 // http://crbug.com/238334. |
| 4226 TEST_P(ParametrizedWebFrameTest, DISABLED_PositionForPointTest) | 4226 TEST_P(ParameterizedWebFrameTest, DISABLED_PositionForPointTest) |
| 4227 { | 4227 { |
| 4228 registerMockedHttpURLLoad("select_range_span_editable.html"); | 4228 registerMockedHttpURLLoad("select_range_span_editable.html"); |
| 4229 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4229 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4230 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html"
, &webViewHelper); | 4230 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html"
, &webViewHelper); |
| 4231 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); | 4231 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 4232 LayoutObject* layoutObject = mainFrame->frame()->selection().rootEditableEle
ment()->layoutObject(); | 4232 LayoutObject* layoutObject = mainFrame->frame()->selection().rootEditableEle
ment()->layoutObject(); |
| 4233 EXPECT_EQ(0, computeOffset(layoutObject, -1, -1)); | 4233 EXPECT_EQ(0, computeOffset(layoutObject, -1, -1)); |
| 4234 EXPECT_EQ(64, computeOffset(layoutObject, 1000, 1000)); | 4234 EXPECT_EQ(64, computeOffset(layoutObject, 1000, 1000)); |
| 4235 | 4235 |
| 4236 registerMockedHttpURLLoad("select_range_div_editable.html"); | 4236 registerMockedHttpURLLoad("select_range_div_editable.html"); |
| 4237 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html",
&webViewHelper); | 4237 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html",
&webViewHelper); |
| 4238 mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); | 4238 mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()); |
| 4239 layoutObject = mainFrame->frame()->selection().rootEditableElement()->layout
Object(); | 4239 layoutObject = mainFrame->frame()->selection().rootEditableElement()->layout
Object(); |
| 4240 EXPECT_EQ(0, computeOffset(layoutObject, -1, -1)); | 4240 EXPECT_EQ(0, computeOffset(layoutObject, -1, -1)); |
| 4241 EXPECT_EQ(64, computeOffset(layoutObject, 1000, 1000)); | 4241 EXPECT_EQ(64, computeOffset(layoutObject, 1000, 1000)); |
| 4242 } | 4242 } |
| 4243 | 4243 |
| 4244 #if !OS(MACOSX) && !OS(LINUX) | 4244 #if !OS(MACOSX) && !OS(LINUX) |
| 4245 TEST_P(ParametrizedWebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) | 4245 TEST_P(ParameterizedWebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) |
| 4246 { | 4246 { |
| 4247 registerMockedHttpURLLoad("move_caret.html"); | 4247 registerMockedHttpURLLoad("move_caret.html"); |
| 4248 | 4248 |
| 4249 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4249 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4250 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper
); | 4250 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper
); |
| 4251 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 4251 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 4252 | 4252 |
| 4253 WebRect initialStartRect; | 4253 WebRect initialStartRect; |
| 4254 WebRect initialEndRect; | 4254 WebRect initialEndRect; |
| 4255 WebRect startRect; | 4255 WebRect startRect; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 4279 EXPECT_EQ(startRect, initialStartRect); | 4279 EXPECT_EQ(startRect, initialStartRect); |
| 4280 EXPECT_EQ(endRect, initialEndRect); | 4280 EXPECT_EQ(endRect, initialEndRect); |
| 4281 | 4281 |
| 4282 movedEnd.y -= 80; | 4282 movedEnd.y -= 80; |
| 4283 frame->selectRange(topLeft(initialStartRect), movedEnd); | 4283 frame->selectRange(topLeft(initialStartRect), movedEnd); |
| 4284 webViewHelper.webView()->selectionBounds(startRect, endRect); | 4284 webViewHelper.webView()->selectionBounds(startRect, endRect); |
| 4285 EXPECT_EQ(startRect, initialStartRect); | 4285 EXPECT_EQ(startRect, initialStartRect); |
| 4286 EXPECT_EQ(endRect, initialEndRect); | 4286 EXPECT_EQ(endRect, initialEndRect); |
| 4287 } | 4287 } |
| 4288 | 4288 |
| 4289 TEST_P(ParametrizedWebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) | 4289 TEST_P(ParameterizedWebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) |
| 4290 { | 4290 { |
| 4291 WebLocalFrameImpl* frame; | 4291 WebLocalFrameImpl* frame; |
| 4292 registerMockedHttpURLLoad("move_caret.html"); | 4292 registerMockedHttpURLLoad("move_caret.html"); |
| 4293 | 4293 |
| 4294 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4294 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4295 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper
); | 4295 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper
); |
| 4296 frame = (WebLocalFrameImpl*)webViewHelper.webView()->mainFrame(); | 4296 frame = (WebLocalFrameImpl*)webViewHelper.webView()->mainFrame(); |
| 4297 | 4297 |
| 4298 WebRect initialStartRect; | 4298 WebRect initialStartRect; |
| 4299 WebRect initialEndRect; | 4299 WebRect initialEndRect; |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4472 TEST_F(CompositedSelectionBoundsTest, Transformed) { runTest("composited_selecti
on_bounds_transformed.html"); } | 4472 TEST_F(CompositedSelectionBoundsTest, Transformed) { runTest("composited_selecti
on_bounds_transformed.html"); } |
| 4473 TEST_F(CompositedSelectionBoundsTest, SplitLayer) { runTest("composited_selectio
n_bounds_split_layer.html"); } | 4473 TEST_F(CompositedSelectionBoundsTest, SplitLayer) { runTest("composited_selectio
n_bounds_split_layer.html"); } |
| 4474 TEST_F(CompositedSelectionBoundsTest, EmptyLayer) { runTest("composited_selectio
n_bounds_empty_layer.html"); } | 4474 TEST_F(CompositedSelectionBoundsTest, EmptyLayer) { runTest("composited_selectio
n_bounds_empty_layer.html"); } |
| 4475 TEST_F(CompositedSelectionBoundsTest, Iframe) { runTestWithMultipleFiles("compos
ited_selection_bounds_iframe.html", "composited_selection_bounds_basic.html", nu
llptr); } | 4475 TEST_F(CompositedSelectionBoundsTest, Iframe) { runTestWithMultipleFiles("compos
ited_selection_bounds_iframe.html", "composited_selection_bounds_basic.html", nu
llptr); } |
| 4476 TEST_F(CompositedSelectionBoundsTest, DetachedFrame) { runTest("composited_selec
tion_bounds_detached_frame.html"); } | 4476 TEST_F(CompositedSelectionBoundsTest, DetachedFrame) { runTest("composited_selec
tion_bounds_detached_frame.html"); } |
| 4477 TEST_F(CompositedSelectionBoundsTest, Editable) { runTest("composited_selection_
bounds_editable.html"); } | 4477 TEST_F(CompositedSelectionBoundsTest, Editable) { runTest("composited_selection_
bounds_editable.html"); } |
| 4478 TEST_F(CompositedSelectionBoundsTest, EditableDiv) { runTest("composited_selecti
on_bounds_editable_div.html"); } | 4478 TEST_F(CompositedSelectionBoundsTest, EditableDiv) { runTest("composited_selecti
on_bounds_editable_div.html"); } |
| 4479 TEST_F(CompositedSelectionBoundsTest, EmptyEditableInput) { runTest("composited_
selection_bounds_empty_editable_input.html"); } | 4479 TEST_F(CompositedSelectionBoundsTest, EmptyEditableInput) { runTest("composited_
selection_bounds_empty_editable_input.html"); } |
| 4480 TEST_F(CompositedSelectionBoundsTest, EmptyEditableArea) { runTest("composited_s
election_bounds_empty_editable_area.html"); } | 4480 TEST_F(CompositedSelectionBoundsTest, EmptyEditableArea) { runTest("composited_s
election_bounds_empty_editable_area.html"); } |
| 4481 | 4481 |
| 4482 TEST_P(ParametrizedWebFrameTest, CompositedSelectionBoundsCleared) | 4482 TEST_P(ParameterizedWebFrameTest, CompositedSelectionBoundsCleared) |
| 4483 { | 4483 { |
| 4484 RuntimeEnabledFeatures::setCompositedSelectionUpdateEnabled(true); | 4484 RuntimeEnabledFeatures::setCompositedSelectionUpdateEnabled(true); |
| 4485 | 4485 |
| 4486 registerMockedHttpURLLoad("select_range_basic.html"); | 4486 registerMockedHttpURLLoad("select_range_basic.html"); |
| 4487 registerMockedHttpURLLoad("select_range_scroll.html"); | 4487 registerMockedHttpURLLoad("select_range_scroll.html"); |
| 4488 | 4488 |
| 4489 int viewWidth = 500; | 4489 int viewWidth = 500; |
| 4490 int viewHeight = 500; | 4490 int viewHeight = 500; |
| 4491 | 4491 |
| 4492 CompositedSelectionBoundsTestWebViewClient fakeSelectionWebViewClient; | 4492 CompositedSelectionBoundsTestWebViewClient fakeSelectionWebViewClient; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4556 { | 4556 { |
| 4557 WebGestureEvent event; | 4557 WebGestureEvent event; |
| 4558 event.type = WebInputEvent::GestureTap; | 4558 event.type = WebInputEvent::GestureTap; |
| 4559 event.x = x; | 4559 event.x = x; |
| 4560 event.y = y; | 4560 event.y = y; |
| 4561 event.data.tap.width = 50; | 4561 event.data.tap.width = 50; |
| 4562 event.data.tap.height = 50; | 4562 event.data.tap.height = 50; |
| 4563 return event; | 4563 return event; |
| 4564 } | 4564 } |
| 4565 | 4565 |
| 4566 TEST_P(ParametrizedWebFrameTest, DisambiguationPopup) | 4566 TEST_P(ParameterizedWebFrameTest, DisambiguationPopup) |
| 4567 { | 4567 { |
| 4568 const std::string htmlFile = "disambiguation_popup.html"; | 4568 const std::string htmlFile = "disambiguation_popup.html"; |
| 4569 registerMockedHttpURLLoad(htmlFile); | 4569 registerMockedHttpURLLoad(htmlFile); |
| 4570 | 4570 |
| 4571 DisambiguationPopupTestWebViewClient client; | 4571 DisambiguationPopupTestWebViewClient client; |
| 4572 | 4572 |
| 4573 // Make sure we initialize to minimum scale, even if the window size | 4573 // Make sure we initialize to minimum scale, even if the window size |
| 4574 // only becomes available after the load begins. | 4574 // only becomes available after the load begins. |
| 4575 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4575 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4576 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); | 4576 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4611 // multi-target-tap. | 4611 // multi-target-tap. |
| 4612 webViewHelper.webView()->settings()->setMultiTargetTapNotificationEnabled(fa
lse); | 4612 webViewHelper.webView()->settings()->setMultiTargetTapNotificationEnabled(fa
lse); |
| 4613 | 4613 |
| 4614 for (int i = 0; i <= 46; i++) { | 4614 for (int i = 0; i <= 46; i++) { |
| 4615 client.resetTriggered(); | 4615 client.resetTriggered(); |
| 4616 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); | 4616 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); |
| 4617 EXPECT_FALSE(client.triggered()); | 4617 EXPECT_FALSE(client.triggered()); |
| 4618 } | 4618 } |
| 4619 } | 4619 } |
| 4620 | 4620 |
| 4621 TEST_P(ParametrizedWebFrameTest, DisambiguationPopupNoContainer) | 4621 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupNoContainer) |
| 4622 { | 4622 { |
| 4623 registerMockedHttpURLLoad("disambiguation_popup_no_container.html"); | 4623 registerMockedHttpURLLoad("disambiguation_popup_no_container.html"); |
| 4624 | 4624 |
| 4625 DisambiguationPopupTestWebViewClient client; | 4625 DisambiguationPopupTestWebViewClient client; |
| 4626 | 4626 |
| 4627 // Make sure we initialize to minimum scale, even if the window size | 4627 // Make sure we initialize to minimum scale, even if the window size |
| 4628 // only becomes available after the load begins. | 4628 // only becomes available after the load begins. |
| 4629 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4629 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4630 webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_no_contain
er.html", true, 0, &client); | 4630 webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_no_contain
er.html", true, 0, &client); |
| 4631 webViewHelper.webView()->resize(WebSize(1000, 1000)); | 4631 webViewHelper.webView()->resize(WebSize(1000, 1000)); |
| 4632 webViewHelper.webView()->layout(); | 4632 webViewHelper.webView()->layout(); |
| 4633 | 4633 |
| 4634 client.resetTriggered(); | 4634 client.resetTriggered(); |
| 4635 webViewHelper.webView()->handleInputEvent(fatTap(50, 50)); | 4635 webViewHelper.webView()->handleInputEvent(fatTap(50, 50)); |
| 4636 EXPECT_FALSE(client.triggered()); | 4636 EXPECT_FALSE(client.triggered()); |
| 4637 } | 4637 } |
| 4638 | 4638 |
| 4639 TEST_P(ParametrizedWebFrameTest, DisambiguationPopupMobileSite) | 4639 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupMobileSite) |
| 4640 { | 4640 { |
| 4641 UseMockScrollbarSettings mockScrollbarSettings; | 4641 UseMockScrollbarSettings mockScrollbarSettings; |
| 4642 const std::string htmlFile = "disambiguation_popup_mobile_site.html"; | 4642 const std::string htmlFile = "disambiguation_popup_mobile_site.html"; |
| 4643 registerMockedHttpURLLoad(htmlFile); | 4643 registerMockedHttpURLLoad(htmlFile); |
| 4644 | 4644 |
| 4645 DisambiguationPopupTestWebViewClient client; | 4645 DisambiguationPopupTestWebViewClient client; |
| 4646 | 4646 |
| 4647 // Make sure we initialize to minimum scale, even if the window size | 4647 // Make sure we initialize to minimum scale, even if the window size |
| 4648 // only becomes available after the load begins. | 4648 // only becomes available after the load begins. |
| 4649 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4649 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 4665 EXPECT_FALSE(client.triggered()); | 4665 EXPECT_FALSE(client.triggered()); |
| 4666 } | 4666 } |
| 4667 | 4667 |
| 4668 for (int i = 0; i <= 46; i++) { | 4668 for (int i = 0; i <= 46; i++) { |
| 4669 client.resetTriggered(); | 4669 client.resetTriggered(); |
| 4670 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); | 4670 webViewHelper.webView()->handleInputEvent(fatTap(10 + i * 5, 590)); |
| 4671 EXPECT_FALSE(client.triggered()); | 4671 EXPECT_FALSE(client.triggered()); |
| 4672 } | 4672 } |
| 4673 } | 4673 } |
| 4674 | 4674 |
| 4675 TEST_P(ParametrizedWebFrameTest, DisambiguationPopupViewportSite) | 4675 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupViewportSite) |
| 4676 { | 4676 { |
| 4677 UseMockScrollbarSettings mockScrollbarSettings; | 4677 UseMockScrollbarSettings mockScrollbarSettings; |
| 4678 const std::string htmlFile = "disambiguation_popup_viewport_site.html"; | 4678 const std::string htmlFile = "disambiguation_popup_viewport_site.html"; |
| 4679 registerMockedHttpURLLoad(htmlFile); | 4679 registerMockedHttpURLLoad(htmlFile); |
| 4680 | 4680 |
| 4681 DisambiguationPopupTestWebViewClient client; | 4681 DisambiguationPopupTestWebViewClient client; |
| 4682 | 4682 |
| 4683 // Make sure we initialize to minimum scale, even if the window size | 4683 // Make sure we initialize to minimum scale, even if the window size |
| 4684 // only becomes available after the load begins. | 4684 // only becomes available after the load begins. |
| 4685 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4685 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4752 EXPECT_TRUE(client.triggered()); | 4752 EXPECT_TRUE(client.triggered()); |
| 4753 | 4753 |
| 4754 // The same tap shouldn't trigger didTapMultipleTargets() after disabling th
e notification for | 4754 // The same tap shouldn't trigger didTapMultipleTargets() after disabling th
e notification for |
| 4755 // multi-target-tap. | 4755 // multi-target-tap. |
| 4756 webViewHelper.webView()->settings()->setMultiTargetTapNotificationEnabled(fa
lse); | 4756 webViewHelper.webView()->settings()->setMultiTargetTapNotificationEnabled(fa
lse); |
| 4757 client.resetTriggered(); | 4757 client.resetTriggered(); |
| 4758 webViewHelper.webView()->handleInputEvent(fatTap(10, 60)); | 4758 webViewHelper.webView()->handleInputEvent(fatTap(10, 60)); |
| 4759 EXPECT_FALSE(client.triggered()); | 4759 EXPECT_FALSE(client.triggered()); |
| 4760 } | 4760 } |
| 4761 | 4761 |
| 4762 TEST_P(ParametrizedWebFrameTest, DisambiguationPopupBlacklist) | 4762 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupBlacklist) |
| 4763 { | 4763 { |
| 4764 const unsigned viewportWidth = 500; | 4764 const unsigned viewportWidth = 500; |
| 4765 const unsigned viewportHeight = 1000; | 4765 const unsigned viewportHeight = 1000; |
| 4766 const unsigned divHeight = 100; | 4766 const unsigned divHeight = 100; |
| 4767 const std::string htmlFile = "disambiguation_popup_blacklist.html"; | 4767 const std::string htmlFile = "disambiguation_popup_blacklist.html"; |
| 4768 registerMockedHttpURLLoad(htmlFile); | 4768 registerMockedHttpURLLoad(htmlFile); |
| 4769 | 4769 |
| 4770 DisambiguationPopupTestWebViewClient client; | 4770 DisambiguationPopupTestWebViewClient client; |
| 4771 | 4771 |
| 4772 // Make sure we initialize to minimum scale, even if the window size | 4772 // Make sure we initialize to minimum scale, even if the window size |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4785 client.resetTriggered(); | 4785 client.resetTriggered(); |
| 4786 webViewHelper.webView()->handleInputEvent(fatTap(viewportWidth / 2, divHeigh
t)); | 4786 webViewHelper.webView()->handleInputEvent(fatTap(viewportWidth / 2, divHeigh
t)); |
| 4787 EXPECT_TRUE(client.triggered()); | 4787 EXPECT_TRUE(client.triggered()); |
| 4788 | 4788 |
| 4789 // The third div container should be blacklisted if you click on the link it
contains. | 4789 // The third div container should be blacklisted if you click on the link it
contains. |
| 4790 client.resetTriggered(); | 4790 client.resetTriggered(); |
| 4791 webViewHelper.webView()->handleInputEvent(fatTap(viewportWidth / 2, divHeigh
t * 3.25)); | 4791 webViewHelper.webView()->handleInputEvent(fatTap(viewportWidth / 2, divHeigh
t * 3.25)); |
| 4792 EXPECT_FALSE(client.triggered()); | 4792 EXPECT_FALSE(client.triggered()); |
| 4793 } | 4793 } |
| 4794 | 4794 |
| 4795 TEST_P(ParametrizedWebFrameTest, DisambiguationPopupPageScale) | 4795 TEST_P(ParameterizedWebFrameTest, DisambiguationPopupPageScale) |
| 4796 { | 4796 { |
| 4797 registerMockedHttpURLLoad("disambiguation_popup_page_scale.html"); | 4797 registerMockedHttpURLLoad("disambiguation_popup_page_scale.html"); |
| 4798 | 4798 |
| 4799 DisambiguationPopupTestWebViewClient client; | 4799 DisambiguationPopupTestWebViewClient client; |
| 4800 | 4800 |
| 4801 // Make sure we initialize to minimum scale, even if the window size | 4801 // Make sure we initialize to minimum scale, even if the window size |
| 4802 // only becomes available after the load begins. | 4802 // only becomes available after the load begins. |
| 4803 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4803 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4804 webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_page_scale
.html", true, 0, &client); | 4804 webViewHelper.initializeAndLoad(m_baseURL + "disambiguation_popup_page_scale
.html", true, 0, &client); |
| 4805 webViewHelper.webView()->resize(WebSize(1000, 1000)); | 4805 webViewHelper.webView()->resize(WebSize(1000, 1000)); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4842 if (frame->dataSource()->response().url() != WebURL(URLTestHelpers::toKU
RL("about:blank"))) | 4842 if (frame->dataSource()->response().url() != WebURL(URLTestHelpers::toKU
RL("about:blank"))) |
| 4843 m_commitCalled = true; | 4843 m_commitCalled = true; |
| 4844 } | 4844 } |
| 4845 | 4845 |
| 4846 bool commitCalled() const { return m_commitCalled; } | 4846 bool commitCalled() const { return m_commitCalled; } |
| 4847 | 4847 |
| 4848 private: | 4848 private: |
| 4849 bool m_commitCalled; | 4849 bool m_commitCalled; |
| 4850 }; | 4850 }; |
| 4851 | 4851 |
| 4852 TEST_P(ParametrizedWebFrameTest, ReplaceNavigationAfterHistoryNavigation) | 4852 TEST_P(ParameterizedWebFrameTest, ReplaceNavigationAfterHistoryNavigation) |
| 4853 { | 4853 { |
| 4854 TestSubstituteDataWebFrameClient webFrameClient; | 4854 TestSubstituteDataWebFrameClient webFrameClient; |
| 4855 | 4855 |
| 4856 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4856 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4857 webViewHelper.initializeAndLoad("about:blank", true, &webFrameClient); | 4857 webViewHelper.initializeAndLoad("about:blank", true, &webFrameClient); |
| 4858 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 4858 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 4859 | 4859 |
| 4860 // Load a url as a history navigation that will return an error. TestSubstit
uteDataWebFrameClient | 4860 // Load a url as a history navigation that will return an error. TestSubstit
uteDataWebFrameClient |
| 4861 // will start a SubstituteData load in response to the load failure, which s
hould get fully committed. | 4861 // will start a SubstituteData load in response to the load failure, which s
hould get fully committed. |
| 4862 // Due to https://bugs.webkit.org/show_bug.cgi?id=91685, FrameLoader::didRec
eiveData() wasn't getting | 4862 // Due to https://bugs.webkit.org/show_bug.cgi?id=91685, FrameLoader::didRec
eiveData() wasn't getting |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4900 | 4900 |
| 4901 virtual void willInsertBody(WebLocalFrame*) override | 4901 virtual void willInsertBody(WebLocalFrame*) override |
| 4902 { | 4902 { |
| 4903 m_numBodies++; | 4903 m_numBodies++; |
| 4904 } | 4904 } |
| 4905 | 4905 |
| 4906 int m_numBodies; | 4906 int m_numBodies; |
| 4907 bool m_didLoad; | 4907 bool m_didLoad; |
| 4908 }; | 4908 }; |
| 4909 | 4909 |
| 4910 TEST_P(ParametrizedWebFrameTest, HTMLDocument) | 4910 TEST_P(ParameterizedWebFrameTest, HTMLDocument) |
| 4911 { | 4911 { |
| 4912 registerMockedHttpURLLoad("clipped-body.html"); | 4912 registerMockedHttpURLLoad("clipped-body.html"); |
| 4913 | 4913 |
| 4914 TestWillInsertBodyWebFrameClient webFrameClient; | 4914 TestWillInsertBodyWebFrameClient webFrameClient; |
| 4915 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4915 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4916 webViewHelper.initializeAndLoad(m_baseURL + "clipped-body.html", false, &web
FrameClient); | 4916 webViewHelper.initializeAndLoad(m_baseURL + "clipped-body.html", false, &web
FrameClient); |
| 4917 | 4917 |
| 4918 EXPECT_TRUE(webFrameClient.m_didLoad); | 4918 EXPECT_TRUE(webFrameClient.m_didLoad); |
| 4919 EXPECT_EQ(1, webFrameClient.m_numBodies); | 4919 EXPECT_EQ(1, webFrameClient.m_numBodies); |
| 4920 } | 4920 } |
| 4921 | 4921 |
| 4922 TEST_P(ParametrizedWebFrameTest, EmptyDocument) | 4922 TEST_P(ParameterizedWebFrameTest, EmptyDocument) |
| 4923 { | 4923 { |
| 4924 registerMockedHttpURLLoad("pageserializer/green_rectangle.svg"); | 4924 registerMockedHttpURLLoad("pageserializer/green_rectangle.svg"); |
| 4925 | 4925 |
| 4926 TestWillInsertBodyWebFrameClient webFrameClient; | 4926 TestWillInsertBodyWebFrameClient webFrameClient; |
| 4927 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4927 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4928 webViewHelper.initialize(false, &webFrameClient); | 4928 webViewHelper.initialize(false, &webFrameClient); |
| 4929 | 4929 |
| 4930 EXPECT_FALSE(webFrameClient.m_didLoad); | 4930 EXPECT_FALSE(webFrameClient.m_didLoad); |
| 4931 EXPECT_EQ(1, webFrameClient.m_numBodies); // The empty document that a new f
rame starts with triggers this. | 4931 EXPECT_EQ(1, webFrameClient.m_numBodies); // The empty document that a new f
rame starts with triggers this. |
| 4932 } | 4932 } |
| 4933 | 4933 |
| 4934 TEST_P(ParametrizedWebFrameTest, MoveCaretSelectionTowardsWindowPointWithNoSelec
tion) | 4934 TEST_P(ParameterizedWebFrameTest, MoveCaretSelectionTowardsWindowPointWithNoSele
ction) |
| 4935 { | 4935 { |
| 4936 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4936 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4937 webViewHelper.initializeAndLoad("about:blank", true); | 4937 webViewHelper.initializeAndLoad("about:blank", true); |
| 4938 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 4938 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 4939 | 4939 |
| 4940 // This test passes if this doesn't crash. | 4940 // This test passes if this doesn't crash. |
| 4941 frame->moveCaretSelection(WebPoint(0, 0)); | 4941 frame->moveCaretSelection(WebPoint(0, 0)); |
| 4942 } | 4942 } |
| 4943 | 4943 |
| 4944 class SpellCheckClient : public WebSpellCheckClient { | 4944 class SpellCheckClient : public WebSpellCheckClient { |
| 4945 public: | 4945 public: |
| 4946 explicit SpellCheckClient(uint32_t hash = 0) : m_numberOfTimesChecked(0), m_
hash(hash) { } | 4946 explicit SpellCheckClient(uint32_t hash = 0) : m_numberOfTimesChecked(0), m_
hash(hash) { } |
| 4947 virtual ~SpellCheckClient() { } | 4947 virtual ~SpellCheckClient() { } |
| 4948 virtual void requestCheckingOfText(const WebString&, const WebVector<uint32_
t>&, const WebVector<unsigned>&, WebTextCheckingCompletion* completion) override | 4948 virtual void requestCheckingOfText(const WebString&, const WebVector<uint32_
t>&, const WebVector<unsigned>&, WebTextCheckingCompletion* completion) override |
| 4949 { | 4949 { |
| 4950 ++m_numberOfTimesChecked; | 4950 ++m_numberOfTimesChecked; |
| 4951 Vector<WebTextCheckingResult> results; | 4951 Vector<WebTextCheckingResult> results; |
| 4952 const int misspellingStartOffset = 1; | 4952 const int misspellingStartOffset = 1; |
| 4953 const int misspellingLength = 8; | 4953 const int misspellingLength = 8; |
| 4954 results.append(WebTextCheckingResult(WebTextDecorationTypeSpelling, miss
pellingStartOffset, misspellingLength, WebString(), m_hash)); | 4954 results.append(WebTextCheckingResult(WebTextDecorationTypeSpelling, miss
pellingStartOffset, misspellingLength, WebString(), m_hash)); |
| 4955 completion->didFinishCheckingText(results); | 4955 completion->didFinishCheckingText(results); |
| 4956 } | 4956 } |
| 4957 int numberOfTimesChecked() const { return m_numberOfTimesChecked; } | 4957 int numberOfTimesChecked() const { return m_numberOfTimesChecked; } |
| 4958 private: | 4958 private: |
| 4959 int m_numberOfTimesChecked; | 4959 int m_numberOfTimesChecked; |
| 4960 uint32_t m_hash; | 4960 uint32_t m_hash; |
| 4961 }; | 4961 }; |
| 4962 | 4962 |
| 4963 TEST_P(ParametrizedWebFrameTest, ReplaceMisspelledRange) | 4963 TEST_P(ParameterizedWebFrameTest, ReplaceMisspelledRange) |
| 4964 { | 4964 { |
| 4965 registerMockedHttpURLLoad("spell.html"); | 4965 registerMockedHttpURLLoad("spell.html"); |
| 4966 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4966 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4967 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 4967 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 4968 SpellCheckClient spellcheck; | 4968 SpellCheckClient spellcheck; |
| 4969 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 4969 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 4970 | 4970 |
| 4971 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 4971 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 4972 Document* document = frame->frame()->document(); | 4972 Document* document = frame->frame()->document(); |
| 4973 Element* element = document->getElementById("data"); | 4973 Element* element = document->getElementById("data"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4984 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al
lTextLength)); | 4984 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al
lTextLength)); |
| 4985 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor
malizedRange(); | 4985 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor
malizedRange(); |
| 4986 | 4986 |
| 4987 EXPECT_EQ(1, spellcheck.numberOfTimesChecked()); | 4987 EXPECT_EQ(1, spellcheck.numberOfTimesChecked()); |
| 4988 EXPECT_EQ(1U, document->markers().markersInRange(selectionRange.get(), Docum
entMarker::Spelling).size()); | 4988 EXPECT_EQ(1U, document->markers().markersInRange(selectionRange.get(), Docum
entMarker::Spelling).size()); |
| 4989 | 4989 |
| 4990 frame->replaceMisspelledRange("welcome"); | 4990 frame->replaceMisspelledRange("welcome"); |
| 4991 EXPECT_EQ("_welcome_.", frame->contentAsText(std::numeric_limits<size_t>::ma
x()).utf8()); | 4991 EXPECT_EQ("_welcome_.", frame->contentAsText(std::numeric_limits<size_t>::ma
x()).utf8()); |
| 4992 } | 4992 } |
| 4993 | 4993 |
| 4994 TEST_P(ParametrizedWebFrameTest, RemoveSpellingMarkers) | 4994 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkers) |
| 4995 { | 4995 { |
| 4996 registerMockedHttpURLLoad("spell.html"); | 4996 registerMockedHttpURLLoad("spell.html"); |
| 4997 FrameTestHelpers::WebViewHelper webViewHelper(this); | 4997 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 4998 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 4998 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 4999 SpellCheckClient spellcheck; | 4999 SpellCheckClient spellcheck; |
| 5000 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5000 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5001 | 5001 |
| 5002 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5002 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 5003 Document* document = frame->frame()->document(); | 5003 Document* document = frame->frame()->document(); |
| 5004 Element* element = document->getElementById("data"); | 5004 Element* element = document->getElementById("data"); |
| 5005 | 5005 |
| 5006 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); | 5006 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); |
| 5007 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); | 5007 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); |
| 5008 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); | 5008 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); |
| 5009 | 5009 |
| 5010 element->focus(); | 5010 element->focus(); |
| 5011 document->execCommand("InsertText", false, "_wellcome_."); | 5011 document->execCommand("InsertText", false, "_wellcome_."); |
| 5012 | 5012 |
| 5013 frame->removeSpellingMarkers(); | 5013 frame->removeSpellingMarkers(); |
| 5014 | 5014 |
| 5015 const int allTextBeginOffset = 0; | 5015 const int allTextBeginOffset = 0; |
| 5016 const int allTextLength = 11; | 5016 const int allTextLength = 11; |
| 5017 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al
lTextLength)); | 5017 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al
lTextLength)); |
| 5018 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor
malizedRange(); | 5018 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor
malizedRange(); |
| 5019 | 5019 |
| 5020 EXPECT_EQ(0U, document->markers().markersInRange(selectionRange.get(), Docum
entMarker::Spelling).size()); | 5020 EXPECT_EQ(0U, document->markers().markersInRange(selectionRange.get(), Docum
entMarker::Spelling).size()); |
| 5021 } | 5021 } |
| 5022 | 5022 |
| 5023 TEST_P(ParametrizedWebFrameTest, RemoveSpellingMarkersUnderWords) | 5023 TEST_P(ParameterizedWebFrameTest, RemoveSpellingMarkersUnderWords) |
| 5024 { | 5024 { |
| 5025 registerMockedHttpURLLoad("spell.html"); | 5025 registerMockedHttpURLLoad("spell.html"); |
| 5026 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5026 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5027 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5027 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5028 SpellCheckClient spellcheck; | 5028 SpellCheckClient spellcheck; |
| 5029 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5029 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5030 | 5030 |
| 5031 LocalFrame* frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()
)->frame(); | 5031 LocalFrame* frame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame()
)->frame(); |
| 5032 Document* document = frame->document(); | 5032 Document* document = frame->document(); |
| 5033 Element* element = document->getElementById("data"); | 5033 Element* element = document->getElementById("data"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 5045 | 5045 |
| 5046 Vector<String> words; | 5046 Vector<String> words; |
| 5047 words.append("wellcome"); | 5047 words.append("wellcome"); |
| 5048 frame->removeSpellingMarkersUnderWords(words); | 5048 frame->removeSpellingMarkersUnderWords(words); |
| 5049 | 5049 |
| 5050 WebVector<uint32_t> documentMarkers2; | 5050 WebVector<uint32_t> documentMarkers2; |
| 5051 webViewHelper.webView()->spellingMarkers(&documentMarkers2); | 5051 webViewHelper.webView()->spellingMarkers(&documentMarkers2); |
| 5052 EXPECT_EQ(0U, documentMarkers2.size()); | 5052 EXPECT_EQ(0U, documentMarkers2.size()); |
| 5053 } | 5053 } |
| 5054 | 5054 |
| 5055 TEST_P(ParametrizedWebFrameTest, MarkerHashIdentifiers) | 5055 TEST_P(ParameterizedWebFrameTest, MarkerHashIdentifiers) |
| 5056 { | 5056 { |
| 5057 registerMockedHttpURLLoad("spell.html"); | 5057 registerMockedHttpURLLoad("spell.html"); |
| 5058 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5058 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5059 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5059 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5060 | 5060 |
| 5061 static const uint32_t kHash = 42; | 5061 static const uint32_t kHash = 42; |
| 5062 SpellCheckClient spellcheck(kHash); | 5062 SpellCheckClient spellcheck(kHash); |
| 5063 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5063 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5064 | 5064 |
| 5065 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5065 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5121 Vector<WebTextCheckingResult> results; | 5121 Vector<WebTextCheckingResult> results; |
| 5122 if (misspellingStartOffset >= 0 && misspellingLength > 0) | 5122 if (misspellingStartOffset >= 0 && misspellingLength > 0) |
| 5123 results.append(WebTextCheckingResult(type, misspellingStartOffset, m
isspellingLength)); | 5123 results.append(WebTextCheckingResult(type, misspellingStartOffset, m
isspellingLength)); |
| 5124 m_completion->didFinishCheckingText(results); | 5124 m_completion->didFinishCheckingText(results); |
| 5125 m_completion = 0; | 5125 m_completion = 0; |
| 5126 } | 5126 } |
| 5127 | 5127 |
| 5128 WebTextCheckingCompletion* m_completion; | 5128 WebTextCheckingCompletion* m_completion; |
| 5129 }; | 5129 }; |
| 5130 | 5130 |
| 5131 TEST_P(ParametrizedWebFrameTest, SlowSpellcheckMarkerPosition) | 5131 TEST_P(ParameterizedWebFrameTest, SlowSpellcheckMarkerPosition) |
| 5132 { | 5132 { |
| 5133 registerMockedHttpURLLoad("spell.html"); | 5133 registerMockedHttpURLLoad("spell.html"); |
| 5134 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5134 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5135 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5135 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5136 | 5136 |
| 5137 StubbornSpellCheckClient spellcheck; | 5137 StubbornSpellCheckClient spellcheck; |
| 5138 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5138 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5139 | 5139 |
| 5140 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5140 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 5141 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); | 5141 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 5153 | 5153 |
| 5154 spellcheck.kick(); | 5154 spellcheck.kick(); |
| 5155 | 5155 |
| 5156 WebVector<uint32_t> documentMarkers; | 5156 WebVector<uint32_t> documentMarkers; |
| 5157 webViewHelper.webView()->spellingMarkers(&documentMarkers); | 5157 webViewHelper.webView()->spellingMarkers(&documentMarkers); |
| 5158 EXPECT_EQ(0U, documentMarkers.size()); | 5158 EXPECT_EQ(0U, documentMarkers.size()); |
| 5159 } | 5159 } |
| 5160 | 5160 |
| 5161 // This test verifies that cancelling spelling request does not cause a | 5161 // This test verifies that cancelling spelling request does not cause a |
| 5162 // write-after-free when there's no spellcheck client set. | 5162 // write-after-free when there's no spellcheck client set. |
| 5163 TEST_P(ParametrizedWebFrameTest, CancelSpellingRequestCrash) | 5163 TEST_P(ParameterizedWebFrameTest, CancelSpellingRequestCrash) |
| 5164 { | 5164 { |
| 5165 registerMockedHttpURLLoad("spell.html"); | 5165 registerMockedHttpURLLoad("spell.html"); |
| 5166 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5166 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5167 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5167 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5168 webViewHelper.webView()->setSpellCheckClient(0); | 5168 webViewHelper.webView()->setSpellCheckClient(0); |
| 5169 | 5169 |
| 5170 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5170 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 5171 Document* document = frame->frame()->document(); | 5171 Document* document = frame->frame()->document(); |
| 5172 Element* element = document->getElementById("data"); | 5172 Element* element = document->getElementById("data"); |
| 5173 | 5173 |
| 5174 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); | 5174 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); |
| 5175 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); | 5175 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); |
| 5176 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); | 5176 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); |
| 5177 | 5177 |
| 5178 element->focus(); | 5178 element->focus(); |
| 5179 frame->frame()->editor().replaceSelectionWithText("A", false, false); | 5179 frame->frame()->editor().replaceSelectionWithText("A", false, false); |
| 5180 frame->frame()->spellChecker().cancelCheck(); | 5180 frame->frame()->spellChecker().cancelCheck(); |
| 5181 } | 5181 } |
| 5182 | 5182 |
| 5183 TEST_P(ParametrizedWebFrameTest, SpellcheckResultErasesMarkers) | 5183 TEST_P(ParameterizedWebFrameTest, SpellcheckResultErasesMarkers) |
| 5184 { | 5184 { |
| 5185 registerMockedHttpURLLoad("spell.html"); | 5185 registerMockedHttpURLLoad("spell.html"); |
| 5186 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5186 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5187 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5187 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5188 | 5188 |
| 5189 StubbornSpellCheckClient spellcheck; | 5189 StubbornSpellCheckClient spellcheck; |
| 5190 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5190 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5191 | 5191 |
| 5192 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5192 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 5193 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); | 5193 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); |
| 5194 Document* document = frame->frame()->document(); | 5194 Document* document = frame->frame()->document(); |
| 5195 Element* element = document->getElementById("data"); | 5195 Element* element = document->getElementById("data"); |
| 5196 | 5196 |
| 5197 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); | 5197 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru
e); |
| 5198 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); | 5198 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); |
| 5199 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); | 5199 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing
BehaviorWin); |
| 5200 | 5200 |
| 5201 element->focus(); | 5201 element->focus(); |
| 5202 document->execCommand("InsertText", false, "welcome "); | 5202 document->execCommand("InsertText", false, "welcome "); |
| 5203 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::Spelling); | 5203 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::Spelling); |
| 5204 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::Grammar); | 5204 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::Grammar); |
| 5205 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::InvisibleSpellcheck); | 5205 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu
mentMarker::InvisibleSpellcheck); |
| 5206 EXPECT_EQ(3U, document->markers().markers().size()); | 5206 EXPECT_EQ(3U, document->markers().markers().size()); |
| 5207 | 5207 |
| 5208 spellcheck.kickNoResults(); | 5208 spellcheck.kickNoResults(); |
| 5209 EXPECT_EQ(0U, document->markers().markers().size()); | 5209 EXPECT_EQ(0U, document->markers().markers().size()); |
| 5210 } | 5210 } |
| 5211 | 5211 |
| 5212 TEST_P(ParametrizedWebFrameTest, SpellcheckResultsSavedInDocument) | 5212 TEST_P(ParameterizedWebFrameTest, SpellcheckResultsSavedInDocument) |
| 5213 { | 5213 { |
| 5214 registerMockedHttpURLLoad("spell.html"); | 5214 registerMockedHttpURLLoad("spell.html"); |
| 5215 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5215 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5216 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); | 5216 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); |
| 5217 | 5217 |
| 5218 StubbornSpellCheckClient spellcheck; | 5218 StubbornSpellCheckClient spellcheck; |
| 5219 webViewHelper.webView()->setSpellCheckClient(&spellcheck); | 5219 webViewHelper.webView()->setSpellCheckClient(&spellcheck); |
| 5220 | 5220 |
| 5221 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); | 5221 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main
Frame()); |
| 5222 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); | 5222 WebInputElement webInputElement = frame->document().getElementById("data").t
o<WebInputElement>(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5258 | 5258 |
| 5259 virtual void didAccessInitialDocument(WebLocalFrame* frame) | 5259 virtual void didAccessInitialDocument(WebLocalFrame* frame) |
| 5260 { | 5260 { |
| 5261 EXPECT_TRUE(!m_didAccessInitialDocument); | 5261 EXPECT_TRUE(!m_didAccessInitialDocument); |
| 5262 m_didAccessInitialDocument = true; | 5262 m_didAccessInitialDocument = true; |
| 5263 } | 5263 } |
| 5264 | 5264 |
| 5265 bool m_didAccessInitialDocument; | 5265 bool m_didAccessInitialDocument; |
| 5266 }; | 5266 }; |
| 5267 | 5267 |
| 5268 TEST_P(ParametrizedWebFrameTest, DidAccessInitialDocumentBody) | 5268 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentBody) |
| 5269 { | 5269 { |
| 5270 // FIXME: Why is this local webViewClient needed instead of the default | 5270 // FIXME: Why is this local webViewClient needed instead of the default |
| 5271 // WebViewHelper one? With out it there's some mysterious crash in the | 5271 // WebViewHelper one? With out it there's some mysterious crash in the |
| 5272 // WebViewHelper destructor. | 5272 // WebViewHelper destructor. |
| 5273 FrameTestHelpers::TestWebViewClient webViewClient; | 5273 FrameTestHelpers::TestWebViewClient webViewClient; |
| 5274 TestAccessInitialDocumentWebFrameClient webFrameClient; | 5274 TestAccessInitialDocumentWebFrameClient webFrameClient; |
| 5275 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5275 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5276 webViewHelper.initialize(true, &webFrameClient, &webViewClient); | 5276 webViewHelper.initialize(true, &webFrameClient, &webViewClient); |
| 5277 runPendingTasks(); | 5277 runPendingTasks(); |
| 5278 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); | 5278 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 5290 runPendingTasks(); | 5290 runPendingTasks(); |
| 5291 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5291 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5292 | 5292 |
| 5293 // Access the initial document again, to ensure we don't notify twice. | 5293 // Access the initial document again, to ensure we don't notify twice. |
| 5294 newView->mainFrame()->executeScript( | 5294 newView->mainFrame()->executeScript( |
| 5295 WebScriptSource("window.opener.document.body.innerHTML += 'Modified';"))
; | 5295 WebScriptSource("window.opener.document.body.innerHTML += 'Modified';"))
; |
| 5296 runPendingTasks(); | 5296 runPendingTasks(); |
| 5297 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5297 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5298 } | 5298 } |
| 5299 | 5299 |
| 5300 TEST_P(ParametrizedWebFrameTest, DidAccessInitialDocumentNavigator) | 5300 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentNavigator) |
| 5301 { | 5301 { |
| 5302 // FIXME: Why is this local webViewClient needed instead of the default | 5302 // FIXME: Why is this local webViewClient needed instead of the default |
| 5303 // WebViewHelper one? With out it there's some mysterious crash in the | 5303 // WebViewHelper one? With out it there's some mysterious crash in the |
| 5304 // WebViewHelper destructor. | 5304 // WebViewHelper destructor. |
| 5305 FrameTestHelpers::TestWebViewClient webViewClient; | 5305 FrameTestHelpers::TestWebViewClient webViewClient; |
| 5306 TestAccessInitialDocumentWebFrameClient webFrameClient; | 5306 TestAccessInitialDocumentWebFrameClient webFrameClient; |
| 5307 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5307 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5308 webViewHelper.initialize(true, &webFrameClient, &webViewClient); | 5308 webViewHelper.initialize(true, &webFrameClient, &webViewClient); |
| 5309 runPendingTasks(); | 5309 runPendingTasks(); |
| 5310 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); | 5310 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); |
| 5311 | 5311 |
| 5312 // Create another window that will try to access it. | 5312 // Create another window that will try to access it. |
| 5313 FrameTestHelpers::WebViewHelper newWebViewHelper(this); | 5313 FrameTestHelpers::WebViewHelper newWebViewHelper(this); |
| 5314 WebView* newView = newWebViewHelper.initialize(true); | 5314 WebView* newView = newWebViewHelper.initialize(true); |
| 5315 newView->mainFrame()->setOpener(webViewHelper.webView()->mainFrame()); | 5315 newView->mainFrame()->setOpener(webViewHelper.webView()->mainFrame()); |
| 5316 runPendingTasks(); | 5316 runPendingTasks(); |
| 5317 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); | 5317 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); |
| 5318 | 5318 |
| 5319 // Access the initial document to get to the navigator object. | 5319 // Access the initial document to get to the navigator object. |
| 5320 newView->mainFrame()->executeScript( | 5320 newView->mainFrame()->executeScript( |
| 5321 WebScriptSource("console.log(window.opener.navigator);")); | 5321 WebScriptSource("console.log(window.opener.navigator);")); |
| 5322 runPendingTasks(); | 5322 runPendingTasks(); |
| 5323 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5323 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5324 } | 5324 } |
| 5325 | 5325 |
| 5326 TEST_P(ParametrizedWebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) | 5326 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentViaJavascriptUrl) |
| 5327 { | 5327 { |
| 5328 TestAccessInitialDocumentWebFrameClient webFrameClient; | 5328 TestAccessInitialDocumentWebFrameClient webFrameClient; |
| 5329 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5329 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5330 webViewHelper.initialize(true, &webFrameClient); | 5330 webViewHelper.initialize(true, &webFrameClient); |
| 5331 runPendingTasks(); | 5331 runPendingTasks(); |
| 5332 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); | 5332 EXPECT_FALSE(webFrameClient.m_didAccessInitialDocument); |
| 5333 | 5333 |
| 5334 // Access the initial document from a javascript: URL. | 5334 // Access the initial document from a javascript: URL. |
| 5335 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Modified'))"); | 5335 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.body.appendChild(document.createTextNode('Modified'))"); |
| 5336 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5336 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5337 } | 5337 } |
| 5338 | 5338 |
| 5339 // Fails on the WebKit XP (deps) bot. http://crbug.com/312192 | 5339 // Fails on the WebKit XP (deps) bot. http://crbug.com/312192 |
| 5340 #if OS(WIN) | 5340 #if OS(WIN) |
| 5341 TEST_P(ParametrizedWebFrameTest, DISABLED_DidAccessInitialDocumentBodyBeforeModa
lDialog) | 5341 TEST_P(ParameterizedWebFrameTest, DISABLED_DidAccessInitialDocumentBodyBeforeMod
alDialog) |
| 5342 #else | 5342 #else |
| 5343 TEST_P(ParametrizedWebFrameTest, DidAccessInitialDocumentBodyBeforeModalDialog) | 5343 TEST_P(ParameterizedWebFrameTest, DidAccessInitialDocumentBodyBeforeModalDialog) |
| 5344 #endif | 5344 #endif |
| 5345 { | 5345 { |
| 5346 // FIXME: Why is this local webViewClient needed instead of the default | 5346 // FIXME: Why is this local webViewClient needed instead of the default |
| 5347 // WebViewHelper one? With out it there's some mysterious crash in the | 5347 // WebViewHelper one? With out it there's some mysterious crash in the |
| 5348 // WebViewHelper destructor. | 5348 // WebViewHelper destructor. |
| 5349 FrameTestHelpers::TestWebViewClient webViewClient; | 5349 FrameTestHelpers::TestWebViewClient webViewClient; |
| 5350 TestAccessInitialDocumentWebFrameClient webFrameClient; | 5350 TestAccessInitialDocumentWebFrameClient webFrameClient; |
| 5351 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5351 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5352 webViewHelper.initialize(true, &webFrameClient, &webViewClient); | 5352 webViewHelper.initialize(true, &webFrameClient, &webViewClient); |
| 5353 runPendingTasks(); | 5353 runPendingTasks(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5371 WebScriptSource("window.opener.confirm('Modal');")); | 5371 WebScriptSource("window.opener.confirm('Modal');")); |
| 5372 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5372 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5373 | 5373 |
| 5374 // Ensure that we don't notify again later. | 5374 // Ensure that we don't notify again later. |
| 5375 runPendingTasks(); | 5375 runPendingTasks(); |
| 5376 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); | 5376 EXPECT_TRUE(webFrameClient.m_didAccessInitialDocument); |
| 5377 } | 5377 } |
| 5378 | 5378 |
| 5379 // Fails on the WebKit XP (deps) bot. http://crbug.com/312192 | 5379 // Fails on the WebKit XP (deps) bot. http://crbug.com/312192 |
| 5380 #if OS(WIN) | 5380 #if OS(WIN) |
| 5381 TEST_P(ParametrizedWebFrameTest, DISABLED_DidWriteToInitialDocumentBeforeModalDi
alog) | 5381 TEST_P(ParameterizedWebFrameTest, DISABLED_DidWriteToInitialDocumentBeforeModalD
ialog) |
| 5382 #else | 5382 #else |
| 5383 TEST_P(ParametrizedWebFrameTest, DidWriteToInitialDocumentBeforeModalDialog) | 5383 TEST_P(ParameterizedWebFrameTest, DidWriteToInitialDocumentBeforeModalDialog) |
| 5384 #endif | 5384 #endif |
| 5385 { | 5385 { |
| 5386 // FIXME: Why is this local webViewClient needed instead of the default | 5386 // FIXME: Why is this local webViewClient needed instead of the default |
| 5387 // WebViewHelper one? With out it there's some mysterious crash in the | 5387 // WebViewHelper one? With out it there's some mysterious crash in the |
| 5388 // WebViewHelper destructor. | 5388 // WebViewHelper destructor. |
| 5389 FrameTestHelpers::TestWebViewClient webViewClient; | 5389 FrameTestHelpers::TestWebViewClient webViewClient; |
| 5390 TestAccessInitialDocumentWebFrameClient webFrameClient; | 5390 TestAccessInitialDocumentWebFrameClient webFrameClient; |
| 5391 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5391 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5392 webViewHelper.initialize(true, &webFrameClient, &webViewClient); | 5392 webViewHelper.initialize(true, &webFrameClient, &webViewClient); |
| 5393 runPendingTasks(); | 5393 runPendingTasks(); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5495 EXPECT_FALSE(view->wasScrolledByUser()); | 5495 EXPECT_FALSE(view->wasScrolledByUser()); |
| 5496 client.reset(); | 5496 client.reset(); |
| 5497 | 5497 |
| 5498 // Programmatic scroll to same offset. No scroll event should be generated. | 5498 // Programmatic scroll to same offset. No scroll event should be generated. |
| 5499 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);")); | 5499 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);")); |
| 5500 EXPECT_FALSE(client.wasFrameScrolled()); | 5500 EXPECT_FALSE(client.wasFrameScrolled()); |
| 5501 EXPECT_FALSE(view->wasScrolledByUser()); | 5501 EXPECT_FALSE(view->wasScrolledByUser()); |
| 5502 client.reset(); | 5502 client.reset(); |
| 5503 } | 5503 } |
| 5504 | 5504 |
| 5505 TEST_P(ParametrizedWebFrameTest, FirstPartyForCookiesForRedirect) | 5505 TEST_P(ParameterizedWebFrameTest, FirstPartyForCookiesForRedirect) |
| 5506 { | 5506 { |
| 5507 WTF::String filePath = Platform::current()->unitTestSupport()->webKitRootDir
(); | 5507 WTF::String filePath = Platform::current()->unitTestSupport()->webKitRootDir
(); |
| 5508 filePath.append("/Source/web/tests/data/first_party.html"); | 5508 filePath.append("/Source/web/tests/data/first_party.html"); |
| 5509 | 5509 |
| 5510 WebURL testURL(toKURL("http://internal.test/first_party_redirect.html")); | 5510 WebURL testURL(toKURL("http://internal.test/first_party_redirect.html")); |
| 5511 char redirect[] = "http://internal.test/first_party.html"; | 5511 char redirect[] = "http://internal.test/first_party.html"; |
| 5512 WebURL redirectURL(toKURL(redirect)); | 5512 WebURL redirectURL(toKURL(redirect)); |
| 5513 WebURLResponse redirectResponse; | 5513 WebURLResponse redirectResponse; |
| 5514 redirectResponse.initialize(); | 5514 redirectResponse.initialize(); |
| 5515 redirectResponse.setMIMEType("text/html"); | 5515 redirectResponse.setMIMEType("text/html"); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 5529 | 5529 |
| 5530 class TestNavigationPolicyWebFrameClient : public FrameTestHelpers::TestWebFrame
Client { | 5530 class TestNavigationPolicyWebFrameClient : public FrameTestHelpers::TestWebFrame
Client { |
| 5531 public: | 5531 public: |
| 5532 | 5532 |
| 5533 virtual void didNavigateWithinPage(WebLocalFrame*, const WebHistoryItem&, We
bHistoryCommitType) override | 5533 virtual void didNavigateWithinPage(WebLocalFrame*, const WebHistoryItem&, We
bHistoryCommitType) override |
| 5534 { | 5534 { |
| 5535 EXPECT_TRUE(false); | 5535 EXPECT_TRUE(false); |
| 5536 } | 5536 } |
| 5537 }; | 5537 }; |
| 5538 | 5538 |
| 5539 TEST_P(ParametrizedWebFrameTest, SimulateFragmentAnchorMiddleClick) | 5539 TEST_P(ParameterizedWebFrameTest, SimulateFragmentAnchorMiddleClick) |
| 5540 { | 5540 { |
| 5541 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5541 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5542 TestNavigationPolicyWebFrameClient client; | 5542 TestNavigationPolicyWebFrameClient client; |
| 5543 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5543 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5544 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); | 5544 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue, &client); |
| 5545 | 5545 |
| 5546 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5546 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5547 KURL destination = document->url(); | 5547 KURL destination = document->url(); |
| 5548 destination.setFragmentIdentifier("test"); | 5548 destination.setFragmentIdentifier("test"); |
| 5549 | 5549 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 5576 m_decidePolicyCallCount++; | 5576 m_decidePolicyCallCount++; |
| 5577 return info.defaultPolicy; | 5577 return info.defaultPolicy; |
| 5578 } | 5578 } |
| 5579 | 5579 |
| 5580 int decidePolicyCallCount() const { return m_decidePolicyCallCount; } | 5580 int decidePolicyCallCount() const { return m_decidePolicyCallCount; } |
| 5581 | 5581 |
| 5582 private: | 5582 private: |
| 5583 int m_decidePolicyCallCount; | 5583 int m_decidePolicyCallCount; |
| 5584 }; | 5584 }; |
| 5585 | 5585 |
| 5586 TEST_P(ParametrizedWebFrameTest, ModifiedClickNewWindow) | 5586 TEST_P(ParameterizedWebFrameTest, ModifiedClickNewWindow) |
| 5587 { | 5587 { |
| 5588 registerMockedHttpURLLoad("ctrl_click.html"); | 5588 registerMockedHttpURLLoad("ctrl_click.html"); |
| 5589 registerMockedHttpURLLoad("hello_world.html"); | 5589 registerMockedHttpURLLoad("hello_world.html"); |
| 5590 TestNewWindowWebViewClient webViewClient; | 5590 TestNewWindowWebViewClient webViewClient; |
| 5591 TestNewWindowWebFrameClient webFrameClient; | 5591 TestNewWindowWebFrameClient webFrameClient; |
| 5592 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5592 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5593 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); | 5593 webViewHelper.initializeAndLoad(m_baseURL + "ctrl_click.html", true, &webFra
meClient, &webViewClient); |
| 5594 | 5594 |
| 5595 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); | 5595 Document* document = toLocalFrame(webViewHelper.webViewImpl()->page()->mainF
rame())->document(); |
| 5596 KURL destination = toKURL(m_baseURL + "hello_world.html"); | 5596 KURL destination = toKURL(m_baseURL + "hello_world.html"); |
| 5597 | 5597 |
| 5598 // ctrl+click event | 5598 // ctrl+click event |
| 5599 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 5599 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, |
| 5600 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, true, false, false, false, 0
, 0, nullptr, nullptr); | 5600 document->domWindow(), 0, 0, 0, 0, 0, 0, 0, true, false, false, false, 0
, 0, nullptr, nullptr); |
| 5601 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); | 5601 FrameLoadRequest frameRequest(document, ResourceRequest(destination)); |
| 5602 frameRequest.setTriggeringEvent(event); | 5602 frameRequest.setTriggeringEvent(event); |
| 5603 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); | 5603 UserGestureIndicator gesture(DefinitelyProcessingUserGesture); |
| 5604 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5604 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5605 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); | 5605 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); |
| 5606 | 5606 |
| 5607 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. | 5607 // decidePolicyForNavigation should be called both for the original request
and the ctrl+click. |
| 5608 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); | 5608 EXPECT_EQ(2, webFrameClient.decidePolicyCallCount()); |
| 5609 } | 5609 } |
| 5610 | 5610 |
| 5611 TEST_P(ParametrizedWebFrameTest, BackToReload) | 5611 TEST_P(ParameterizedWebFrameTest, BackToReload) |
| 5612 { | 5612 { |
| 5613 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5613 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5614 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5614 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5615 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5615 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5616 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5616 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5617 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5617 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5618 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5618 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); |
| 5619 EXPECT_TRUE(firstItem); | 5619 EXPECT_TRUE(firstItem); |
| 5620 | 5620 |
| 5621 registerMockedHttpURLLoad("white-1x1.png"); | 5621 registerMockedHttpURLLoad("white-1x1.png"); |
| 5622 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); | 5622 FrameTestHelpers::loadFrame(frame, m_baseURL + "white-1x1.png"); |
| 5623 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); | 5623 EXPECT_NE(firstItem.get(), mainFrameLoader.currentItem()); |
| 5624 | 5624 |
| 5625 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); | 5625 FrameTestHelpers::loadHistoryItem(frame, WebHistoryItem(firstItem.get()), We
bHistoryDifferentDocumentLoad, WebURLRequest::UseProtocolCachePolicy); |
| 5626 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); | 5626 EXPECT_EQ(firstItem.get(), mainFrameLoader.currentItem()); |
| 5627 | 5627 |
| 5628 FrameTestHelpers::reloadFrame(frame); | 5628 FrameTestHelpers::reloadFrame(frame); |
| 5629 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); | 5629 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); |
| 5630 } | 5630 } |
| 5631 | 5631 |
| 5632 TEST_P(ParametrizedWebFrameTest, BackDuringChildFrameReload) | 5632 TEST_P(ParameterizedWebFrameTest, BackDuringChildFrameReload) |
| 5633 { | 5633 { |
| 5634 registerMockedHttpURLLoad("page_with_blank_iframe.html"); | 5634 registerMockedHttpURLLoad("page_with_blank_iframe.html"); |
| 5635 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5635 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5636 webViewHelper.initializeAndLoad(m_baseURL + "page_with_blank_iframe.html", t
rue); | 5636 webViewHelper.initializeAndLoad(m_baseURL + "page_with_blank_iframe.html", t
rue); |
| 5637 WebFrame* mainFrame = webViewHelper.webView()->mainFrame(); | 5637 WebFrame* mainFrame = webViewHelper.webView()->mainFrame(); |
| 5638 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5638 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5639 WebFrame* childFrame = mainFrame->firstChild(); | 5639 WebFrame* childFrame = mainFrame->firstChild(); |
| 5640 ASSERT_TRUE(childFrame); | 5640 ASSERT_TRUE(childFrame); |
| 5641 | 5641 |
| 5642 // Start a history navigation, then have a different frame commit a navigati
on. | 5642 // Start a history navigation, then have a different frame commit a navigati
on. |
| 5643 // In this case, reload an about:blank frame, which will commit synchronousl
y. | 5643 // In this case, reload an about:blank frame, which will commit synchronousl
y. |
| 5644 // After the history navigation completes, both the appropriate document url
and | 5644 // After the history navigation completes, both the appropriate document url
and |
| 5645 // the current history item should reflect the history navigation. | 5645 // the current history item should reflect the history navigation. |
| 5646 registerMockedHttpURLLoad("white-1x1.png"); | 5646 registerMockedHttpURLLoad("white-1x1.png"); |
| 5647 WebHistoryItem item; | 5647 WebHistoryItem item; |
| 5648 item.initialize(); | 5648 item.initialize(); |
| 5649 WebURL historyURL(toKURL(m_baseURL + "white-1x1.png")); | 5649 WebURL historyURL(toKURL(m_baseURL + "white-1x1.png")); |
| 5650 item.setURLString(historyURL.string()); | 5650 item.setURLString(historyURL.string()); |
| 5651 mainFrame->loadHistoryItem(item, WebHistoryDifferentDocumentLoad, WebURLRequ
est::UseProtocolCachePolicy); | 5651 mainFrame->loadHistoryItem(item, WebHistoryDifferentDocumentLoad, WebURLRequ
est::UseProtocolCachePolicy); |
| 5652 | 5652 |
| 5653 FrameTestHelpers::reloadFrame(childFrame); | 5653 FrameTestHelpers::reloadFrame(childFrame); |
| 5654 EXPECT_EQ(item.urlString(), mainFrame->document().url().string()); | 5654 EXPECT_EQ(item.urlString(), mainFrame->document().url().string()); |
| 5655 EXPECT_EQ(item.urlString(), WebString(mainFrameLoader.currentItem()->urlStri
ng())); | 5655 EXPECT_EQ(item.urlString(), WebString(mainFrameLoader.currentItem()->urlStri
ng())); |
| 5656 } | 5656 } |
| 5657 | 5657 |
| 5658 TEST_P(ParametrizedWebFrameTest, ReloadPost) | 5658 TEST_P(ParameterizedWebFrameTest, ReloadPost) |
| 5659 { | 5659 { |
| 5660 registerMockedHttpURLLoad("reload_post.html"); | 5660 registerMockedHttpURLLoad("reload_post.html"); |
| 5661 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5661 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5662 webViewHelper.initializeAndLoad(m_baseURL + "reload_post.html", true); | 5662 webViewHelper.initializeAndLoad(m_baseURL + "reload_post.html", true); |
| 5663 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5663 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5664 | 5664 |
| 5665 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.forms[0].submit()"); | 5665 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), "javascrip
t:document.forms[0].submit()"); |
| 5666 // Pump requests one more time after the javascript URL has executed to | 5666 // Pump requests one more time after the javascript URL has executed to |
| 5667 // trigger the actual POST load request. | 5667 // trigger the actual POST load request. |
| 5668 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); | 5668 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); |
| 5669 EXPECT_EQ(WebString::fromUTF8("POST"), frame->dataSource()->request().httpMe
thod()); | 5669 EXPECT_EQ(WebString::fromUTF8("POST"), frame->dataSource()->request().httpMe
thod()); |
| 5670 | 5670 |
| 5671 FrameTestHelpers::reloadFrame(frame); | 5671 FrameTestHelpers::reloadFrame(frame); |
| 5672 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); | 5672 EXPECT_EQ(WebURLRequest::ReloadIgnoringCacheData, frame->dataSource()->reque
st().cachePolicy()); |
| 5673 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); | 5673 EXPECT_EQ(WebNavigationTypeFormResubmitted, frame->dataSource()->navigationT
ype()); |
| 5674 } | 5674 } |
| 5675 | 5675 |
| 5676 TEST_P(ParametrizedWebFrameTest, LoadHistoryItemReload) | 5676 TEST_P(ParameterizedWebFrameTest, LoadHistoryItemReload) |
| 5677 { | 5677 { |
| 5678 registerMockedHttpURLLoad("fragment_middle_click.html"); | 5678 registerMockedHttpURLLoad("fragment_middle_click.html"); |
| 5679 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5679 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5680 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); | 5680 webViewHelper.initializeAndLoad(m_baseURL + "fragment_middle_click.html", tr
ue); |
| 5681 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5681 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5682 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 5682 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 5683 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); | 5683 RefPtrWillBePersistent<HistoryItem> firstItem = mainFrameLoader.currentItem(
); |
| 5684 EXPECT_TRUE(firstItem); | 5684 EXPECT_TRUE(firstItem); |
| 5685 | 5685 |
| 5686 registerMockedHttpURLLoad("white-1x1.png"); | 5686 registerMockedHttpURLLoad("white-1x1.png"); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5745 | 5745 |
| 5746 private: | 5746 private: |
| 5747 TestCachePolicyWebFrameClient* m_parentClient; | 5747 TestCachePolicyWebFrameClient* m_parentClient; |
| 5748 | 5748 |
| 5749 WebURLRequest::CachePolicy m_policy; | 5749 WebURLRequest::CachePolicy m_policy; |
| 5750 TestCachePolicyWebFrameClient* m_childClient; | 5750 TestCachePolicyWebFrameClient* m_childClient; |
| 5751 int m_willSendRequestCallCount; | 5751 int m_willSendRequestCallCount; |
| 5752 int m_childFrameCreationCount; | 5752 int m_childFrameCreationCount; |
| 5753 }; | 5753 }; |
| 5754 | 5754 |
| 5755 TEST_P(ParametrizedWebFrameTest, ReloadIframe) | 5755 TEST_P(ParameterizedWebFrameTest, ReloadIframe) |
| 5756 { | 5756 { |
| 5757 registerMockedHttpURLLoad("iframe_reload.html"); | 5757 registerMockedHttpURLLoad("iframe_reload.html"); |
| 5758 registerMockedHttpURLLoad("visible_iframe.html"); | 5758 registerMockedHttpURLLoad("visible_iframe.html"); |
| 5759 TestCachePolicyWebFrameClient mainClient(0); | 5759 TestCachePolicyWebFrameClient mainClient(0); |
| 5760 TestCachePolicyWebFrameClient childClient(&mainClient); | 5760 TestCachePolicyWebFrameClient childClient(&mainClient); |
| 5761 mainClient.setChildWebFrameClient(&childClient); | 5761 mainClient.setChildWebFrameClient(&childClient); |
| 5762 | 5762 |
| 5763 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5763 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5764 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); | 5764 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai
nClient); |
| 5765 | 5765 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 5793 if (toWebLocalFrameImpl(frame)->frame()->loader().loadType() == FrameLoa
dTypeSame) | 5793 if (toWebLocalFrameImpl(frame)->frame()->loader().loadType() == FrameLoa
dTypeSame) |
| 5794 m_frameLoadTypeSameSeen = true; | 5794 m_frameLoadTypeSameSeen = true; |
| 5795 } | 5795 } |
| 5796 | 5796 |
| 5797 bool frameLoadTypeSameSeen() const { return m_frameLoadTypeSameSeen; } | 5797 bool frameLoadTypeSameSeen() const { return m_frameLoadTypeSameSeen; } |
| 5798 | 5798 |
| 5799 private: | 5799 private: |
| 5800 bool m_frameLoadTypeSameSeen; | 5800 bool m_frameLoadTypeSameSeen; |
| 5801 }; | 5801 }; |
| 5802 | 5802 |
| 5803 TEST_P(ParametrizedWebFrameTest, NavigateToSame) | 5803 TEST_P(ParameterizedWebFrameTest, NavigateToSame) |
| 5804 { | 5804 { |
| 5805 registerMockedHttpURLLoad("navigate_to_same.html"); | 5805 registerMockedHttpURLLoad("navigate_to_same.html"); |
| 5806 TestSameDocumentWebFrameClient client; | 5806 TestSameDocumentWebFrameClient client; |
| 5807 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5807 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5808 webViewHelper.initializeAndLoad(m_baseURL + "navigate_to_same.html", true, &
client); | 5808 webViewHelper.initializeAndLoad(m_baseURL + "navigate_to_same.html", true, &
client); |
| 5809 EXPECT_FALSE(client.frameLoadTypeSameSeen()); | 5809 EXPECT_FALSE(client.frameLoadTypeSameSeen()); |
| 5810 | 5810 |
| 5811 FrameLoadRequest frameRequest(0, ResourceRequest(toLocalFrame(webViewHelper.
webViewImpl()->page()->mainFrame())->document()->url())); | 5811 FrameLoadRequest frameRequest(0, ResourceRequest(toLocalFrame(webViewHelper.
webViewImpl()->page()->mainFrame())->document()->url())); |
| 5812 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); | 5812 toLocalFrame(webViewHelper.webViewImpl()->page()->mainFrame())->loader().loa
d(frameRequest); |
| 5813 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); | 5813 FrameTestHelpers::pumpPendingRequestsDoNotUse(webViewHelper.webView()->mainF
rame()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 5829 EXPECT_EQ(WebURLRequest::UseProtocolCachePolicy, request.cachePolicy
()); | 5829 EXPECT_EQ(WebURLRequest::UseProtocolCachePolicy, request.cachePolicy
()); |
| 5830 } | 5830 } |
| 5831 } | 5831 } |
| 5832 | 5832 |
| 5833 int numOfImageRequests() const { return m_numOfImageRequests; } | 5833 int numOfImageRequests() const { return m_numOfImageRequests; } |
| 5834 | 5834 |
| 5835 private: | 5835 private: |
| 5836 int m_numOfImageRequests; | 5836 int m_numOfImageRequests; |
| 5837 }; | 5837 }; |
| 5838 | 5838 |
| 5839 TEST_P(ParametrizedWebFrameTest, NavigateToSameNoConditionalRequestForSubresourc
e) | 5839 TEST_P(ParameterizedWebFrameTest, NavigateToSameNoConditionalRequestForSubresour
ce) |
| 5840 { | 5840 { |
| 5841 registerMockedHttpURLLoad("foo_with_image.html"); | 5841 registerMockedHttpURLLoad("foo_with_image.html"); |
| 5842 registerMockedHttpURLLoad("white-1x1.png"); | 5842 registerMockedHttpURLLoad("white-1x1.png"); |
| 5843 TestSameDocumentWithImageWebFrameClient client; | 5843 TestSameDocumentWithImageWebFrameClient client; |
| 5844 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5844 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5845 webViewHelper.initializeAndLoad(m_baseURL + "foo_with_image.html", true, &cl
ient, 0, &configureLoadsImagesAutomatically); | 5845 webViewHelper.initializeAndLoad(m_baseURL + "foo_with_image.html", true, &cl
ient, 0, &configureLoadsImagesAutomatically); |
| 5846 | 5846 |
| 5847 WebCache::clear(); | 5847 WebCache::clear(); |
| 5848 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "foo_with_image.html"); | 5848 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "foo_with_image.html"); |
| 5849 | 5849 |
| 5850 EXPECT_EQ(client.numOfImageRequests(), 2); | 5850 EXPECT_EQ(client.numOfImageRequests(), 2); |
| 5851 } | 5851 } |
| 5852 | 5852 |
| 5853 TEST_P(ParametrizedWebFrameTest, WebNodeImageContents) | 5853 TEST_P(ParameterizedWebFrameTest, WebNodeImageContents) |
| 5854 { | 5854 { |
| 5855 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5855 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5856 webViewHelper.initializeAndLoad("about:blank", true); | 5856 webViewHelper.initializeAndLoad("about:blank", true); |
| 5857 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5857 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 5858 | 5858 |
| 5859 static const char bluePNG[] = "<img src=\"data:image/png;base64,iVBORw0KGgoA
AAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYV2NkYPj/n4EIwDiqEF8oUT94AFIQE/cCn90I
AAAAAElFTkSuQmCC\">"; | 5859 static const char bluePNG[] = "<img src=\"data:image/png;base64,iVBORw0KGgoA
AAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYV2NkYPj/n4EIwDiqEF8oUT94AFIQE/cCn90I
AAAAAElFTkSuQmCC\">"; |
| 5860 | 5860 |
| 5861 // Load up the image and test that we can extract the contents. | 5861 // Load up the image and test that we can extract the contents. |
| 5862 KURL testURL = toKURL("about:blank"); | 5862 KURL testURL = toKURL("about:blank"); |
| 5863 FrameTestHelpers::loadHTMLString(frame, bluePNG, testURL); | 5863 FrameTestHelpers::loadHTMLString(frame, bluePNG, testURL); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5902 int startLoadingCount() const { return m_startLoadingCount; } | 5902 int startLoadingCount() const { return m_startLoadingCount; } |
| 5903 int stopLoadingCount() const { return m_stopLoadingCount; } | 5903 int stopLoadingCount() const { return m_stopLoadingCount; } |
| 5904 int differentDocumentStartCount() const { return m_differentDocumentStartCou
nt; } | 5904 int differentDocumentStartCount() const { return m_differentDocumentStartCou
nt; } |
| 5905 | 5905 |
| 5906 private: | 5906 private: |
| 5907 int m_startLoadingCount; | 5907 int m_startLoadingCount; |
| 5908 int m_stopLoadingCount; | 5908 int m_stopLoadingCount; |
| 5909 int m_differentDocumentStartCount; | 5909 int m_differentDocumentStartCount; |
| 5910 }; | 5910 }; |
| 5911 | 5911 |
| 5912 TEST_P(ParametrizedWebFrameTest, PushStateStartsAndStops) | 5912 TEST_P(ParameterizedWebFrameTest, PushStateStartsAndStops) |
| 5913 { | 5913 { |
| 5914 registerMockedHttpURLLoad("push_state.html"); | 5914 registerMockedHttpURLLoad("push_state.html"); |
| 5915 TestStartStopCallbackWebFrameClient client; | 5915 TestStartStopCallbackWebFrameClient client; |
| 5916 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5916 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5917 webViewHelper.initializeAndLoad(m_baseURL + "push_state.html", true, &client
); | 5917 webViewHelper.initializeAndLoad(m_baseURL + "push_state.html", true, &client
); |
| 5918 | 5918 |
| 5919 EXPECT_EQ(client.startLoadingCount(), 2); | 5919 EXPECT_EQ(client.startLoadingCount(), 2); |
| 5920 EXPECT_EQ(client.stopLoadingCount(), 2); | 5920 EXPECT_EQ(client.stopLoadingCount(), 2); |
| 5921 EXPECT_EQ(client.differentDocumentStartCount(), 1); | 5921 EXPECT_EQ(client.differentDocumentStartCount(), 1); |
| 5922 } | 5922 } |
| 5923 | 5923 |
| 5924 class TestDidNavigateCommitTypeWebFrameClient : public FrameTestHelpers::TestWeb
FrameClient { | 5924 class TestDidNavigateCommitTypeWebFrameClient : public FrameTestHelpers::TestWeb
FrameClient { |
| 5925 public: | 5925 public: |
| 5926 TestDidNavigateCommitTypeWebFrameClient() | 5926 TestDidNavigateCommitTypeWebFrameClient() |
| 5927 : m_lastCommitType(WebHistoryInertCommit) | 5927 : m_lastCommitType(WebHistoryInertCommit) |
| 5928 { | 5928 { |
| 5929 } | 5929 } |
| 5930 | 5930 |
| 5931 virtual void didNavigateWithinPage(WebLocalFrame*, const WebHistoryItem&, We
bHistoryCommitType type) override | 5931 virtual void didNavigateWithinPage(WebLocalFrame*, const WebHistoryItem&, We
bHistoryCommitType type) override |
| 5932 { | 5932 { |
| 5933 m_lastCommitType = type; | 5933 m_lastCommitType = type; |
| 5934 } | 5934 } |
| 5935 | 5935 |
| 5936 WebHistoryCommitType lastCommitType() const { return m_lastCommitType; } | 5936 WebHistoryCommitType lastCommitType() const { return m_lastCommitType; } |
| 5937 | 5937 |
| 5938 private: | 5938 private: |
| 5939 WebHistoryCommitType m_lastCommitType; | 5939 WebHistoryCommitType m_lastCommitType; |
| 5940 }; | 5940 }; |
| 5941 | 5941 |
| 5942 TEST_P(ParametrizedWebFrameTest, SameDocumentHistoryNavigationCommitType) | 5942 TEST_P(ParameterizedWebFrameTest, SameDocumentHistoryNavigationCommitType) |
| 5943 { | 5943 { |
| 5944 registerMockedHttpURLLoad("push_state.html"); | 5944 registerMockedHttpURLLoad("push_state.html"); |
| 5945 TestDidNavigateCommitTypeWebFrameClient client; | 5945 TestDidNavigateCommitTypeWebFrameClient client; |
| 5946 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5946 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5947 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); | 5947 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "push
_state.html", true, &client); |
| 5948 RefPtrWillBePersistent<HistoryItem> item = toLocalFrame(webViewImpl->page()-
>mainFrame())->loader().currentItem(); | 5948 RefPtrWillBePersistent<HistoryItem> item = toLocalFrame(webViewImpl->page()-
>mainFrame())->loader().currentItem(); |
| 5949 runPendingTasks(); | 5949 runPendingTasks(); |
| 5950 | 5950 |
| 5951 toLocalFrame(webViewImpl->page()->mainFrame())->loader().loadHistoryItem(ite
m.get(), FrameLoadTypeBackForward, HistorySameDocumentLoad); | 5951 toLocalFrame(webViewImpl->page()->mainFrame())->loader().loadHistoryItem(ite
m.get(), FrameLoadTypeBackForward, HistorySameDocumentLoad); |
| 5952 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); | 5952 EXPECT_EQ(WebBackForwardCommit, client.lastCommitType()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 5970 bool replacesCurrentHistoryItem() { return m_replacesCurrentHistoryItem; } | 5970 bool replacesCurrentHistoryItem() { return m_replacesCurrentHistoryItem; } |
| 5971 WebFrame* frame() { return m_frame; } | 5971 WebFrame* frame() { return m_frame; } |
| 5972 | 5972 |
| 5973 private: | 5973 private: |
| 5974 bool m_replacesCurrentHistoryItem; | 5974 bool m_replacesCurrentHistoryItem; |
| 5975 WebFrame* m_frame; | 5975 WebFrame* m_frame; |
| 5976 }; | 5976 }; |
| 5977 | 5977 |
| 5978 // Test which ensures that the first navigation in a subframe will always | 5978 // Test which ensures that the first navigation in a subframe will always |
| 5979 // result in history entry being replaced and not a new one added. | 5979 // result in history entry being replaced and not a new one added. |
| 5980 TEST_P(ParametrizedWebFrameTest, DISABLED_FirstFrameNavigationReplacesHistory) | 5980 TEST_P(ParameterizedWebFrameTest, DISABLED_FirstFrameNavigationReplacesHistory) |
| 5981 { | 5981 { |
| 5982 registerMockedHttpURLLoad("history.html"); | 5982 registerMockedHttpURLLoad("history.html"); |
| 5983 registerMockedHttpURLLoad("find.html"); | 5983 registerMockedHttpURLLoad("find.html"); |
| 5984 | 5984 |
| 5985 FrameTestHelpers::WebViewHelper webViewHelper(this); | 5985 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 5986 TestHistoryWebFrameClient client; | 5986 TestHistoryWebFrameClient client; |
| 5987 webViewHelper.initializeAndLoad("about:blank", true, &client); | 5987 webViewHelper.initializeAndLoad("about:blank", true, &client); |
| 5988 EXPECT_TRUE(client.replacesCurrentHistoryItem()); | 5988 EXPECT_TRUE(client.replacesCurrentHistoryItem()); |
| 5989 | 5989 |
| 5990 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 5990 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6044 | 6044 |
| 6045 // Call javascript to make the layer scrollable, and verify it. | 6045 // Call javascript to make the layer scrollable, and verify it. |
| 6046 WebLocalFrameImpl* frame = (WebLocalFrameImpl*)webViewHelper.webView()->main
Frame(); | 6046 WebLocalFrameImpl* frame = (WebLocalFrameImpl*)webViewHelper.webView()->main
Frame(); |
| 6047 frame->executeScript(WebScriptSource("allowScroll();")); | 6047 frame->executeScript(WebScriptSource("allowScroll();")); |
| 6048 webViewHelper.webView()->layout(); | 6048 webViewHelper.webView()->layout(); |
| 6049 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); | 6049 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); |
| 6050 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); | 6050 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); |
| 6051 } | 6051 } |
| 6052 | 6052 |
| 6053 // Test that currentHistoryItem reflects the current page, not the provisional l
oad. | 6053 // Test that currentHistoryItem reflects the current page, not the provisional l
oad. |
| 6054 TEST_P(ParametrizedWebFrameTest, CurrentHistoryItem) | 6054 TEST_P(ParameterizedWebFrameTest, CurrentHistoryItem) |
| 6055 { | 6055 { |
| 6056 registerMockedHttpURLLoad("fixed_layout.html"); | 6056 registerMockedHttpURLLoad("fixed_layout.html"); |
| 6057 std::string url = m_baseURL + "fixed_layout.html"; | 6057 std::string url = m_baseURL + "fixed_layout.html"; |
| 6058 | 6058 |
| 6059 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6059 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6060 webViewHelper.initialize(); | 6060 webViewHelper.initialize(); |
| 6061 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 6061 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 6062 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); | 6062 const FrameLoader& mainFrameLoader = webViewHelper.webViewImpl()->mainFrameI
mpl()->frame()->loader(); |
| 6063 WebURLRequest request; | 6063 WebURLRequest request; |
| 6064 request.initialize(); | 6064 request.initialize(); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 6086 return 0; | 6086 return 0; |
| 6087 } | 6087 } |
| 6088 | 6088 |
| 6089 int callCount() const { return m_callCount; } | 6089 int callCount() const { return m_callCount; } |
| 6090 | 6090 |
| 6091 private: | 6091 private: |
| 6092 int m_callCount; | 6092 int m_callCount; |
| 6093 }; | 6093 }; |
| 6094 | 6094 |
| 6095 // Test that we don't crash if WebFrameClient::createChildFrame() fails. | 6095 // Test that we don't crash if WebFrameClient::createChildFrame() fails. |
| 6096 TEST_P(ParametrizedWebFrameTest, CreateChildFrameFailure) | 6096 TEST_P(ParameterizedWebFrameTest, CreateChildFrameFailure) |
| 6097 { | 6097 { |
| 6098 registerMockedHttpURLLoad("create_child_frame_fail.html"); | 6098 registerMockedHttpURLLoad("create_child_frame_fail.html"); |
| 6099 FailCreateChildFrame client; | 6099 FailCreateChildFrame client; |
| 6100 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6100 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6101 webViewHelper.initializeAndLoad(m_baseURL + "create_child_frame_fail.html",
true, &client); | 6101 webViewHelper.initializeAndLoad(m_baseURL + "create_child_frame_fail.html",
true, &client); |
| 6102 | 6102 |
| 6103 EXPECT_EQ(1, client.callCount()); | 6103 EXPECT_EQ(1, client.callCount()); |
| 6104 } | 6104 } |
| 6105 | 6105 |
| 6106 TEST_P(ParametrizedWebFrameTest, fixedPositionInFixedViewport) | 6106 TEST_P(ParameterizedWebFrameTest, fixedPositionInFixedViewport) |
| 6107 { | 6107 { |
| 6108 UseMockScrollbarSettings mockScrollbarSettings; | 6108 UseMockScrollbarSettings mockScrollbarSettings; |
| 6109 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); | 6109 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); |
| 6110 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6110 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6111 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor
t.html", true, 0, 0, enableViewportSettings); | 6111 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor
t.html", true, 0, 0, enableViewportSettings); |
| 6112 | 6112 |
| 6113 WebView* webView = webViewHelper.webView(); | 6113 WebView* webView = webViewHelper.webView(); |
| 6114 webView->resize(WebSize(100, 100)); | 6114 webView->resize(WebSize(100, 100)); |
| 6115 | 6115 |
| 6116 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc
ument(); | 6116 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc
ument(); |
| 6117 Element* bottomFixed = document->getElementById("bottom-fixed"); | 6117 Element* bottomFixed = document->getElementById("bottom-fixed"); |
| 6118 Element* topBottomFixed = document->getElementById("top-bottom-fixed"); | 6118 Element* topBottomFixed = document->getElementById("top-bottom-fixed"); |
| 6119 Element* rightFixed = document->getElementById("right-fixed"); | 6119 Element* rightFixed = document->getElementById("right-fixed"); |
| 6120 Element* leftRightFixed = document->getElementById("left-right-fixed"); | 6120 Element* leftRightFixed = document->getElementById("left-right-fixed"); |
| 6121 | 6121 |
| 6122 // The layout viewport will hit the min-scale limit of 0.25, so it'll be 400
x800. | 6122 // The layout viewport will hit the min-scale limit of 0.25, so it'll be 400
x800. |
| 6123 webView->resize(WebSize(100, 200)); | 6123 webView->resize(WebSize(100, 200)); |
| 6124 EXPECT_EQ(800, bottomFixed->offsetTop() + bottomFixed->offsetHeight()); | 6124 EXPECT_EQ(800, bottomFixed->offsetTop() + bottomFixed->offsetHeight()); |
| 6125 EXPECT_EQ(800, topBottomFixed->offsetHeight()); | 6125 EXPECT_EQ(800, topBottomFixed->offsetHeight()); |
| 6126 | 6126 |
| 6127 // Now the layout viewport hits the content width limit of 500px so it'll be
500x500. | 6127 // Now the layout viewport hits the content width limit of 500px so it'll be
500x500. |
| 6128 webView->resize(WebSize(200, 200)); | 6128 webView->resize(WebSize(200, 200)); |
| 6129 EXPECT_EQ(500, rightFixed->offsetLeft() + rightFixed->offsetWidth()); | 6129 EXPECT_EQ(500, rightFixed->offsetLeft() + rightFixed->offsetWidth()); |
| 6130 EXPECT_EQ(500, leftRightFixed->offsetWidth()); | 6130 EXPECT_EQ(500, leftRightFixed->offsetWidth()); |
| 6131 } | 6131 } |
| 6132 | 6132 |
| 6133 TEST_P(ParametrizedWebFrameTest, FrameViewMoveWithSetFrameRect) | 6133 TEST_P(ParameterizedWebFrameTest, FrameViewMoveWithSetFrameRect) |
| 6134 { | 6134 { |
| 6135 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6135 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6136 webViewHelper.initializeAndLoad("about:blank"); | 6136 webViewHelper.initializeAndLoad("about:blank"); |
| 6137 webViewHelper.webViewImpl()->resize(WebSize(200, 200)); | 6137 webViewHelper.webViewImpl()->resize(WebSize(200, 200)); |
| 6138 webViewHelper.webViewImpl()->layout(); | 6138 webViewHelper.webViewImpl()->layout(); |
| 6139 | 6139 |
| 6140 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 6140 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
| 6141 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect()); | 6141 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect()); |
| 6142 frameView->setFrameRect(IntRect(100, 100, 200, 200)); | 6142 frameView->setFrameRect(IntRect(100, 100, 200, 200)); |
| 6143 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect()); | 6143 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect()); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6201 // should allow an extra 0.5px of scrolling in the pinch viewport. Make | 6201 // should allow an extra 0.5px of scrolling in the pinch viewport. Make |
| 6202 // sure we're not losing any pixels when applying the adjustment on the | 6202 // sure we're not losing any pixels when applying the adjustment on the |
| 6203 // main frame. | 6203 // main frame. |
| 6204 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 1.0f / topControlsHeight); | 6204 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 1.0f / topControlsHeight); |
| 6205 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); | 6205 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); |
| 6206 | 6206 |
| 6207 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 2.0f / topControlsHeight); | 6207 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 2.0f / topControlsHeight); |
| 6208 EXPECT_POINT_EQ(IntPoint(0, 1903), frameView->maximumScrollPosition()); | 6208 EXPECT_POINT_EQ(IntPoint(0, 1903), frameView->maximumScrollPosition()); |
| 6209 } | 6209 } |
| 6210 | 6210 |
| 6211 TEST_P(ParametrizedWebFrameTest, FullscreenLayerSize) | 6211 TEST_P(ParameterizedWebFrameTest, FullscreenLayerSize) |
| 6212 { | 6212 { |
| 6213 FakeCompositingWebViewClient client; | 6213 FakeCompositingWebViewClient client; |
| 6214 registerMockedHttpURLLoad("fullscreen_div.html"); | 6214 registerMockedHttpURLLoad("fullscreen_div.html"); |
| 6215 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6215 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6216 int viewportWidth = 640; | 6216 int viewportWidth = 640; |
| 6217 int viewportHeight = 480; | 6217 int viewportHeight = 480; |
| 6218 client.m_screenInfo.rect.width = viewportWidth; | 6218 client.m_screenInfo.rect.width = viewportWidth; |
| 6219 client.m_screenInfo.rect.height = viewportHeight; | 6219 client.m_screenInfo.rect.height = viewportHeight; |
| 6220 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_div.html", true, 0, &client, configureAndroid); | 6220 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_div.html", true, 0, &client, configureAndroid); |
| 6221 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); | 6221 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6269 | 6269 |
| 6270 // Verify that the main frame is scrollable upon exiting fullscreen. | 6270 // Verify that the main frame is scrollable upon exiting fullscreen. |
| 6271 webViewImpl->didExitFullScreen(); | 6271 webViewImpl->didExitFullScreen(); |
| 6272 webViewImpl->layout(); | 6272 webViewImpl->layout(); |
| 6273 ASSERT_FALSE(Fullscreen::isFullScreen(*document)); | 6273 ASSERT_FALSE(Fullscreen::isFullScreen(*document)); |
| 6274 webScrollLayer = webViewImpl->compositor()->scrollLayer()->platformLayer(); | 6274 webScrollLayer = webViewImpl->compositor()->scrollLayer()->platformLayer(); |
| 6275 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); | 6275 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); |
| 6276 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); | 6276 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); |
| 6277 } | 6277 } |
| 6278 | 6278 |
| 6279 TEST_P(ParametrizedWebFrameTest, FullscreenMainFrame) | 6279 TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) |
| 6280 { | 6280 { |
| 6281 FakeCompositingWebViewClient client; | 6281 FakeCompositingWebViewClient client; |
| 6282 registerMockedHttpURLLoad("fullscreen_div.html"); | 6282 registerMockedHttpURLLoad("fullscreen_div.html"); |
| 6283 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6283 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6284 int viewportWidth = 640; | 6284 int viewportWidth = 640; |
| 6285 int viewportHeight = 480; | 6285 int viewportHeight = 480; |
| 6286 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_div.html", true, 0, &client, configureAndroid); | 6286 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_div.html", true, 0, &client, configureAndroid); |
| 6287 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); | 6287 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); |
| 6288 webViewImpl->layout(); | 6288 webViewImpl->layout(); |
| 6289 | 6289 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 6300 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); | 6300 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); |
| 6301 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); | 6301 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); |
| 6302 | 6302 |
| 6303 // Verify the main frame still behaves correctly after a resize. | 6303 // Verify the main frame still behaves correctly after a resize. |
| 6304 webViewImpl->resize(WebSize(viewportHeight, viewportWidth)); | 6304 webViewImpl->resize(WebSize(viewportHeight, viewportWidth)); |
| 6305 ASSERT_TRUE(webScrollLayer->scrollable()); | 6305 ASSERT_TRUE(webScrollLayer->scrollable()); |
| 6306 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); | 6306 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); |
| 6307 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); | 6307 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); |
| 6308 } | 6308 } |
| 6309 | 6309 |
| 6310 TEST_P(ParametrizedWebFrameTest, FullscreenSubframe) | 6310 TEST_P(ParameterizedWebFrameTest, FullscreenSubframe) |
| 6311 { | 6311 { |
| 6312 FakeCompositingWebViewClient client; | 6312 FakeCompositingWebViewClient client; |
| 6313 registerMockedHttpURLLoad("fullscreen_iframe.html"); | 6313 registerMockedHttpURLLoad("fullscreen_iframe.html"); |
| 6314 registerMockedHttpURLLoad("fullscreen_div.html"); | 6314 registerMockedHttpURLLoad("fullscreen_div.html"); |
| 6315 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6315 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6316 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_iframe.html", true, 0, &client, configureAndroid); | 6316 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full
screen_iframe.html", true, 0, &client, configureAndroid); |
| 6317 int viewportWidth = 640; | 6317 int viewportWidth = 640; |
| 6318 int viewportHeight = 480; | 6318 int viewportHeight = 480; |
| 6319 client.m_screenInfo.rect.width = viewportWidth; | 6319 client.m_screenInfo.rect.width = viewportWidth; |
| 6320 client.m_screenInfo.rect.height = viewportHeight; | 6320 client.m_screenInfo.rect.height = viewportHeight; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6366 webViewImpl->didEnterFullScreen(); | 6366 webViewImpl->didEnterFullScreen(); |
| 6367 webViewImpl->layout(); | 6367 webViewImpl->layout(); |
| 6368 | 6368 |
| 6369 // Verify that the video layer is visible in fullscreen. | 6369 // Verify that the video layer is visible in fullscreen. |
| 6370 DeprecatedPaintLayer* paintLayer = videoFullscreen->layoutObject()->enclosi
ngLayer(); | 6370 DeprecatedPaintLayer* paintLayer = videoFullscreen->layoutObject()->enclosi
ngLayer(); |
| 6371 GraphicsLayer* graphicsLayer = paintLayer->graphicsLayerBacking(); | 6371 GraphicsLayer* graphicsLayer = paintLayer->graphicsLayerBacking(); |
| 6372 EXPECT_TRUE(graphicsLayer->contentsAreVisible()); | 6372 EXPECT_TRUE(graphicsLayer->contentsAreVisible()); |
| 6373 context->notifyContextDestroyed(); | 6373 context->notifyContextDestroyed(); |
| 6374 } | 6374 } |
| 6375 | 6375 |
| 6376 TEST_P(ParametrizedWebFrameTest, FullscreenWithTinyViewport) | 6376 TEST_P(ParameterizedWebFrameTest, FullscreenWithTinyViewport) |
| 6377 { | 6377 { |
| 6378 FakeCompositingWebViewClient client; | 6378 FakeCompositingWebViewClient client; |
| 6379 registerMockedHttpURLLoad("viewport-tiny.html"); | 6379 registerMockedHttpURLLoad("viewport-tiny.html"); |
| 6380 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6380 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6381 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "view
port-tiny.html", true, 0, &client, configureAndroid); | 6381 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "view
port-tiny.html", true, 0, &client, configureAndroid); |
| 6382 int viewportWidth = 384; | 6382 int viewportWidth = 384; |
| 6383 int viewportHeight = 640; | 6383 int viewportHeight = 640; |
| 6384 client.m_screenInfo.rect.width = viewportWidth; | 6384 client.m_screenInfo.rect.width = viewportWidth; |
| 6385 client.m_screenInfo.rect.height = viewportHeight; | 6385 client.m_screenInfo.rect.height = viewportHeight; |
| 6386 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); | 6386 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 6406 | 6406 |
| 6407 webViewImpl->didExitFullScreen(); | 6407 webViewImpl->didExitFullScreen(); |
| 6408 webViewImpl->layout(); | 6408 webViewImpl->layout(); |
| 6409 EXPECT_EQ(320, layoutView->logicalWidth().floor()); | 6409 EXPECT_EQ(320, layoutView->logicalWidth().floor()); |
| 6410 EXPECT_EQ(533, layoutView->logicalHeight().floor()); | 6410 EXPECT_EQ(533, layoutView->logicalHeight().floor()); |
| 6411 EXPECT_FLOAT_EQ(1.2, webViewImpl->pageScaleFactor()); | 6411 EXPECT_FLOAT_EQ(1.2, webViewImpl->pageScaleFactor()); |
| 6412 EXPECT_FLOAT_EQ(1.2, webViewImpl->minimumPageScaleFactor()); | 6412 EXPECT_FLOAT_EQ(1.2, webViewImpl->minimumPageScaleFactor()); |
| 6413 EXPECT_FLOAT_EQ(5.0, webViewImpl->maximumPageScaleFactor()); | 6413 EXPECT_FLOAT_EQ(5.0, webViewImpl->maximumPageScaleFactor()); |
| 6414 } | 6414 } |
| 6415 | 6415 |
| 6416 TEST_P(ParametrizedWebFrameTest, FullscreenResizeWithTinyViewport) | 6416 TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) |
| 6417 { | 6417 { |
| 6418 FakeCompositingWebViewClient client; | 6418 FakeCompositingWebViewClient client; |
| 6419 registerMockedHttpURLLoad("viewport-tiny.html"); | 6419 registerMockedHttpURLLoad("viewport-tiny.html"); |
| 6420 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6420 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6421 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "view
port-tiny.html", true, 0, &client, configureAndroid); | 6421 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "view
port-tiny.html", true, 0, &client, configureAndroid); |
| 6422 int viewportWidth = 384; | 6422 int viewportWidth = 384; |
| 6423 int viewportHeight = 640; | 6423 int viewportHeight = 640; |
| 6424 client.m_screenInfo.rect.width = viewportWidth; | 6424 client.m_screenInfo.rect.width = viewportWidth; |
| 6425 client.m_screenInfo.rect.height = viewportHeight; | 6425 client.m_screenInfo.rect.height = viewportHeight; |
| 6426 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); | 6426 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 6452 | 6452 |
| 6453 webViewImpl->didExitFullScreen(); | 6453 webViewImpl->didExitFullScreen(); |
| 6454 webViewImpl->layout(); | 6454 webViewImpl->layout(); |
| 6455 EXPECT_EQ(320, layoutView->logicalWidth().floor()); | 6455 EXPECT_EQ(320, layoutView->logicalWidth().floor()); |
| 6456 EXPECT_EQ(192, layoutView->logicalHeight().floor()); | 6456 EXPECT_EQ(192, layoutView->logicalHeight().floor()); |
| 6457 EXPECT_FLOAT_EQ(2, webViewImpl->pageScaleFactor()); | 6457 EXPECT_FLOAT_EQ(2, webViewImpl->pageScaleFactor()); |
| 6458 EXPECT_FLOAT_EQ(2, webViewImpl->minimumPageScaleFactor()); | 6458 EXPECT_FLOAT_EQ(2, webViewImpl->minimumPageScaleFactor()); |
| 6459 EXPECT_FLOAT_EQ(5.0, webViewImpl->maximumPageScaleFactor()); | 6459 EXPECT_FLOAT_EQ(5.0, webViewImpl->maximumPageScaleFactor()); |
| 6460 } | 6460 } |
| 6461 | 6461 |
| 6462 TEST_P(ParametrizedWebFrameTest, LayoutBlockPercentHeightDescendants) | 6462 TEST_P(ParameterizedWebFrameTest, LayoutBlockPercentHeightDescendants) |
| 6463 { | 6463 { |
| 6464 registerMockedHttpURLLoad("percent-height-descendants.html"); | 6464 registerMockedHttpURLLoad("percent-height-descendants.html"); |
| 6465 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6465 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6466 webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html
"); | 6466 webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html
"); |
| 6467 | 6467 |
| 6468 WebView* webView = webViewHelper.webView(); | 6468 WebView* webView = webViewHelper.webView(); |
| 6469 webView->resize(WebSize(800, 800)); | 6469 webView->resize(WebSize(800, 800)); |
| 6470 webView->layout(); | 6470 webView->layout(); |
| 6471 | 6471 |
| 6472 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc
ument(); | 6472 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc
ument(); |
| 6473 LayoutBlock* container = toLayoutBlock(document->getElementById("container")
->layoutObject()); | 6473 LayoutBlock* container = toLayoutBlock(document->getElementById("container")
->layoutObject()); |
| 6474 LayoutBox* percentHeightInAnonymous = toLayoutBox(document->getElementById("
percent-height-in-anonymous")->layoutObject()); | 6474 LayoutBox* percentHeightInAnonymous = toLayoutBox(document->getElementById("
percent-height-in-anonymous")->layoutObject()); |
| 6475 LayoutBox* percentHeightDirectChild = toLayoutBox(document->getElementById("
percent-height-direct-child")->layoutObject()); | 6475 LayoutBox* percentHeightDirectChild = toLayoutBox(document->getElementById("
percent-height-direct-child")->layoutObject()); |
| 6476 | 6476 |
| 6477 EXPECT_TRUE(LayoutBlock::hasPercentHeightDescendant(percentHeightInAnonymous
)); | 6477 EXPECT_TRUE(LayoutBlock::hasPercentHeightDescendant(percentHeightInAnonymous
)); |
| 6478 EXPECT_TRUE(LayoutBlock::hasPercentHeightDescendant(percentHeightDirectChild
)); | 6478 EXPECT_TRUE(LayoutBlock::hasPercentHeightDescendant(percentHeightDirectChild
)); |
| 6479 | 6479 |
| 6480 ASSERT_TRUE(container->percentHeightDescendants()); | 6480 ASSERT_TRUE(container->percentHeightDescendants()); |
| 6481 ASSERT_TRUE(container->hasPercentHeightDescendants()); | 6481 ASSERT_TRUE(container->hasPercentHeightDescendants()); |
| 6482 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); | 6482 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); |
| 6483 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
nonymous)); | 6483 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA
nonymous)); |
| 6484 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
ectChild)); | 6484 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir
ectChild)); |
| 6485 | 6485 |
| 6486 LayoutBlock* anonymousBlock = percentHeightInAnonymous->containingBlock(); | 6486 LayoutBlock* anonymousBlock = percentHeightInAnonymous->containingBlock(); |
| 6487 EXPECT_TRUE(anonymousBlock->isAnonymous()); | 6487 EXPECT_TRUE(anonymousBlock->isAnonymous()); |
| 6488 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); | 6488 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); |
| 6489 } | 6489 } |
| 6490 | 6490 |
| 6491 TEST_P(ParametrizedWebFrameTest, HasVisibleContentOnVisibleFrames) | 6491 TEST_P(ParameterizedWebFrameTest, HasVisibleContentOnVisibleFrames) |
| 6492 { | 6492 { |
| 6493 registerMockedHttpURLLoad("visible_frames.html"); | 6493 registerMockedHttpURLLoad("visible_frames.html"); |
| 6494 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6494 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6495 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "visi
ble_frames.html"); | 6495 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "visi
ble_frames.html"); |
| 6496 for (WebFrame* frame = webViewImpl->mainFrameImpl()->traverseNext(false); fr
ame; frame = frame->traverseNext(false)) { | 6496 for (WebFrame* frame = webViewImpl->mainFrameImpl()->traverseNext(false); fr
ame; frame = frame->traverseNext(false)) { |
| 6497 EXPECT_TRUE(frame->hasVisibleContent()); | 6497 EXPECT_TRUE(frame->hasVisibleContent()); |
| 6498 } | 6498 } |
| 6499 } | 6499 } |
| 6500 | 6500 |
| 6501 TEST_P(ParametrizedWebFrameTest, HasVisibleContentOnHiddenFrames) | 6501 TEST_P(ParameterizedWebFrameTest, HasVisibleContentOnHiddenFrames) |
| 6502 { | 6502 { |
| 6503 registerMockedHttpURLLoad("hidden_frames.html"); | 6503 registerMockedHttpURLLoad("hidden_frames.html"); |
| 6504 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6504 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6505 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "hidd
en_frames.html"); | 6505 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "hidd
en_frames.html"); |
| 6506 for (WebFrame* frame = webViewImpl->mainFrameImpl()->traverseNext(false); fr
ame; frame = frame->traverseNext(false)) { | 6506 for (WebFrame* frame = webViewImpl->mainFrameImpl()->traverseNext(false); fr
ame; frame = frame->traverseNext(false)) { |
| 6507 EXPECT_FALSE(frame->hasVisibleContent()); | 6507 EXPECT_FALSE(frame->hasVisibleContent()); |
| 6508 } | 6508 } |
| 6509 } | 6509 } |
| 6510 | 6510 |
| 6511 class ManifestChangeWebFrameClient : public FrameTestHelpers::TestWebFrameClient
{ | 6511 class ManifestChangeWebFrameClient : public FrameTestHelpers::TestWebFrameClient
{ |
| 6512 public: | 6512 public: |
| 6513 ManifestChangeWebFrameClient() : m_manifestChangeCount(0) { } | 6513 ManifestChangeWebFrameClient() : m_manifestChangeCount(0) { } |
| 6514 virtual void didChangeManifest(WebLocalFrame*) override | 6514 virtual void didChangeManifest(WebLocalFrame*) override |
| 6515 { | 6515 { |
| 6516 ++m_manifestChangeCount; | 6516 ++m_manifestChangeCount; |
| 6517 } | 6517 } |
| 6518 | 6518 |
| 6519 int manifestChangeCount() { return m_manifestChangeCount; } | 6519 int manifestChangeCount() { return m_manifestChangeCount; } |
| 6520 | 6520 |
| 6521 private: | 6521 private: |
| 6522 int m_manifestChangeCount; | 6522 int m_manifestChangeCount; |
| 6523 }; | 6523 }; |
| 6524 | 6524 |
| 6525 TEST_P(ParametrizedWebFrameTest, NotifyManifestChange) | 6525 TEST_P(ParameterizedWebFrameTest, NotifyManifestChange) |
| 6526 { | 6526 { |
| 6527 registerMockedHttpURLLoad("link-manifest-change.html"); | 6527 registerMockedHttpURLLoad("link-manifest-change.html"); |
| 6528 | 6528 |
| 6529 ManifestChangeWebFrameClient webFrameClient; | 6529 ManifestChangeWebFrameClient webFrameClient; |
| 6530 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6530 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6531 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); | 6531 webViewHelper.initializeAndLoad(m_baseURL + "link-manifest-change.html", tru
e, &webFrameClient); |
| 6532 | 6532 |
| 6533 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); | 6533 EXPECT_EQ(14, webFrameClient.manifestChangeCount()); |
| 6534 } | 6534 } |
| 6535 | 6535 |
| 6536 static ResourcePtr<Resource> fetchManifest(Document* document, const KURL& url) | 6536 static ResourcePtr<Resource> fetchManifest(Document* document, const KURL& url) |
| 6537 { | 6537 { |
| 6538 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); | 6538 FetchRequest fetchRequest = FetchRequest(ResourceRequest(url), FetchInitiato
rInfo()); |
| 6539 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); | 6539 fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::Reque
stContextManifest); |
| 6540 | 6540 |
| 6541 return document->fetcher()->fetchSynchronously(fetchRequest); | 6541 return document->fetcher()->fetchSynchronously(fetchRequest); |
| 6542 } | 6542 } |
| 6543 | 6543 |
| 6544 TEST_P(ParametrizedWebFrameTest, ManifestFetch) | 6544 TEST_P(ParameterizedWebFrameTest, ManifestFetch) |
| 6545 { | 6545 { |
| 6546 registerMockedHttpURLLoad("foo.html"); | 6546 registerMockedHttpURLLoad("foo.html"); |
| 6547 registerMockedHttpURLLoad("link-manifest-fetch.json"); | 6547 registerMockedHttpURLLoad("link-manifest-fetch.json"); |
| 6548 | 6548 |
| 6549 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6549 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6550 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6550 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6551 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6551 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6552 | 6552 |
| 6553 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL +
"link-manifest-fetch.json")); | 6553 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_baseURL +
"link-manifest-fetch.json")); |
| 6554 | 6554 |
| 6555 EXPECT_TRUE(resource->isLoaded()); | 6555 EXPECT_TRUE(resource->isLoaded()); |
| 6556 } | 6556 } |
| 6557 | 6557 |
| 6558 TEST_P(ParametrizedWebFrameTest, ManifestCSPFetchAllow) | 6558 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) |
| 6559 { | 6559 { |
| 6560 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6560 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6561 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); | 6561 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); |
| 6562 | 6562 |
| 6563 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6563 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6564 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6564 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6565 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6565 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6566 | 6566 |
| 6567 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); | 6567 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); |
| 6568 | 6568 |
| 6569 EXPECT_TRUE(resource->isLoaded()); | 6569 EXPECT_TRUE(resource->isLoaded()); |
| 6570 } | 6570 } |
| 6571 | 6571 |
| 6572 TEST_P(ParametrizedWebFrameTest, ManifestCSPFetchSelf) | 6572 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) |
| 6573 { | 6573 { |
| 6574 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6574 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6575 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); | 6575 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); |
| 6576 | 6576 |
| 6577 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6577 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6578 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6578 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6579 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6579 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6580 | 6580 |
| 6581 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); | 6581 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); |
| 6582 | 6582 |
| 6583 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. | 6583 EXPECT_EQ(0, resource.get()); // Fetching resource wasn't allowed. |
| 6584 } | 6584 } |
| 6585 | 6585 |
| 6586 TEST_P(ParametrizedWebFrameTest, ManifestCSPFetchSelfReportOnly) | 6586 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) |
| 6587 { | 6587 { |
| 6588 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); | 6588 URLTestHelpers::registerMockedURLLoad(toKURL(m_notBaseURL + "link-manifest-f
etch.json"), "link-manifest-fetch.json"); |
| 6589 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); | 6589 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", /* repor
t only */ true); |
| 6590 | 6590 |
| 6591 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6591 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6592 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); | 6592 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); |
| 6593 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); | 6593 Document* document = toWebLocalFrameImpl(webViewHelper.webViewImpl()->mainFr
ame())->frame()->document(); |
| 6594 | 6594 |
| 6595 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); | 6595 ResourcePtr<Resource> resource = fetchManifest(document, toKURL(m_notBaseURL
+ "link-manifest-fetch.json")); |
| 6596 | 6596 |
| 6597 EXPECT_TRUE(resource->isLoaded()); | 6597 EXPECT_TRUE(resource->isLoaded()); |
| 6598 } | 6598 } |
| 6599 | 6599 |
| 6600 | 6600 |
| 6601 class DefaultPresentationChangeWebFrameClient : public FrameTestHelpers::TestWeb
FrameClient { | 6601 class DefaultPresentationChangeWebFrameClient : public FrameTestHelpers::TestWeb
FrameClient { |
| 6602 public: | 6602 public: |
| 6603 DefaultPresentationChangeWebFrameClient() : m_defaultPresentationChangeCount
(0) { } | 6603 DefaultPresentationChangeWebFrameClient() : m_defaultPresentationChangeCount
(0) { } |
| 6604 virtual void didChangeDefaultPresentation(WebLocalFrame*) override | 6604 virtual void didChangeDefaultPresentation(WebLocalFrame*) override |
| 6605 { | 6605 { |
| 6606 ++m_defaultPresentationChangeCount; | 6606 ++m_defaultPresentationChangeCount; |
| 6607 } | 6607 } |
| 6608 | 6608 |
| 6609 int defaultPresentationChangeCount() { return m_defaultPresentationChangeCou
nt; } | 6609 int defaultPresentationChangeCount() { return m_defaultPresentationChangeCou
nt; } |
| 6610 | 6610 |
| 6611 private: | 6611 private: |
| 6612 int m_defaultPresentationChangeCount; | 6612 int m_defaultPresentationChangeCount; |
| 6613 }; | 6613 }; |
| 6614 | 6614 |
| 6615 TEST_P(ParametrizedWebFrameTest, NotifyDefaultPresentationChange) | 6615 TEST_P(ParameterizedWebFrameTest, NotifyDefaultPresentationChange) |
| 6616 { | 6616 { |
| 6617 registerMockedHttpURLLoad("link-presentation-url-change.html"); | 6617 registerMockedHttpURLLoad("link-presentation-url-change.html"); |
| 6618 | 6618 |
| 6619 DefaultPresentationChangeWebFrameClient webFrameClient; | 6619 DefaultPresentationChangeWebFrameClient webFrameClient; |
| 6620 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6620 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6621 webViewHelper.initializeAndLoad(m_baseURL + "link-presentation-url-change.ht
ml", true, &webFrameClient); | 6621 webViewHelper.initializeAndLoad(m_baseURL + "link-presentation-url-change.ht
ml", true, &webFrameClient); |
| 6622 | 6622 |
| 6623 EXPECT_EQ(14, webFrameClient.defaultPresentationChangeCount()); | 6623 EXPECT_EQ(14, webFrameClient.defaultPresentationChangeCount()); |
| 6624 } | 6624 } |
| 6625 | 6625 |
| 6626 | 6626 |
| 6627 TEST_P(ParametrizedWebFrameTest, ReloadBypassingCache) | 6627 TEST_P(ParameterizedWebFrameTest, ReloadBypassingCache) |
| 6628 { | 6628 { |
| 6629 // Check that a reload ignoring cache on a frame will result in the cache | 6629 // Check that a reload ignoring cache on a frame will result in the cache |
| 6630 // policy of the request being set to ReloadBypassingCache. | 6630 // policy of the request being set to ReloadBypassingCache. |
| 6631 registerMockedHttpURLLoad("foo.html"); | 6631 registerMockedHttpURLLoad("foo.html"); |
| 6632 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6632 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6633 webViewHelper.initializeAndLoad(m_baseURL + "foo.html", true); | 6633 webViewHelper.initializeAndLoad(m_baseURL + "foo.html", true); |
| 6634 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 6634 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 6635 FrameTestHelpers::reloadFrameIgnoringCache(frame); | 6635 FrameTestHelpers::reloadFrameIgnoringCache(frame); |
| 6636 EXPECT_EQ(WebURLRequest::ReloadBypassingCache, frame->dataSource()->request(
).cachePolicy()); | 6636 EXPECT_EQ(WebURLRequest::ReloadBypassingCache, frame->dataSource()->request(
).cachePolicy()); |
| 6637 } | 6637 } |
| 6638 | 6638 |
| 6639 static void nodeImageTestValidation(const IntSize& referenceBitmapSize, DragImag
e* dragImage) | 6639 static void nodeImageTestValidation(const IntSize& referenceBitmapSize, DragImag
e* dragImage) |
| 6640 { | 6640 { |
| 6641 // Prepare the reference bitmap. | 6641 // Prepare the reference bitmap. |
| 6642 SkBitmap bitmap; | 6642 SkBitmap bitmap; |
| 6643 bitmap.allocN32Pixels(referenceBitmapSize.width(), referenceBitmapSize.heigh
t()); | 6643 bitmap.allocN32Pixels(referenceBitmapSize.width(), referenceBitmapSize.heigh
t()); |
| 6644 SkCanvas canvas(bitmap); | 6644 SkCanvas canvas(bitmap); |
| 6645 canvas.drawColor(SK_ColorGREEN); | 6645 canvas.drawColor(SK_ColorGREEN); |
| 6646 | 6646 |
| 6647 EXPECT_EQ(referenceBitmapSize.width(), dragImage->size().width()); | 6647 EXPECT_EQ(referenceBitmapSize.width(), dragImage->size().width()); |
| 6648 EXPECT_EQ(referenceBitmapSize.height(), dragImage->size().height()); | 6648 EXPECT_EQ(referenceBitmapSize.height(), dragImage->size().height()); |
| 6649 const SkBitmap& dragBitmap = dragImage->bitmap(); | 6649 const SkBitmap& dragBitmap = dragImage->bitmap(); |
| 6650 SkAutoLockPixels lockPixel(dragBitmap); | 6650 SkAutoLockPixels lockPixel(dragBitmap); |
| 6651 EXPECT_EQ(0, memcmp(bitmap.getPixels(), dragBitmap.getPixels(), bitmap.getSi
ze())); | 6651 EXPECT_EQ(0, memcmp(bitmap.getPixels(), dragBitmap.getPixels(), bitmap.getSi
ze())); |
| 6652 } | 6652 } |
| 6653 | 6653 |
| 6654 TEST_P(ParametrizedWebFrameTest, NodeImageTestCSSTransform) | 6654 TEST_P(ParameterizedWebFrameTest, NodeImageTestCSSTransform) |
| 6655 { | 6655 { |
| 6656 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6656 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6657 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-css-transform")); | 6657 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-css-transform")); |
| 6658 EXPECT_TRUE(dragImage); | 6658 EXPECT_TRUE(dragImage); |
| 6659 | 6659 |
| 6660 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); | 6660 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); |
| 6661 } | 6661 } |
| 6662 | 6662 |
| 6663 TEST_P(ParametrizedWebFrameTest, NodeImageTestCSS3DTransform) | 6663 TEST_P(ParameterizedWebFrameTest, NodeImageTestCSS3DTransform) |
| 6664 { | 6664 { |
| 6665 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6665 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6666 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-css-3dtransform")); | 6666 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-css-3dtransform")); |
| 6667 EXPECT_TRUE(dragImage); | 6667 EXPECT_TRUE(dragImage); |
| 6668 | 6668 |
| 6669 nodeImageTestValidation(IntSize(20, 40), dragImage.get()); | 6669 nodeImageTestValidation(IntSize(20, 40), dragImage.get()); |
| 6670 } | 6670 } |
| 6671 | 6671 |
| 6672 TEST_P(ParametrizedWebFrameTest, NodeImageTestInlineBlock) | 6672 TEST_P(ParameterizedWebFrameTest, NodeImageTestInlineBlock) |
| 6673 { | 6673 { |
| 6674 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6674 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6675 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-inlineblock")); | 6675 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-inlineblock")); |
| 6676 EXPECT_TRUE(dragImage); | 6676 EXPECT_TRUE(dragImage); |
| 6677 | 6677 |
| 6678 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); | 6678 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); |
| 6679 } | 6679 } |
| 6680 | 6680 |
| 6681 TEST_P(ParametrizedWebFrameTest, NodeImageTestFloatLeft) | 6681 TEST_P(ParameterizedWebFrameTest, NodeImageTestFloatLeft) |
| 6682 { | 6682 { |
| 6683 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6683 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6684 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-float-left-overflow-hidden")); | 6684 OwnPtr<DragImage> dragImage = nodeImageTestSetup(&webViewHelper, std::string
("case-float-left-overflow-hidden")); |
| 6685 EXPECT_TRUE(dragImage); | 6685 EXPECT_TRUE(dragImage); |
| 6686 | 6686 |
| 6687 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); | 6687 nodeImageTestValidation(IntSize(40, 40), dragImage.get()); |
| 6688 } | 6688 } |
| 6689 | 6689 |
| 6690 // Crashes on Android: http://crbug.com/403804 | 6690 // Crashes on Android: http://crbug.com/403804 |
| 6691 #if OS(ANDROID) | 6691 #if OS(ANDROID) |
| 6692 TEST_P(ParametrizedWebFrameTest, DISABLED_PrintingBasic) | 6692 TEST_P(ParameterizedWebFrameTest, DISABLED_PrintingBasic) |
| 6693 #else | 6693 #else |
| 6694 TEST_P(ParametrizedWebFrameTest, PrintingBasic) | 6694 TEST_P(ParameterizedWebFrameTest, PrintingBasic) |
| 6695 #endif | 6695 #endif |
| 6696 { | 6696 { |
| 6697 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6697 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6698 webViewHelper.initializeAndLoad("data:text/html,Hello, world."); | 6698 webViewHelper.initializeAndLoad("data:text/html,Hello, world."); |
| 6699 | 6699 |
| 6700 WebFrame* frame = webViewHelper.webView()->mainFrame(); | 6700 WebFrame* frame = webViewHelper.webView()->mainFrame(); |
| 6701 | 6701 |
| 6702 WebPrintParams printParams; | 6702 WebPrintParams printParams; |
| 6703 printParams.printContentArea.width = 500; | 6703 printParams.printContentArea.width = 500; |
| 6704 printParams.printContentArea.height = 500; | 6704 printParams.printContentArea.height = 500; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 6727 | 6727 |
| 6728 private: | 6728 private: |
| 6729 virtual void didChangeThemeColor() | 6729 virtual void didChangeThemeColor() |
| 6730 { | 6730 { |
| 6731 m_didNotify = true; | 6731 m_didNotify = true; |
| 6732 } | 6732 } |
| 6733 | 6733 |
| 6734 bool m_didNotify; | 6734 bool m_didNotify; |
| 6735 }; | 6735 }; |
| 6736 | 6736 |
| 6737 TEST_P(ParametrizedWebFrameTest, ThemeColor) | 6737 TEST_P(ParameterizedWebFrameTest, ThemeColor) |
| 6738 { | 6738 { |
| 6739 registerMockedHttpURLLoad("theme_color_test.html"); | 6739 registerMockedHttpURLLoad("theme_color_test.html"); |
| 6740 FrameTestHelpers::WebViewHelper webViewHelper(this); | 6740 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 6741 ThemeColorTestWebFrameClient client; | 6741 ThemeColorTestWebFrameClient client; |
| 6742 webViewHelper.initializeAndLoad(m_baseURL + "theme_color_test.html", true, &
client); | 6742 webViewHelper.initializeAndLoad(m_baseURL + "theme_color_test.html", true, &
client); |
| 6743 EXPECT_TRUE(client.didNotify()); | 6743 EXPECT_TRUE(client.didNotify()); |
| 6744 WebLocalFrameImpl* frame = webViewHelper.webViewImpl()->mainFrameImpl(); | 6744 WebLocalFrameImpl* frame = webViewHelper.webViewImpl()->mainFrameImpl(); |
| 6745 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); | 6745 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); |
| 6746 // Change color by rgb. | 6746 // Change color by rgb. |
| 6747 client.reset(); | 6747 client.reset(); |
| 6748 frame->executeScript(WebScriptSource("document.getElementById('tc1').setAttr
ibute('content', 'rgb(0, 0, 0)');")); | 6748 frame->executeScript(WebScriptSource("document.getElementById('tc1').setAttr
ibute('content', 'rgb(0, 0, 0)');")); |
| 6749 EXPECT_TRUE(client.didNotify()); | 6749 EXPECT_TRUE(client.didNotify()); |
| 6750 EXPECT_EQ(0xff000000, frame->document().themeColor()); | 6750 EXPECT_EQ(0xff000000, frame->document().themeColor()); |
| 6751 // Change color by hsl. | 6751 // Change color by hsl. |
| 6752 client.reset(); | 6752 client.reset(); |
| 6753 frame->executeScript(WebScriptSource("document.getElementById('tc1').setAttr
ibute('content', 'hsl(240,100%, 50%)');")); | 6753 frame->executeScript(WebScriptSource("document.getElementById('tc1').setAttr
ibute('content', 'hsl(240,100%, 50%)');")); |
| 6754 EXPECT_TRUE(client.didNotify()); | 6754 EXPECT_TRUE(client.didNotify()); |
| 6755 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); | 6755 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); |
| 6756 // Change of second theme-color meta tag will not change frame's theme | 6756 // Change of second theme-color meta tag will not change frame's theme |
| 6757 // color. | 6757 // color. |
| 6758 client.reset(); | 6758 client.reset(); |
| 6759 frame->executeScript(WebScriptSource("document.getElementById('tc2').setAttr
ibute('content', '#00FF00');")); | 6759 frame->executeScript(WebScriptSource("document.getElementById('tc2').setAttr
ibute('content', '#00FF00');")); |
| 6760 EXPECT_TRUE(client.didNotify()); | 6760 EXPECT_TRUE(client.didNotify()); |
| 6761 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); | 6761 EXPECT_EQ(0xff0000ff, frame->document().themeColor()); |
| 6762 } | 6762 } |
| 6763 | 6763 |
| 6764 // Make sure that an embedder-triggered detach with a remote frame parent | 6764 // Make sure that an embedder-triggered detach with a remote frame parent |
| 6765 // doesn't leave behind dangling pointers. | 6765 // doesn't leave behind dangling pointers. |
| 6766 TEST_P(ParametrizedWebFrameTest, EmbedderTriggeredDetachWithRemoteMainFrame) | 6766 TEST_P(ParameterizedWebFrameTest, EmbedderTriggeredDetachWithRemoteMainFrame) |
| 6767 { | 6767 { |
| 6768 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o | 6768 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t
o |
| 6769 // write tests with a top-level remote frame. | 6769 // write tests with a top-level remote frame. |
| 6770 FrameTestHelpers::TestWebViewClient viewClient; | 6770 FrameTestHelpers::TestWebViewClient viewClient; |
| 6771 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 6771 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 6772 WebView* view = WebView::create(&viewClient); | 6772 WebView* view = WebView::create(&viewClient); |
| 6773 view->setMainFrame(remoteClient.frame()); | 6773 view->setMainFrame(remoteClient.frame()); |
| 6774 FrameTestHelpers::TestWebFrameClient childFrameClient; | 6774 FrameTestHelpers::TestWebFrameClient childFrameClient; |
| 6775 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr); | 6775 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr); |
| 6776 | 6776 |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7290 { | 7290 { |
| 7291 m_historyCommitType = historyCommitType; | 7291 m_historyCommitType = historyCommitType; |
| 7292 } | 7292 } |
| 7293 | 7293 |
| 7294 WebHistoryCommitType historyCommitType() const { return m_historyCommitType;
} | 7294 WebHistoryCommitType historyCommitType() const { return m_historyCommitType;
} |
| 7295 | 7295 |
| 7296 private: | 7296 private: |
| 7297 WebHistoryCommitType m_historyCommitType; | 7297 WebHistoryCommitType m_historyCommitType; |
| 7298 }; | 7298 }; |
| 7299 | 7299 |
| 7300 TEST_P(ParametrizedWebFrameTest, RemoteFrameInitialCommitType) | 7300 TEST_P(ParameterizedWebFrameTest, RemoteFrameInitialCommitType) |
| 7301 { | 7301 { |
| 7302 FrameTestHelpers::TestWebViewClient viewClient; | 7302 FrameTestHelpers::TestWebViewClient viewClient; |
| 7303 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 7303 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 7304 WebView* view = WebView::create(&viewClient); | 7304 WebView* view = WebView::create(&viewClient); |
| 7305 view->setMainFrame(remoteClient.frame()); | 7305 view->setMainFrame(remoteClient.frame()); |
| 7306 toRemoteFrame(toCoreFrame(view->mainFrame()))->securityContext()->setReplica
tedOrigin(SecurityOrigin::create(toKURL(m_baseURL))); | 7306 toRemoteFrame(toCoreFrame(view->mainFrame()))->securityContext()->setReplica
tedOrigin(SecurityOrigin::create(toKURL(m_baseURL))); |
| 7307 | 7307 |
| 7308 // If an iframe has a remote main frame, ensure the inital commit is correct
ly identified as WebInitialCommitInChildFrame. | 7308 // If an iframe has a remote main frame, ensure the inital commit is correct
ly identified as WebInitialCommitInChildFrame. |
| 7309 CommitTypeWebFrameClient childFrameClient; | 7309 CommitTypeWebFrameClient childFrameClient; |
| 7310 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr); | 7310 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc
alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient
, nullptr); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 7321 | 7321 |
| 7322 void reset() { m_failed = false; } | 7322 void reset() { m_failed = false; } |
| 7323 bool failed() { return m_failed; } | 7323 bool failed() { return m_failed; } |
| 7324 | 7324 |
| 7325 bool m_failed; | 7325 bool m_failed; |
| 7326 }; | 7326 }; |
| 7327 | 7327 |
| 7328 // FIXME: This would be better as a unittest on DocumentThreadableLoader but it | 7328 // FIXME: This would be better as a unittest on DocumentThreadableLoader but it |
| 7329 // requires spin-up of a frame. It may be possible to remove that requirement | 7329 // requires spin-up of a frame. It may be possible to remove that requirement |
| 7330 // and convert it to a unittest. | 7330 // and convert it to a unittest. |
| 7331 TEST_P(ParametrizedWebFrameTest, LoaderOriginAccess) | 7331 TEST_P(ParameterizedWebFrameTest, LoaderOriginAccess) |
| 7332 { | 7332 { |
| 7333 FrameTestHelpers::WebViewHelper webViewHelper(this); | 7333 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 7334 webViewHelper.initializeAndLoad("about:blank"); | 7334 webViewHelper.initializeAndLoad("about:blank"); |
| 7335 | 7335 |
| 7336 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); | 7336 SchemeRegistry::registerURLSchemeAsDisplayIsolated("chrome"); |
| 7337 | 7337 |
| 7338 // Cross-origin request. | 7338 // Cross-origin request. |
| 7339 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); | 7339 KURL resourceUrl(ParsedURLString, "chrome://test.pdf"); |
| 7340 registerMockedChromeURLLoad("test.pdf"); | 7340 registerMockedChromeURLLoad("test.pdf"); |
| 7341 | 7341 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 7352 EXPECT_TRUE(client.failed()); | 7352 EXPECT_TRUE(client.failed()); |
| 7353 | 7353 |
| 7354 client.reset(); | 7354 client.reset(); |
| 7355 // Try to load the request with cross origin access. Should succeed. | 7355 // Try to load the request with cross origin access. Should succeed. |
| 7356 options.crossOriginRequestPolicy = AllowCrossOriginRequests; | 7356 options.crossOriginRequestPolicy = AllowCrossOriginRequests; |
| 7357 DocumentThreadableLoader::loadResourceSynchronously( | 7357 DocumentThreadableLoader::loadResourceSynchronously( |
| 7358 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); | 7358 *frame->document(), ResourceRequest(resourceUrl), client, options, resou
rceLoaderOptions); |
| 7359 EXPECT_FALSE(client.failed()); | 7359 EXPECT_FALSE(client.failed()); |
| 7360 } | 7360 } |
| 7361 | 7361 |
| 7362 TEST_P(ParametrizedWebFrameTest, DetachRemoteFrame) | 7362 TEST_P(ParameterizedWebFrameTest, DetachRemoteFrame) |
| 7363 { | 7363 { |
| 7364 FrameTestHelpers::TestWebViewClient viewClient; | 7364 FrameTestHelpers::TestWebViewClient viewClient; |
| 7365 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 7365 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 7366 WebView* view = WebView::create(&viewClient); | 7366 WebView* view = WebView::create(&viewClient); |
| 7367 view->setMainFrame(remoteClient.frame()); | 7367 view->setMainFrame(remoteClient.frame()); |
| 7368 FrameTestHelpers::TestWebRemoteFrameClient childFrameClient; | 7368 FrameTestHelpers::TestWebRemoteFrameClient childFrameClient; |
| 7369 WebRemoteFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createRe
moteChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClie
nt); | 7369 WebRemoteFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createRe
moteChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClie
nt); |
| 7370 childFrame->detach(); | 7370 childFrame->detach(); |
| 7371 view->close(); | 7371 view->close(); |
| 7372 } | 7372 } |
| 7373 | 7373 |
| 7374 class TestConsoleMessageWebFrameClient : public FrameTestHelpers::TestWebFrameCl
ient { | 7374 class TestConsoleMessageWebFrameClient : public FrameTestHelpers::TestWebFrameCl
ient { |
| 7375 public: | 7375 public: |
| 7376 virtual void didAddMessageToConsole(const WebConsoleMessage& message, const
WebString& sourceName, unsigned sourceLine, const WebString& stackTrace) | 7376 virtual void didAddMessageToConsole(const WebConsoleMessage& message, const
WebString& sourceName, unsigned sourceLine, const WebString& stackTrace) |
| 7377 { | 7377 { |
| 7378 messages.push_back(message); | 7378 messages.push_back(message); |
| 7379 } | 7379 } |
| 7380 | 7380 |
| 7381 std::vector<WebConsoleMessage> messages; | 7381 std::vector<WebConsoleMessage> messages; |
| 7382 }; | 7382 }; |
| 7383 | 7383 |
| 7384 TEST_P(ParametrizedWebFrameTest, CrossDomainAccessErrorsUseCallingWindow) | 7384 TEST_P(ParameterizedWebFrameTest, CrossDomainAccessErrorsUseCallingWindow) |
| 7385 { | 7385 { |
| 7386 registerMockedHttpURLLoad("hidden_frames.html"); | 7386 registerMockedHttpURLLoad("hidden_frames.html"); |
| 7387 registerMockedChromeURLLoad("hello_world.html"); | 7387 registerMockedChromeURLLoad("hello_world.html"); |
| 7388 | 7388 |
| 7389 FrameTestHelpers::WebViewHelper webViewHelper(this); | 7389 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 7390 TestConsoleMessageWebFrameClient webFrameClient; | 7390 TestConsoleMessageWebFrameClient webFrameClient; |
| 7391 FrameTestHelpers::TestWebViewClient webViewClient; | 7391 FrameTestHelpers::TestWebViewClient webViewClient; |
| 7392 webViewHelper.initializeAndLoad(m_baseURL + "hidden_frames.html", true, &web
FrameClient, &webViewClient); | 7392 webViewHelper.initializeAndLoad(m_baseURL + "hidden_frames.html", true, &web
FrameClient, &webViewClient); |
| 7393 | 7393 |
| 7394 // Create another window with a cross-origin page, and point its opener to | 7394 // Create another window with a cross-origin page, and point its opener to |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7412 EXPECT_TRUE(webFrameClient.messages.empty()); | 7412 EXPECT_TRUE(webFrameClient.messages.empty()); |
| 7413 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); | 7413 ASSERT_EQ(2u, popupWebFrameClient.messages.size()); |
| 7414 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); | 7414 EXPECT_TRUE(std::string::npos != popupWebFrameClient.messages[1].text.utf8()
.find("Blocked a frame")); |
| 7415 | 7415 |
| 7416 // Manually reset to break WebViewHelpers' dependencies on the stack | 7416 // Manually reset to break WebViewHelpers' dependencies on the stack |
| 7417 // allocated WebFrameClients. | 7417 // allocated WebFrameClients. |
| 7418 webViewHelper.reset(); | 7418 webViewHelper.reset(); |
| 7419 popupWebViewHelper.reset(); | 7419 popupWebViewHelper.reset(); |
| 7420 } | 7420 } |
| 7421 | 7421 |
| 7422 TEST_P(ParametrizedWebFrameTest, CreateLocalChildWithPreviousSibling) | 7422 TEST_P(ParameterizedWebFrameTest, CreateLocalChildWithPreviousSibling) |
| 7423 { | 7423 { |
| 7424 FrameTestHelpers::TestWebViewClient viewClient; | 7424 FrameTestHelpers::TestWebViewClient viewClient; |
| 7425 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; | 7425 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; |
| 7426 WebView* view = WebView::create(&viewClient); | 7426 WebView* view = WebView::create(&viewClient); |
| 7427 view->setMainFrame(remoteClient.frame()); | 7427 view->setMainFrame(remoteClient.frame()); |
| 7428 WebRemoteFrame* parent = view->mainFrame()->toWebRemoteFrame(); | 7428 WebRemoteFrame* parent = view->mainFrame()->toWebRemoteFrame(); |
| 7429 | 7429 |
| 7430 WebLocalFrame* secondFrame = parent->createLocalChild(WebTreeScopeType::Docu
ment, "", WebSandboxFlags::None, nullptr, nullptr); | 7430 WebLocalFrame* secondFrame = parent->createLocalChild(WebTreeScopeType::Docu
ment, "", WebSandboxFlags::None, nullptr, nullptr); |
| 7431 WebLocalFrame* fourthFrame = parent->createLocalChild(WebTreeScopeType::Docu
ment, "", WebSandboxFlags::None, nullptr, secondFrame); | 7431 WebLocalFrame* fourthFrame = parent->createLocalChild(WebTreeScopeType::Docu
ment, "", WebSandboxFlags::None, nullptr, secondFrame); |
| 7432 WebLocalFrame* thirdFrame = parent->createLocalChild(WebTreeScopeType::Docum
ent, "", WebSandboxFlags::None, nullptr, secondFrame); | 7432 WebLocalFrame* thirdFrame = parent->createLocalChild(WebTreeScopeType::Docum
ent, "", WebSandboxFlags::None, nullptr, secondFrame); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 7448 | 7448 |
| 7449 EXPECT_EQ(parent, firstFrame->parent()); | 7449 EXPECT_EQ(parent, firstFrame->parent()); |
| 7450 EXPECT_EQ(parent, secondFrame->parent()); | 7450 EXPECT_EQ(parent, secondFrame->parent()); |
| 7451 EXPECT_EQ(parent, thirdFrame->parent()); | 7451 EXPECT_EQ(parent, thirdFrame->parent()); |
| 7452 EXPECT_EQ(parent, fourthFrame->parent()); | 7452 EXPECT_EQ(parent, fourthFrame->parent()); |
| 7453 | 7453 |
| 7454 view->close(); | 7454 view->close(); |
| 7455 } | 7455 } |
| 7456 | 7456 |
| 7457 } // namespace blink | 7457 } // namespace blink |
| OLD | NEW |