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 6147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6158 FrameTestHelpers::WebViewHelper webViewHelper; | 6158 FrameTestHelpers::WebViewHelper webViewHelper; |
6159 webViewHelper.initializeAndLoad("about:blank"); | 6159 webViewHelper.initializeAndLoad("about:blank"); |
6160 | 6160 |
6161 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 6161 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
6162 frameView->setFrameRect(IntRect(0, 0, 200, 200)); | 6162 frameView->setFrameRect(IntRect(0, 0, 200, 200)); |
6163 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect()); | 6163 EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), frameView->frameRect()); |
6164 frameView->setFrameRect(IntRect(100, 100, 200, 200)); | 6164 frameView->setFrameRect(IntRect(100, 100, 200, 200)); |
6165 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect()); | 6165 EXPECT_RECT_EQ(IntRect(100, 100, 200, 200), frameView->frameRect()); |
6166 } | 6166 } |
6167 | 6167 |
6168 // FIXME(bokan) Renable once Chromium-side of patch lands | 6168 TEST_F(WebFrameTest, FrameViewScrollAccountsForTopControls) |
6169 TEST_F(WebFrameTest, DISABLED_FrameViewScrollAccountsForTopControls) | |
6170 { | 6169 { |
| 6170 UseMockScrollbarSettings mockScrollbarSettings; |
6171 FrameTestHelpers::WebViewHelper webViewHelper; | 6171 FrameTestHelpers::WebViewHelper webViewHelper; |
6172 webViewHelper.initializeAndLoad("about:blank"); | 6172 webViewHelper.initializeAndLoad("about:blank"); |
6173 | 6173 |
6174 WebViewImpl* webView = webViewHelper.webViewImpl(); | 6174 WebViewImpl* webView = webViewHelper.webViewImpl(); |
6175 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); | 6175 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi
ew(); |
6176 | 6176 |
6177 webView->setTopControlsLayoutHeight(0); | 6177 float topControlsHeight = 40; |
| 6178 webView->setTopControlsHeight(topControlsHeight, false); |
6178 webView->resize(WebSize(100, 100)); | 6179 webView->resize(WebSize(100, 100)); |
6179 webView->setPageScaleFactor(2.0f); | 6180 webView->setPageScaleFactor(2.0f); |
6180 webView->layout(); | 6181 webView->layout(); |
6181 | 6182 |
6182 webView->setMainFrameScrollOffset(WebPoint(20, 100)); | 6183 webView->setMainFrameScrollOffset(WebPoint(20, 100)); |
6183 EXPECT_POINT_EQ(IntPoint(20, 50), IntPoint(frameView->scrollOffset())); | 6184 EXPECT_POINT_EQ(IntPoint(20, 50), IntPoint(frameView->scrollOffset())); |
6184 | 6185 |
6185 // Simulate the top controls showing by 20px, thus shrinking the viewport | 6186 // Simulate the top controls showing by 20px, thus shrinking the viewport |
6186 // and allowing it to scroll an additional 10px (since we're 2X zoomed). | 6187 // and allowing it to scroll an additional 10px (since we're 2X zoomed). |
6187 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 20.0f); | 6188 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 20.0f / topControlsHeight)
; |
6188 EXPECT_POINT_EQ(IntPoint(50, 60), frameView->maximumScrollPosition()); | 6189 EXPECT_POINT_EQ(IntPoint(50, 60), frameView->maximumScrollPosition()); |
6189 | 6190 |
6190 // Show more, make sure the scroll actually gets clamped. Horizontal | 6191 // Show more, make sure the scroll actually gets clamped. Horizontal |
6191 // direction shouldn't be affected. | 6192 // direction shouldn't be affected. |
6192 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 20.0f); | 6193 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 20.0f / topControlsHeight)
; |
6193 webView->setMainFrameScrollOffset(WebPoint(100, 100)); | 6194 webView->setMainFrameScrollOffset(WebPoint(100, 100)); |
6194 EXPECT_POINT_EQ(IntPoint(50, 70), IntPoint(frameView->scrollOffset())); | 6195 EXPECT_POINT_EQ(IntPoint(50, 70), IntPoint(frameView->scrollOffset())); |
6195 | 6196 |
6196 // Hide until there's 10px showing. | 6197 // Hide until there's 10px showing. |
6197 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, -30.0f); | 6198 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, -30.0f / topControlsHeight
); |
6198 EXPECT_POINT_EQ(IntPoint(50, 55), frameView->maximumScrollPosition()); | 6199 EXPECT_POINT_EQ(IntPoint(50, 55), frameView->maximumScrollPosition()); |
6199 | 6200 |
6200 // Simulate a RenderPart::resize. The frame is resized to accomodate | 6201 // Simulate a RenderPart::resize. The frame is resized to accomodate |
6201 // the top controls and Blink's view of the top controls matches that of | 6202 // the top controls and Blink's view of the top controls matches that of |
6202 // the CC | 6203 // the CC |
6203 webView->setTopControlsLayoutHeight(10.0f); | 6204 webView->setTopControlsHeight(40.0f, true); |
6204 webView->resize(WebSize(100, 90)); | 6205 webView->resize(WebSize(100, 90)); |
6205 webView->layout(); | 6206 webView->layout(); |
6206 EXPECT_POINT_EQ(IntPoint(50, 45), frameView->maximumScrollPosition()); | 6207 EXPECT_POINT_EQ(IntPoint(50, 30), frameView->maximumScrollPosition()); |
6207 | 6208 |
6208 // Now simulate hiding. | 6209 // Now simulate hiding. |
6209 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, -10.0f); | 6210 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, -10.0f / topControlsHeight
); |
6210 EXPECT_POINT_EQ(IntPoint(50, 40), frameView->maximumScrollPosition()); | 6211 EXPECT_POINT_EQ(IntPoint(50, 25), frameView->maximumScrollPosition()); |
6211 | 6212 |
6212 // Reset to original state: 100px widget height, top controls fully hidden. | 6213 // Reset to original state: 100px widget height, top controls fully hidden. |
6213 webView->setTopControlsLayoutHeight(0.0f); | 6214 webView->setTopControlsHeight(topControlsHeight, false); |
6214 webView->resize(WebSize(100, 100)); | 6215 webView->resize(WebSize(100, 100)); |
6215 webView->layout(); | 6216 webView->layout(); |
6216 EXPECT_POINT_EQ(IntPoint(50, 50), frameView->maximumScrollPosition()); | 6217 EXPECT_POINT_EQ(IntPoint(50, 50), frameView->maximumScrollPosition()); |
6217 | 6218 |
6218 // Show the top controls by just 1px, since we're zoomed in to 2X, that | 6219 // Show the top controls by just 1px, since we're zoomed in to 2X, that |
6219 // should allow an extra 0.5px of scrolling, but since we quantize to ints | 6220 // should allow an extra 0.5px of scrolling, but since we quantize to ints |
6220 // it should clamp such that we don't show anything outside bounds. | 6221 // it should clamp such that we don't show anything outside bounds. |
6221 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 1.0f); | 6222 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 1.0f / topControlsHeight); |
6222 EXPECT_POINT_EQ(IntPoint(50, 50), frameView->maximumScrollPosition()); | 6223 EXPECT_POINT_EQ(IntPoint(50, 50), frameView->maximumScrollPosition()); |
6223 | 6224 |
6224 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 2.0f); | 6225 webView->applyViewportDeltas(WebSize(0, 0), 1.0f, 2.0f / topControlsHeight); |
6225 EXPECT_POINT_EQ(IntPoint(50, 51), frameView->maximumScrollPosition()); | 6226 EXPECT_POINT_EQ(IntPoint(50, 51), frameView->maximumScrollPosition()); |
6226 } | 6227 } |
6227 | 6228 |
6228 TEST_F(WebFrameTest, FullscreenLayerSize) | 6229 TEST_F(WebFrameTest, FullscreenLayerSize) |
6229 { | 6230 { |
6230 FakeCompositingWebViewClient client; | 6231 FakeCompositingWebViewClient client; |
6231 registerMockedHttpURLLoad("fullscreen_div.html"); | 6232 registerMockedHttpURLLoad("fullscreen_div.html"); |
6232 FrameTestHelpers::WebViewHelper webViewHelper; | 6233 FrameTestHelpers::WebViewHelper webViewHelper; |
6233 int viewportWidth = 640; | 6234 int viewportWidth = 640; |
6234 int viewportHeight = 480; | 6235 int viewportHeight = 480; |
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7019 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7020 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
7020 | 7021 |
7021 // Neither should a page reload. | 7022 // Neither should a page reload. |
7022 localFrame->reload(); | 7023 localFrame->reload(); |
7023 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); | 7024 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); |
7024 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); | 7025 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); |
7025 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7026 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
7026 } | 7027 } |
7027 | 7028 |
7028 } // namespace | 7029 } // namespace |
OLD | NEW |