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

Side by Side Diff: third_party/WebKit/Source/web/tests/ProgrammaticScrollTest.cpp

Issue 2710983003: Move HistoryItem handling to DocumentLoader (Closed)
Patch Set: Address kinuko's comments Created 3 years, 8 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 #include "core/frame/FrameView.h" 1 #include "core/frame/FrameView.h"
2 #include "core/loader/DocumentLoader.h" 2 #include "core/loader/DocumentLoader.h"
3 #include "core/loader/FrameLoader.h" 3 #include "core/loader/FrameLoader.h"
4 #include "platform/testing/URLTestHelpers.h" 4 #include "platform/testing/URLTestHelpers.h"
5 #include "platform/testing/UnitTestHelpers.h" 5 #include "platform/testing/UnitTestHelpers.h"
6 #include "public/platform/Platform.h" 6 #include "public/platform/Platform.h"
7 #include "public/platform/WebInputEvent.h" 7 #include "public/platform/WebInputEvent.h"
8 #include "public/platform/WebURLLoaderMockFactory.h" 8 #include "public/platform/WebURLLoaderMockFactory.h"
9 #include "public/web/WebFrame.h" 9 #include "public/web/WebFrame.h"
10 #include "public/web/WebFrameClient.h" 10 #include "public/web/WebFrameClient.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 webView->resize(WebSize(1000, 1000)); 49 webView->resize(WebSize(1000, 1000));
50 webView->updateAllLifecyclePhases(); 50 webView->updateAllLifecyclePhases();
51 51
52 WebViewImpl* webViewImpl = toWebViewImpl(webView); 52 WebViewImpl* webViewImpl = toWebViewImpl(webView);
53 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader(); 53 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader();
54 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward); 54 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward);
55 55
56 webViewImpl->setPageScaleFactor(3.0f); 56 webViewImpl->setPageScaleFactor(3.0f);
57 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500)); 57 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500));
58 loader.documentLoader()->initialScrollState().wasScrolledByUser = false; 58 loader.documentLoader()->initialScrollState().wasScrolledByUser = false;
59 loader.currentItem()->setPageScaleFactor(2); 59 loader.documentLoader()->historyItem()->setPageScaleFactor(2);
60 loader.currentItem()->setScrollOffset(ScrollOffset(0, 200)); 60 loader.documentLoader()->historyItem()->setScrollOffset(ScrollOffset(0, 200));
61 61
62 // Flip back the wasScrolledByUser flag which was set to true by 62 // Flip back the wasScrolledByUser flag which was set to true by
63 // setPageScaleFactor because otherwise 63 // setPageScaleFactor because otherwise
64 // FrameLoader::restoreScrollPositionAndViewState does nothing. 64 // FrameLoader::restoreScrollPositionAndViewState does nothing.
65 loader.documentLoader()->initialScrollState().wasScrolledByUser = false; 65 loader.documentLoader()->initialScrollState().wasScrolledByUser = false;
66 loader.restoreScrollPositionAndViewState(); 66 loader.restoreScrollPositionAndViewState();
67 67
68 // Expect that both scroll and scale were restored. 68 // Expect that both scroll and scale were restored.
69 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); 69 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor());
70 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->getScrollOffset().height); 70 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->getScrollOffset().height);
71 } 71 }
72 72
73 TEST_F(ProgrammaticScrollTest, RestoreScrollPositionAndViewStateWithoutScale) { 73 TEST_F(ProgrammaticScrollTest, RestoreScrollPositionAndViewStateWithoutScale) {
74 registerMockedHttpURLLoad("long_scroll.html"); 74 registerMockedHttpURLLoad("long_scroll.html");
75 75
76 FrameTestHelpers::WebViewHelper webViewHelper; 76 FrameTestHelpers::WebViewHelper webViewHelper;
77 WebView* webView = webViewHelper.initializeAndLoad( 77 WebView* webView = webViewHelper.initializeAndLoad(
78 m_baseURL + "long_scroll.html", true, 0, 0); 78 m_baseURL + "long_scroll.html", true, 0, 0);
79 webView->resize(WebSize(1000, 1000)); 79 webView->resize(WebSize(1000, 1000));
80 webView->updateAllLifecyclePhases(); 80 webView->updateAllLifecyclePhases();
81 81
82 WebViewImpl* webViewImpl = toWebViewImpl(webView); 82 WebViewImpl* webViewImpl = toWebViewImpl(webView);
83 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader(); 83 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader();
84 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward); 84 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward);
85 85
86 webViewImpl->setPageScaleFactor(3.0f); 86 webViewImpl->setPageScaleFactor(3.0f);
87 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500)); 87 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500));
88 loader.documentLoader()->initialScrollState().wasScrolledByUser = false; 88 loader.documentLoader()->initialScrollState().wasScrolledByUser = false;
89 loader.currentItem()->setPageScaleFactor(0); 89 loader.documentLoader()->historyItem()->setPageScaleFactor(0);
90 loader.currentItem()->setScrollOffset(ScrollOffset(0, 400)); 90 loader.documentLoader()->historyItem()->setScrollOffset(ScrollOffset(0, 400));
91 91
92 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale 92 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale
93 // is zero. 93 // is zero.
94 loader.restoreScrollPositionAndViewState(); 94 loader.restoreScrollPositionAndViewState();
95 95
96 // Expect that only the scroll position was restored. 96 // Expect that only the scroll position was restored.
97 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor()); 97 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor());
98 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->getScrollOffset().height); 98 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->getScrollOffset().height);
99 } 99 }
100 100
101 } // namespace blink 101 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebLocalFrameImpl.cpp ('k') | third_party/WebKit/Source/web/tests/VisualViewportTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698