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 |