| 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 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 registerMockedHttpURLLoad("fixed_layout.html"); | 326 registerMockedHttpURLLoad("fixed_layout.html"); |
| 327 | 327 |
| 328 FixedLayoutTestWebViewClient client; | 328 FixedLayoutTestWebViewClient client; |
| 329 int viewportWidth = 640; | 329 int viewportWidth = 640; |
| 330 int viewportHeight = 480; | 330 int viewportHeight = 480; |
| 331 | 331 |
| 332 // Make sure we initialize to minimum scale, even if the window size | 332 // Make sure we initialize to minimum scale, even if the window size |
| 333 // only becomes available after the load begins. | 333 // only becomes available after the load begins. |
| 334 FrameTestHelpers::WebViewHelper webViewHelper; | 334 FrameTestHelpers::WebViewHelper webViewHelper; |
| 335 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 335 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 336 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 337 webViewHelper.webView()->settings()->setViewportEnabled(true); | 336 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 338 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 337 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 339 webViewHelper.webView()->layout(); | 338 webViewHelper.webView()->layout(); |
| 340 | 339 |
| 341 webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->setFixedLayoutSiz
e(WebCore::IntSize(100, 100)); | 340 webViewHelper.webViewImpl()->setFixedLayoutSize(WebCore::IntSize(100, 100)); |
| 342 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); | 341 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); |
| 343 | 342 |
| 344 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 343 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 345 webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->setFrameRect(WebC
ore::IntRect(0, 0, 641, 481)); | 344 webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->setFrameRect(WebC
ore::IntRect(0, 0, 641, 481)); |
| 346 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 345 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 347 | 346 |
| 348 webViewHelper.webViewImpl()->layout(); | 347 webViewHelper.webViewImpl()->layout(); |
| 349 } | 348 } |
| 350 | 349 |
| 351 TEST_F(WebFrameTest, ChangeInFixedLayoutTriggersTextAutosizingRecalculate) | 350 TEST_F(WebFrameTest, ChangeInFixedLayoutTriggersTextAutosizingRecalculate) |
| 352 { | 351 { |
| 353 registerMockedHttpURLLoad("fixed_layout.html"); | 352 registerMockedHttpURLLoad("fixed_layout.html"); |
| 354 | 353 |
| 355 FixedLayoutTestWebViewClient client; | 354 FixedLayoutTestWebViewClient client; |
| 356 int viewportWidth = 640; | 355 int viewportWidth = 640; |
| 357 int viewportHeight = 480; | 356 int viewportHeight = 480; |
| 358 | 357 |
| 359 // Make sure we initialize to minimum scale, even if the window size | 358 // Make sure we initialize to minimum scale, even if the window size |
| 360 // only becomes available after the load begins. | 359 // only becomes available after the load begins. |
| 361 FrameTestHelpers::WebViewHelper webViewHelper; | 360 FrameTestHelpers::WebViewHelper webViewHelper; |
| 362 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 361 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 363 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 364 webViewHelper.webView()->settings()->setViewportEnabled(true); | 362 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 365 | 363 |
| 366 WebCore::Document* document = webViewHelper.webViewImpl()->page()->mainFrame
()->document(); | 364 WebCore::Document* document = webViewHelper.webViewImpl()->page()->mainFrame
()->document(); |
| 367 document->settings()->setTextAutosizingEnabled(true); | 365 document->settings()->setTextAutosizingEnabled(true); |
| 368 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); | 366 EXPECT_TRUE(document->settings()->textAutosizingEnabled()); |
| 369 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); | 367 webViewHelper.webViewImpl()->resize(WebSize(viewportWidth, viewportHeight)); |
| 370 webViewHelper.webViewImpl()->layout(); | 368 webViewHelper.webViewImpl()->layout(); |
| 371 | 369 |
| 372 WebCore::RenderObject* renderer = document->renderer(); | 370 WebCore::RenderObject* renderer = document->renderer(); |
| 373 bool multiplierSetAtLeastOnce = false; | 371 bool multiplierSetAtLeastOnce = false; |
| 374 while (renderer) { | 372 while (renderer) { |
| 375 if (renderer->style()) { | 373 if (renderer->style()) { |
| 376 renderer->style()->setTextAutosizingMultiplier(2); | 374 renderer->style()->setTextAutosizingMultiplier(2); |
| 377 EXPECT_EQ(2, renderer->style()->textAutosizingMultiplier()); | 375 EXPECT_EQ(2, renderer->style()->textAutosizingMultiplier()); |
| 378 multiplierSetAtLeastOnce = true; | 376 multiplierSetAtLeastOnce = true; |
| 379 } | 377 } |
| 380 renderer = renderer->nextInPreOrder(); | 378 renderer = renderer->nextInPreOrder(); |
| 381 } | 379 } |
| 382 EXPECT_TRUE(multiplierSetAtLeastOnce); | 380 EXPECT_TRUE(multiplierSetAtLeastOnce); |
| 383 | 381 |
| 384 WebCore::ViewportArguments arguments = document->viewportArguments(); | 382 WebCore::ViewportArguments arguments = document->viewportArguments(); |
| 385 // Choose a width that's not going match the viewport width of the loaded do
cument. | 383 // Choose a width that's not going match the viewport width of the loaded do
cument. |
| 386 arguments.minWidth = WebCore::Length(100, WebCore::Fixed); | 384 arguments.minWidth = WebCore::Length(100, WebCore::Fixed); |
| 387 arguments.maxWidth = WebCore::Length(100, WebCore::Fixed); | 385 arguments.maxWidth = WebCore::Length(100, WebCore::Fixed); |
| 388 webViewHelper.webViewImpl()->updatePageDefinedPageScaleConstraints(arguments
); | 386 webViewHelper.webViewImpl()->updatePageDefinedViewportConstraints(arguments)
; |
| 389 | 387 |
| 390 bool multiplierCheckedAtLeastOnce = false; | 388 bool multiplierCheckedAtLeastOnce = false; |
| 391 renderer = document->renderer(); | 389 renderer = document->renderer(); |
| 392 while (renderer) { | 390 while (renderer) { |
| 393 if (renderer->style()) { | 391 if (renderer->style()) { |
| 394 EXPECT_EQ(1, renderer->style()->textAutosizingMultiplier()); | 392 EXPECT_EQ(1, renderer->style()->textAutosizingMultiplier()); |
| 395 multiplierCheckedAtLeastOnce = true; | 393 multiplierCheckedAtLeastOnce = true; |
| 396 } | 394 } |
| 397 renderer = renderer->nextInPreOrder(); | 395 renderer = renderer->nextInPreOrder(); |
| 398 } | 396 } |
| 399 EXPECT_TRUE(multiplierCheckedAtLeastOnce); | 397 EXPECT_TRUE(multiplierCheckedAtLeastOnce); |
| 400 } | 398 } |
| 401 | 399 |
| 402 TEST_F(WebFrameTest, FixedLayoutSizeStopsResizeFromChangingLayoutSize) | 400 TEST_F(WebFrameTest, FixedLayoutSizeStopsResizeFromChangingLayoutSize) |
| 403 { | 401 { |
| 404 registerMockedHttpURLLoad("fixed_layout.html"); | 402 registerMockedHttpURLLoad("fixed_layout.html"); |
| 405 | 403 |
| 406 int viewportWidth = 640; | 404 int viewportWidth = 640; |
| 407 int viewportHeight = 480; | 405 int viewportHeight = 480; |
| 408 | 406 |
| 409 int fixedLayoutWidth = viewportWidth / 2; | 407 int fixedLayoutWidth = viewportWidth / 2; |
| 410 int fixedLayoutHeight = viewportHeight / 2; | 408 int fixedLayoutHeight = viewportHeight / 2; |
| 411 | 409 |
| 412 FrameTestHelpers::WebViewHelper webViewHelper; | 410 FrameTestHelpers::WebViewHelper webViewHelper; |
| 413 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); | 411 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); |
| 414 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 415 webViewHelper.webView()->settings()->setViewportEnabled(true); | 412 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 416 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); | 413 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); |
| 417 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 414 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 418 webViewHelper.webView()->layout(); | 415 webViewHelper.webView()->layout(); |
| 419 | 416 |
| 420 EXPECT_EQ(fixedLayoutWidth, webViewHelper.webView()->fixedLayoutSize().width
); | 417 EXPECT_EQ(fixedLayoutWidth, webViewHelper.webViewImpl()->page()->mainFrame()
->view()->layoutSize().width()); |
| 421 EXPECT_EQ(fixedLayoutHeight, webViewHelper.webView()->fixedLayoutSize().heig
ht); | 418 EXPECT_EQ(fixedLayoutHeight, webViewHelper.webViewImpl()->page()->mainFrame(
)->view()->layoutSize().height()); |
| 422 } | 419 } |
| 423 | 420 |
| 424 TEST_F(WebFrameTest, FixedLayoutSizePreventsResizeFromChangingPageScale) | 421 TEST_F(WebFrameTest, FixedLayoutSizePreventsResizeFromChangingPageScale) |
| 425 { | 422 { |
| 426 registerMockedHttpURLLoad("fixed_layout.html"); | 423 registerMockedHttpURLLoad("fixed_layout.html"); |
| 427 | 424 |
| 428 int viewportWidth = 640; | 425 int viewportWidth = 640; |
| 429 int viewportHeight = 480; | 426 int viewportHeight = 480; |
| 430 | 427 |
| 431 int fixedLayoutWidth = viewportWidth / 2; | 428 int fixedLayoutWidth = viewportWidth / 2; |
| 432 int fixedLayoutHeight = viewportHeight / 2; | 429 int fixedLayoutHeight = viewportHeight / 2; |
| 433 | 430 |
| 434 FrameTestHelpers::WebViewHelper webViewHelper; | 431 FrameTestHelpers::WebViewHelper webViewHelper; |
| 435 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); | 432 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); |
| 436 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 437 webViewHelper.webView()->settings()->setViewportEnabled(true); | 433 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 438 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); | 434 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); |
| 439 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 435 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 440 webViewHelper.webView()->layout(); | 436 webViewHelper.webView()->layout(); |
| 441 float pageScaleFactor = webViewHelper.webView()->pageScaleFactor(); | 437 float pageScaleFactor = webViewHelper.webView()->pageScaleFactor(); |
| 442 | 438 |
| 443 webViewHelper.webView()->resize(WebSize(viewportWidth * 2, viewportHeight *
2)); | 439 webViewHelper.webView()->resize(WebSize(viewportWidth * 2, viewportHeight *
2)); |
| 444 | 440 |
| 445 EXPECT_EQ(pageScaleFactor, webViewHelper.webView()->pageScaleFactor()); | 441 EXPECT_EQ(pageScaleFactor, webViewHelper.webView()->pageScaleFactor()); |
| 446 } | 442 } |
| 447 | 443 |
| 448 TEST_F(WebFrameTest, FixedLayoutSizePreventsLayoutFromChangingPageScale) | 444 TEST_F(WebFrameTest, FixedLayoutSizePreventsLayoutFromChangingPageScale) |
| 449 { | 445 { |
| 450 registerMockedHttpURLLoad("fixed_layout.html"); | 446 registerMockedHttpURLLoad("fixed_layout.html"); |
| 451 | 447 |
| 452 int viewportWidth = 640; | 448 int viewportWidth = 640; |
| 453 int viewportHeight = 480; | 449 int viewportHeight = 480; |
| 454 | 450 |
| 455 int fixedLayoutWidth = viewportWidth * 2; | 451 int fixedLayoutWidth = viewportWidth * 2; |
| 456 int fixedLayoutHeight = viewportHeight * 2; | 452 int fixedLayoutHeight = viewportHeight * 2; |
| 457 | 453 |
| 458 FrameTestHelpers::WebViewHelper webViewHelper; | 454 FrameTestHelpers::WebViewHelper webViewHelper; |
| 459 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); | 455 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html"); |
| 460 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 461 webViewHelper.webView()->settings()->setViewportEnabled(true); | 456 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 462 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); | 457 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); |
| 463 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 458 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 464 webViewHelper.webView()->layout(); | 459 webViewHelper.webView()->layout(); |
| 465 float pageScaleFactor = webViewHelper.webView()->pageScaleFactor(); | 460 float pageScaleFactor = webViewHelper.webView()->pageScaleFactor(); |
| 466 | 461 |
| 467 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); | 462 webViewHelper.webView()->setFixedLayoutSize(WebSize(fixedLayoutWidth, fixedL
ayoutHeight)); |
| 468 webViewHelper.webView()->layout(); | 463 webViewHelper.webView()->layout(); |
| 469 | 464 |
| 470 EXPECT_EQ(pageScaleFactor, webViewHelper.webView()->pageScaleFactor()); | 465 EXPECT_EQ(pageScaleFactor, webViewHelper.webView()->pageScaleFactor()); |
| 471 } | 466 } |
| 472 | 467 |
| 473 TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightF
ixedLayout) | 468 TEST_F(WebFrameTest, PreferredSizeAndContentSizeReportedCorrectlyWithZeroHeightF
ixedLayout) |
| 474 { | 469 { |
| 475 registerMockedHttpURLLoad("200-by-300.html"); | 470 registerMockedHttpURLLoad("200-by-300.html"); |
| 476 | 471 |
| 477 int windowWidth = 100; | 472 int windowWidth = 100; |
| 478 int windowHeight = 100; | 473 int windowHeight = 100; |
| 479 int viewportWidth = 100; | 474 int viewportWidth = 100; |
| 480 int viewportHeight = 0; | 475 int viewportHeight = 0; |
| 481 int divWidth = 200; | 476 int divWidth = 200; |
| 482 int divHeight = 300; | 477 int divHeight = 300; |
| 483 | 478 |
| 484 FixedLayoutTestWebViewClient client; | 479 FixedLayoutTestWebViewClient client; |
| 485 client.m_screenInfo.deviceScaleFactor = 1; | 480 client.m_screenInfo.deviceScaleFactor = 1; |
| 486 | 481 |
| 487 FrameTestHelpers::WebViewHelper webViewHelper; | 482 FrameTestHelpers::WebViewHelper webViewHelper; |
| 488 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent); | 483 webViewHelper.initializeAndLoad(m_baseURL + "200-by-300.html", true, 0, &cli
ent); |
| 489 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 490 webViewHelper.webView()->settings()->setViewportEnabled(true); | 484 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 491 webViewHelper.webView()->resize(WebSize(windowWidth, windowHeight)); | 485 webViewHelper.webView()->resize(WebSize(windowWidth, windowHeight)); |
| 492 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); | 486 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); |
| 493 webViewHelper.webView()->layout(); | 487 webViewHelper.webView()->layout(); |
| 494 | 488 |
| 495 EXPECT_EQ(divWidth, webViewHelper.webView()->mainFrame()->contentsSize().wid
th); | 489 EXPECT_EQ(divWidth, webViewHelper.webView()->mainFrame()->contentsSize().wid
th); |
| 496 EXPECT_EQ(divHeight, webViewHelper.webView()->mainFrame()->contentsSize().he
ight); | 490 EXPECT_EQ(divHeight, webViewHelper.webView()->mainFrame()->contentsSize().he
ight); |
| 497 | 491 |
| 498 EXPECT_EQ(divWidth, webViewHelper.webView()->contentsPreferredMinimumSize().
width); | 492 EXPECT_EQ(divWidth, webViewHelper.webView()->contentsPreferredMinimumSize().
width); |
| 499 EXPECT_EQ(divHeight, webViewHelper.webView()->contentsPreferredMinimumSize()
.height); | 493 EXPECT_EQ(divHeight, webViewHelper.webView()->contentsPreferredMinimumSize()
.height); |
| 500 } | 494 } |
| 501 | 495 |
| 502 TEST_F(WebFrameTest, DisablingFixedLayoutSizeSetsCorrectLayoutSize) | 496 TEST_F(WebFrameTest, DisablingFixedLayoutSizeSetsCorrectLayoutSize) |
| 503 { | 497 { |
| 504 registerMockedHttpURLLoad("no_viewport_tag.html"); | 498 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 505 | 499 |
| 506 FixedLayoutTestWebViewClient client; | 500 FixedLayoutTestWebViewClient client; |
| 507 client.m_screenInfo.deviceScaleFactor = 1; | 501 client.m_screenInfo.deviceScaleFactor = 1; |
| 508 int viewportWidth = 640; | 502 int viewportWidth = 640; |
| 509 int viewportHeight = 480; | 503 int viewportHeight = 480; |
| 510 | 504 |
| 511 FrameTestHelpers::WebViewHelper webViewHelper; | 505 FrameTestHelpers::WebViewHelper webViewHelper; |
| 512 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); | 506 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); |
| 513 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); | 507 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDPI(tr
ue); |
| 514 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 515 webViewHelper.webView()->settings()->setUseWideViewport(true); | 508 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 516 webViewHelper.webView()->settings()->setViewportEnabled(true); | 509 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 517 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 510 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 518 | 511 |
| 519 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); | 512 webViewHelper.webView()->setFixedLayoutSize(WebSize(viewportWidth, viewportH
eight)); |
| 520 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); | 513 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); |
| 521 webViewHelper.webView()->layout(); | 514 webViewHelper.webView()->layout(); |
| 522 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 515 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 523 | 516 |
| 524 webViewHelper.webView()->setFixedLayoutSize(WebSize(0, 0)); | 517 webViewHelper.webView()->setFixedLayoutSize(WebSize(0, 0)); |
| 525 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); | 518 EXPECT_TRUE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->needs
Layout()); |
| 526 webViewHelper.webView()->layout(); | 519 webViewHelper.webView()->layout(); |
| 527 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 520 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 528 } | 521 } |
| 529 | 522 |
| 530 TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) | 523 TEST_F(WebFrameTest, DeviceScaleFactorUsesDefaultWithoutViewportTag) |
| 531 { | 524 { |
| 532 registerMockedHttpURLLoad("no_viewport_tag.html"); | 525 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 533 | 526 |
| 534 int viewportWidth = 640; | 527 int viewportWidth = 640; |
| 535 int viewportHeight = 480; | 528 int viewportHeight = 480; |
| 536 | 529 |
| 537 FixedLayoutTestWebViewClient client; | 530 FixedLayoutTestWebViewClient client; |
| 538 client.m_screenInfo.deviceScaleFactor = 2; | 531 client.m_screenInfo.deviceScaleFactor = 2; |
| 539 | 532 |
| 540 FrameTestHelpers::WebViewHelper webViewHelper; | 533 FrameTestHelpers::WebViewHelper webViewHelper; |
| 541 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); | 534 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); |
| 542 | 535 |
| 543 webViewHelper.webView()->settings()->setViewportEnabled(true); | 536 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 544 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 545 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 537 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 546 webViewHelper.webView()->layout(); | 538 webViewHelper.webView()->layout(); |
| 547 | 539 |
| 548 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); | 540 EXPECT_EQ(2, webViewHelper.webView()->deviceScaleFactor()); |
| 549 | 541 |
| 550 // Device scale factor should be independent of page scale. | 542 // Device scale factor should be independent of page scale. |
| 551 webViewHelper.webView()->setPageScaleFactorLimits(1, 2); | 543 webViewHelper.webView()->setPageScaleFactorLimits(1, 2); |
| 552 webViewHelper.webView()->setPageScaleFactorPreservingScrollOffset(0.5); | 544 webViewHelper.webView()->setPageScaleFactorPreservingScrollOffset(0.5); |
| 553 webViewHelper.webView()->layout(); | 545 webViewHelper.webView()->layout(); |
| 554 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); | 546 EXPECT_EQ(1, webViewHelper.webView()->pageScaleFactor()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 565 | 557 |
| 566 FixedLayoutTestWebViewClient client; | 558 FixedLayoutTestWebViewClient client; |
| 567 client.m_screenInfo.deviceScaleFactor = 1; | 559 client.m_screenInfo.deviceScaleFactor = 1; |
| 568 int viewportWidth = 640; | 560 int viewportWidth = 640; |
| 569 int viewportHeight = 480; | 561 int viewportHeight = 480; |
| 570 | 562 |
| 571 // Make sure we initialize to minimum scale, even if the window size | 563 // Make sure we initialize to minimum scale, even if the window size |
| 572 // only becomes available after the load begins. | 564 // only becomes available after the load begins. |
| 573 FrameTestHelpers::WebViewHelper webViewHelper; | 565 FrameTestHelpers::WebViewHelper webViewHelper; |
| 574 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 566 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 575 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 576 webViewHelper.webView()->settings()->setViewportEnabled(true); | 567 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 577 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 568 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 578 | 569 |
| 579 int defaultFixedLayoutWidth = 980; | 570 int defaultFixedLayoutWidth = 980; |
| 580 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; | 571 float minimumPageScaleFactor = viewportWidth / (float) defaultFixedLayoutWid
th; |
| 581 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); | 572 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); |
| 582 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); | 573 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); |
| 583 | 574 |
| 584 // Assume the user has pinch zoomed to page scale factor 2. | 575 // Assume the user has pinch zoomed to page scale factor 2. |
| 585 float userPinchPageScaleFactor = 2; | 576 float userPinchPageScaleFactor = 2; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 605 | 596 |
| 606 FixedLayoutTestWebViewClient client; | 597 FixedLayoutTestWebViewClient client; |
| 607 client.m_screenInfo.deviceScaleFactor = 1; | 598 client.m_screenInfo.deviceScaleFactor = 1; |
| 608 int viewportWidth = 640; | 599 int viewportWidth = 640; |
| 609 int viewportHeight = 480; | 600 int viewportHeight = 480; |
| 610 | 601 |
| 611 // Make sure we initialize to minimum scale, even if the window size | 602 // Make sure we initialize to minimum scale, even if the window size |
| 612 // only becomes available after the load begins. | 603 // only becomes available after the load begins. |
| 613 FrameTestHelpers::WebViewHelper webViewHelper; | 604 FrameTestHelpers::WebViewHelper webViewHelper; |
| 614 webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &
client); | 605 webViewHelper.initializeAndLoad(m_baseURL + "wide_document.html", true, 0, &
client); |
| 615 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 616 webViewHelper.webView()->settings()->setViewportEnabled(true); | 606 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 617 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 607 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 618 | 608 |
| 619 int wideDocumentWidth = 1500; | 609 int wideDocumentWidth = 1500; |
| 620 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; | 610 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| 621 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); | 611 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); |
| 622 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); | 612 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); |
| 623 | 613 |
| 624 // Assume the user has pinch zoomed to page scale factor 2. | 614 // Assume the user has pinch zoomed to page scale factor 2. |
| 625 float userPinchPageScaleFactor = 2; | 615 float userPinchPageScaleFactor = 2; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 641 { | 631 { |
| 642 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 632 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 643 | 633 |
| 644 FixedLayoutTestWebViewClient client; | 634 FixedLayoutTestWebViewClient client; |
| 645 client.m_screenInfo.deviceScaleFactor = 1; | 635 client.m_screenInfo.deviceScaleFactor = 1; |
| 646 int viewportWidth = 640; | 636 int viewportWidth = 640; |
| 647 int viewportHeight = 480; | 637 int viewportHeight = 480; |
| 648 | 638 |
| 649 FrameTestHelpers::WebViewHelper webViewHelper; | 639 FrameTestHelpers::WebViewHelper webViewHelper; |
| 650 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); | 640 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); |
| 651 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 652 webViewHelper.webView()->settings()->setViewportEnabled(true); | 641 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 653 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 642 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 654 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 643 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 655 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 644 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 656 | 645 |
| 657 // The page must be displayed at 100% zoom. | 646 // The page must be displayed at 100% zoom. |
| 658 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 647 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 659 } | 648 } |
| 660 | 649 |
| 661 TEST_F(WebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport) | 650 TEST_F(WebFrameTest, SetLoadWithOverviewModeToFalseAndNoWideViewport) |
| 662 { | 651 { |
| 663 registerMockedHttpURLLoad("large-div.html"); | 652 registerMockedHttpURLLoad("large-div.html"); |
| 664 | 653 |
| 665 FixedLayoutTestWebViewClient client; | 654 FixedLayoutTestWebViewClient client; |
| 666 client.m_screenInfo.deviceScaleFactor = 1; | 655 client.m_screenInfo.deviceScaleFactor = 1; |
| 667 int viewportWidth = 640; | 656 int viewportWidth = 640; |
| 668 int viewportHeight = 480; | 657 int viewportHeight = 480; |
| 669 | 658 |
| 670 FrameTestHelpers::WebViewHelper webViewHelper; | 659 FrameTestHelpers::WebViewHelper webViewHelper; |
| 671 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); | 660 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); |
| 672 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 673 webViewHelper.webView()->settings()->setViewportEnabled(true); | 661 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 674 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 662 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 675 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 663 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 676 webViewHelper.webView()->settings()->setUseWideViewport(false); | 664 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 677 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 665 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 678 | 666 |
| 679 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. | 667 // The page must be displayed at 100% zoom, despite that it hosts a wide div
element. |
| 680 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 668 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 681 } | 669 } |
| 682 | 670 |
| 683 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth) | 671 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidth) |
| 684 { | 672 { |
| 685 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 673 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 686 | 674 |
| 687 FixedLayoutTestWebViewClient client; | 675 FixedLayoutTestWebViewClient client; |
| 688 client.m_screenInfo.deviceScaleFactor = 1; | 676 client.m_screenInfo.deviceScaleFactor = 1; |
| 689 int viewportWidth = 640; | 677 int viewportWidth = 640; |
| 690 int viewportHeight = 480; | 678 int viewportHeight = 480; |
| 691 | 679 |
| 692 FrameTestHelpers::WebViewHelper webViewHelper; | 680 FrameTestHelpers::WebViewHelper webViewHelper; |
| 693 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); | 681 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); |
| 694 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 695 webViewHelper.webView()->settings()->setViewportEnabled(true); | 682 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 696 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 683 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 697 webViewHelper.webView()->settings()->setUseWideViewport(false); | 684 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 698 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 685 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 699 | 686 |
| 700 // The page sets viewport width to 3000, but with UseWideViewport == false i
s must be ignored. | 687 // The page sets viewport width to 3000, but with UseWideViewport == false i
s must be ignored. |
| 701 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 688 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 702 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); | 689 EXPECT_EQ(viewportHeight, webViewHelper.webViewImpl()->mainFrameImpl()->fram
eView()->contentsSize().height()); |
| 703 } | 690 } |
| 704 | 691 |
| 705 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale) | 692 TEST_F(WebFrameTest, NoWideViewportIgnoresPageViewportWidthButAccountsScale) |
| 706 { | 693 { |
| 707 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 694 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 708 | 695 |
| 709 FixedLayoutTestWebViewClient client; | 696 FixedLayoutTestWebViewClient client; |
| 710 client.m_screenInfo.deviceScaleFactor = 1; | 697 client.m_screenInfo.deviceScaleFactor = 1; |
| 711 int viewportWidth = 640; | 698 int viewportWidth = 640; |
| 712 int viewportHeight = 480; | 699 int viewportHeight = 480; |
| 713 | 700 |
| 714 FrameTestHelpers::WebViewHelper webViewHelper; | 701 FrameTestHelpers::WebViewHelper webViewHelper; |
| 715 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); | 702 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); |
| 716 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 717 webViewHelper.webView()->settings()->setViewportEnabled(true); | 703 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 718 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 704 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 719 webViewHelper.webView()->settings()->setUseWideViewport(false); | 705 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 720 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 706 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 721 | 707 |
| 722 // The page sets viewport width to 3000, but with UseWideViewport == false i
s must be ignored. | 708 // The page sets viewport width to 3000, but with UseWideViewport == false i
t must be ignored. |
| 723 // While the initial scale specified by the page must be accounted. | 709 // While the initial scale specified by the page must be accounted. |
| 724 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f
rameView()->contentsSize().width()); | 710 EXPECT_EQ(viewportWidth / 2, webViewHelper.webViewImpl()->mainFrameImpl()->f
rameView()->contentsSize().width()); |
| 725 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()->
frameView()->contentsSize().height()); | 711 EXPECT_EQ(viewportHeight / 2, webViewHelper.webViewImpl()->mainFrameImpl()->
frameView()->contentsSize().height()); |
| 726 } | 712 } |
| 727 | 713 |
| 728 TEST_F(WebFrameTest, WideViewportSetsTo980WithoutViewportTag) | 714 TEST_F(WebFrameTest, WideViewportSetsTo980WithoutViewportTag) |
| 729 { | 715 { |
| 730 registerMockedHttpURLLoad("no_viewport_tag.html"); | 716 registerMockedHttpURLLoad("no_viewport_tag.html"); |
| 731 | 717 |
| 732 FixedLayoutTestWebViewClient client; | 718 FixedLayoutTestWebViewClient client; |
| 733 client.m_screenInfo.deviceScaleFactor = 1; | 719 client.m_screenInfo.deviceScaleFactor = 1; |
| 734 int viewportWidth = 640; | 720 int viewportWidth = 640; |
| 735 int viewportHeight = 480; | 721 int viewportHeight = 480; |
| 736 | 722 |
| 737 FrameTestHelpers::WebViewHelper webViewHelper; | 723 FrameTestHelpers::WebViewHelper webViewHelper; |
| 738 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); | 724 webViewHelper.initializeAndLoad(m_baseURL + "no_viewport_tag.html", true, 0,
&client); |
| 739 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 740 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 725 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 741 webViewHelper.webView()->settings()->setUseWideViewport(true); | 726 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 742 webViewHelper.webView()->settings()->setViewportEnabled(true); | 727 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 743 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 728 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 744 | 729 |
| 745 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 730 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 746 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); | 731 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); |
| 747 } | 732 } |
| 748 | 733 |
| 749 TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta) | 734 TEST_F(WebFrameTest, NoWideViewportAndHeightInMeta) |
| 750 { | 735 { |
| 751 registerMockedHttpURLLoad("viewport-height-1000.html"); | 736 registerMockedHttpURLLoad("viewport-height-1000.html"); |
| 752 | 737 |
| 753 FixedLayoutTestWebViewClient client; | 738 FixedLayoutTestWebViewClient client; |
| 754 client.m_screenInfo.deviceScaleFactor = 1; | 739 client.m_screenInfo.deviceScaleFactor = 1; |
| 755 int viewportWidth = 640; | 740 int viewportWidth = 640; |
| 756 int viewportHeight = 480; | 741 int viewportHeight = 480; |
| 757 | 742 |
| 758 FrameTestHelpers::WebViewHelper webViewHelper; | 743 FrameTestHelpers::WebViewHelper webViewHelper; |
| 759 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru
e, 0, &client); | 744 webViewHelper.initializeAndLoad(m_baseURL + "viewport-height-1000.html", tru
e, 0, &client); |
| 760 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 761 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 745 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 762 webViewHelper.webView()->settings()->setUseWideViewport(false); | 746 webViewHelper.webView()->settings()->setUseWideViewport(false); |
| 763 webViewHelper.webView()->settings()->setViewportEnabled(true); | 747 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 764 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 748 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 765 | 749 |
| 766 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); | 750 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->contentsSize().width()); |
| 767 } | 751 } |
| 768 | 752 |
| 769 TEST_F(WebFrameTest, WideViewportSetsTo980WithAutoWidth) | 753 TEST_F(WebFrameTest, WideViewportSetsTo980WithAutoWidth) |
| 770 { | 754 { |
| 771 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); | 755 registerMockedHttpURLLoad("viewport-2x-initial-scale.html"); |
| 772 | 756 |
| 773 FixedLayoutTestWebViewClient client; | 757 FixedLayoutTestWebViewClient client; |
| 774 client.m_screenInfo.deviceScaleFactor = 1; | 758 client.m_screenInfo.deviceScaleFactor = 1; |
| 775 int viewportWidth = 640; | 759 int viewportWidth = 640; |
| 776 int viewportHeight = 480; | 760 int viewportHeight = 480; |
| 777 | 761 |
| 778 FrameTestHelpers::WebViewHelper webViewHelper; | 762 FrameTestHelpers::WebViewHelper webViewHelper; |
| 779 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html"
, true, 0, &client); | 763 webViewHelper.initializeAndLoad(m_baseURL + "viewport-2x-initial-scale.html"
, true, 0, &client); |
| 780 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 781 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 764 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 782 webViewHelper.webView()->settings()->setUseWideViewport(true); | 765 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 783 webViewHelper.webView()->settings()->setViewportEnabled(true); | 766 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 784 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 767 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 785 | 768 |
| 786 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 769 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 787 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); | 770 EXPECT_EQ(980.0 / viewportWidth * viewportHeight, webViewHelper.webViewImpl(
)->mainFrameImpl()->frameView()->contentsSize().height()); |
| 788 } | 771 } |
| 789 | 772 |
| 790 TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode) | 773 TEST_F(WebFrameTest, PageViewportInitialScaleOverridesLoadWithOverviewMode) |
| 791 { | 774 { |
| 792 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 775 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 793 | 776 |
| 794 FixedLayoutTestWebViewClient client; | 777 FixedLayoutTestWebViewClient client; |
| 795 client.m_screenInfo.deviceScaleFactor = 1; | 778 client.m_screenInfo.deviceScaleFactor = 1; |
| 796 int viewportWidth = 640; | 779 int viewportWidth = 640; |
| 797 int viewportHeight = 480; | 780 int viewportHeight = 480; |
| 798 | 781 |
| 799 FrameTestHelpers::WebViewHelper webViewHelper; | 782 FrameTestHelpers::WebViewHelper webViewHelper; |
| 800 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); | 783 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); |
| 801 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 802 webViewHelper.webView()->settings()->setViewportEnabled(true); | 784 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 803 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 785 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 804 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 786 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 805 | 787 |
| 806 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. | 788 // The page must be displayed at 200% zoom, as specified in its viewport met
a tag. |
| 807 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); | 789 EXPECT_EQ(2.0f, webViewHelper.webView()->pageScaleFactor()); |
| 808 } | 790 } |
| 809 | 791 |
| 810 TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) | 792 TEST_F(WebFrameTest, setInitialPageScaleFactorPermanently) |
| 811 { | 793 { |
| 812 UseMockScrollbarSettings mockScrollbarSettings; | 794 UseMockScrollbarSettings mockScrollbarSettings; |
| 813 | 795 |
| 814 registerMockedHttpURLLoad("fixed_layout.html"); | 796 registerMockedHttpURLLoad("fixed_layout.html"); |
| 815 | 797 |
| 816 FixedLayoutTestWebViewClient client; | 798 FixedLayoutTestWebViewClient client; |
| 817 client.m_screenInfo.deviceScaleFactor = 1; | 799 client.m_screenInfo.deviceScaleFactor = 1; |
| 818 float enforcedPageScaleFactor = 2.0f; | 800 float enforcedPageScaleFactor = 2.0f; |
| 819 | 801 |
| 820 FrameTestHelpers::WebViewHelper webViewHelper; | 802 FrameTestHelpers::WebViewHelper webViewHelper; |
| 821 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 803 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 822 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 804 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 823 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 805 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 824 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); | 806 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScaleFactor
); |
| 825 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 826 webViewHelper.webView()->settings()->setViewportEnabled(true); | 807 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 827 webViewHelper.webView()->layout(); | 808 webViewHelper.webView()->layout(); |
| 828 | 809 |
| 829 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 810 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 830 | 811 |
| 831 int viewportWidth = 640; | 812 int viewportWidth = 640; |
| 832 int viewportHeight = 480; | 813 int viewportHeight = 480; |
| 833 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 814 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 834 webViewHelper.webView()->layout(); | 815 webViewHelper.webView()->layout(); |
| 835 | 816 |
| 836 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 817 EXPECT_EQ(enforcedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 837 | 818 |
| 838 webViewHelper.webView()->setInitialPageScaleOverride(-1); | 819 webViewHelper.webView()->setInitialPageScaleOverride(-1); |
| 839 webViewHelper.webView()->layout(); | 820 webViewHelper.webView()->layout(); |
| 840 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor()); | 821 EXPECT_EQ(1.0, webViewHelper.webView()->pageScaleFactor()); |
| 841 } | 822 } |
| 842 | 823 |
| 843 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWithOverviewMod
e) | 824 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesLoadWithOverviewMod
e) |
| 844 { | 825 { |
| 845 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); | 826 registerMockedHttpURLLoad("viewport-auto-initial-scale.html"); |
| 846 | 827 |
| 847 FixedLayoutTestWebViewClient client; | 828 FixedLayoutTestWebViewClient client; |
| 848 client.m_screenInfo.deviceScaleFactor = 1; | 829 client.m_screenInfo.deviceScaleFactor = 1; |
| 849 int viewportWidth = 640; | 830 int viewportWidth = 640; |
| 850 int viewportHeight = 480; | 831 int viewportHeight = 480; |
| 851 float enforcedPageScalePactor = 0.5f; | 832 float enforcedPageScalePactor = 0.5f; |
| 852 | 833 |
| 853 FrameTestHelpers::WebViewHelper webViewHelper; | 834 FrameTestHelpers::WebViewHelper webViewHelper; |
| 854 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); | 835 webViewHelper.initializeAndLoad(m_baseURL + "viewport-auto-initial-scale.htm
l", true, 0, &client); |
| 855 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 856 webViewHelper.webView()->settings()->setViewportEnabled(true); | 836 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 857 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); | 837 webViewHelper.webView()->settings()->setLoadWithOverviewMode(false); |
| 858 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScalePactor
); | 838 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScalePactor
); |
| 859 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 839 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 860 | 840 |
| 861 EXPECT_EQ(enforcedPageScalePactor, webViewHelper.webView()->pageScaleFactor(
)); | 841 EXPECT_EQ(enforcedPageScalePactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 862 } | 842 } |
| 863 | 843 |
| 864 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
Scale) | 844 TEST_F(WebFrameTest, PermanentInitialPageScaleFactorOverridesPageViewportInitial
Scale) |
| 865 { | 845 { |
| 866 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); | 846 registerMockedHttpURLLoad("viewport-wide-2x-initial-scale.html"); |
| 867 | 847 |
| 868 FixedLayoutTestWebViewClient client; | 848 FixedLayoutTestWebViewClient client; |
| 869 client.m_screenInfo.deviceScaleFactor = 1; | 849 client.m_screenInfo.deviceScaleFactor = 1; |
| 870 int viewportWidth = 640; | 850 int viewportWidth = 640; |
| 871 int viewportHeight = 480; | 851 int viewportHeight = 480; |
| 872 float enforcedPageScalePactor = 0.5f; | 852 float enforcedPageScalePactor = 0.5f; |
| 873 | 853 |
| 874 FrameTestHelpers::WebViewHelper webViewHelper; | 854 FrameTestHelpers::WebViewHelper webViewHelper; |
| 875 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); | 855 webViewHelper.initializeAndLoad(m_baseURL + "viewport-wide-2x-initial-scale.
html", true, 0, &client); |
| 876 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 877 webViewHelper.webView()->settings()->setViewportEnabled(true); | 856 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 878 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScalePactor
); | 857 webViewHelper.webView()->setInitialPageScaleOverride(enforcedPageScalePactor
); |
| 879 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 858 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 880 | 859 |
| 881 EXPECT_EQ(enforcedPageScalePactor, webViewHelper.webView()->pageScaleFactor(
)); | 860 EXPECT_EQ(enforcedPageScalePactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 882 } | 861 } |
| 883 | 862 |
| 884 TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth) | 863 TEST_F(WebFrameTest, WideViewportInitialScaleDoesNotExpandFixedLayoutWidth) |
| 885 { | 864 { |
| 886 registerMockedHttpURLLoad("viewport-device-0.5x-initial-scale.html"); | 865 registerMockedHttpURLLoad("viewport-device-0.5x-initial-scale.html"); |
| 887 | 866 |
| 888 FixedLayoutTestWebViewClient client; | 867 FixedLayoutTestWebViewClient client; |
| 889 client.m_screenInfo.deviceScaleFactor = 1; | 868 client.m_screenInfo.deviceScaleFactor = 1; |
| 890 int viewportWidth = 640; | 869 int viewportWidth = 640; |
| 891 int viewportHeight = 480; | 870 int viewportHeight = 480; |
| 892 | 871 |
| 893 FrameTestHelpers::WebViewHelper webViewHelper; | 872 FrameTestHelpers::WebViewHelper webViewHelper; |
| 894 webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-sc
ale.html", true, 0, &client); | 873 webViewHelper.initializeAndLoad(m_baseURL + "viewport-device-0.5x-initial-sc
ale.html", true, 0, &client); |
| 895 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 896 webViewHelper.webView()->settings()->setViewportEnabled(true); | 874 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 897 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 875 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 898 webViewHelper.webView()->settings()->setUseWideViewport(true); | 876 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 899 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 877 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
| 900 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 878 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 901 | 879 |
| 902 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->fixedLayoutSize().width()); | 880 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 903 } | 881 } |
| 904 | 882 |
| 905 TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale) | 883 TEST_F(WebFrameTest, WideViewportAndWideContentWithInitialScale) |
| 906 { | 884 { |
| 907 registerMockedHttpURLLoad("wide_document_width_viewport.html"); | 885 registerMockedHttpURLLoad("wide_document_width_viewport.html"); |
| 908 | 886 |
| 909 FixedLayoutTestWebViewClient client; | 887 FixedLayoutTestWebViewClient client; |
| 910 client.m_screenInfo.deviceScaleFactor = 1; | 888 client.m_screenInfo.deviceScaleFactor = 1; |
| 911 int viewportWidth = 600; | 889 int viewportWidth = 600; |
| 912 int viewportHeight = 800; | 890 int viewportHeight = 800; |
| 913 | 891 |
| 914 FrameTestHelpers::WebViewHelper webViewHelper; | 892 FrameTestHelpers::WebViewHelper webViewHelper; |
| 915 webViewHelper.initializeAndLoad("about:blank", true, 0, &client); | 893 webViewHelper.initializeAndLoad("about:blank", true, 0, &client); |
| 916 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 917 webViewHelper.webView()->settings()->setViewportEnabled(true); | 894 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 918 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 895 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 919 webViewHelper.webView()->settings()->setUseWideViewport(true); | 896 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 920 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); | 897 webViewHelper.webView()->settings()->setViewportMetaLayoutSizeQuirk(true); |
| 921 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 898 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 922 | 899 |
| 923 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "wide_document_width_viewport.html"); | 900 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "wide_document_width_viewport.html"); |
| 924 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 901 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
| 925 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 902 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 926 | 903 |
| 927 int wideDocumentWidth = 800; | 904 int wideDocumentWidth = 800; |
| 928 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; | 905 float minimumPageScaleFactor = viewportWidth / (float) wideDocumentWidth; |
| 929 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); | 906 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->pageScaleFactor()
); |
| 930 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); | 907 EXPECT_EQ(minimumPageScaleFactor, webViewHelper.webView()->minimumPageScaleF
actor()); |
| 931 } | 908 } |
| 932 | 909 |
| 933 TEST_F(WebFrameTest, ZeroValuesQuirk) | 910 TEST_F(WebFrameTest, ZeroValuesQuirk) |
| 934 { | 911 { |
| 935 registerMockedHttpURLLoad("viewport-zero-values.html"); | 912 registerMockedHttpURLLoad("viewport-zero-values.html"); |
| 936 | 913 |
| 937 FixedLayoutTestWebViewClient client; | 914 FixedLayoutTestWebViewClient client; |
| 938 client.m_screenInfo.deviceScaleFactor = 1; | 915 client.m_screenInfo.deviceScaleFactor = 1; |
| 939 int viewportWidth = 640; | 916 int viewportWidth = 640; |
| 940 int viewportHeight = 480; | 917 int viewportHeight = 480; |
| 941 | 918 |
| 942 FrameTestHelpers::WebViewHelper webViewHelper; | 919 FrameTestHelpers::WebViewHelper webViewHelper; |
| 943 webViewHelper.initialize(true, 0, &client); | 920 webViewHelper.initialize(true, 0, &client); |
| 944 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 945 webViewHelper.webView()->settings()->setViewportEnabled(true); | 921 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 946 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 922 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
| 947 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 923 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 948 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-zero-values.html"); | 924 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-zero-values.html"); |
| 949 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 925 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
| 950 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 926 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 951 | 927 |
| 952 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->fixedLayoutSize().width()); | 928 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 953 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 929 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 954 | 930 |
| 955 webViewHelper.webView()->settings()->setUseWideViewport(true); | 931 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 956 webViewHelper.webView()->layout(); | 932 webViewHelper.webView()->layout(); |
| 957 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->fixedLayoutSize().width()); | 933 EXPECT_EQ(viewportWidth, webViewHelper.webViewImpl()->mainFrameImpl()->frame
View()->layoutSize().width()); |
| 958 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); | 934 EXPECT_EQ(1.0f, webViewHelper.webView()->pageScaleFactor()); |
| 959 } | 935 } |
| 960 | 936 |
| 961 TEST_F(WebFrameTest, OverflowHiddenDisablesScrolling) | 937 TEST_F(WebFrameTest, OverflowHiddenDisablesScrolling) |
| 962 { | 938 { |
| 963 registerMockedHttpURLLoad("body-overflow-hidden.html"); | 939 registerMockedHttpURLLoad("body-overflow-hidden.html"); |
| 964 | 940 |
| 965 FixedLayoutTestWebViewClient client; | 941 FixedLayoutTestWebViewClient client; |
| 966 client.m_screenInfo.deviceScaleFactor = 1; | 942 client.m_screenInfo.deviceScaleFactor = 1; |
| 967 int viewportWidth = 640; | 943 int viewportWidth = 640; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1010 FrameTestHelpers::WebViewHelper webViewHelper; | 986 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1011 webViewHelper.initialize(true, 0, &client); | 987 webViewHelper.initialize(true, 0, &client); |
| 1012 webViewHelper.webView()->enableFixedLayoutMode(true); | 988 webViewHelper.webView()->enableFixedLayoutMode(true); |
| 1013 webViewHelper.webView()->settings()->setViewportEnabled(true); | 989 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1014 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); | 990 webViewHelper.webView()->settings()->setViewportMetaZeroValuesQuirk(true); |
| 1015 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); | 991 webViewHelper.webView()->settings()->setWideViewportQuirkEnabled(true); |
| 1016 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-nonzero-values.html"); | 992 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), m_baseURL
+ "viewport-nonzero-values.html"); |
| 1017 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); | 993 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); |
| 1018 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 994 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1019 | 995 |
| 1020 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->fixedLayoutSize().width()); | 996 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
| 1021 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 997 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1022 | 998 |
| 1023 webViewHelper.webView()->settings()->setUseWideViewport(true); | 999 webViewHelper.webView()->settings()->setUseWideViewport(true); |
| 1024 webViewHelper.webView()->layout(); | 1000 webViewHelper.webView()->layout(); |
| 1025 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->fixedLayoutSize().width()); | 1001 EXPECT_EQ(viewportWidth / expectedPageScaleFactor, webViewHelper.webViewImpl
()->mainFrameImpl()->frameView()->layoutSize().width()); |
| 1026 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); | 1002 EXPECT_EQ(expectedPageScaleFactor, webViewHelper.webView()->pageScaleFactor(
)); |
| 1027 } | 1003 } |
| 1028 | 1004 |
| 1029 TEST_F(WebFrameTest, ScaleFactorShouldNotOscillate) | 1005 TEST_F(WebFrameTest, ScaleFactorShouldNotOscillate) |
| 1030 { | 1006 { |
| 1031 registerMockedHttpURLLoad("scale_oscillate.html"); | 1007 registerMockedHttpURLLoad("scale_oscillate.html"); |
| 1032 | 1008 |
| 1033 FixedLayoutTestWebViewClient client; | 1009 FixedLayoutTestWebViewClient client; |
| 1034 client.m_screenInfo.deviceScaleFactor = static_cast<float>(1.325); | 1010 client.m_screenInfo.deviceScaleFactor = static_cast<float>(1.325); |
| 1035 int viewportWidth = 800; | 1011 int viewportWidth = 800; |
| 1036 int viewportHeight = 1057; | 1012 int viewportHeight = 1057; |
| 1037 | 1013 |
| 1038 FrameTestHelpers::WebViewHelper webViewHelper; | 1014 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1039 webViewHelper.initializeAndLoad(m_baseURL + "scale_oscillate.html", true, 0,
&client); | 1015 webViewHelper.initializeAndLoad(m_baseURL + "scale_oscillate.html", true, 0,
&client); |
| 1040 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1041 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1016 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1042 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1017 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1043 webViewHelper.webView()->layout(); | 1018 webViewHelper.webView()->layout(); |
| 1044 } | 1019 } |
| 1045 | 1020 |
| 1046 TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout) | 1021 TEST_F(WebFrameTest, setPageScaleFactorDoesNotLayout) |
| 1047 { | 1022 { |
| 1048 registerMockedHttpURLLoad("fixed_layout.html"); | 1023 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1049 | 1024 |
| 1050 FixedLayoutTestWebViewClient client; | 1025 FixedLayoutTestWebViewClient client; |
| 1051 client.m_screenInfo.deviceScaleFactor = 1; | 1026 client.m_screenInfo.deviceScaleFactor = 1; |
| 1052 // Small viewport to ensure there are always scrollbars. | 1027 // Small viewport to ensure there are always scrollbars. |
| 1053 int viewportWidth = 64; | 1028 int viewportWidth = 64; |
| 1054 int viewportHeight = 48; | 1029 int viewportHeight = 48; |
| 1055 | 1030 |
| 1056 FrameTestHelpers::WebViewHelper webViewHelper; | 1031 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1057 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 1032 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 1058 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1059 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1033 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1060 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1034 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1061 webViewHelper.webView()->layout(); | 1035 webViewHelper.webView()->layout(); |
| 1062 | 1036 |
| 1063 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1037 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1064 webViewHelper.webViewImpl()->setPageScaleFactor(3, WebPoint()); | 1038 webViewHelper.webViewImpl()->setPageScaleFactor(3, WebPoint()); |
| 1065 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1039 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1066 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1040 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1067 } | 1041 } |
| 1068 | 1042 |
| 1069 TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) | 1043 TEST_F(WebFrameTest, setPageScaleFactorWithOverlayScrollbarsDoesNotLayout) |
| 1070 { | 1044 { |
| 1071 UseMockScrollbarSettings mockScrollbarSettings; | 1045 UseMockScrollbarSettings mockScrollbarSettings; |
| 1072 | 1046 |
| 1073 registerMockedHttpURLLoad("fixed_layout.html"); | 1047 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1074 | 1048 |
| 1075 FixedLayoutTestWebViewClient client; | 1049 FixedLayoutTestWebViewClient client; |
| 1076 client.m_screenInfo.deviceScaleFactor = 1; | 1050 client.m_screenInfo.deviceScaleFactor = 1; |
| 1077 int viewportWidth = 640; | 1051 int viewportWidth = 640; |
| 1078 int viewportHeight = 480; | 1052 int viewportHeight = 480; |
| 1079 | 1053 |
| 1080 FrameTestHelpers::WebViewHelper webViewHelper; | 1054 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1081 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 1055 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 1082 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1083 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1056 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1084 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1057 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1085 webViewHelper.webView()->layout(); | 1058 webViewHelper.webView()->layout(); |
| 1086 | 1059 |
| 1087 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); | 1060 int prevLayoutCount = webViewHelper.webViewImpl()->mainFrameImpl()->frameVie
w()->layoutCount(); |
| 1088 webViewHelper.webViewImpl()->setPageScaleFactor(30, WebPoint()); | 1061 webViewHelper.webViewImpl()->setPageScaleFactor(30, WebPoint()); |
| 1089 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); | 1062 EXPECT_FALSE(webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->need
sLayout()); |
| 1090 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); | 1063 EXPECT_EQ(prevLayoutCount, webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView()->layoutCount()); |
| 1091 | 1064 |
| 1092 } | 1065 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1110 { | 1083 { |
| 1111 registerMockedHttpURLLoad("fixed_layout.html"); | 1084 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1112 | 1085 |
| 1113 FixedLayoutTestWebViewClient client; | 1086 FixedLayoutTestWebViewClient client; |
| 1114 client.m_screenInfo.deviceScaleFactor = 1; | 1087 client.m_screenInfo.deviceScaleFactor = 1; |
| 1115 int viewportWidth = 640; | 1088 int viewportWidth = 640; |
| 1116 int viewportHeight = 480; | 1089 int viewportHeight = 480; |
| 1117 | 1090 |
| 1118 FrameTestHelpers::WebViewHelper webViewHelper; | 1091 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1119 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 1092 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 1120 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1121 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1093 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1122 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1094 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1123 webViewHelper.webView()->layout(); | 1095 webViewHelper.webView()->layout(); |
| 1124 | 1096 |
| 1125 webViewHelper.webView()->setPageScaleFactor(3, WebPoint()); | 1097 webViewHelper.webView()->setPageScaleFactor(3, WebPoint()); |
| 1126 webViewHelper.webViewImpl()->page()->mainFrame()->loader()->history()->saveD
ocumentAndScrollState(); | 1098 webViewHelper.webViewImpl()->page()->mainFrame()->loader()->history()->saveD
ocumentAndScrollState(); |
| 1127 webViewHelper.webView()->setPageScaleFactor(1, WebPoint()); | 1099 webViewHelper.webView()->setPageScaleFactor(1, WebPoint()); |
| 1128 webViewHelper.webViewImpl()->page()->mainFrame()->loader()->history()->resto
reScrollPositionAndViewState(); | 1100 webViewHelper.webViewImpl()->page()->mainFrame()->loader()->history()->resto
reScrollPositionAndViewState(); |
| 1129 EXPECT_EQ(3, webViewHelper.webView()->pageScaleFactor()); | 1101 EXPECT_EQ(3, webViewHelper.webView()->pageScaleFactor()); |
| 1130 } | 1102 } |
| 1131 | 1103 |
| 1132 TEST_F(WebFrameTest, pageScaleFactorShrinksViewport) | 1104 TEST_F(WebFrameTest, pageScaleFactorShrinksViewport) |
| 1133 { | 1105 { |
| 1134 registerMockedHttpURLLoad("large-div.html"); | 1106 registerMockedHttpURLLoad("large-div.html"); |
| 1135 | 1107 |
| 1136 FixedLayoutTestWebViewClient client; | 1108 FixedLayoutTestWebViewClient client; |
| 1137 client.m_screenInfo.deviceScaleFactor = 1; | 1109 client.m_screenInfo.deviceScaleFactor = 1; |
| 1138 // Small viewport to ensure there are always scrollbars. | 1110 // Small viewport to ensure there are always scrollbars. |
| 1139 int viewportWidth = 64; | 1111 int viewportWidth = 64; |
| 1140 int viewportHeight = 48; | 1112 int viewportHeight = 48; |
| 1141 | 1113 |
| 1142 FrameTestHelpers::WebViewHelper webViewHelper; | 1114 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1143 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); | 1115 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); |
| 1144 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1145 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1116 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1146 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1117 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1147 webViewHelper.webView()->layout(); | 1118 webViewHelper.webView()->layout(); |
| 1148 | 1119 |
| 1149 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); | 1120 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); |
| 1150 int viewportWidthMinusScrollbar = viewportWidth - (view->verticalScrollbar()
->isOverlayScrollbar() ? 0 : 15); | 1121 int viewportWidthMinusScrollbar = viewportWidth - (view->verticalScrollbar()
->isOverlayScrollbar() ? 0 : 15); |
| 1151 int viewportHeightMinusScrollbar = viewportHeight - (view->horizontalScrollb
ar()->isOverlayScrollbar() ? 0 : 15); | 1122 int viewportHeightMinusScrollbar = viewportHeight - (view->horizontalScrollb
ar()->isOverlayScrollbar() ? 0 : 15); |
| 1152 | 1123 |
| 1153 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); | 1124 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); |
| 1154 | 1125 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1169 { | 1140 { |
| 1170 registerMockedHttpURLLoad("fixed_layout.html"); | 1141 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1171 | 1142 |
| 1172 FixedLayoutTestWebViewClient client; | 1143 FixedLayoutTestWebViewClient client; |
| 1173 client.m_screenInfo.deviceScaleFactor = 1; | 1144 client.m_screenInfo.deviceScaleFactor = 1; |
| 1174 int viewportWidth = 640; | 1145 int viewportWidth = 640; |
| 1175 int viewportHeight = 480; | 1146 int viewportHeight = 480; |
| 1176 | 1147 |
| 1177 FrameTestHelpers::WebViewHelper webViewHelper; | 1148 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1178 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 1149 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 1179 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1180 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1150 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1181 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1151 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1182 webViewHelper.webView()->layout(); | 1152 webViewHelper.webView()->layout(); |
| 1183 | 1153 |
| 1184 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); | 1154 webViewHelper.webView()->setPageScaleFactor(2, WebPoint()); |
| 1185 | 1155 |
| 1186 EXPECT_EQ(980, webViewHelper.webViewImpl()->page()->mainFrame()->contentRend
erer()->unscaledDocumentRect().width()); | 1156 EXPECT_EQ(980, webViewHelper.webViewImpl()->page()->mainFrame()->contentRend
erer()->unscaledDocumentRect().width()); |
| 1187 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); | 1157 EXPECT_EQ(980, webViewHelper.webViewImpl()->mainFrameImpl()->frameView()->co
ntentsSize().width()); |
| 1188 } | 1158 } |
| 1189 | 1159 |
| 1190 TEST_F(WebFrameTest, targetDensityDpiHigh) | 1160 TEST_F(WebFrameTest, targetDensityDpiHigh) |
| 1191 { | 1161 { |
| 1192 UseMockScrollbarSettings mockScrollbarSettings; | 1162 UseMockScrollbarSettings mockScrollbarSettings; |
| 1193 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); | 1163 registerMockedHttpURLLoad("viewport-target-densitydpi-high.html"); |
| 1194 | 1164 |
| 1195 FixedLayoutTestWebViewClient client; | 1165 FixedLayoutTestWebViewClient client; |
| 1196 // high-dpi = 240 | 1166 // high-dpi = 240 |
| 1197 float targetDpi = 240.0f; | 1167 float targetDpi = 240.0f; |
| 1198 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 1168 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| 1199 int viewportWidth = 640; | 1169 int viewportWidth = 640; |
| 1200 int viewportHeight = 480; | 1170 int viewportHeight = 480; |
| 1201 | 1171 |
| 1202 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 1172 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
| 1203 float deviceScaleFactor = deviceScaleFactors[i]; | 1173 float deviceScaleFactor = deviceScaleFactors[i]; |
| 1204 float deviceDpi = deviceScaleFactor * 160.0f; | 1174 float deviceDpi = deviceScaleFactor * 160.0f; |
| 1205 client.m_screenInfo.deviceScaleFactor = deviceScaleFactor; | 1175 client.m_screenInfo.deviceScaleFactor = deviceScaleFactor; |
| 1206 | 1176 |
| 1207 FrameTestHelpers::WebViewHelper webViewHelper; | 1177 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1208 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-high
.html", true, 0, &client); | 1178 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
high.html", true, 0, &client); |
| 1209 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1210 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1179 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1211 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); | 1180 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); |
| 1212 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1181 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1213 | 1182 |
| 1214 // We need to account for the fact that logical pixels are unconditional
ly multiplied by deviceScaleFactor to produce | 1183 // We need to account for the fact that logical pixels are unconditional
ly multiplied by deviceScaleFactor to produce |
| 1215 // physical pixels. | 1184 // physical pixels. |
| 1216 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; | 1185 float densityDpiScaleRatio = deviceScaleFactor * targetDpi / deviceDpi; |
| 1217 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webView(
)->fixedLayoutSize().width, 1.0f); | 1186 EXPECT_NEAR(viewportWidth * densityDpiScaleRatio, webViewHelper.webViewI
mpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f); |
| 1218 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView
()->fixedLayoutSize().height, 1.0f); | 1187 EXPECT_NEAR(viewportHeight * densityDpiScaleRatio, webViewHelper.webView
Impl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.0f); |
| 1219 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc
aleFactor(), 0.01f); | 1188 EXPECT_NEAR(1.0f / densityDpiScaleRatio, webViewHelper.webView()->pageSc
aleFactor(), 0.01f); |
| 1220 } | 1189 } |
| 1221 } | 1190 } |
| 1222 | 1191 |
| 1223 TEST_F(WebFrameTest, targetDensityDpiDevice) | 1192 TEST_F(WebFrameTest, targetDensityDpiDevice) |
| 1224 { | 1193 { |
| 1225 UseMockScrollbarSettings mockScrollbarSettings; | 1194 UseMockScrollbarSettings mockScrollbarSettings; |
| 1226 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); | 1195 registerMockedHttpURLLoad("viewport-target-densitydpi-device.html"); |
| 1227 | 1196 |
| 1228 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; | 1197 float deviceScaleFactors[] = { 1.0f, 4.0f / 3.0f, 2.0f }; |
| 1229 | 1198 |
| 1230 FixedLayoutTestWebViewClient client; | 1199 FixedLayoutTestWebViewClient client; |
| 1231 int viewportWidth = 640; | 1200 int viewportWidth = 640; |
| 1232 int viewportHeight = 480; | 1201 int viewportHeight = 480; |
| 1233 | 1202 |
| 1234 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { | 1203 for (size_t i = 0; i < ARRAY_SIZE(deviceScaleFactors); ++i) { |
| 1235 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; | 1204 client.m_screenInfo.deviceScaleFactor = deviceScaleFactors[i]; |
| 1236 | 1205 |
| 1237 FrameTestHelpers::WebViewHelper webViewHelper; | 1206 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1238 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-devi
ce.html", true, 0, &client); | 1207 webViewHelper.initializeAndLoad(m_baseURL + "viewport-target-densitydpi-
device.html", true, 0, &client); |
| 1239 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1240 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1208 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1241 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); | 1209 webViewHelper.webView()->settings()->setSupportDeprecatedTargetDensityDP
I(true); |
| 1242 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1210 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1243 | 1211 |
| 1244 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi
ewHelper.webView()->fixedLayoutSize().width, 1.0f); | 1212 EXPECT_NEAR(viewportWidth * client.m_screenInfo.deviceScaleFactor, webVi
ewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().width(), 1.0f
); |
| 1245 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV
iewHelper.webView()->fixedLayoutSize().height, 1.0f); | 1213 EXPECT_NEAR(viewportHeight * client.m_screenInfo.deviceScaleFactor, webV
iewHelper.webViewImpl()->mainFrameImpl()->frameView()->layoutSize().height(), 1.
0f); |
| 1246 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.
webView()->pageScaleFactor(), 0.01f); | 1214 EXPECT_NEAR(1.0f / client.m_screenInfo.deviceScaleFactor, webViewHelper.
webView()->pageScaleFactor(), 0.01f); |
| 1247 } | 1215 } |
| 1248 } | 1216 } |
| 1249 | 1217 |
| 1250 class WebFrameResizeTest : public WebFrameTest { | 1218 class WebFrameResizeTest : public WebFrameTest { |
| 1251 protected: | 1219 protected: |
| 1252 | 1220 |
| 1253 static WebCore::FloatSize computeRelativeOffset(const WebCore::IntPoint& abs
oluteOffset, const WebCore::LayoutRect& rect) | 1221 static WebCore::FloatSize computeRelativeOffset(const WebCore::IntPoint& abs
oluteOffset, const WebCore::LayoutRect& rect) |
| 1254 { | 1222 { |
| 1255 WebCore::FloatSize relativeOffset = WebCore::FloatPoint(absoluteOffset)
- rect.location(); | 1223 WebCore::FloatSize relativeOffset = WebCore::FloatPoint(absoluteOffset)
- rect.location(); |
| 1256 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height()); | 1224 relativeOffset.scale(1.f / rect.width(), 1.f / rect.height()); |
| 1257 return relativeOffset; | 1225 return relativeOffset; |
| 1258 } | 1226 } |
| 1259 | 1227 |
| 1260 void testResizeYieldsCorrectScrollAndScale(const char* url, | 1228 void testResizeYieldsCorrectScrollAndScale(const char* url, |
| 1261 const float initialPageScaleFacto
r, | 1229 const float initialPageScaleFacto
r, |
| 1262 const WebSize scrollOffset, | 1230 const WebSize scrollOffset, |
| 1263 const WebSize viewportSize, | 1231 const WebSize viewportSize, |
| 1264 const bool shouldScaleRelativeToV
iewportWidth) { | 1232 const bool shouldScaleRelativeToV
iewportWidth) { |
| 1265 registerMockedHttpURLLoad(url); | 1233 registerMockedHttpURLLoad(url); |
| 1266 | 1234 |
| 1267 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp
ortSize.height; | 1235 const float aspectRatio = static_cast<float>(viewportSize.width) / viewp
ortSize.height; |
| 1268 | 1236 |
| 1269 FrameTestHelpers::WebViewHelper webViewHelper; | 1237 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1270 webViewHelper.initializeAndLoad(m_baseURL + url, true); | 1238 webViewHelper.initializeAndLoad(m_baseURL + url, true); |
| 1271 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1239 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1272 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1273 | 1240 |
| 1274 // Origin scrollOffsets preserved under resize. | 1241 // Origin scrollOffsets preserved under resize. |
| 1275 { | 1242 { |
| 1276 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); | 1243 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.width, view
portSize.height)); |
| 1277 webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFact
or, WebPoint()); | 1244 webViewHelper.webViewImpl()->setPageScaleFactor(initialPageScaleFact
or, WebPoint()); |
| 1278 ASSERT_EQ(viewportSize, webViewHelper.webViewImpl()->size()); | 1245 ASSERT_EQ(viewportSize, webViewHelper.webViewImpl()->size()); |
| 1279 ASSERT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); | 1246 ASSERT_EQ(initialPageScaleFactor, webViewHelper.webViewImpl()->pageS
caleFactor()); |
| 1280 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.height, vie
wportSize.width)); | 1247 webViewHelper.webViewImpl()->resize(WebSize(viewportSize.height, vie
wportSize.width)); |
| 1281 float expectedPageScaleFactor = initialPageScaleFactor * (shouldScal
eRelativeToViewportWidth ? 1 / aspectRatio : 1); | 1248 float expectedPageScaleFactor = initialPageScaleFactor * (shouldScal
eRelativeToViewportWidth ? 1 / aspectRatio : 1); |
| 1282 EXPECT_NEAR(expectedPageScaleFactor, webViewHelper.webViewImpl()->pa
geScaleFactor(), 0.05f); | 1249 EXPECT_NEAR(expectedPageScaleFactor, webViewHelper.webViewImpl()->pa
geScaleFactor(), 0.05f); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 UseMockScrollbarSettings mockScrollbarSettings; | 1337 UseMockScrollbarSettings mockScrollbarSettings; |
| 1371 registerMockedHttpURLLoad("large-div.html"); | 1338 registerMockedHttpURLLoad("large-div.html"); |
| 1372 | 1339 |
| 1373 FixedLayoutTestWebViewClient client; | 1340 FixedLayoutTestWebViewClient client; |
| 1374 client.m_screenInfo.deviceScaleFactor = 1; | 1341 client.m_screenInfo.deviceScaleFactor = 1; |
| 1375 int viewportWidth = 50; | 1342 int viewportWidth = 50; |
| 1376 int viewportHeight = 50; | 1343 int viewportHeight = 50; |
| 1377 | 1344 |
| 1378 FrameTestHelpers::WebViewHelper webViewHelper; | 1345 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1379 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); | 1346 webViewHelper.initializeAndLoad(m_baseURL + "large-div.html", true, 0, &clie
nt); |
| 1380 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1381 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1347 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1382 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1348 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1383 webViewHelper.webView()->layout(); | 1349 webViewHelper.webView()->layout(); |
| 1384 | 1350 |
| 1385 // Set <1 page scale so that the clip rect should be larger than | 1351 // Set <1 page scale so that the clip rect should be larger than |
| 1386 // the viewport size as passed into resize(). | 1352 // the viewport size as passed into resize(). |
| 1387 webViewHelper.webView()->setPageScaleFactor(0.5, WebPoint()); | 1353 webViewHelper.webView()->setPageScaleFactor(0.5, WebPoint()); |
| 1388 | 1354 |
| 1389 SkBitmap bitmap; | 1355 SkBitmap bitmap; |
| 1390 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); | 1356 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1412 UseMockScrollbarSettings mockScrollbarSettings; | 1378 UseMockScrollbarSettings mockScrollbarSettings; |
| 1413 registerMockedHttpURLLoad("fixed_layout.html"); | 1379 registerMockedHttpURLLoad("fixed_layout.html"); |
| 1414 | 1380 |
| 1415 FixedLayoutTestWebViewClient client; | 1381 FixedLayoutTestWebViewClient client; |
| 1416 client.m_screenInfo.deviceScaleFactor = 1; | 1382 client.m_screenInfo.deviceScaleFactor = 1; |
| 1417 int viewportWidth = 640; | 1383 int viewportWidth = 640; |
| 1418 int viewportHeight = 480; | 1384 int viewportHeight = 480; |
| 1419 | 1385 |
| 1420 FrameTestHelpers::WebViewHelper webViewHelper; | 1386 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1421 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); | 1387 webViewHelper.initializeAndLoad(m_baseURL + "fixed_layout.html", true, 0, &c
lient); |
| 1422 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1423 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1388 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1424 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1389 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1425 webViewHelper.webView()->layout(); | 1390 webViewHelper.webView()->layout(); |
| 1426 | 1391 |
| 1427 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); | 1392 WebCore::FrameView* view = webViewHelper.webViewImpl()->mainFrameImpl()->fra
meView(); |
| 1428 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 1393 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
| 1429 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 1394 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
| 1430 | 1395 |
| 1431 webViewHelper.webView()->setPageScaleFactor(10, WebPoint()); | 1396 webViewHelper.webView()->setPageScaleFactor(10, WebPoint()); |
| 1432 | 1397 |
| 1433 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); | 1398 EXPECT_EQ(view->scrollSize(WebCore::HorizontalScrollbar), view->contentsSize
().width() - view->visibleContentRect().width()); |
| 1434 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); | 1399 EXPECT_EQ(view->scrollSize(WebCore::VerticalScrollbar), view->contentsSize()
.height() - view->visibleContentRect().height()); |
| 1435 } | 1400 } |
| 1436 | 1401 |
| 1437 TEST_F(WebFrameTest, CanOverrideScaleLimits) | 1402 TEST_F(WebFrameTest, CanOverrideScaleLimits) |
| 1438 { | 1403 { |
| 1439 UseMockScrollbarSettings mockScrollbarSettings; | 1404 UseMockScrollbarSettings mockScrollbarSettings; |
| 1440 | 1405 |
| 1441 registerMockedHttpURLLoad("no_scale_for_you.html"); | 1406 registerMockedHttpURLLoad("no_scale_for_you.html"); |
| 1442 | 1407 |
| 1443 FixedLayoutTestWebViewClient client; | 1408 FixedLayoutTestWebViewClient client; |
| 1444 client.m_screenInfo.deviceScaleFactor = 1; | 1409 client.m_screenInfo.deviceScaleFactor = 1; |
| 1445 int viewportWidth = 640; | 1410 int viewportWidth = 640; |
| 1446 int viewportHeight = 480; | 1411 int viewportHeight = 480; |
| 1447 | 1412 |
| 1448 FrameTestHelpers::WebViewHelper webViewHelper; | 1413 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1449 webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0
, &client); | 1414 webViewHelper.initializeAndLoad(m_baseURL + "no_scale_for_you.html", true, 0
, &client); |
| 1450 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1451 webViewHelper.webView()->settings()->setViewportEnabled(true); | 1415 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 1452 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1416 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1453 | 1417 |
| 1454 EXPECT_EQ(2.0f, webViewHelper.webView()->minimumPageScaleFactor()); | 1418 EXPECT_EQ(2.0f, webViewHelper.webView()->minimumPageScaleFactor()); |
| 1455 EXPECT_EQ(2.0f, webViewHelper.webView()->maximumPageScaleFactor()); | 1419 EXPECT_EQ(2.0f, webViewHelper.webView()->maximumPageScaleFactor()); |
| 1456 | 1420 |
| 1457 webViewHelper.webView()->setIgnoreViewportTagScaleLimits(true); | 1421 webViewHelper.webView()->setIgnoreViewportTagScaleLimits(true); |
| 1458 webViewHelper.webView()->layout(); | 1422 webViewHelper.webView()->layout(); |
| 1459 | 1423 |
| 1460 EXPECT_EQ(1.0f, webViewHelper.webView()->minimumPageScaleFactor()); | 1424 EXPECT_EQ(1.0f, webViewHelper.webView()->minimumPageScaleFactor()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1508 const float deviceScaleFactor = 2.0f; | 1472 const float deviceScaleFactor = 2.0f; |
| 1509 int viewportWidth = 640 / deviceScaleFactor; | 1473 int viewportWidth = 640 / deviceScaleFactor; |
| 1510 int viewportHeight = 1280 / deviceScaleFactor; | 1474 int viewportHeight = 1280 / deviceScaleFactor; |
| 1511 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1475 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1512 FrameTestHelpers::WebViewHelper webViewHelper; | 1476 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1513 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html"); | 1477 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_auto_zoom_into_di
v_test.html"); |
| 1514 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 1478 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 1515 webViewHelper.webView()->setPageScaleFactorLimits(0.01f, 4); | 1479 webViewHelper.webView()->setPageScaleFactorLimits(0.01f, 4); |
| 1516 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 1480 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); |
| 1517 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1481 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1518 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1519 webViewHelper.webView()->layout(); | 1482 webViewHelper.webView()->layout(); |
| 1520 | 1483 |
| 1521 WebRect wideDiv(200, 100, 400, 150); | 1484 WebRect wideDiv(200, 100, 400, 150); |
| 1522 WebRect tallDiv(200, 300, 400, 800); | 1485 WebRect tallDiv(200, 300, 400, 800); |
| 1523 WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, touchPointPadding
, touchPointPadding); | 1486 WebRect doubleTapPointWide(wideDiv.x + 50, wideDiv.y + 50, touchPointPadding
, touchPointPadding); |
| 1524 WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, touchPointPadding
, touchPointPadding); | 1487 WebRect doubleTapPointTall(tallDiv.x + 50, tallDiv.y + 50, touchPointPadding
, touchPointPadding); |
| 1525 WebRect wideBlockBounds; | 1488 WebRect wideBlockBounds; |
| 1526 WebRect tallBlockBounds; | 1489 WebRect tallBlockBounds; |
| 1527 float scale; | 1490 float scale; |
| 1528 WebPoint scroll; | 1491 WebPoint scroll; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1585 TEST_F(WebFrameTest, DivAutoZoomWideDivTest) | 1548 TEST_F(WebFrameTest, DivAutoZoomWideDivTest) |
| 1586 { | 1549 { |
| 1587 registerMockedHttpURLLoad("get_wide_div_for_auto_zoom_test.html"); | 1550 registerMockedHttpURLLoad("get_wide_div_for_auto_zoom_test.html"); |
| 1588 | 1551 |
| 1589 const float deviceScaleFactor = 2.0f; | 1552 const float deviceScaleFactor = 2.0f; |
| 1590 int viewportWidth = 640 / deviceScaleFactor; | 1553 int viewportWidth = 640 / deviceScaleFactor; |
| 1591 int viewportHeight = 1280 / deviceScaleFactor; | 1554 int viewportHeight = 1280 / deviceScaleFactor; |
| 1592 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1555 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1593 FrameTestHelpers::WebViewHelper webViewHelper; | 1556 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1594 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html"); | 1557 webViewHelper.initializeAndLoad(m_baseURL + "get_wide_div_for_auto_zoom_test
.html"); |
| 1595 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1596 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1558 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1597 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); | 1559 webViewHelper.webView()->setPageScaleFactorLimits(1.0f, 4); |
| 1598 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 1560 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 1599 webViewHelper.webView()->setPageScaleFactor(1.0f, WebPoint(0, 0)); | 1561 webViewHelper.webView()->setPageScaleFactor(1.0f, WebPoint(0, 0)); |
| 1600 webViewHelper.webView()->layout(); | 1562 webViewHelper.webView()->layout(); |
| 1601 | 1563 |
| 1602 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1564 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1603 | 1565 |
| 1604 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; | 1566 float doubleTapZoomAlreadyLegibleScale = webViewHelper.webViewImpl()->minimu
mPageScaleFactor() * doubleTapZoomAlreadyLegibleRatio; |
| 1605 | 1567 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1647 TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) | 1609 TEST_F(WebFrameTest, DivAutoZoomMultipleDivsTest) |
| 1648 { | 1610 { |
| 1649 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); | 1611 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); |
| 1650 | 1612 |
| 1651 const float deviceScaleFactor = 2.0f; | 1613 const float deviceScaleFactor = 2.0f; |
| 1652 int viewportWidth = 640 / deviceScaleFactor; | 1614 int viewportWidth = 640 / deviceScaleFactor; |
| 1653 int viewportHeight = 1280 / deviceScaleFactor; | 1615 int viewportHeight = 1280 / deviceScaleFactor; |
| 1654 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1616 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1655 FrameTestHelpers::WebViewHelper webViewHelper; | 1617 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1656 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); | 1618 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); |
| 1657 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1658 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1619 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1659 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); | 1620 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); |
| 1660 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 1621 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 1661 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 1622 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); |
| 1662 webViewHelper.webView()->layout(); | 1623 webViewHelper.webView()->layout(); |
| 1663 | 1624 |
| 1664 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1625 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1665 | 1626 |
| 1666 WebRect topDiv(200, 100, 200, 150); | 1627 WebRect topDiv(200, 100, 200, 150); |
| 1667 WebRect bottomDiv(200, 300, 200, 150); | 1628 WebRect bottomDiv(200, 300, 200, 150); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1696 | 1657 |
| 1697 TEST_F(WebFrameTest, DivAutoZoomScaleBoundsTest) | 1658 TEST_F(WebFrameTest, DivAutoZoomScaleBoundsTest) |
| 1698 { | 1659 { |
| 1699 registerMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); | 1660 registerMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); |
| 1700 | 1661 |
| 1701 int viewportWidth = 320; | 1662 int viewportWidth = 320; |
| 1702 int viewportHeight = 480; | 1663 int viewportHeight = 480; |
| 1703 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1664 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1704 FrameTestHelpers::WebViewHelper webViewHelper; | 1665 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1705 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto
_zoom_test.html"); | 1666 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto
_zoom_test.html"); |
| 1706 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1707 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1667 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1708 webViewHelper.webView()->setDeviceScaleFactor(1.5f); | 1668 webViewHelper.webView()->setDeviceScaleFactor(1.5f); |
| 1709 webViewHelper.webView()->layout(); | 1669 webViewHelper.webView()->layout(); |
| 1710 | 1670 |
| 1711 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1671 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1712 | 1672 |
| 1713 WebRect div(200, 100, 200, 150); | 1673 WebRect div(200, 100, 200, 150); |
| 1714 WebPoint doubleTapPoint(div.x + 50, div.y + 50); | 1674 WebPoint doubleTapPoint(div.x + 50, div.y + 50); |
| 1715 float scale; | 1675 float scale; |
| 1716 | 1676 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1759 TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest) | 1719 TEST_F(WebFrameTest, DivAutoZoomScaleFontScaleFactorTest) |
| 1760 { | 1720 { |
| 1761 registerMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); | 1721 registerMockedHttpURLLoad("get_scale_bounds_check_for_auto_zoom_test.html"); |
| 1762 | 1722 |
| 1763 int viewportWidth = 320; | 1723 int viewportWidth = 320; |
| 1764 int viewportHeight = 480; | 1724 int viewportHeight = 480; |
| 1765 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1725 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1766 float textAutosizingFontScaleFactor = 1.13f; | 1726 float textAutosizingFontScaleFactor = 1.13f; |
| 1767 FrameTestHelpers::WebViewHelper webViewHelper; | 1727 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1768 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto
_zoom_test.html"); | 1728 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_bounds_check_for_auto
_zoom_test.html"); |
| 1769 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1770 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1729 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1771 webViewHelper.webView()->layout(); | 1730 webViewHelper.webView()->layout(); |
| 1772 | 1731 |
| 1773 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1732 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1774 webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(tru
e); | 1733 webViewHelper.webViewImpl()->page()->settings().setTextAutosizingEnabled(tru
e); |
| 1775 webViewHelper.webViewImpl()->page()->settings().setTextAutosizingFontScaleFa
ctor(textAutosizingFontScaleFactor); | 1734 webViewHelper.webViewImpl()->page()->settings().setTextAutosizingFontScaleFa
ctor(textAutosizingFontScaleFactor); |
| 1776 | 1735 |
| 1777 WebRect div(200, 100, 200, 150); | 1736 WebRect div(200, 100, 200, 150); |
| 1778 WebPoint doubleTapPoint(div.x + 50, div.y + 50); | 1737 WebPoint doubleTapPoint(div.x + 50, div.y + 50); |
| 1779 float scale; | 1738 float scale; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1838 TEST_F(WebFrameTest, DivMultipleTargetZoomMultipleDivsTest) | 1797 TEST_F(WebFrameTest, DivMultipleTargetZoomMultipleDivsTest) |
| 1839 { | 1798 { |
| 1840 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); | 1799 registerMockedHttpURLLoad("get_multiple_divs_for_auto_zoom_test.html"); |
| 1841 | 1800 |
| 1842 const float deviceScaleFactor = 2.0f; | 1801 const float deviceScaleFactor = 2.0f; |
| 1843 int viewportWidth = 640 / deviceScaleFactor; | 1802 int viewportWidth = 640 / deviceScaleFactor; |
| 1844 int viewportHeight = 1280 / deviceScaleFactor; | 1803 int viewportHeight = 1280 / deviceScaleFactor; |
| 1845 float doubleTapZoomAlreadyLegibleRatio = 1.2f; | 1804 float doubleTapZoomAlreadyLegibleRatio = 1.2f; |
| 1846 FrameTestHelpers::WebViewHelper webViewHelper; | 1805 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1847 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); | 1806 webViewHelper.initializeAndLoad(m_baseURL + "get_multiple_divs_for_auto_zoom
_test.html"); |
| 1848 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1849 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1807 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1850 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); | 1808 webViewHelper.webView()->setPageScaleFactorLimits(0.5f, 4); |
| 1851 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); | 1809 webViewHelper.webView()->setDeviceScaleFactor(deviceScaleFactor); |
| 1852 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); | 1810 webViewHelper.webView()->setPageScaleFactor(0.5f, WebPoint(0, 0)); |
| 1853 webViewHelper.webView()->layout(); | 1811 webViewHelper.webView()->layout(); |
| 1854 | 1812 |
| 1855 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1813 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1856 | 1814 |
| 1857 WebRect viewportRect(0, 0, viewportWidth, viewportHeight); | 1815 WebRect viewportRect(0, 0, viewportWidth, viewportHeight); |
| 1858 WebRect topDiv(200, 100, 200, 150); | 1816 WebRect topDiv(200, 100, 200, 150); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1875 { | 1833 { |
| 1876 registerMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); | 1834 registerMockedHttpURLLoad("get_scale_for_zoom_into_editable_test.html"); |
| 1877 | 1835 |
| 1878 int viewportWidth = 450; | 1836 int viewportWidth = 450; |
| 1879 int viewportHeight = 300; | 1837 int viewportHeight = 300; |
| 1880 float leftBoxRatio = 0.3f; | 1838 float leftBoxRatio = 0.3f; |
| 1881 int caretPadding = 10; | 1839 int caretPadding = 10; |
| 1882 float minReadableCaretHeight = 18.0f; | 1840 float minReadableCaretHeight = 18.0f; |
| 1883 FrameTestHelpers::WebViewHelper webViewHelper; | 1841 FrameTestHelpers::WebViewHelper webViewHelper; |
| 1884 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_zoom_into_editabl
e_test.html"); | 1842 webViewHelper.initializeAndLoad(m_baseURL + "get_scale_for_zoom_into_editabl
e_test.html"); |
| 1885 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 1886 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); | 1843 webViewHelper.webView()->resize(WebSize(viewportWidth, viewportHeight)); |
| 1887 webViewHelper.webView()->setPageScaleFactorLimits(1, 4); | 1844 webViewHelper.webView()->setPageScaleFactorLimits(1, 4); |
| 1888 webViewHelper.webView()->layout(); | 1845 webViewHelper.webView()->layout(); |
| 1889 webViewHelper.webView()->setDeviceScaleFactor(1.5f); | 1846 webViewHelper.webView()->setDeviceScaleFactor(1.5f); |
| 1890 webViewHelper.webView()->settings()->setAutoZoomFocusedNodeToLegibleScale(tr
ue); | 1847 webViewHelper.webView()->settings()->setAutoZoomFocusedNodeToLegibleScale(tr
ue); |
| 1891 | 1848 |
| 1892 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); | 1849 webViewHelper.webViewImpl()->enableFakePageScaleAnimationForTesting(true); |
| 1893 | 1850 |
| 1894 WebRect editBoxWithText(200, 200, 250, 20); | 1851 WebRect editBoxWithText(200, 200, 250, 20); |
| 1895 WebRect editBoxWithNoText(200, 250, 250, 20); | 1852 WebRect editBoxWithNoText(200, 250, 250, 20); |
| (...skipping 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3173 { | 3130 { |
| 3174 const std::string htmlFile = "disambiguation_popup_mobile_site.html"; | 3131 const std::string htmlFile = "disambiguation_popup_mobile_site.html"; |
| 3175 registerMockedHttpURLLoad(htmlFile); | 3132 registerMockedHttpURLLoad(htmlFile); |
| 3176 | 3133 |
| 3177 DisambiguationPopupTestWebViewClient client; | 3134 DisambiguationPopupTestWebViewClient client; |
| 3178 | 3135 |
| 3179 // Make sure we initialize to minimum scale, even if the window size | 3136 // Make sure we initialize to minimum scale, even if the window size |
| 3180 // only becomes available after the load begins. | 3137 // only becomes available after the load begins. |
| 3181 FrameTestHelpers::WebViewHelper webViewHelper; | 3138 FrameTestHelpers::WebViewHelper webViewHelper; |
| 3182 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); | 3139 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); |
| 3183 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 3184 webViewHelper.webView()->settings()->setViewportEnabled(true); | 3140 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 3185 webViewHelper.webView()->resize(WebSize(1000, 1000)); | 3141 webViewHelper.webView()->resize(WebSize(1000, 1000)); |
| 3186 webViewHelper.webView()->layout(); | 3142 webViewHelper.webView()->layout(); |
| 3187 | 3143 |
| 3188 client.resetTriggered(); | 3144 client.resetTriggered(); |
| 3189 webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); | 3145 webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); |
| 3190 EXPECT_FALSE(client.triggered()); | 3146 EXPECT_FALSE(client.triggered()); |
| 3191 | 3147 |
| 3192 client.resetTriggered(); | 3148 client.resetTriggered(); |
| 3193 webViewHelper.webView()->handleInputEvent(fatTap(200, 115)); | 3149 webViewHelper.webView()->handleInputEvent(fatTap(200, 115)); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3210 { | 3166 { |
| 3211 const std::string htmlFile = "disambiguation_popup_viewport_site.html"; | 3167 const std::string htmlFile = "disambiguation_popup_viewport_site.html"; |
| 3212 registerMockedHttpURLLoad(htmlFile); | 3168 registerMockedHttpURLLoad(htmlFile); |
| 3213 | 3169 |
| 3214 DisambiguationPopupTestWebViewClient client; | 3170 DisambiguationPopupTestWebViewClient client; |
| 3215 | 3171 |
| 3216 // Make sure we initialize to minimum scale, even if the window size | 3172 // Make sure we initialize to minimum scale, even if the window size |
| 3217 // only becomes available after the load begins. | 3173 // only becomes available after the load begins. |
| 3218 FrameTestHelpers::WebViewHelper webViewHelper; | 3174 FrameTestHelpers::WebViewHelper webViewHelper; |
| 3219 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); | 3175 webViewHelper.initializeAndLoad(m_baseURL + htmlFile, true, 0, &client); |
| 3220 webViewHelper.webView()->enableFixedLayoutMode(true); | |
| 3221 webViewHelper.webView()->settings()->setViewportEnabled(true); | 3176 webViewHelper.webView()->settings()->setViewportEnabled(true); |
| 3222 webViewHelper.webView()->resize(WebSize(1000, 1000)); | 3177 webViewHelper.webView()->resize(WebSize(1000, 1000)); |
| 3223 webViewHelper.webView()->layout(); | 3178 webViewHelper.webView()->layout(); |
| 3224 | 3179 |
| 3225 client.resetTriggered(); | 3180 client.resetTriggered(); |
| 3226 webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); | 3181 webViewHelper.webView()->handleInputEvent(fatTap(0, 0)); |
| 3227 EXPECT_FALSE(client.triggered()); | 3182 EXPECT_FALSE(client.triggered()); |
| 3228 | 3183 |
| 3229 client.resetTriggered(); | 3184 client.resetTriggered(); |
| 3230 webViewHelper.webView()->handleInputEvent(fatTap(200, 115)); | 3185 webViewHelper.webView()->handleInputEvent(fatTap(200, 115)); |
| (...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4059 TestStartStopCallbackWebViewClient client; | 4014 TestStartStopCallbackWebViewClient client; |
| 4060 FrameTestHelpers::WebViewHelper webViewHelper; | 4015 FrameTestHelpers::WebViewHelper webViewHelper; |
| 4061 webViewHelper.initializeAndLoad(m_baseURL + "push_state.html", true, 0, &cli
ent); | 4016 webViewHelper.initializeAndLoad(m_baseURL + "push_state.html", true, 0, &cli
ent); |
| 4062 runPendingTasks(); | 4017 runPendingTasks(); |
| 4063 | 4018 |
| 4064 EXPECT_EQ(client.startLoadingCount(), 2); | 4019 EXPECT_EQ(client.startLoadingCount(), 2); |
| 4065 EXPECT_EQ(client.stopLoadingCount(), 2); | 4020 EXPECT_EQ(client.stopLoadingCount(), 2); |
| 4066 } | 4021 } |
| 4067 | 4022 |
| 4068 } // namespace | 4023 } // namespace |
| OLD | NEW |