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

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

Issue 266673014: Added pinch viewport offset to page state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed unit test Created 6 years, 7 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 | Annotate | Revision Log
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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 // 11: Min version 184 // 11: Min version
185 // 12: Adds support for contains_passwords in HTTP body 185 // 12: Adds support for contains_passwords in HTTP body
186 // 13: Adds support for URL (FileSystem URL) 186 // 13: Adds support for URL (FileSystem URL)
187 // 14: Adds list of referenced files, version written only for first item. 187 // 14: Adds list of referenced files, version written only for first item.
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
195 // viewport within the unzoomed main frame.
194 // 196 //
195 // NOTE: If the version is -1, then the pickle contains only a URL string. 197 // NOTE: If the version is -1, then the pickle contains only a URL string.
196 // See ReadPageState. 198 // See ReadPageState.
197 // 199 //
198 const int kMinVersion = 11; 200 const int kMinVersion = 11;
199 const int kCurrentVersion = 19; 201 const int kCurrentVersion = 20;
200 202
201 // A bunch of convenience functions to read/write to SerializeObjects. The 203 // A bunch of convenience functions to read/write to SerializeObjects. The
202 // de-serializers assume the input data will be in the correct format and fall 204 // de-serializers assume the input data will be in the correct format and fall
203 // back to returning safe defaults when not. 205 // back to returning safe defaults when not.
204 206
205 void WriteData(const void* data, int length, SerializeObject* obj) { 207 void WriteData(const void* data, int length, SerializeObject* obj) {
206 obj->pickle.WriteData(static_cast<const char*>(data), length); 208 obj->pickle.WriteData(static_cast<const char*>(data), length);
207 } 209 }
208 210
209 void ReadData(SerializeObject* obj, const void** data, int* length) { 211 void ReadData(SerializeObject* obj, const void** data, int* length) {
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 WriteInteger(state.scroll_offset.x(), obj); 505 WriteInteger(state.scroll_offset.x(), obj);
504 WriteInteger(state.scroll_offset.y(), obj); 506 WriteInteger(state.scroll_offset.y(), obj);
505 WriteString(state.referrer, obj); 507 WriteString(state.referrer, obj);
506 508
507 WriteStringVector(state.document_state, obj); 509 WriteStringVector(state.document_state, obj);
508 510
509 WriteReal(state.page_scale_factor, obj); 511 WriteReal(state.page_scale_factor, obj);
510 WriteInteger64(state.item_sequence_number, obj); 512 WriteInteger64(state.item_sequence_number, obj);
511 WriteInteger64(state.document_sequence_number, obj); 513 WriteInteger64(state.document_sequence_number, obj);
512 WriteInteger(state.referrer_policy, obj); 514 WriteInteger(state.referrer_policy, obj);
515 WriteReal(state.pinch_viewport_scroll_offset.x(), obj);
516 WriteReal(state.pinch_viewport_scroll_offset.y(), obj);
513 517
514 bool has_state_object = !state.state_object.is_null(); 518 bool has_state_object = !state.state_object.is_null();
515 WriteBoolean(has_state_object, obj); 519 WriteBoolean(has_state_object, obj);
516 if (has_state_object) 520 if (has_state_object)
517 WriteString(state.state_object, obj); 521 WriteString(state.state_object, obj);
518 522
519 WriteHttpBody(state.http_body, obj); 523 WriteHttpBody(state.http_body, obj);
520 524
521 // NOTE: It is a quirk of the format that we still have to write the 525 // NOTE: It is a quirk of the format that we still have to write the
522 // http_content_type field when the HTTP body is null. That's why this code 526 // http_content_type field when the HTTP body is null. That's why this code
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 state->document_sequence_number = ReadInteger64(obj); 569 state->document_sequence_number = ReadInteger64(obj);
566 570
567 if (obj->version >= 17 && obj->version < 19) 571 if (obj->version >= 17 && obj->version < 19)
568 ConsumeInteger64(obj); // Skip obsolete target frame id number. 572 ConsumeInteger64(obj); // Skip obsolete target frame id number.
569 573
570 if (obj->version >= 18) { 574 if (obj->version >= 18) {
571 state->referrer_policy = 575 state->referrer_policy =
572 static_cast<blink::WebReferrerPolicy>(ReadInteger(obj)); 576 static_cast<blink::WebReferrerPolicy>(ReadInteger(obj));
573 } 577 }
574 578
579 if (obj->version >= 20) {
580 double x = ReadReal(obj);
581 double y = ReadReal(obj);
582 state->pinch_viewport_scroll_offset = gfx::PointF(x, y);
583 } else {
584 state->pinch_viewport_scroll_offset = gfx::PointF(-1, -1);
585 }
586
575 bool has_state_object = ReadBoolean(obj); 587 bool has_state_object = ReadBoolean(obj);
576 if (has_state_object) 588 if (has_state_object)
577 state->state_object = ReadString(obj); 589 state->state_object = ReadString(obj);
578 590
579 ReadHttpBody(obj, &state->http_body); 591 ReadHttpBody(obj, &state->http_body);
580 592
581 // NOTE: It is a quirk of the format that we still have to read the 593 // NOTE: It is a quirk of the format that we still have to read the
582 // http_content_type field when the HTTP body is null. That's why this code 594 // http_content_type field when the HTTP body is null. That's why this code
583 // is here instead of inside ReadHttpBody. 595 // is here instead of inside ReadHttpBody.
584 state->http_body.http_content_type = ReadString(obj); 596 state->http_body.http_content_type = ReadString(obj);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 float device_scale_factor, 730 float device_scale_factor,
719 ExplodedPageState* exploded) { 731 ExplodedPageState* exploded) {
720 g_device_scale_factor_for_testing = device_scale_factor; 732 g_device_scale_factor_for_testing = device_scale_factor;
721 bool rv = DecodePageState(encoded, exploded); 733 bool rv = DecodePageState(encoded, exploded);
722 g_device_scale_factor_for_testing = 0.0; 734 g_device_scale_factor_for_testing = 0.0;
723 return rv; 735 return rv;
724 } 736 }
725 #endif 737 #endif
726 738
727 } // namespace content 739 } // 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