| Index: content/browser/android/content_view_core_impl.cc
|
| diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc
|
| index 22527a4a85ea2ecc3931bd7d032896fd0922a78e..23705cf56935b655fad8138f8c829bfdb17aa10c 100644
|
| --- a/content/browser/android/content_view_core_impl.cc
|
| +++ b/content/browser/android/content_view_core_impl.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/json/json_writer.h"
|
| #include "content/browser/android/content_view_client.h"
|
| +#include "content/browser/android/load_url_params.h"
|
| #include "content/browser/android/touch_point.h"
|
| #include "content/browser/renderer_host/java/java_bound_object.h"
|
| #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager.h"
|
| @@ -26,6 +27,7 @@
|
| #include "content/public/browser/notification_source.h"
|
| #include "content/public/browser/notification_types.h"
|
| #include "content/public/browser/web_contents.h"
|
| +#include "content/public/common/page_transition_types.h"
|
| #include "jni/ContentViewCore_jni.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
|
| @@ -35,10 +37,12 @@
|
|
|
| using base::android::AttachCurrentThread;
|
| using base::android::ConvertJavaStringToUTF16;
|
| +using base::android::ConvertJavaStringToUTF8;
|
| using base::android::ConvertUTF16ToJavaString;
|
| using base::android::ConvertUTF8ToJavaString;
|
| using base::android::GetClass;
|
| using base::android::HasField;
|
| +using base::android::JavaByteArrayToByteVector;
|
| using base::android::ScopedJavaGlobalRef;
|
| using base::android::ScopedJavaLocalRef;
|
| using WebKit::WebInputEvent;
|
| @@ -179,27 +183,48 @@ jint ContentViewCoreImpl::EvaluateJavaScript(JNIEnv* env, jobject obj,
|
| script_utf16);
|
| }
|
|
|
| -void ContentViewCoreImpl::LoadUrlWithoutUrlSanitization(JNIEnv* env,
|
| - jobject,
|
| - jstring jurl,
|
| - int page_transition) {
|
| - GURL url(base::android::ConvertJavaStringToUTF8(env, jurl));
|
| +void ContentViewCoreImpl::LoadUrl(
|
| + JNIEnv* env, jobject obj,
|
| + jstring url,
|
| + jint load_url_type,
|
| + jint transition_type,
|
| + jint ua_override_option,
|
| + jstring extra_headers,
|
| + jbyteArray post_data,
|
| + jstring base_url_for_data_url,
|
| + jstring virtual_url_for_data_url) {
|
| + DCHECK(url);
|
| + NavigationController::LoadURLParams params(
|
| + GURL(ConvertJavaStringToUTF8(env, url)));
|
| +
|
| + params.load_type = static_cast<NavigationController::LoadURLType>(
|
| + load_url_type);
|
| + params.transition_type = PageTransitionFromInt(transition_type);
|
| + params.override_user_agent =
|
| + static_cast<NavigationController::UserAgentOverrideOption>(
|
| + ua_override_option);
|
| +
|
| + if (extra_headers)
|
| + params.extra_headers = ConvertJavaStringToUTF8(env, extra_headers);
|
| +
|
| + if (post_data) {
|
| + std::vector<uint8> http_body_vector;
|
| + JavaByteArrayToByteVector(env, post_data, &http_body_vector);
|
| + params.browser_initiated_post_data =
|
| + base::RefCountedBytes::TakeVector(&http_body_vector);
|
| + }
|
|
|
| - LoadUrl(url, page_transition);
|
| -}
|
| + if (base_url_for_data_url) {
|
| + params.base_url_for_data_url =
|
| + GURL(ConvertJavaStringToUTF8(env, base_url_for_data_url));
|
| + }
|
|
|
| -void ContentViewCoreImpl::LoadUrlWithoutUrlSanitizationWithUserAgentOverride(
|
| - JNIEnv* env,
|
| - jobject,
|
| - jstring jurl,
|
| - int page_transition,
|
| - jstring user_agent_override) {
|
| - GURL url(base::android::ConvertJavaStringToUTF8(env, jurl));
|
| + if (virtual_url_for_data_url) {
|
| + params.virtual_url_for_data_url =
|
| + GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url));
|
| + }
|
|
|
| - LoadUrlWithUserAgentOverride(
|
| - url,
|
| - page_transition,
|
| - base::android::ConvertJavaStringToUTF8(env, user_agent_override));
|
| + LoadUrl(params);
|
| }
|
|
|
| ScopedJavaLocalRef<jstring> ContentViewCoreImpl::GetURL(
|
| @@ -436,32 +461,10 @@ int ContentViewCoreImpl::GetNavigationHistory(JNIEnv* env,
|
| // Methods called from native code
|
| // --------------------------------------------------------------------------
|
|
|
| -void ContentViewCoreImpl::LoadUrl(const GURL& url, int page_transition) {
|
| - content::Referrer referer;
|
| -
|
| - web_contents()->GetController().LoadURL(
|
| - url, referer, content::PageTransitionFromInt(page_transition),
|
| - std::string());
|
| - PostLoadUrl(url);
|
| -}
|
| -
|
| -void ContentViewCoreImpl::LoadUrlWithUserAgentOverride(
|
| - const GURL& url,
|
| - int page_transition,
|
| - const std::string& user_agent_override) {
|
| - web_contents()->SetUserAgentOverride(user_agent_override);
|
| - bool is_overriding_user_agent(!user_agent_override.empty());
|
| -
|
| - content::NavigationController::LoadURLParams load_url_params(url);
|
| - load_url_params.transition_type =
|
| - content::PageTransitionFromInt(page_transition);
|
| - load_url_params.override_user_agent = is_overriding_user_agent ?
|
| - content::NavigationController::UA_OVERRIDE_TRUE :
|
| - content::NavigationController::UA_OVERRIDE_FALSE;
|
| -
|
| - web_contents()->GetController().LoadURLWithParams(load_url_params);
|
| -
|
| - PostLoadUrl(url);
|
| +void ContentViewCoreImpl::LoadUrl(
|
| + NavigationController::LoadURLParams& params) {
|
| + web_contents()->GetController().LoadURLWithParams(params);
|
| + PostLoadUrl(params.url);
|
| }
|
|
|
| void ContentViewCoreImpl::PostLoadUrl(const GURL& url) {
|
|
|