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

Unified Diff: third_party/WebKit/Source/core/loader/HistoryItem.cpp

Issue 2949073002: Changing scroll and view state in onpopstate shouldn't overwrite back/forward state restore (Closed)
Patch Set: Reset ViewState when trying to copy from a nullptr Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/core/loader/HistoryItem.h ('k') | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/loader/HistoryItem.cpp
diff --git a/third_party/WebKit/Source/core/loader/HistoryItem.cpp b/third_party/WebKit/Source/core/loader/HistoryItem.cpp
index 96342ddc49e244321d38fc21324431976f650405..548554f323a45c4b894a81315c5aa8f833a81614 100644
--- a/third_party/WebKit/Source/core/loader/HistoryItem.cpp
+++ b/third_party/WebKit/Source/core/loader/HistoryItem.cpp
@@ -42,9 +42,7 @@ static long long GenerateSequenceNumber() {
}
HistoryItem::HistoryItem()
- : did_save_scroll_or_scale_state_(false),
- page_scale_factor_(0),
- item_sequence_number_(GenerateSequenceNumber()),
+ : item_sequence_number_(GenerateSequenceNumber()),
document_sequence_number_(GenerateSequenceNumber()),
scroll_restoration_type_(kScrollRestorationAuto) {}
@@ -77,31 +75,22 @@ void HistoryItem::SetReferrer(const Referrer& referrer) {
referrer.referrer);
}
-const ScrollOffset& HistoryItem::VisualViewportScrollOffset() const {
- return visual_viewport_scroll_offset_;
-}
-
void HistoryItem::SetVisualViewportScrollOffset(const ScrollOffset& offset) {
- visual_viewport_scroll_offset_ = offset;
- SetDidSaveScrollOrScaleState(true);
-}
-
-const ScrollOffset& HistoryItem::GetScrollOffset() const {
- return scroll_offset_;
+ if (!view_state_)
+ view_state_ = WTF::MakeUnique<ViewState>();
+ view_state_->visual_viewport_scroll_offset_ = offset;
}
void HistoryItem::SetScrollOffset(const ScrollOffset& offset) {
- scroll_offset_ = offset;
- SetDidSaveScrollOrScaleState(true);
-}
-
-float HistoryItem::PageScaleFactor() const {
- return page_scale_factor_;
+ if (!view_state_)
+ view_state_ = WTF::MakeUnique<ViewState>();
+ view_state_->scroll_offset_ = offset;
}
void HistoryItem::SetPageScaleFactor(float scale_factor) {
- page_scale_factor_ = scale_factor;
- SetDidSaveScrollOrScaleState(true);
+ if (!view_state_)
+ view_state_ = WTF::MakeUnique<ViewState>();
+ view_state_->page_scale_factor_ = scale_factor;
}
void HistoryItem::SetDocumentState(const Vector<String>& state) {
« no previous file with comments | « third_party/WebKit/Source/core/loader/HistoryItem.h ('k') | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698