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

Unified Diff: content/browser/frame_host/frame_navigation_entry.cc

Issue 1907443006: PlzNavigate: store POST data in the FrameNavigationEntry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
Index: content/browser/frame_host/frame_navigation_entry.cc
diff --git a/content/browser/frame_host/frame_navigation_entry.cc b/content/browser/frame_host/frame_navigation_entry.cc
index a6fc6d910d3c8f39f0a492c4f7af333570eaef2f..9c37038cd189009fad6a1225acc5bd2226b5ef87 100644
--- a/content/browser/frame_host/frame_navigation_entry.cc
+++ b/content/browser/frame_host/frame_navigation_entry.cc
@@ -23,7 +23,8 @@ FrameNavigationEntry::FrameNavigationEntry(
const GURL& url,
const Referrer& referrer,
const std::string& method,
- int64_t post_id)
+ int64_t post_id,
+ scoped_refptr<ResourceRequestBody> post_data)
: frame_tree_node_id_(frame_tree_node_id),
frame_unique_name_(frame_unique_name),
item_sequence_number_(item_sequence_number),
@@ -32,28 +33,36 @@ FrameNavigationEntry::FrameNavigationEntry(
url_(url),
referrer_(referrer),
method_(method),
- post_id_(post_id) {}
+ post_id_(post_id) {
+ DCHECK(!post_data || method_ == "POST");
+ post_data_ = post_data;
+}
FrameNavigationEntry::~FrameNavigationEntry() {
}
FrameNavigationEntry* FrameNavigationEntry::Clone() const {
+ scoped_refptr<ResourceRequestBody> post_data;
+ if (post_data_)
+ post_data = post_data_->MakeCopy();
FrameNavigationEntry* copy = new FrameNavigationEntry(frame_tree_node_id_);
copy->UpdateEntry(frame_unique_name_, item_sequence_number_,
document_sequence_number_, site_instance_.get(), url_,
- referrer_, page_state_, method_, post_id_);
+ referrer_, page_state_, method_, post_id_, post_data);
return copy;
}
-void FrameNavigationEntry::UpdateEntry(const std::string& frame_unique_name,
- int64_t item_sequence_number,
- int64_t document_sequence_number,
- SiteInstanceImpl* site_instance,
- const GURL& url,
- const Referrer& referrer,
- const PageState& page_state,
- const std::string& method,
- int64_t post_id) {
+void FrameNavigationEntry::UpdateEntry(
+ const std::string& frame_unique_name,
+ int64_t item_sequence_number,
+ int64_t document_sequence_number,
+ SiteInstanceImpl* site_instance,
+ const GURL& url,
+ const Referrer& referrer,
+ const PageState& page_state,
+ const std::string& method,
+ int64_t post_id,
+ scoped_refptr<ResourceRequestBody> post_data) {
frame_unique_name_ = frame_unique_name;
item_sequence_number_ = item_sequence_number;
document_sequence_number_ = document_sequence_number;
@@ -63,6 +72,9 @@ void FrameNavigationEntry::UpdateEntry(const std::string& frame_unique_name,
page_state_ = page_state;
method_ = method;
post_id_ = post_id;
+
+ DCHECK(!post_data || method_ == "POST");
+ post_data_ = post_data;
}
void FrameNavigationEntry::set_item_sequence_number(

Powered by Google App Engine
This is Rietveld 408576698