Commit 9b1b7c64 authored by Yaron Friedman's avatar Yaron Friedman Committed by Chromium LUCI CQ

Finish WebContentsDelegateAndroid migration from String url->gurl

BUG=783819

Change-Id: I5b58fc169a17caf2098e16450ac5a8002efd4c81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2582545
Commit-Queue: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Reviewed-by: default avatarDonn Denman <donnd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#836156}
parent 9b4d4f8d
...@@ -17,7 +17,6 @@ import android.view.KeyEvent; ...@@ -17,7 +17,6 @@ import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.webkit.URLUtil; import android.webkit.URLUtil;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.ContentUriUtils; import org.chromium.base.ContentUriUtils;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
...@@ -159,7 +158,7 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate { ...@@ -159,7 +158,7 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate {
} }
@Override @Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) { int disposition, boolean isRendererInitiated) {
// This is only called in chrome layers. // This is only called in chrome layers.
assert false; assert false;
...@@ -314,9 +313,10 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate { ...@@ -314,9 +313,10 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate {
} }
@Override @Override
public boolean shouldBlockMediaRequest(String url) { public boolean shouldBlockMediaRequest(GURL url) {
return mAwSettings != null return mAwSettings != null
? mAwSettings.getBlockNetworkLoads() && URLUtil.isNetworkUrl(url) : true; ? mAwSettings.getBlockNetworkLoads() && URLUtil.isNetworkUrl(url.getSpec())
: true;
} }
private static class GetDisplayNameTask extends AsyncTask<String[]> { private static class GetDisplayNameTask extends AsyncTask<String[]> {
......
...@@ -35,12 +35,6 @@ public class OverlayContentDelegate { ...@@ -35,12 +35,6 @@ public class OverlayContentDelegate {
*/ */
public void onTitleUpdated(String title) {} public void onTitleUpdated(String title) {}
/*
* Called when the URL is requested to be opened in a new, separate tab.
* @param url The URL associated with this request.
*/
public void onOpenNewTabRequested(String url) {}
/** /**
* Called when content started loading in the panel. * Called when content started loading in the panel.
*/ */
......
...@@ -33,7 +33,6 @@ import org.chromium.content_public.browser.NavigationHandle; ...@@ -33,7 +33,6 @@ import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.content_public.browser.RenderCoordinates; import org.chromium.content_public.browser.RenderCoordinates;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.ui.base.ViewAndroidDelegate; import org.chromium.ui.base.ViewAndroidDelegate;
import org.chromium.url.GURL; import org.chromium.url.GURL;
...@@ -218,14 +217,7 @@ public class OverlayPanelContent { ...@@ -218,14 +217,7 @@ public class OverlayPanelContent {
} }
@Override @Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public boolean shouldCreateWebContents(GURL targetUrl) {
int disposition, boolean isRendererInitiated) {
mContentDelegate.onOpenNewTabRequested(url);
}
@Override
public boolean shouldCreateWebContents(String targetUrl) {
mContentDelegate.onOpenNewTabRequested(targetUrl);
return false; return false;
} }
......
...@@ -201,7 +201,9 @@ public class EphemeralTabCoordinator implements View.OnLayoutChangeListener { ...@@ -201,7 +201,9 @@ public class EphemeralTabCoordinator implements View.OnLayoutChangeListener {
mPeeked = false; mPeeked = false;
mViewed = false; mViewed = false;
mFullyOpened = false; mFullyOpened = false;
mMediator.requestShowContent(url, title); // TODO(yfriedman): Remove GURL construction by migrating ContextMenuParams to GURL.
// crbug/783819
mMediator.requestShowContent(new GURL(url), title);
Tracker tracker = TrackerFactory.getTrackerForProfile(profile); Tracker tracker = TrackerFactory.getTrackerForProfile(profile);
if (tracker.isInitialized()) tracker.notifyEvent(EventConstants.EPHEMERAL_TAB_USED); if (tracker.isInitialized()) tracker.notifyEvent(EventConstants.EPHEMERAL_TAB_USED);
......
...@@ -75,14 +75,14 @@ public class EphemeralTabMediator { ...@@ -75,14 +75,14 @@ public class EphemeralTabMediator {
/** /**
* Loads a new URL into the tab and makes it visible. * Loads a new URL into the tab and makes it visible.
*/ */
void requestShowContent(String url, String title) { void requestShowContent(GURL url, String title) {
loadUrl(url); loadUrl(url);
mSheetContent.updateTitle(title); mSheetContent.updateTitle(title);
mBottomSheetController.requestShowContent(mSheetContent, true); mBottomSheetController.requestShowContent(mSheetContent, true);
} }
private void loadUrl(String url) { private void loadUrl(GURL url) {
mWebContents.getNavigationController().loadUrl(new LoadUrlParams(url)); mWebContents.getNavigationController().loadUrl(new LoadUrlParams(url.getSpec()));
} }
private void createWebContentsObserver() { private void createWebContentsObserver() {
...@@ -159,14 +159,14 @@ public class EphemeralTabMediator { ...@@ -159,14 +159,14 @@ public class EphemeralTabMediator {
} }
@Override @Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) { int disposition, boolean isRendererInitiated) {
// We never open a separate tab when navigating in a preview tab. // We never open a separate tab when navigating in a preview tab.
loadUrl(url); loadUrl(url);
} }
@Override @Override
public boolean shouldCreateWebContents(String targetUrl) { public boolean shouldCreateWebContents(GURL targetUrl) {
loadUrl(targetUrl); loadUrl(targetUrl);
return false; return false;
} }
......
...@@ -65,6 +65,7 @@ import org.chromium.components.externalauth.ExternalAuthUtils; ...@@ -65,6 +65,7 @@ import org.chromium.components.externalauth.ExternalAuthUtils;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.common.ResourceRequestBody; import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -289,7 +290,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { ...@@ -289,7 +290,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
} }
@Override @Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) { int disposition, boolean isRendererInitiated) {
// If attempting to open an incognito tab, always send the user to tabbed mode. // If attempting to open an incognito tab, always send the user to tabbed mode.
if (disposition == WindowOpenDisposition.OFF_THE_RECORD) { if (disposition == WindowOpenDisposition.OFF_THE_RECORD) {
...@@ -297,7 +298,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { ...@@ -297,7 +298,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
throw new IllegalStateException( throw new IllegalStateException(
"Invalid attempt to open an incognito tab from the renderer"); "Invalid attempt to open an incognito tab from the renderer");
} }
LoadUrlParams loadUrlParams = new LoadUrlParams(url); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
loadUrlParams.setVerbatimHeaders(extraHeaders); loadUrlParams.setVerbatimHeaders(extraHeaders);
loadUrlParams.setPostData(postData); loadUrlParams.setPostData(postData);
loadUrlParams.setIsRendererInitiated(isRendererInitiated); loadUrlParams.setIsRendererInitiated(isRendererInitiated);
......
...@@ -110,7 +110,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr ...@@ -110,7 +110,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
// WebContentsDelegateAndroid // WebContentsDelegateAndroid
@Override @Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) { int disposition, boolean isRendererInitiated) {
mDelegate.openNewTab(url, extraHeaders, postData, disposition, isRendererInitiated); mDelegate.openNewTab(url, extraHeaders, postData, disposition, isRendererInitiated);
} }
...@@ -204,7 +204,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr ...@@ -204,7 +204,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
} }
@Override @Override
public boolean shouldCreateWebContents(String targetUrl) { public boolean shouldCreateWebContents(GURL targetUrl) {
return mDelegate.shouldCreateWebContents(targetUrl); return mDelegate.shouldCreateWebContents(targetUrl);
} }
...@@ -222,7 +222,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr ...@@ -222,7 +222,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
} }
@Override @Override
public boolean shouldBlockMediaRequest(String url) { public boolean shouldBlockMediaRequest(GURL url) {
return mDelegate.shouldBlockMediaRequest(url); return mDelegate.shouldBlockMediaRequest(url);
} }
......
...@@ -2194,8 +2194,8 @@ public class CustomTabActivityTest { ...@@ -2194,8 +2194,8 @@ public class CustomTabActivityTest {
ApplicationStatus.registerStateListenerForAllActivities(listener); ApplicationStatus.registerStateListenerForAllActivities(listener);
PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> { PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> {
TabTestUtils.openNewTab(cctActivity.getActivityTab(), "about:blank", null, null, TabTestUtils.openNewTab(cctActivity.getActivityTab(), new GURL("about:blank"), null,
WindowOpenDisposition.OFF_THE_RECORD, false); null, WindowOpenDisposition.OFF_THE_RECORD, false);
}); });
mCctHiddenCallback.waitForCallback("CCT not hidden.", 0); mCctHiddenCallback.waitForCallback("CCT not hidden.", 0);
......
...@@ -11,6 +11,7 @@ import org.chromium.base.ObserverList.RewindableIterator; ...@@ -11,6 +11,7 @@ import org.chromium.base.ObserverList.RewindableIterator;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.content_public.common.ResourceRequestBody; import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.url.GURL;
/** /**
* Exposes helper functions to be used in tests to instrument tab interaction. * Exposes helper functions to be used in tests to instrument tab interaction.
...@@ -146,7 +147,7 @@ public class TabTestUtils { ...@@ -146,7 +147,7 @@ public class TabTestUtils {
* //ui/base/mojo/window_open_disposition.mojom. * //ui/base/mojo/window_open_disposition.mojom.
* @param isRendererInitiated Whether or not the renderer initiated this action. * @param isRendererInitiated Whether or not the renderer initiated this action.
*/ */
public static void openNewTab(Tab tab, String url, String extraHeaders, public static void openNewTab(Tab tab, GURL url, String extraHeaders,
ResourceRequestBody postData, int disposition, boolean isRendererInitiated) { ResourceRequestBody postData, int disposition, boolean isRendererInitiated) {
getTabWebContentsDelegate(tab).openNewTab( getTabWebContentsDelegate(tab).openNewTab(
url, extraHeaders, postData, disposition, isRendererInitiated); url, extraHeaders, postData, disposition, isRendererInitiated);
......
...@@ -88,14 +88,14 @@ WebContents* WebContentsDelegateAndroid::OpenURLFromTab( ...@@ -88,14 +88,14 @@ WebContents* WebContentsDelegateAndroid::OpenURLFromTab(
disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB || disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB ||
disposition == WindowOpenDisposition::OFF_THE_RECORD) { disposition == WindowOpenDisposition::OFF_THE_RECORD) {
JNIEnv* env = AttachCurrentThread(); JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jstring> java_url = ScopedJavaLocalRef<jobject> java_gurl =
ConvertUTF8ToJavaString(env, url.spec()); url::GURLAndroid::FromNativeGURL(env, url);
ScopedJavaLocalRef<jstring> extra_headers = ScopedJavaLocalRef<jstring> extra_headers =
ConvertUTF8ToJavaString(env, params.extra_headers); ConvertUTF8ToJavaString(env, params.extra_headers);
ScopedJavaLocalRef<jobject> post_data = ScopedJavaLocalRef<jobject> post_data =
content::ConvertResourceRequestBodyToJavaObject(env, params.post_data); content::ConvertResourceRequestBodyToJavaObject(env, params.post_data);
Java_WebContentsDelegateAndroid_openNewTab( Java_WebContentsDelegateAndroid_openNewTab(
env, obj, java_url, extra_headers, post_data, env, obj, java_gurl, extra_headers, post_data,
static_cast<int>(disposition), params.is_renderer_initiated); static_cast<int>(disposition), params.is_renderer_initiated);
return NULL; return NULL;
} }
...@@ -174,10 +174,10 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden( ...@@ -174,10 +174,10 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
if (obj.is_null()) if (obj.is_null())
return false; return false;
ScopedJavaLocalRef<jstring> java_url = ScopedJavaLocalRef<jobject> java_gurl =
ConvertUTF8ToJavaString(env, target_url.spec()); url::GURLAndroid::FromNativeGURL(env, target_url);
return !Java_WebContentsDelegateAndroid_shouldCreateWebContents(env, obj, return !Java_WebContentsDelegateAndroid_shouldCreateWebContents(env, obj,
java_url); java_gurl);
} }
void WebContentsDelegateAndroid::WebContentsCreated( void WebContentsDelegateAndroid::WebContentsCreated(
...@@ -308,9 +308,10 @@ bool WebContentsDelegateAndroid::ShouldBlockMediaRequest(const GURL& url) { ...@@ -308,9 +308,10 @@ bool WebContentsDelegateAndroid::ShouldBlockMediaRequest(const GURL& url) {
ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
if (obj.is_null()) if (obj.is_null())
return false; return false;
ScopedJavaLocalRef<jstring> j_url = ConvertUTF8ToJavaString(env, url.spec()); ScopedJavaLocalRef<jobject> j_gurl =
url::GURLAndroid::FromNativeGURL(env, url);
return Java_WebContentsDelegateAndroid_shouldBlockMediaRequest(env, obj, return Java_WebContentsDelegateAndroid_shouldBlockMediaRequest(env, obj,
j_url); j_gurl);
} }
void WebContentsDelegateAndroid::EnterFullscreenModeForTab( void WebContentsDelegateAndroid::EnterFullscreenModeForTab(
......
...@@ -28,12 +28,13 @@ public class WebContentsDelegateAndroid { ...@@ -28,12 +28,13 @@ public class WebContentsDelegateAndroid {
public static final int LOG_LEVEL_ERROR = 3; public static final int LOG_LEVEL_ERROR = 3;
/** /**
* @param url
* @param disposition The new tab disposition, defined in * @param disposition The new tab disposition, defined in
* //ui/base/mojo/window_open_disposition.mojom. * //ui/base/mojo/window_open_disposition.mojom.
* @param isRendererInitiated Whether or not the renderer initiated this action. * @param isRendererInitiated Whether or not the renderer initiated this action.
*/ */
@CalledByNative @CalledByNative
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData, public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {} int disposition, boolean isRendererInitiated) {}
@CalledByNative @CalledByNative
...@@ -69,7 +70,7 @@ public class WebContentsDelegateAndroid { ...@@ -69,7 +70,7 @@ public class WebContentsDelegateAndroid {
WebContents newWebContents) {} WebContents newWebContents) {}
@CalledByNative @CalledByNative
public boolean shouldCreateWebContents(String targetUrl) { public boolean shouldCreateWebContents(GURL targetUrl) {
return true; return true;
} }
...@@ -129,7 +130,7 @@ public class WebContentsDelegateAndroid { ...@@ -129,7 +130,7 @@ public class WebContentsDelegateAndroid {
* @return true to prevent the resource from being loaded. * @return true to prevent the resource from being loaded.
*/ */
@CalledByNative @CalledByNative
public boolean shouldBlockMediaRequest(String url) { public boolean shouldBlockMediaRequest(GURL url) {
return false; return false;
} }
......
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