| 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..2bf357a28c8d1ad8b55cceee344f2d602a5ced2b 100644
|
| --- a/third_party/WebKit/Source/core/loader/HistoryItem.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/HistoryItem.cpp
|
| @@ -42,8 +42,7 @@ static long long GenerateSequenceNumber() {
|
| }
|
|
|
| HistoryItem::HistoryItem()
|
| - : did_save_scroll_or_scale_state_(false),
|
| - page_scale_factor_(0),
|
| + : scroll_and_view_state_(nullptr),
|
| item_sequence_number_(GenerateSequenceNumber()),
|
| document_sequence_number_(GenerateSequenceNumber()),
|
| scroll_restoration_type_(kScrollRestorationAuto) {}
|
| @@ -77,31 +76,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 (!scroll_and_view_state_)
|
| + scroll_and_view_state_ = ScrollAndViewState::Create();
|
| + scroll_and_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 (!scroll_and_view_state_)
|
| + scroll_and_view_state_ = ScrollAndViewState::Create();
|
| + scroll_and_view_state_->scroll_offset_ = offset;
|
| }
|
|
|
| void HistoryItem::SetPageScaleFactor(float scale_factor) {
|
| - page_scale_factor_ = scale_factor;
|
| - SetDidSaveScrollOrScaleState(true);
|
| + if (!scroll_and_view_state_)
|
| + scroll_and_view_state_ = ScrollAndViewState::Create();
|
| + scroll_and_view_state_->page_scale_factor_ = scale_factor;
|
| }
|
|
|
| void HistoryItem::SetDocumentState(const Vector<String>& state) {
|
| @@ -177,6 +167,7 @@ ResourceRequest HistoryItem::GenerateResourceRequest(
|
|
|
| DEFINE_TRACE(HistoryItem) {
|
| visitor->Trace(document_state_);
|
| + visitor->Trace(scroll_and_view_state_);
|
| }
|
|
|
| } // namespace blink
|
|
|