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

Unified Diff: content/common/page_state_serialization.h

Issue 16867005: Re-implement PageState serialization without a Blink API dependency. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Improvements based on Tom's feedback. Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/pylib/gtest/test_runner.py ('k') | content/common/page_state_serialization.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/page_state_serialization.h
diff --git a/content/common/page_state_serialization.h b/content/common/page_state_serialization.h
new file mode 100644
index 0000000000000000000000000000000000000000..081e959d97e0aa4a64ed8c0f097cc890d65b83ec
--- /dev/null
+++ b/content/common/page_state_serialization.h
@@ -0,0 +1,81 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_COMMON_PAGE_STATE_SERIALIZATION_H_
+#define CONTENT_COMMON_PAGE_STATE_SERIALIZATION_H_
+
+#include <vector>
+
+#include "base/strings/nullable_string16.h"
+#include "content/common/content_export.h"
+#include "googleurl/src/gurl.h"
+#include "third_party/WebKit/public/platform/WebHTTPBody.h"
+#include "ui/gfx/point.h"
+
+namespace content {
+
+struct CONTENT_EXPORT ExplodedHttpBodyElement {
+ WebKit::WebHTTPBody::Element::Type type;
+ std::string data;
+ base::NullableString16 file_path;
+ GURL url;
+ int64 file_start;
+ int64 file_length;
+ double file_modification_time;
+
+ ExplodedHttpBodyElement();
+ ~ExplodedHttpBodyElement();
+};
+
+struct CONTENT_EXPORT ExplodedHttpBody {
+ base::NullableString16 http_content_type;
+ std::vector<ExplodedHttpBodyElement> elements;
+ int64 identifier;
+ bool contains_passwords;
+ bool is_null;
+
+ ExplodedHttpBody();
+ ~ExplodedHttpBody();
+};
+
+struct CONTENT_EXPORT ExplodedFrameState {
+ base::NullableString16 url_string;
+ base::NullableString16 original_url_string;
+ base::NullableString16 referrer;
+ base::NullableString16 target;
+ base::NullableString16 parent;
+ base::NullableString16 title;
+ base::NullableString16 alternate_title;
+ base::NullableString16 state_object;
+ std::vector<base::NullableString16> document_state;
+ gfx::Point scroll_offset;
+ int64 item_sequence_number;
+ int64 document_sequence_number;
+ int visit_count;
+ double visited_time;
+ double page_scale_factor;
+ bool is_target_item;
+ ExplodedHttpBody http_body;
+ std::vector<ExplodedFrameState> children;
+
+ ExplodedFrameState();
+ ~ExplodedFrameState();
+};
+
+struct CONTENT_EXPORT ExplodedPageState {
+ std::vector<base::NullableString16> referenced_files;
+ ExplodedFrameState top;
+
+ ExplodedPageState();
+ ~ExplodedPageState();
+};
+
+CONTENT_EXPORT bool DecodePageState(const std::string& encoded,
+ ExplodedPageState* exploded);
+CONTENT_EXPORT bool EncodePageState(const ExplodedPageState& exploded,
+ std::string* encoded);
+
+} // namespace content
+
+#endif // CONTENT_COMMON_PAGE_STATE_SERIALIZATION_H_
« no previous file with comments | « build/android/pylib/gtest/test_runner.py ('k') | content/common/page_state_serialization.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698