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( |