OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 6414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6425 { | 6425 { |
6426 FakeCompositingWebViewClient client; | 6426 FakeCompositingWebViewClient client; |
6427 registerMockedHttpURLLoad("long_scroll.html"); | 6427 registerMockedHttpURLLoad("long_scroll.html"); |
6428 FrameTestHelpers::WebViewHelper webViewHelper; | 6428 FrameTestHelpers::WebViewHelper webViewHelper; |
6429 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl
ient, configureAndroid); | 6429 webViewHelper.initializeAndLoad(m_baseURL + "long_scroll.html", true, 0, &cl
ient, configureAndroid); |
6430 | 6430 |
6431 WebViewImpl* webView = webViewHelper.webViewImpl(); | 6431 WebViewImpl* webView = webViewHelper.webViewImpl(); |
6432 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 6432 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
6433 | 6433 |
6434 float topControlsHeight = 40; | 6434 float topControlsHeight = 40; |
6435 webView->setTopControlsHeight(topControlsHeight, false); | 6435 webView->resize(WebSize(100, 100), topControlsHeight, false); |
6436 webViewHelper.resize(WebSize(100, 100)); | |
6437 webView->setPageScaleFactor(2.0f); | 6436 webView->setPageScaleFactor(2.0f); |
6438 webView->updateAllLifecyclePhases(); | 6437 webView->updateAllLifecyclePhases(); |
6439 | 6438 |
6440 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); | 6439 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); |
6441 EXPECT_POINT_EQ(IntPoint(0, 1900), IntPoint(frameView->scrollOffset())); | 6440 EXPECT_POINT_EQ(IntPoint(0, 1900), IntPoint(frameView->scrollOffset())); |
6442 | 6441 |
6443 // Simulate the top controls showing by 20px, thus shrinking the viewport | 6442 // Simulate the top controls showing by 20px, thus shrinking the viewport |
6444 // and allowing it to scroll an additional 20px. | 6443 // and allowing it to scroll an additional 20px. |
6445 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 20.0f / topControlsHeight); | 6444 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 20.0f / topControlsHeight); |
6446 EXPECT_POINT_EQ(IntPoint(0, 1920), frameView->maximumScrollPosition()); | 6445 EXPECT_POINT_EQ(IntPoint(0, 1920), frameView->maximumScrollPosition()); |
6447 | 6446 |
6448 // Show more, make sure the scroll actually gets clamped. | 6447 // Show more, make sure the scroll actually gets clamped. |
6449 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 20.0f / topControlsHeight); | 6448 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 20.0f / topControlsHeight); |
6450 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); | 6449 webView->mainFrame()->setScrollOffset(WebSize(0, 2000)); |
6451 EXPECT_POINT_EQ(IntPoint(0, 1940), IntPoint(frameView->scrollOffset())); | 6450 EXPECT_POINT_EQ(IntPoint(0, 1940), IntPoint(frameView->scrollOffset())); |
6452 | 6451 |
6453 // Hide until there's 10px showing. | 6452 // Hide until there's 10px showing. |
6454 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -30.0f / topControlsHeight); | 6453 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -30.0f / topControlsHeight); |
6455 EXPECT_POINT_EQ(IntPoint(0, 1910), frameView->maximumScrollPosition()); | 6454 EXPECT_POINT_EQ(IntPoint(0, 1910), frameView->maximumScrollPosition()); |
6456 | 6455 |
6457 // Simulate a LayoutPart::resize. The frame is resized to accomodate | 6456 // Simulate a LayoutPart::resize. The frame is resized to accomodate |
6458 // the top controls and Blink's view of the top controls matches that of | 6457 // the top controls and Blink's view of the top controls matches that of |
6459 // the CC | 6458 // the CC |
6460 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 30.0f / topControlsHeight); | 6459 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 30.0f / topControlsHeight); |
6461 webView->setTopControlsHeight(40.0f, true); | 6460 webView->resize(WebSize(100, 60), 40.0f, true); |
6462 webViewHelper.resize(WebSize(100, 60)); | |
6463 webView->updateAllLifecyclePhases(); | 6461 webView->updateAllLifecyclePhases(); |
6464 EXPECT_POINT_EQ(IntPoint(0, 1940), frameView->maximumScrollPosition()); | 6462 EXPECT_POINT_EQ(IntPoint(0, 1940), frameView->maximumScrollPosition()); |
6465 | 6463 |
6466 // Now simulate hiding. | 6464 // Now simulate hiding. |
6467 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -10.0f / topControlsHeight); | 6465 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -10.0f / topControlsHeight); |
6468 EXPECT_POINT_EQ(IntPoint(0, 1930), frameView->maximumScrollPosition()); | 6466 EXPECT_POINT_EQ(IntPoint(0, 1930), frameView->maximumScrollPosition()); |
6469 | 6467 |
6470 // Reset to original state: 100px widget height, top controls fully hidden. | 6468 // Reset to original state: 100px widget height, top controls fully hidden. |
6471 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -30.0f / topControlsHeight); | 6469 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, -30.0f / topControlsHeight); |
6472 webView->setTopControlsHeight(topControlsHeight, false); | 6470 webView->resize(WebSize(100, 100), topControlsHeight, false); |
6473 webViewHelper.resize(WebSize(100, 100)); | |
6474 webView->updateAllLifecyclePhases(); | 6471 webView->updateAllLifecyclePhases(); |
6475 EXPECT_POINT_EQ(IntPoint(0, 1900), frameView->maximumScrollPosition()); | 6472 EXPECT_POINT_EQ(IntPoint(0, 1900), frameView->maximumScrollPosition()); |
6476 | 6473 |
6477 // Show the top controls by just 1px, since we're zoomed in to 2X, that | 6474 // Show the top controls by just 1px, since we're zoomed in to 2X, that |
6478 // should allow an extra 0.5px of scrolling in the visual viewport. Make | 6475 // should allow an extra 0.5px of scrolling in the visual viewport. Make |
6479 // sure we're not losing any pixels when applying the adjustment on the | 6476 // sure we're not losing any pixels when applying the adjustment on the |
6480 // main frame. | 6477 // main frame. |
6481 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 1.0f / topControlsHeight); | 6478 webView->applyViewportDeltas(WebFloatSize(), WebFloatSize(), WebFloatSize(),
1.0f, 1.0f / topControlsHeight); |
6482 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); | 6479 EXPECT_POINT_EQ(IntPoint(0, 1901), frameView->maximumScrollPosition()); |
6483 | 6480 |
(...skipping 2015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8499 } | 8496 } |
8500 | 8497 |
8501 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) | 8498 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) |
8502 { | 8499 { |
8503 swapLocalFrameToRemoteFrame(); | 8500 swapLocalFrameToRemoteFrame(); |
8504 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); | 8501 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); |
8505 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8502 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
8506 } | 8503 } |
8507 | 8504 |
8508 } // namespace blink | 8505 } // namespace blink |
OLD | NEW |