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;
import android.view.View;
import android.webkit.URLUtil;
import android.widget.FrameLayout;
import org.chromium.base.Callback;
import org.chromium.base.ContentUriUtils;
import org.chromium.base.ThreadUtils;
......@@ -159,7 +158,7 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate {
}
@Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {
// This is only called in chrome layers.
assert false;
......@@ -314,9 +313,10 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate {
}
@Override
public boolean shouldBlockMediaRequest(String url) {
public boolean shouldBlockMediaRequest(GURL url) {
return mAwSettings != null
? mAwSettings.getBlockNetworkLoads() && URLUtil.isNetworkUrl(url) : true;
? mAwSettings.getBlockNetworkLoads() && URLUtil.isNetworkUrl(url.getSpec())
: true;
}
private static class GetDisplayNameTask extends AsyncTask<String[]> {
......
......@@ -35,12 +35,6 @@ public class OverlayContentDelegate {
*/
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.
*/
......
......@@ -33,7 +33,6 @@ import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.content_public.browser.RenderCoordinates;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.ui.base.ViewAndroidDelegate;
import org.chromium.url.GURL;
......@@ -218,14 +217,7 @@ public class OverlayPanelContent {
}
@Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {
mContentDelegate.onOpenNewTabRequested(url);
}
@Override
public boolean shouldCreateWebContents(String targetUrl) {
mContentDelegate.onOpenNewTabRequested(targetUrl);
public boolean shouldCreateWebContents(GURL targetUrl) {
return false;
}
......
......@@ -201,7 +201,9 @@ public class EphemeralTabCoordinator implements View.OnLayoutChangeListener {
mPeeked = false;
mViewed = 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);
if (tracker.isInitialized()) tracker.notifyEvent(EventConstants.EPHEMERAL_TAB_USED);
......
......@@ -75,14 +75,14 @@ public class EphemeralTabMediator {
/**
* 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);
mSheetContent.updateTitle(title);
mBottomSheetController.requestShowContent(mSheetContent, true);
}
private void loadUrl(String url) {
mWebContents.getNavigationController().loadUrl(new LoadUrlParams(url));
private void loadUrl(GURL url) {
mWebContents.getNavigationController().loadUrl(new LoadUrlParams(url.getSpec()));
}
private void createWebContentsObserver() {
......@@ -159,14 +159,14 @@ public class EphemeralTabMediator {
}
@Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {
// We never open a separate tab when navigating in a preview tab.
loadUrl(url);
}
@Override
public boolean shouldCreateWebContents(String targetUrl) {
public boolean shouldCreateWebContents(GURL targetUrl) {
loadUrl(targetUrl);
return false;
}
......
......@@ -65,6 +65,7 @@ import org.chromium.components.externalauth.ExternalAuthUtils;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
import javax.inject.Inject;
......@@ -289,7 +290,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
}
@Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {
// If attempting to open an incognito tab, always send the user to tabbed mode.
if (disposition == WindowOpenDisposition.OFF_THE_RECORD) {
......@@ -297,7 +298,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
throw new IllegalStateException(
"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.setPostData(postData);
loadUrlParams.setIsRendererInitiated(isRendererInitiated);
......
......@@ -110,7 +110,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
// WebContentsDelegateAndroid
@Override
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {
mDelegate.openNewTab(url, extraHeaders, postData, disposition, isRendererInitiated);
}
......@@ -204,7 +204,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
}
@Override
public boolean shouldCreateWebContents(String targetUrl) {
public boolean shouldCreateWebContents(GURL targetUrl) {
return mDelegate.shouldCreateWebContents(targetUrl);
}
......@@ -222,7 +222,7 @@ final class TabWebContentsDelegateAndroidImpl extends TabWebContentsDelegateAndr
}
@Override
public boolean shouldBlockMediaRequest(String url) {
public boolean shouldBlockMediaRequest(GURL url) {
return mDelegate.shouldBlockMediaRequest(url);
}
......
......@@ -2194,8 +2194,8 @@ public class CustomTabActivityTest {
ApplicationStatus.registerStateListenerForAllActivities(listener);
PostTask.runOrPostTask(UiThreadTaskTraits.DEFAULT, () -> {
TabTestUtils.openNewTab(cctActivity.getActivityTab(), "about:blank", null, null,
WindowOpenDisposition.OFF_THE_RECORD, false);
TabTestUtils.openNewTab(cctActivity.getActivityTab(), new GURL("about:blank"), null,
null, WindowOpenDisposition.OFF_THE_RECORD, false);
});
mCctHiddenCallback.waitForCallback("CCT not hidden.", 0);
......
......@@ -11,6 +11,7 @@ import org.chromium.base.ObserverList.RewindableIterator;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.url.GURL;
/**
* Exposes helper functions to be used in tests to instrument tab interaction.
......@@ -146,7 +147,7 @@ public class TabTestUtils {
* //ui/base/mojo/window_open_disposition.mojom.
* @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) {
getTabWebContentsDelegate(tab).openNewTab(
url, extraHeaders, postData, disposition, isRendererInitiated);
......
......@@ -88,14 +88,14 @@ WebContents* WebContentsDelegateAndroid::OpenURLFromTab(
disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB ||
disposition == WindowOpenDisposition::OFF_THE_RECORD) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jstring> java_url =
ConvertUTF8ToJavaString(env, url.spec());
ScopedJavaLocalRef<jobject> java_gurl =
url::GURLAndroid::FromNativeGURL(env, url);
ScopedJavaLocalRef<jstring> extra_headers =
ConvertUTF8ToJavaString(env, params.extra_headers);
ScopedJavaLocalRef<jobject> post_data =
content::ConvertResourceRequestBodyToJavaObject(env, params.post_data);
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);
return NULL;
}
......@@ -174,10 +174,10 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
if (obj.is_null())
return false;
ScopedJavaLocalRef<jstring> java_url =
ConvertUTF8ToJavaString(env, target_url.spec());
ScopedJavaLocalRef<jobject> java_gurl =
url::GURLAndroid::FromNativeGURL(env, target_url);
return !Java_WebContentsDelegateAndroid_shouldCreateWebContents(env, obj,
java_url);
java_gurl);
}
void WebContentsDelegateAndroid::WebContentsCreated(
......@@ -308,9 +308,10 @@ bool WebContentsDelegateAndroid::ShouldBlockMediaRequest(const GURL& url) {
ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
if (obj.is_null())
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,
j_url);
j_gurl);
}
void WebContentsDelegateAndroid::EnterFullscreenModeForTab(
......
......@@ -28,12 +28,13 @@ public class WebContentsDelegateAndroid {
public static final int LOG_LEVEL_ERROR = 3;
/**
* @param url
* @param disposition The new tab disposition, defined in
* //ui/base/mojo/window_open_disposition.mojom.
* @param isRendererInitiated Whether or not the renderer initiated this action.
*/
@CalledByNative
public void openNewTab(String url, String extraHeaders, ResourceRequestBody postData,
public void openNewTab(GURL url, String extraHeaders, ResourceRequestBody postData,
int disposition, boolean isRendererInitiated) {}
@CalledByNative
......@@ -69,7 +70,7 @@ public class WebContentsDelegateAndroid {
WebContents newWebContents) {}
@CalledByNative
public boolean shouldCreateWebContents(String targetUrl) {
public boolean shouldCreateWebContents(GURL targetUrl) {
return true;
}
......@@ -129,7 +130,7 @@ public class WebContentsDelegateAndroid {
* @return true to prevent the resource from being loaded.
*/
@CalledByNative
public boolean shouldBlockMediaRequest(String url) {
public boolean shouldBlockMediaRequest(GURL url) {
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