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

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

Issue 2628683003: Add DidSaveScrollOrScaleState flag to prevent restoreScrollPositionAndViewState restore from default (Closed)
Patch Set: fix test Created 3 years, 10 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
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.currentItem()->setPageScaleFactor(2);
60 loader.currentItem()->setScrollOffset(ScrollOffset(0, 200)); 60 loader.currentItem()->setScrollOffset(ScrollOffset(0, 200));
61 loader.currentItem()->setDidSaveScrollOrScaleState(true);
majidvp 2017/02/15 17:37:32 I don't think this is needed!
61 62
62 // Flip back the wasScrolledByUser flag which was set to true by 63 // Flip back the wasScrolledByUser flag which was set to true by
63 // setPageScaleFactor because otherwise 64 // setPageScaleFactor because otherwise
64 // FrameLoader::restoreScrollPositionAndViewState does nothing. 65 // FrameLoader::restoreScrollPositionAndViewState does nothing.
65 loader.documentLoader()->initialScrollState().wasScrolledByUser = false; 66 loader.documentLoader()->initialScrollState().wasScrolledByUser = false;
66 loader.restoreScrollPositionAndViewState(); 67 loader.restoreScrollPositionAndViewState();
67 68
68 // Expect that both scroll and scale were restored. 69 // Expect that both scroll and scale were restored.
69 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor()); 70 EXPECT_EQ(2.0f, webViewImpl->pageScaleFactor());
70 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->getScrollOffset().height); 71 EXPECT_EQ(200, webViewImpl->mainFrameImpl()->getScrollOffset().height);
(...skipping 10 matching lines...) Expand all
81 82
82 WebViewImpl* webViewImpl = toWebViewImpl(webView); 83 WebViewImpl* webViewImpl = toWebViewImpl(webView);
83 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader(); 84 FrameLoader& loader = webViewImpl->mainFrameImpl()->frame()->loader();
84 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward); 85 loader.documentLoader()->setLoadType(FrameLoadTypeBackForward);
85 86
86 webViewImpl->setPageScaleFactor(3.0f); 87 webViewImpl->setPageScaleFactor(3.0f);
87 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500)); 88 webViewImpl->mainFrame()->setScrollOffset(WebSize(0, 500));
88 loader.documentLoader()->initialScrollState().wasScrolledByUser = false; 89 loader.documentLoader()->initialScrollState().wasScrolledByUser = false;
89 loader.currentItem()->setPageScaleFactor(0); 90 loader.currentItem()->setPageScaleFactor(0);
90 loader.currentItem()->setScrollOffset(ScrollOffset(0, 400)); 91 loader.currentItem()->setScrollOffset(ScrollOffset(0, 400));
92 loader.currentItem()->setDidSaveScrollOrScaleState(true);
majidvp 2017/02/15 17:37:32 ditto.
91 93
92 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale 94 // FrameLoader::restoreScrollPositionAndViewState flows differently if scale
93 // is zero. 95 // is zero.
94 loader.restoreScrollPositionAndViewState(); 96 loader.restoreScrollPositionAndViewState();
95 97
96 // Expect that only the scroll position was restored. 98 // Expect that only the scroll position was restored.
97 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor()); 99 EXPECT_EQ(3.0f, webViewImpl->pageScaleFactor());
98 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->getScrollOffset().height); 100 EXPECT_EQ(400, webViewImpl->mainFrameImpl()->getScrollOffset().height);
99 } 101 }
100 102
101 } // namespace blink 103 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698