Commit 60f435ab authored by boliu@chromium.org's avatar boliu@chromium.org

Consolidate ContentViewCore::Load* functions

Consolidate all ContentViewCore::Load* methods into a single LoadUrl
call that takes a NavigationController::LoadURLParam.

Consolidate all jni ContentViewCore::Load* methods by adding a Java
LoadUrlParams. The data is copied to a native AndroidLoadUrlParams
object in native jni code.

BUG=142933

Review URL: https://chromiumcodereview.appspot.com/10823207

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151784 0039d316-1c4b-4281-b951-d872f2087c98
parent ea987b72
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "content/browser/android/content_view_core_impl.h" #include "content/browser/android/content_view_core_impl.h"
#include "content/browser/android/content_view_statics.h" #include "content/browser/android/content_view_statics.h"
#include "content/browser/android/download_controller.h" #include "content/browser/android/download_controller.h"
#include "content/browser/android/load_url_params.h"
#include "content/browser/android/sandboxed_process_launcher.h" #include "content/browser/android/sandboxed_process_launcher.h"
#include "content/browser/android/touch_point.h" #include "content/browser/android/touch_point.h"
#include "content/browser/geolocation/location_api_adapter_android.h" #include "content/browser/geolocation/location_api_adapter_android.h"
...@@ -30,6 +31,7 @@ base::android::RegistrationMethod kContentRegisteredMethods[] = { ...@@ -30,6 +31,7 @@ base::android::RegistrationMethod kContentRegisteredMethods[] = {
{ "DownloadController", { "DownloadController",
content::DownloadController::RegisterDownloadController }, content::DownloadController::RegisterDownloadController },
{ "JavaBoundObject", JavaBoundObject::RegisterJavaBoundObject }, { "JavaBoundObject", JavaBoundObject::RegisterJavaBoundObject },
{ "LoadUrlParams", content::RegisterLoadUrlParams },
{ "SandboxedProcessLauncher", content::RegisterSandboxedProcessLauncher }, { "SandboxedProcessLauncher", content::RegisterSandboxedProcessLauncher },
{ "TouchPoint", content::RegisterTouchPoint }, { "TouchPoint", content::RegisterTouchPoint },
{ "WebViewStatics", content::RegisterWebViewStatics }, { "WebViewStatics", content::RegisterWebViewStatics },
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/android/scoped_java_ref.h" #include "base/android/scoped_java_ref.h"
#include "base/json/json_writer.h" #include "base/json/json_writer.h"
#include "content/browser/android/content_view_client.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/android/touch_point.h"
#include "content/browser/renderer_host/java/java_bound_object.h" #include "content/browser/renderer_host/java/java_bound_object.h"
#include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager.h" #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager.h"
...@@ -26,6 +27,7 @@ ...@@ -26,6 +27,7 @@
#include "content/public/browser/notification_source.h" #include "content/public/browser/notification_source.h"
#include "content/public/browser/notification_types.h" #include "content/public/browser/notification_types.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/page_transition_types.h"
#include "jni/ContentViewCore_jni.h" #include "jni/ContentViewCore_jni.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
...@@ -35,10 +37,12 @@ ...@@ -35,10 +37,12 @@
using base::android::AttachCurrentThread; using base::android::AttachCurrentThread;
using base::android::ConvertJavaStringToUTF16; using base::android::ConvertJavaStringToUTF16;
using base::android::ConvertJavaStringToUTF8;
using base::android::ConvertUTF16ToJavaString; using base::android::ConvertUTF16ToJavaString;
using base::android::ConvertUTF8ToJavaString; using base::android::ConvertUTF8ToJavaString;
using base::android::GetClass; using base::android::GetClass;
using base::android::HasField; using base::android::HasField;
using base::android::JavaByteArrayToByteVector;
using base::android::ScopedJavaGlobalRef; using base::android::ScopedJavaGlobalRef;
using base::android::ScopedJavaLocalRef; using base::android::ScopedJavaLocalRef;
using WebKit::WebInputEvent; using WebKit::WebInputEvent;
...@@ -179,27 +183,48 @@ jint ContentViewCoreImpl::EvaluateJavaScript(JNIEnv* env, jobject obj, ...@@ -179,27 +183,48 @@ jint ContentViewCoreImpl::EvaluateJavaScript(JNIEnv* env, jobject obj,
script_utf16); script_utf16);
} }
void ContentViewCoreImpl::LoadUrlWithoutUrlSanitization(JNIEnv* env, void ContentViewCoreImpl::LoadUrl(
jobject, JNIEnv* env, jobject obj,
jstring jurl, jstring url,
int page_transition) { jint load_url_type,
GURL url(base::android::ConvertJavaStringToUTF8(env, jurl)); 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( if (virtual_url_for_data_url) {
JNIEnv* env, params.virtual_url_for_data_url =
jobject, GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url));
jstring jurl, }
int page_transition,
jstring user_agent_override) {
GURL url(base::android::ConvertJavaStringToUTF8(env, jurl));
LoadUrlWithUserAgentOverride( LoadUrl(params);
url,
page_transition,
base::android::ConvertJavaStringToUTF8(env, user_agent_override));
} }
ScopedJavaLocalRef<jstring> ContentViewCoreImpl::GetURL( ScopedJavaLocalRef<jstring> ContentViewCoreImpl::GetURL(
...@@ -436,32 +461,10 @@ int ContentViewCoreImpl::GetNavigationHistory(JNIEnv* env, ...@@ -436,32 +461,10 @@ int ContentViewCoreImpl::GetNavigationHistory(JNIEnv* env,
// Methods called from native code // Methods called from native code
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
void ContentViewCoreImpl::LoadUrl(const GURL& url, int page_transition) { void ContentViewCoreImpl::LoadUrl(
content::Referrer referer; NavigationController::LoadURLParams& params) {
web_contents()->GetController().LoadURLWithParams(params);
web_contents()->GetController().LoadURL( PostLoadUrl(params.url);
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::PostLoadUrl(const GURL& url) { void ContentViewCoreImpl::PostLoadUrl(const GURL& url) {
......
...@@ -47,16 +47,16 @@ class ContentViewCoreImpl : public ContentViewCore, ...@@ -47,16 +47,16 @@ class ContentViewCoreImpl : public ContentViewCore,
// showing select popup. // showing select popup.
void SelectPopupMenuItems(JNIEnv* env, jobject obj, jintArray indices); void SelectPopupMenuItems(JNIEnv* env, jobject obj, jintArray indices);
void LoadUrlWithoutUrlSanitization(JNIEnv* env, void LoadUrl(
jobject, JNIEnv* env, jobject obj,
jstring jurl, jstring url,
int page_transition); jint load_url_type,
void LoadUrlWithoutUrlSanitizationWithUserAgentOverride( jint transition_type,
JNIEnv* env, jint ua_override_option,
jobject, jstring extra_headers,
jstring jurl, jbyteArray post_data,
int page_transition, jstring base_url_for_data_url,
jstring user_agent_override); jstring virtual_url_for_data_url);
base::android::ScopedJavaLocalRef<jstring> GetURL(JNIEnv* env, jobject) const; base::android::ScopedJavaLocalRef<jstring> GetURL(JNIEnv* env, jobject) const;
base::android::ScopedJavaLocalRef<jstring> GetTitle( base::android::ScopedJavaLocalRef<jstring> GetTitle(
JNIEnv* env, jobject obj) const; JNIEnv* env, jobject obj) const;
...@@ -158,11 +158,8 @@ class ContentViewCoreImpl : public ContentViewCore, ...@@ -158,11 +158,8 @@ class ContentViewCoreImpl : public ContentViewCore,
gfx::Rect GetBounds() const; gfx::Rect GetBounds() const;
WebContents* web_contents() const { return web_contents_; } WebContents* web_contents() const { return web_contents_; }
void LoadUrl(const GURL& url, int page_transition);
void LoadUrlWithUserAgentOverride( virtual void LoadUrl(NavigationController::LoadURLParams& params) OVERRIDE;
const GURL& url,
int page_transition,
const std::string& user_agent_override);
private: private:
// NotificationObserver implementation. // NotificationObserver implementation.
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/android/load_url_params.h"
#include <jni.h>
#include "content/public/browser/navigation_controller.h"
#include "jni/LoadUrlParams_jni.h"
namespace {
using content::NavigationController;
void RegisterConstants(JNIEnv* env) {
Java_LoadUrlParams_initializeConstants(env,
NavigationController::LOAD_TYPE_DEFAULT,
NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST,
NavigationController::LOAD_TYPE_DATA,
NavigationController::UA_OVERRIDE_INHERIT,
NavigationController::UA_OVERRIDE_FALSE,
NavigationController::UA_OVERRIDE_TRUE);
}
} // namespace
namespace content {
bool RegisterLoadUrlParams(JNIEnv* env) {
if (!RegisterNativesImpl(env))
return false;
RegisterConstants(env);
return true;
}
} // namespace content
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_ANDROID_LOAD_URL_PARAMS_H_
#define CONTENT_BROWSER_ANDROID_LOAD_URL_PARAMS_H_
#include <jni.h>
namespace content {
bool RegisterLoadUrlParams(JNIEnv* env);
} // namespace content
#endif // CONTENT_BROWSER_ANDROID_LOAD_URL_PARAMS_H_
...@@ -219,6 +219,8 @@ ...@@ -219,6 +219,8 @@
'browser/android/graphics_context.cc', 'browser/android/graphics_context.cc',
'browser/android/ime_utils.cc', 'browser/android/ime_utils.cc',
'browser/android/ime_utils.h', 'browser/android/ime_utils.h',
'browser/android/load_url_params.cc',
'browser/android/load_url_params.h',
'browser/android/sandboxed_process_launcher.cc', 'browser/android/sandboxed_process_launcher.cc',
'browser/android/sandboxed_process_launcher.h', 'browser/android/sandboxed_process_launcher.h',
'browser/android/touch_point.cc', 'browser/android/touch_point.cc',
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
'public/android/java/src/org/chromium/content/browser/DeviceOrientation.java', 'public/android/java/src/org/chromium/content/browser/DeviceOrientation.java',
'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java',
'public/android/java/src/org/chromium/content/browser/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/ImeAdapter.java',
'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java',
'public/android/java/src/org/chromium/content/browser/LocationProvider.java', 'public/android/java/src/org/chromium/content/browser/LocationProvider.java',
'public/android/java/src/org/chromium/content/browser/SandboxedProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/SandboxedProcessLauncher.java',
'public/android/java/src/org/chromium/content/browser/TouchPoint.java', 'public/android/java/src/org/chromium/content/browser/TouchPoint.java',
......
...@@ -212,24 +212,10 @@ public class ContentView extends FrameLayout implements ContentViewCore.Internal ...@@ -212,24 +212,10 @@ public class ContentView extends FrameLayout implements ContentViewCore.Internal
* ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left * ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left
* off during user input). * off during user input).
* *
* @param url The url to load. * @param pararms Parameters for this load.
*/ */
public void loadUrlWithoutUrlSanitization(String url) { public void loadUrl(LoadUrlParams params) {
loadUrlWithoutUrlSanitization(url, PAGE_TRANSITION_TYPED); mContentViewCore.loadUrl(params);
}
/**
* Load url without fixing up the url string. Consumers of ContentView are responsible for
* ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left
* off during user input).
*
* @param url The url to load.
* @param pageTransition Page transition id that describes the action that led to this
* navigation. It is important for ranking URLs in the history so the
* omnibox can report suggestions correctly.
*/
public void loadUrlWithoutUrlSanitization(String url, int pageTransition) {
mContentViewCore.loadUrlWithoutUrlSanitization(url, pageTransition);
} }
void setAllUserAgentOverridesInHistory() { void setAllUserAgentOverridesInHistory() {
......
...@@ -374,40 +374,19 @@ public class ContentViewCore implements MotionEventDelegate { ...@@ -374,40 +374,19 @@ public class ContentViewCore implements MotionEventDelegate {
* ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left * ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left
* off during user input). * off during user input).
* *
* @param url The url to load. * @param pararms Parameters for this load.
*/ */
public void loadUrlWithoutUrlSanitization(String url) { public void loadUrl(LoadUrlParams params) {
loadUrlWithoutUrlSanitization(url, PAGE_TRANSITION_TYPED); if (mNativeContentViewCore == 0) return;
} nativeLoadUrl(mNativeContentViewCore,
params.mUrl,
/** params.mLoadUrlType,
* Load url without fixing up the url string. Consumers of ContentView are responsible for params.mTransitionType,
* ensuring the URL passed in is properly formatted (i.e. the scheme has been added if left params.mUaOverrideOption,
* off during user input). params.mExtraHeaders,
* params.mPostData,
* @param url The url to load. params.mBaseUrlForDataUrl,
* @param pageTransition Page transition id that describes the action that led to this params.mVirtualUrlForDataUrl);
* navigation. It is important for ranking URLs in the history so the
* omnibox can report suggestions correctly.
*/
public void loadUrlWithoutUrlSanitization(String url, int pageTransition) {
mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary();
if (mNativeContentViewCore != 0) {
if (isPersonalityView()) {
nativeLoadUrlWithoutUrlSanitizationWithUserAgentOverride(
mNativeContentViewCore,
url,
pageTransition,
mContentSettings.getUserAgentString());
} else {
// Chrome stores overridden UA strings in navigation history
// items, so they stay the same on going back / forward.
nativeLoadUrlWithoutUrlSanitization(
mNativeContentViewCore,
url,
pageTransition);
}
}
} }
void setAllUserAgentOverridesInHistory() { void setAllUserAgentOverridesInHistory() {
...@@ -1154,11 +1133,16 @@ public class ContentViewCore implements MotionEventDelegate { ...@@ -1154,11 +1133,16 @@ public class ContentViewCore implements MotionEventDelegate {
private static native void nativeDestroy(int nativeContentViewCoreImpl); private static native void nativeDestroy(int nativeContentViewCoreImpl);
private native void nativeLoadUrlWithoutUrlSanitization(int nativeContentViewCoreImpl, private native void nativeLoadUrl(
String url, int pageTransition); int nativeContentViewCoreImpl,
private native void nativeLoadUrlWithoutUrlSanitizationWithUserAgentOverride( String url,
int nativeContentViewCoreImpl, String url, int pageTransition, int loadUrlType,
String userAgentOverride); int transitionType,
int uaOverrideOption,
String extraHeaders,
byte[] postData,
String baseUrlForDataUrl,
String virtualUrlForDataUrl);
private native String nativeGetURL(int nativeContentViewCoreImpl); private native String nativeGetURL(int nativeContentViewCoreImpl);
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.content.browser;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
/**
* Holds parameters for ContentViewCore.LoadUrl. Parameters should match
* counterparts in NavigationController::LoadURLParams, including default
* values.
*/
@JNINamespace("content")
public class LoadUrlParams {
// Should match NavigationController::LoadUrlType exactly. See comments
// there for proper usage. Values are initialized in initializeConstants.
public static int LOAD_TYPE_DEFAULT;
public static int LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
public static int LOAD_TYPE_DATA;
// Should match NavigationController::UserAgentOverrideOption exactly.
// See comments there for proper usage. Values are initialized in
// initializeConstants.
public static int UA_OVERRIDE_INHERIT;
public static int UA_OVERRIDE_FALSE;
public static int UA_OVERRIDE_TRUE;
// Fields with counterparts in NavigationController::LoadURLParams.
// Package private so that ContentViewCore.loadUrl can pass them down to
// native code. Should not be accessed directly anywhere else outside of
// this class.
final String mUrl;
int mLoadUrlType;
int mTransitionType;
int mUaOverrideOption;
String mExtraHeaders;
byte[] mPostData;
String mBaseUrlForDataUrl;
String mVirtualUrlForDataUrl;
public LoadUrlParams(String url) {
// Check initializeConstants was called.
assert LOAD_TYPE_DEFAULT != LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
mUrl = url;
mLoadUrlType = LOAD_TYPE_DEFAULT;
mTransitionType = ContentViewCore.PAGE_TRANSITION_LINK;
mUaOverrideOption = UA_OVERRIDE_INHERIT;
mPostData = null;
mBaseUrlForDataUrl = null;
mVirtualUrlForDataUrl = null;
}
/**
* Set load type of this load. Defaults to LOAD_TYPE_DEFAULT.
* @param loadType One of LOAD_TYPE static constants above.
*/
public void setLoadType(int loadType) {
mLoadUrlType = loadType;
}
/**
* Set transition type of this load. Defaults to PAGE_TRANSITION_LINK.
* @param transitionType One of PAGE_TRANSITION static constants in ContentView.
*/
public void setTransitionType(int transitionType) {
mTransitionType = transitionType;
}
/**
* Set user agent override option of this load. Defaults to UA_OVERRIDE_INHERIT.
* @param uaOption One of UA_OVERRIDE static constants above.
*/
public void setOverrideUserAgent(int uaOption) {
mUaOverrideOption = uaOption;
}
/**
* Set extra headers for this load.
* @param extraHeaders Extra headers seperated by "\n".
*/
public void setExtraHeaders(String extraHeaders) {
mExtraHeaders = extraHeaders;
}
/**
* Set the post data of this load. This field is ignored unless load type is
* LOAD_TYPE_BROWSER_INITIATED_HTTP_POST.
* @param postData Post data for this http post load.
*/
public void setPostData(byte[] postData) {
mPostData = postData;
}
/**
* Set the base url for data load. It is used both to resolve relative URLs
* and when applying JavaScript's same origin policy. It is ignored unless
* load type is LOAD_TYPE_DATA.
* @param baseUrl The base url for this data load.
*/
public void setBaseUrlForDataUrl(String baseUrl) {
mBaseUrlForDataUrl = baseUrl;
}
/**
* Set the virtual url for data load. It is the url displayed to the user.
* It is ignored unless load type is LOAD_TYPE_DATA.
* @param virtualUrl The virtual url for this data load.
*/
public void setVirtualUrlForDataUrl(String virtualUrl) {
mVirtualUrlForDataUrl = virtualUrl;
}
@SuppressWarnings("unused")
@CalledByNative
private static void initializeConstants(
int load_type_default,
int load_type_browser_initiated_http_post,
int load_type_data,
int ua_override_inherit,
int ua_override_false,
int ua_override_true) {
LOAD_TYPE_DEFAULT = load_type_default;
LOAD_TYPE_BROWSER_INITIATED_HTTP_POST = load_type_browser_initiated_http_post;
LOAD_TYPE_DATA = load_type_data;
UA_OVERRIDE_INHERIT = ua_override_inherit;
UA_OVERRIDE_FALSE = ua_override_false;
UA_OVERRIDE_TRUE = ua_override_true;
}
}
...@@ -63,6 +63,8 @@ class NavigationController { ...@@ -63,6 +63,8 @@ class NavigationController {
// navigations, since it shows arbitrary content as if it comes from // navigations, since it shows arbitrary content as if it comes from
// |virtual_url_for_data_url|. // |virtual_url_for_data_url|.
LOAD_TYPE_DATA LOAD_TYPE_DATA
// Adding new LoadURLType? Also update LoadUrlParams.java static constants.
}; };
// User agent override type used in LoadURLParams. // User agent override type used in LoadURLParams.
...@@ -76,6 +78,9 @@ class NavigationController { ...@@ -76,6 +78,9 @@ class NavigationController {
// Use the user agent override, if it's available. // Use the user agent override, if it's available.
UA_OVERRIDE_TRUE UA_OVERRIDE_TRUE
// Adding new UserAgentOverrideOption? Also update LoadUrlParams.java
// static constants.
}; };
// Creates a navigation entry and translates the virtual url to a real one. // Creates a navigation entry and translates the virtual url to a real one.
......
...@@ -22,6 +22,7 @@ import android.widget.TextView.OnEditorActionListener; ...@@ -22,6 +22,7 @@ import android.widget.TextView.OnEditorActionListener;
import org.chromium.base.CalledByNative; import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace; import org.chromium.base.JNINamespace;
import org.chromium.content.browser.ContentView; import org.chromium.content.browser.ContentView;
import org.chromium.content.browser.LoadUrlParams;
/** /**
* Container for the various UI components that make up a shell window. * Container for the various UI components that make up a shell window.
...@@ -116,7 +117,7 @@ public class Shell extends LinearLayout { ...@@ -116,7 +117,7 @@ public class Shell extends LinearLayout {
if (TextUtils.equals(url, mContentView.getUrl())) { if (TextUtils.equals(url, mContentView.getUrl())) {
mContentView.reload(); mContentView.reload();
} else { } else {
mContentView.loadUrlWithoutUrlSanitization(sanitizeUrl(url)); mContentView.loadUrl(new LoadUrlParams(sanitizeUrl(url)));
} }
mUrlTextView.clearFocus(); mUrlTextView.clearFocus();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment