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

Side by Side Diff: content/common/page_state_serialization.cc

Issue 1138543002: Better remove HistoryNodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove frame sequence numbers from serialization Created 5 years, 6 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 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/common/page_state_serialization.h" 5 #include "content/common/page_state_serialization.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/pickle.h" 10 #include "base/pickle.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 // 15: Removes a bunch of values we defined but never used. 188 // 15: Removes a bunch of values we defined but never used.
189 // 16: Switched from blob urls to blob uuids. 189 // 16: Switched from blob urls to blob uuids.
190 // 17: Add a target frame id number. 190 // 17: Add a target frame id number.
191 // 18: Add referrer policy. 191 // 18: Add referrer policy.
192 // 19: Remove target frame id, which was a bad idea, and original url string, 192 // 19: Remove target frame id, which was a bad idea, and original url string,
193 // which is no longer used. 193 // which is no longer used.
194 // 20: Add pinch viewport scroll offset, the offset of the pinched zoomed 194 // 20: Add pinch viewport scroll offset, the offset of the pinched zoomed
195 // viewport within the unzoomed main frame. 195 // viewport within the unzoomed main frame.
196 // 21: Add frame sequence number. 196 // 21: Add frame sequence number.
197 // 22: Add scroll restoration type. 197 // 22: Add scroll restoration type.
198 // 23: Remove frame sequence number, there are easier ways.
198 // 199 //
199 // NOTE: If the version is -1, then the pickle contains only a URL string. 200 // NOTE: If the version is -1, then the pickle contains only a URL string.
200 // See ReadPageState. 201 // See ReadPageState.
201 // 202 //
202 const int kMinVersion = 11; 203 const int kMinVersion = 11;
203 const int kCurrentVersion = 22; 204 const int kCurrentVersion = 23;
204 205
205 // A bunch of convenience functions to read/write to SerializeObjects. The 206 // A bunch of convenience functions to read/write to SerializeObjects. The
206 // de-serializers assume the input data will be in the correct format and fall 207 // de-serializers assume the input data will be in the correct format and fall
207 // back to returning safe defaults when not. 208 // back to returning safe defaults when not.
208 209
209 void WriteData(const void* data, int length, SerializeObject* obj) { 210 void WriteData(const void* data, int length, SerializeObject* obj) {
210 obj->pickle.WriteData(static_cast<const char*>(data), length); 211 obj->pickle.WriteData(static_cast<const char*>(data), length);
211 } 212 }
212 213
213 void ReadData(SerializeObject* obj, const void** data, int* length) { 214 void ReadData(SerializeObject* obj, const void** data, int* length) {
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 WriteString(state.target, obj); 487 WriteString(state.target, obj);
487 WriteInteger(state.scroll_offset.x(), obj); 488 WriteInteger(state.scroll_offset.x(), obj);
488 WriteInteger(state.scroll_offset.y(), obj); 489 WriteInteger(state.scroll_offset.y(), obj);
489 WriteString(state.referrer, obj); 490 WriteString(state.referrer, obj);
490 491
491 WriteStringVector(state.document_state, obj); 492 WriteStringVector(state.document_state, obj);
492 493
493 WriteReal(state.page_scale_factor, obj); 494 WriteReal(state.page_scale_factor, obj);
494 WriteInteger64(state.item_sequence_number, obj); 495 WriteInteger64(state.item_sequence_number, obj);
495 WriteInteger64(state.document_sequence_number, obj); 496 WriteInteger64(state.document_sequence_number, obj);
496 WriteInteger64(state.frame_sequence_number, obj);
497 WriteInteger(state.referrer_policy, obj); 497 WriteInteger(state.referrer_policy, obj);
498 WriteReal(state.pinch_viewport_scroll_offset.x(), obj); 498 WriteReal(state.pinch_viewport_scroll_offset.x(), obj);
499 WriteReal(state.pinch_viewport_scroll_offset.y(), obj); 499 WriteReal(state.pinch_viewport_scroll_offset.y(), obj);
500 500
501 WriteInteger(state.scroll_restoration_type, obj); 501 WriteInteger(state.scroll_restoration_type, obj);
502 502
503 bool has_state_object = !state.state_object.is_null(); 503 bool has_state_object = !state.state_object.is_null();
504 WriteBoolean(has_state_object, obj); 504 WriteBoolean(has_state_object, obj);
505 if (has_state_object) 505 if (has_state_object)
506 WriteString(state.state_object, obj); 506 WriteString(state.state_object, obj);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 ReadBoolean(obj); // Skip obsolete target item flag. 545 ReadBoolean(obj); // Skip obsolete target item flag.
546 ReadInteger(obj); // Skip obsolete visit count field. 546 ReadInteger(obj); // Skip obsolete visit count field.
547 } 547 }
548 state->referrer = ReadString(obj); 548 state->referrer = ReadString(obj);
549 549
550 ReadStringVector(obj, &state->document_state); 550 ReadStringVector(obj, &state->document_state);
551 551
552 state->page_scale_factor = ReadReal(obj); 552 state->page_scale_factor = ReadReal(obj);
553 state->item_sequence_number = ReadInteger64(obj); 553 state->item_sequence_number = ReadInteger64(obj);
554 state->document_sequence_number = ReadInteger64(obj); 554 state->document_sequence_number = ReadInteger64(obj);
555 if (obj->version >= 21) 555 if (obj->version >= 21 && obj->version < 23)
556 state->frame_sequence_number = ReadInteger64(obj); 556 ReadInteger64(obj); // Skip obsolete frame sequence number.
557 557
558 if (obj->version >= 17 && obj->version < 19) 558 if (obj->version >= 17 && obj->version < 19)
559 ReadInteger64(obj); // Skip obsolete target frame id number. 559 ReadInteger64(obj); // Skip obsolete target frame id number.
560 560
561 if (obj->version >= 18) { 561 if (obj->version >= 18) {
562 state->referrer_policy = 562 state->referrer_policy =
563 static_cast<blink::WebReferrerPolicy>(ReadInteger(obj)); 563 static_cast<blink::WebReferrerPolicy>(ReadInteger(obj));
564 } 564 }
565 565
566 if (obj->version >= 20) { 566 if (obj->version >= 20) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 is_null(true) { 678 is_null(true) {
679 } 679 }
680 680
681 ExplodedHttpBody::~ExplodedHttpBody() { 681 ExplodedHttpBody::~ExplodedHttpBody() {
682 } 682 }
683 683
684 ExplodedFrameState::ExplodedFrameState() 684 ExplodedFrameState::ExplodedFrameState()
685 : scroll_restoration_type(blink::WebHistoryScrollRestorationAuto), 685 : scroll_restoration_type(blink::WebHistoryScrollRestorationAuto),
686 item_sequence_number(0), 686 item_sequence_number(0),
687 document_sequence_number(0), 687 document_sequence_number(0),
688 frame_sequence_number(0),
689 page_scale_factor(0.0), 688 page_scale_factor(0.0),
690 referrer_policy(blink::WebReferrerPolicyDefault) { 689 referrer_policy(blink::WebReferrerPolicyDefault) {
691 } 690 }
692 691
693 ExplodedFrameState::ExplodedFrameState(const ExplodedFrameState& other) { 692 ExplodedFrameState::ExplodedFrameState(const ExplodedFrameState& other) {
694 assign(other); 693 assign(other);
695 } 694 }
696 695
697 ExplodedFrameState::~ExplodedFrameState() { 696 ExplodedFrameState::~ExplodedFrameState() {
698 } 697 }
699 698
700 void ExplodedFrameState::operator=(const ExplodedFrameState& other) { 699 void ExplodedFrameState::operator=(const ExplodedFrameState& other) {
701 if (&other != this) 700 if (&other != this)
702 assign(other); 701 assign(other);
703 } 702 }
704 703
705 void ExplodedFrameState::assign(const ExplodedFrameState& other) { 704 void ExplodedFrameState::assign(const ExplodedFrameState& other) {
706 url_string = other.url_string; 705 url_string = other.url_string;
707 referrer = other.referrer; 706 referrer = other.referrer;
708 target = other.target; 707 target = other.target;
709 state_object = other.state_object; 708 state_object = other.state_object;
710 document_state = other.document_state; 709 document_state = other.document_state;
711 scroll_restoration_type = other.scroll_restoration_type; 710 scroll_restoration_type = other.scroll_restoration_type;
712 pinch_viewport_scroll_offset = other.pinch_viewport_scroll_offset; 711 pinch_viewport_scroll_offset = other.pinch_viewport_scroll_offset;
713 scroll_offset = other.scroll_offset; 712 scroll_offset = other.scroll_offset;
714 item_sequence_number = other.item_sequence_number; 713 item_sequence_number = other.item_sequence_number;
715 document_sequence_number = other.document_sequence_number; 714 document_sequence_number = other.document_sequence_number;
716 frame_sequence_number = other.frame_sequence_number;
717 page_scale_factor = other.page_scale_factor; 715 page_scale_factor = other.page_scale_factor;
718 referrer_policy = other.referrer_policy; 716 referrer_policy = other.referrer_policy;
719 http_body = other.http_body; 717 http_body = other.http_body;
720 children = other.children; 718 children = other.children;
721 } 719 }
722 720
723 ExplodedPageState::ExplodedPageState() { 721 ExplodedPageState::ExplodedPageState() {
724 } 722 }
725 723
726 ExplodedPageState::~ExplodedPageState() { 724 ExplodedPageState::~ExplodedPageState() {
(...skipping 24 matching lines...) Expand all
751 float device_scale_factor, 749 float device_scale_factor,
752 ExplodedPageState* exploded) { 750 ExplodedPageState* exploded) {
753 g_device_scale_factor_for_testing = device_scale_factor; 751 g_device_scale_factor_for_testing = device_scale_factor;
754 bool rv = DecodePageState(encoded, exploded); 752 bool rv = DecodePageState(encoded, exploded);
755 g_device_scale_factor_for_testing = 0.0; 753 g_device_scale_factor_for_testing = 0.0;
756 return rv; 754 return rv;
757 } 755 }
758 #endif 756 #endif
759 757
760 } // namespace content 758 } // namespace content
OLDNEW
« no previous file with comments | « content/common/page_state_serialization.h ('k') | content/common/page_state_serialization_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698