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

Side by Side 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: Addressed comments Created 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/browser/frame_host/frame_navigation_entry.h" 5 #include "content/browser/frame_host/frame_navigation_entry.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/strings/utf_string_conversions.h"
Charlie Reis 2016/05/16 21:16:42 Is this stale?
clamy 2016/05/19 13:11:57 Yes. Removed it.
10 #include "content/common/page_state_serialization.h"
11 #include "content/common/site_isolation_policy.h"
12
9 namespace content { 13 namespace content {
10 14
11 FrameNavigationEntry::FrameNavigationEntry() 15 FrameNavigationEntry::FrameNavigationEntry()
12 : item_sequence_number_(-1), document_sequence_number_(-1), post_id_(-1) {} 16 : item_sequence_number_(-1), document_sequence_number_(-1), post_id_(-1) {}
13 17
14 FrameNavigationEntry::FrameNavigationEntry( 18 FrameNavigationEntry::FrameNavigationEntry(
15 const std::string& frame_unique_name, 19 const std::string& frame_unique_name,
16 int64_t item_sequence_number, 20 int64_t item_sequence_number,
17 int64_t document_sequence_number, 21 int64_t document_sequence_number,
18 scoped_refptr<SiteInstanceImpl> site_instance, 22 scoped_refptr<SiteInstanceImpl> site_instance,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // location.replace is classified as NEW_PAGE rather than EXISTING_PAGE. 77 // location.replace is classified as NEW_PAGE rather than EXISTING_PAGE.
74 // Same for document sequence number. See https://crbug.com/596707. 78 // Same for document sequence number. See https://crbug.com/596707.
75 item_sequence_number_ = item_sequence_number; 79 item_sequence_number_ = item_sequence_number;
76 } 80 }
77 81
78 void FrameNavigationEntry::set_document_sequence_number( 82 void FrameNavigationEntry::set_document_sequence_number(
79 int64_t document_sequence_number) { 83 int64_t document_sequence_number) {
80 document_sequence_number_ = document_sequence_number; 84 document_sequence_number_ = document_sequence_number;
81 } 85 }
82 86
87 scoped_refptr<ResourceRequestBody> FrameNavigationEntry::GetPostData() const {
88 DCHECK(SiteIsolationPolicy::UseSubframeNavigationEntries());
89 scoped_refptr<ResourceRequestBody> body;
90 if (method_ != "POST")
91 return body;
92
93 // Generate the body from the PageState.
94 ExplodedPageState exploded_state;
95 if (!DecodePageState(page_state_.ToEncodedData(), &exploded_state))
96 return body;
97
98 body = new ResourceRequestBody();
99 if (!GeneratePostData(exploded_state.top.http_body, body.get()))
100 return nullptr;
101
102 return body;
103 }
104
83 } // namespace content 105 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/frame_navigation_entry.h ('k') | content/browser/frame_host/navigation_entry_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698