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

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

Issue 23819019: Refactor fixed layout mode (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: git rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698