| Index: chrome/browser/ui/browser_navigator.cc
|
| ===================================================================
|
| --- chrome/browser/ui/browser_navigator.cc (revision 214769)
|
| +++ chrome/browser/ui/browser_navigator.cc (working copy)
|
| @@ -7,6 +7,7 @@
|
| #include <algorithm>
|
|
|
| #include "base/command_line.h"
|
| +#include "base/memory/ref_counted_memory.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -45,6 +46,7 @@
|
| #endif
|
|
|
| using content::GlobalRequestID;
|
| +using content::NavigationController;
|
| using content::WebContents;
|
|
|
| class BrowserNavigatorWebContentsAdoption {
|
| @@ -243,7 +245,7 @@
|
| void LoadURLInContents(WebContents* target_contents,
|
| const GURL& url,
|
| chrome::NavigateParams* params) {
|
| - content::NavigationController::LoadURLParams load_url_params(url);
|
| + NavigationController::LoadURLParams load_url_params(url);
|
| load_url_params.referrer = params->referrer;
|
| load_url_params.transition_type = params->transition;
|
| load_url_params.extra_headers = params->extra_headers;
|
| @@ -257,6 +259,14 @@
|
| } else if (params->is_renderer_initiated) {
|
| load_url_params.is_renderer_initiated = true;
|
| }
|
| +
|
| + if (params->uses_post) {
|
| + // Only allows the user-initiated navigation to use POST?
|
| + load_url_params.load_type =
|
| + NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
|
| + load_url_params.browser_initiated_post_data =
|
| + base::RefCountedString::TakeString(¶ms->post_data);
|
| + }
|
| target_contents->GetController().LoadURLWithParams(load_url_params);
|
| }
|
|
|
| @@ -393,7 +403,8 @@
|
| browser(a_browser),
|
| initiating_profile(NULL),
|
| host_desktop_type(GetHostDesktop(a_browser)),
|
| - should_replace_current_entry(false) {
|
| + should_replace_current_entry(false),
|
| + uses_post(false) {
|
| }
|
|
|
| NavigateParams::NavigateParams(Browser* a_browser,
|
| @@ -412,7 +423,8 @@
|
| browser(a_browser),
|
| initiating_profile(NULL),
|
| host_desktop_type(GetHostDesktop(a_browser)),
|
| - should_replace_current_entry(false) {
|
| + should_replace_current_entry(false),
|
| + uses_post(false) {
|
| }
|
|
|
| NavigateParams::NavigateParams(Profile* a_profile,
|
| @@ -433,7 +445,8 @@
|
| browser(NULL),
|
| initiating_profile(a_profile),
|
| host_desktop_type(chrome::GetActiveDesktop()),
|
| - should_replace_current_entry(false) {
|
| + should_replace_current_entry(false),
|
| + uses_post(false) {
|
| }
|
|
|
| NavigateParams::~NavigateParams() {}
|
| @@ -449,6 +462,8 @@
|
| params.transferred_global_request_id;
|
| nav_params->should_replace_current_entry =
|
| params.should_replace_current_entry;
|
| + nav_params->uses_post = params.uses_post;
|
| + nav_params->post_data = params.post_data;
|
| }
|
|
|
| void Navigate(NavigateParams* params) {
|
|
|