| Index: components/web_contents_delegate_android/web_contents_delegate_android.cc
|
| diff --git a/components/web_contents_delegate_android/web_contents_delegate_android.cc b/components/web_contents_delegate_android/web_contents_delegate_android.cc
|
| index a4f8213bfbe030c2e8955053d6111a1c599572ce..ac79a963c1d7262f295e00d5949bd14a2f67541e 100644
|
| --- a/components/web_contents_delegate_android/web_contents_delegate_android.cc
|
| +++ b/components/web_contents_delegate_android/web_contents_delegate_android.cc
|
| @@ -13,8 +13,10 @@
|
| #include "components/web_contents_delegate_android/validation_message_bubble_android.h"
|
| #include "content/public/browser/android/content_view_core.h"
|
| #include "content/public/browser/color_chooser.h"
|
| +#include "content/public/browser/global_request_id.h"
|
| #include "content/public/browser/invalidate_type.h"
|
| #include "content/public/browser/native_web_keyboard_event.h"
|
| +#include "content/public/browser/navigation_controller.h"
|
| #include "content/public/browser/page_navigator.h"
|
| #include "content/public/browser/render_widget_host_view.h"
|
| #include "content/public/browser/web_contents.h"
|
| @@ -67,8 +69,6 @@ WebContents* WebContentsDelegateAndroid::OpenURLFromTab(
|
| const content::OpenURLParams& params) {
|
| const GURL& url = params.url;
|
| WindowOpenDisposition disposition = params.disposition;
|
| - content::PageTransition transition(
|
| - PageTransitionFromInt(params.transition));
|
|
|
| if (!source || (disposition != CURRENT_TAB &&
|
| disposition != NEW_FOREGROUND_TAB &&
|
| @@ -105,12 +105,37 @@ WebContents* WebContentsDelegateAndroid::OpenURLFromTab(
|
| java_url.obj(),
|
| extra_headers.obj(),
|
| post_data.obj(),
|
| - disposition);
|
| + disposition,
|
| + params.is_renderer_initiated);
|
| return NULL;
|
| }
|
|
|
| - source->GetController().LoadURL(url, params.referrer, transition,
|
| - std::string());
|
| + // content::OpenURLParams -> content::NavigationController::LoadURLParams
|
| + content::NavigationController::LoadURLParams load_params(url);
|
| + load_params.referrer = params.referrer;
|
| + load_params.frame_tree_node_id = params.frame_tree_node_id;
|
| + load_params.redirect_chain = params.redirect_chain;
|
| + load_params.transition_type = params.transition;
|
| + load_params.extra_headers = params.extra_headers;
|
| + load_params.should_replace_current_entry =
|
| + params.should_replace_current_entry;
|
| + load_params.is_renderer_initiated = params.is_renderer_initiated;
|
| +
|
| + if (params.transferred_global_request_id != content::GlobalRequestID()) {
|
| + load_params.transferred_global_request_id =
|
| + params.transferred_global_request_id;
|
| + }
|
| +
|
| + // Only allows the browser-initiated navigation to use POST.
|
| + if (params.uses_post && !params.is_renderer_initiated) {
|
| + load_params.load_type =
|
| + content::NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
|
| + load_params.browser_initiated_post_data =
|
| + params.browser_initiated_post_data;
|
| + }
|
| +
|
| + source->GetController().LoadURLWithParams(load_params);
|
| +
|
| return source;
|
| }
|
|
|
|
|