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

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

Issue 23223003: Chromium Blob hacking (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 http_body->elements.push_back(element); 44 http_body->elements.push_back(element);
45 } 45 }
46 46
47 void AppendURLRangeToHttpBody(ExplodedHttpBody* http_body, 47 void AppendURLRangeToHttpBody(ExplodedHttpBody* http_body,
48 const GURL& url, 48 const GURL& url,
49 int file_start, 49 int file_start,
50 int file_length, 50 int file_length,
51 double file_modification_time) { 51 double file_modification_time) {
52 ExplodedHttpBodyElement element; 52 ExplodedHttpBodyElement element;
53 element.type = WebKit::WebHTTPBody::Element::TypeURL; 53 element.type = WebKit::WebHTTPBody::Element::TypeURL;
54 element.url = url; 54 element.filesystem_url = url;
55 element.file_start = file_start; 55 element.file_start = file_start;
56 element.file_length = file_length; 56 element.file_length = file_length;
57 element.file_modification_time = file_modification_time; 57 element.file_modification_time = file_modification_time;
58 http_body->elements.push_back(element); 58 http_body->elements.push_back(element);
59 } 59 }
60 60
61 void AppendBlobToHttpBody(ExplodedHttpBody* http_body, const GURL& url) { 61 void DeprecatedAppendBlobToHttpBody(ExplodedHttpBody* http_body,
62 const GURL& url) {
62 ExplodedHttpBodyElement element; 63 ExplodedHttpBodyElement element;
63 element.type = WebKit::WebHTTPBody::Element::TypeBlob; 64 element.type = WebKit::WebHTTPBody::Element::TypeBlob;
64 element.url = url; 65 element.deprecated_blob_url = url;
65 http_body->elements.push_back(element); 66 http_body->elements.push_back(element);
66 } 67 }
67 68
68 //---------------------------------------------------------------------------- 69 //----------------------------------------------------------------------------
69 70
70 void AppendReferencedFilesFromHttpBody( 71 void AppendReferencedFilesFromHttpBody(
71 const std::vector<ExplodedHttpBodyElement>& elements, 72 const std::vector<ExplodedHttpBodyElement>& elements,
72 std::vector<base::NullableString16>* referenced_files) { 73 std::vector<base::NullableString16>* referenced_files) {
73 for (size_t i = 0; i < elements.size(); ++i) { 74 for (size_t i = 0; i < elements.size(); ++i) {
74 if (elements[i].type == WebKit::WebHTTPBody::Element::TypeFile) 75 if (elements[i].type == WebKit::WebHTTPBody::Element::TypeFile)
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 WriteInteger(element.type, obj); 390 WriteInteger(element.type, obj);
390 if (element.type == WebKit::WebHTTPBody::Element::TypeData) { 391 if (element.type == WebKit::WebHTTPBody::Element::TypeData) {
391 WriteData(element.data.data(), static_cast<int>(element.data.size()), 392 WriteData(element.data.data(), static_cast<int>(element.data.size()),
392 obj); 393 obj);
393 } else if (element.type == WebKit::WebHTTPBody::Element::TypeFile) { 394 } else if (element.type == WebKit::WebHTTPBody::Element::TypeFile) {
394 WriteString(element.file_path, obj); 395 WriteString(element.file_path, obj);
395 WriteInteger64(element.file_start, obj); 396 WriteInteger64(element.file_start, obj);
396 WriteInteger64(element.file_length, obj); 397 WriteInteger64(element.file_length, obj);
397 WriteReal(element.file_modification_time, obj); 398 WriteReal(element.file_modification_time, obj);
398 } else if (element.type == WebKit::WebHTTPBody::Element::TypeURL) { 399 } else if (element.type == WebKit::WebHTTPBody::Element::TypeURL) {
399 WriteGURL(element.url, obj); 400 WriteGURL(element.filesystem_url, obj);
400 WriteInteger64(element.file_start, obj); 401 WriteInteger64(element.file_start, obj);
401 WriteInteger64(element.file_length, obj); 402 WriteInteger64(element.file_length, obj);
402 WriteReal(element.file_modification_time, obj); 403 WriteReal(element.file_modification_time, obj);
403 } else { 404 } else {
404 WriteGURL(element.url, obj); 405 DCHECK(element.type == WebKit::WebHTTPBody::Element::TypeBlob);
406 WriteGURL(element.deprecated_blob_url, obj);
405 } 407 }
406 } 408 }
407 WriteInteger64(http_body.identifier, obj); 409 WriteInteger64(http_body.identifier, obj);
408 WriteBoolean(http_body.contains_passwords, obj); 410 WriteBoolean(http_body.contains_passwords, obj);
409 } 411 }
410 412
411 void ReadHttpBody(SerializeObject* obj, ExplodedHttpBody* http_body) { 413 void ReadHttpBody(SerializeObject* obj, ExplodedHttpBody* http_body) {
412 // An initial boolean indicates if we have an HTTP body. 414 // An initial boolean indicates if we have an HTTP body.
413 if (!ReadBoolean(obj)) 415 if (!ReadBoolean(obj))
414 return; 416 return;
(...skipping 20 matching lines...) Expand all
435 file_modification_time); 437 file_modification_time);
436 } else if (type == WebKit::WebHTTPBody::Element::TypeURL) { 438 } else if (type == WebKit::WebHTTPBody::Element::TypeURL) {
437 GURL url = ReadGURL(obj); 439 GURL url = ReadGURL(obj);
438 int64 file_start = ReadInteger64(obj); 440 int64 file_start = ReadInteger64(obj);
439 int64 file_length = ReadInteger64(obj); 441 int64 file_length = ReadInteger64(obj);
440 double file_modification_time = ReadReal(obj); 442 double file_modification_time = ReadReal(obj);
441 AppendURLRangeToHttpBody(http_body, url, file_start, file_length, 443 AppendURLRangeToHttpBody(http_body, url, file_start, file_length,
442 file_modification_time); 444 file_modification_time);
443 } else if (type == WebKit::WebHTTPBody::Element::TypeBlob) { 445 } else if (type == WebKit::WebHTTPBody::Element::TypeBlob) {
444 GURL blob_url = ReadGURL(obj); 446 GURL blob_url = ReadGURL(obj);
445 AppendBlobToHttpBody(http_body, blob_url); 447 DeprecatedAppendBlobToHttpBody(http_body, blob_url);
446 } 448 }
447 } 449 }
448 http_body->identifier = ReadInteger64(obj); 450 http_body->identifier = ReadInteger64(obj);
449 451
450 if (obj->version >= 12) 452 if (obj->version >= 12)
451 http_body->contains_passwords = ReadBoolean(obj); 453 http_body->contains_passwords = ReadBoolean(obj);
452 } 454 }
453 455
454 // Writes the ExplodedFrameState data into the SerializeObject object for 456 // Writes the ExplodedFrameState data into the SerializeObject object for
455 // serialization. 457 // serialization.
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 float device_scale_factor, 675 float device_scale_factor,
674 ExplodedPageState* exploded) { 676 ExplodedPageState* exploded) {
675 g_device_scale_factor_for_testing = device_scale_factor; 677 g_device_scale_factor_for_testing = device_scale_factor;
676 bool rv = DecodePageState(encoded, exploded); 678 bool rv = DecodePageState(encoded, exploded);
677 g_device_scale_factor_for_testing = 0.0; 679 g_device_scale_factor_for_testing = 0.0;
678 return rv; 680 return rv;
679 } 681 }
680 #endif 682 #endif
681 683
682 } // namespace content 684 } // 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