OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/history_serialization.h" | 5 #include "content/renderer/history_serialization.h" |
6 | 6 |
7 #include "content/common/page_state_serialization.h" | 7 #include "content/common/page_state_serialization.h" |
8 #include "content/public/common/page_state.h" | 8 #include "content/public/common/page_state.h" |
9 #include "content/renderer/history_entry.h" | 9 #include "content/renderer/history_entry.h" |
10 #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 10 #include "third_party/WebKit/public/platform/WebFloatPoint.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 } | 82 } |
83 | 83 |
84 void GenerateFrameStateFromItem(const WebHistoryItem& item, | 84 void GenerateFrameStateFromItem(const WebHistoryItem& item, |
85 ExplodedFrameState* state) { | 85 ExplodedFrameState* state) { |
86 state->url_string = item.urlString(); | 86 state->url_string = item.urlString(); |
87 state->referrer = item.referrer(); | 87 state->referrer = item.referrer(); |
88 state->referrer_policy = item.referrerPolicy(); | 88 state->referrer_policy = item.referrerPolicy(); |
89 state->target = item.target(); | 89 state->target = item.target(); |
90 if (!item.stateObject().isNull()) | 90 if (!item.stateObject().isNull()) |
91 state->state_object = item.stateObject().toString(); | 91 state->state_object = item.stateObject().toString(); |
| 92 state->scroll_restoration_type = item.scrollRestorationType(); |
92 state->pinch_viewport_scroll_offset = item.pinchViewportScrollOffset(); | 93 state->pinch_viewport_scroll_offset = item.pinchViewportScrollOffset(); |
93 state->scroll_offset = item.scrollOffset(); | 94 state->scroll_offset = item.scrollOffset(); |
94 state->item_sequence_number = item.itemSequenceNumber(); | 95 state->item_sequence_number = item.itemSequenceNumber(); |
95 state->document_sequence_number = | 96 state->document_sequence_number = |
96 item.documentSequenceNumber(); | 97 item.documentSequenceNumber(); |
97 state->frame_sequence_number = | 98 state->frame_sequence_number = |
98 item.frameSequenceNumber(); | 99 item.frameSequenceNumber(); |
99 state->page_scale_factor = item.pageScaleFactor(); | 100 state->page_scale_factor = item.pageScaleFactor(); |
100 ToNullableString16Vector(item.documentState(), &state->document_state); | 101 ToNullableString16Vector(item.documentState(), &state->document_state); |
101 | 102 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 WebHistoryItem item; | 136 WebHistoryItem item; |
136 item.initialize(); | 137 item.initialize(); |
137 item.setURLString(state.url_string); | 138 item.setURLString(state.url_string); |
138 item.setReferrer(state.referrer, state.referrer_policy); | 139 item.setReferrer(state.referrer, state.referrer_policy); |
139 item.setTarget(state.target); | 140 item.setTarget(state.target); |
140 if (!state.state_object.is_null()) { | 141 if (!state.state_object.is_null()) { |
141 item.setStateObject( | 142 item.setStateObject( |
142 WebSerializedScriptValue::fromString(state.state_object)); | 143 WebSerializedScriptValue::fromString(state.state_object)); |
143 } | 144 } |
144 item.setDocumentState(state.document_state); | 145 item.setDocumentState(state.document_state); |
| 146 item.setScrollRestorationType(state.scroll_restoration_type); |
145 item.setPinchViewportScrollOffset(state.pinch_viewport_scroll_offset); | 147 item.setPinchViewportScrollOffset(state.pinch_viewport_scroll_offset); |
146 item.setScrollOffset(state.scroll_offset); | 148 item.setScrollOffset(state.scroll_offset); |
147 item.setPageScaleFactor(state.page_scale_factor); | 149 item.setPageScaleFactor(state.page_scale_factor); |
148 | 150 |
149 // These values are generated at WebHistoryItem construction time, and we | 151 // These values are generated at WebHistoryItem construction time, and we |
150 // only want to override those new values with old values if the old values | 152 // only want to override those new values with old values if the old values |
151 // are defined. A value of 0 means undefined in this context. | 153 // are defined. A value of 0 means undefined in this context. |
152 if (state.item_sequence_number) | 154 if (state.item_sequence_number) |
153 item.setItemSequenceNumber(state.item_sequence_number); | 155 item.setItemSequenceNumber(state.item_sequence_number); |
154 if (state.document_sequence_number) | 156 if (state.document_sequence_number) |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 if (!DecodePageState(page_state.ToEncodedData(), &state)) | 205 if (!DecodePageState(page_state.ToEncodedData(), &state)) |
204 return scoped_ptr<HistoryEntry>(); | 206 return scoped_ptr<HistoryEntry>(); |
205 | 207 |
206 scoped_ptr<HistoryEntry> entry(new HistoryEntry()); | 208 scoped_ptr<HistoryEntry> entry(new HistoryEntry()); |
207 RecursivelyGenerateHistoryItem(state.top, entry->root_history_node()); | 209 RecursivelyGenerateHistoryItem(state.top, entry->root_history_node()); |
208 | 210 |
209 return entry.Pass(); | 211 return entry.Pass(); |
210 } | 212 } |
211 | 213 |
212 } // namespace content | 214 } // namespace content |
OLD | NEW |