Commit 611c2959 authored by Nate Chapin's avatar Nate Chapin Committed by Commit Bot

Revert "JNI refactor: @NativeMethods conversion for more //chrome classes."

This reverts commit 266b083e.

Reason for revert: Compile break on android-builder-perf: https://ci.chromium.org/p/chrome/builders/ci/android-builder-perf/113718

Original change's description:
> JNI refactor: @NativeMethods conversion for more //chrome classes.
> 
> This CL was partially generated by
> //base/android/jni_generator/jni_refactorer.py.
> 
> Two classes converted in this CL:
>   * UrlUtilities.java
>   * DevUiModuleProvider.java
> 
> The tests were manually refactored to not use robolectric shadows
> for UrlUtilities native methods.
> 
> Bug: 929661
> Change-Id: Id3fbe2f7e53f3c0aa454aa51e1e94a2a6f0f1cb6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1815344
> Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
> Reviewed-by: Andrew Grieve <agrieve@chromium.org>
> Commit-Queue: Eric Stevenson <estevenson@chromium.org>
> Auto-Submit: Eric Stevenson <estevenson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#698556}

TBR=agrieve@chromium.org,estevenson@chromium.org,tiborg@chromium.org

Change-Id: I2c9251ec65af0ab7ff5012d218c3860f14214e9d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 929661
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1816970Reviewed-by: default avatarNate Chapin <japhet@chromium.org>
Commit-Queue: Nate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#698594}
parent 5cbf4ebd
...@@ -10,7 +10,7 @@ import androidx.annotation.Nullable; ...@@ -10,7 +10,7 @@ import androidx.annotation.Nullable;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.util.UrlUtilitiesJni; import org.chromium.chrome.browser.util.UrlUtilities;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
...@@ -234,7 +234,7 @@ class ContextualSearchRequest { ...@@ -234,7 +234,7 @@ class ContextualSearchRequest {
*/ */
@VisibleForTesting @VisibleForTesting
boolean isGoogleUrl(@Nullable String someUrl) { boolean isGoogleUrl(@Nullable String someUrl) {
return !TextUtils.isEmpty(someUrl) && UrlUtilitiesJni.get().isGoogleSubDomainUrl(someUrl); return !TextUtils.isEmpty(someUrl) && UrlUtilities.nativeIsGoogleSubDomainUrl(someUrl);
} }
/** /**
......
...@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.tab.TabObserver; ...@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.tab.TabObserverRegistrar; import org.chromium.chrome.browser.tab.TabObserverRegistrar;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.chrome.browser.util.UrlUtilitiesJni;
import org.chromium.content_public.browser.NavigationHandle; import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.content_public.browser.UiThreadTaskTraits; import org.chromium.content_public.browser.UiThreadTaskTraits;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
...@@ -423,7 +422,7 @@ public class DynamicModuleCoordinator implements NativeInitObserver, Destroyable ...@@ -423,7 +422,7 @@ public class DynamicModuleCoordinator implements NativeInitObserver, Destroyable
if (!UrlConstants.HTTPS_SCHEME.equals(scheme)) { if (!UrlConstants.HTTPS_SCHEME.equals(scheme)) {
return false; return false;
} }
if (!UrlUtilitiesJni.get().isGoogleDomainUrl(url, sAllowNonStandardPortNumber)) { if (!UrlUtilities.nativeIsGoogleDomainUrl(url, sAllowNonStandardPortNumber)) {
return false; return false;
} }
return true; return true;
......
...@@ -48,7 +48,6 @@ import org.chromium.chrome.browser.tab.TabRedirectHandler; ...@@ -48,7 +48,6 @@ import org.chromium.chrome.browser.tab.TabRedirectHandler;
import org.chromium.chrome.browser.util.IntentUtils; import org.chromium.chrome.browser.util.IntentUtils;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.chrome.browser.util.UrlUtilitiesJni;
import org.chromium.chrome.browser.webapps.WebappActivity; import org.chromium.chrome.browser.webapps.WebappActivity;
import org.chromium.chrome.browser.webapps.WebappScopePolicy; import org.chromium.chrome.browser.webapps.WebappScopePolicy;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
...@@ -634,7 +633,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat ...@@ -634,7 +633,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
NavigationEntry entry = nController.getEntryAtIndex(index); NavigationEntry entry = nController.getEntryAtIndex(index);
if (entry == null) return false; if (entry == null) return false;
return UrlUtilitiesJni.get().isGoogleSearchUrl(entry.getUrl()); return UrlUtilities.nativeIsGoogleSearchUrl(entry.getUrl());
} }
@Override @Override
......
...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.AppHooks; ...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.feedback.FeedbackCollector; import org.chromium.chrome.browser.feedback.FeedbackCollector;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.util.UrlUtilitiesJni; import org.chromium.chrome.browser.util.UrlUtilities;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
...@@ -138,7 +138,7 @@ public class HelpAndFeedback { ...@@ -138,7 +138,7 @@ public class HelpAndFeedback {
} else if (url.equals(UrlConstants.HISTORY_URL)) { } else if (url.equals(UrlConstants.HISTORY_URL)) {
return context.getString(R.string.help_context_history); return context.getString(R.string.help_context_history);
// Note: For www.google.com the following function returns false. // Note: For www.google.com the following function returns false.
} else if (UrlUtilitiesJni.get().isGoogleSearchUrl(url)) { } else if (UrlUtilities.nativeIsGoogleSearchUrl(url)) {
return context.getString(R.string.help_context_search_results); return context.getString(R.string.help_context_search_results);
// For incognito NTP, we want to show incognito help. // For incognito NTP, we want to show incognito help.
} else if (isIncognito) { } else if (isIncognito) {
......
...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.rappor.RapporServiceBridge; ...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.rappor.RapporServiceBridge;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.util.UrlUtilitiesJni; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.net.NetworkChangeNotifier; import org.chromium.net.NetworkChangeNotifier;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
...@@ -176,7 +176,7 @@ public final class NewTabPageUma { ...@@ -176,7 +176,7 @@ public final class NewTabPageUma {
if ((transitionType & PageTransition.CORE_MASK) == PageTransition.GENERATED) { if ((transitionType & PageTransition.CORE_MASK) == PageTransition.GENERATED) {
recordAction(ACTION_SEARCHED_USING_OMNIBOX); recordAction(ACTION_SEARCHED_USING_OMNIBOX);
} else { } else {
if (UrlUtilitiesJni.get().isGoogleHomePageUrl(destinationUrl)) { if (UrlUtilities.nativeIsGoogleHomePageUrl(destinationUrl)) {
recordAction(ACTION_NAVIGATED_TO_GOOGLE_HOMEPAGE); recordAction(ACTION_NAVIGATED_TO_GOOGLE_HOMEPAGE);
} else { } else {
recordAction(ACTION_NAVIGATED_USING_OMNIBOX); recordAction(ACTION_NAVIGATED_USING_OMNIBOX);
......
...@@ -33,7 +33,7 @@ import org.chromium.chrome.browser.preferences.website.PermissionInfo; ...@@ -33,7 +33,7 @@ import org.chromium.chrome.browser.preferences.website.PermissionInfo;
import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge; import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.util.UrlUtilitiesJni; import org.chromium.chrome.browser.util.UrlUtilities;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
...@@ -250,7 +250,7 @@ public class GeolocationHeader { ...@@ -250,7 +250,7 @@ public class GeolocationHeader {
if (isIncognito) return HeaderState.INCOGNITO; if (isIncognito) return HeaderState.INCOGNITO;
// Only send X-Geo header to Google domains. // Only send X-Geo header to Google domains.
if (!UrlUtilitiesJni.get().isGoogleSearchUrl(url)) return HeaderState.UNSUITABLE_URL; if (!UrlUtilities.nativeIsGoogleSearchUrl(url)) return HeaderState.UNSUITABLE_URL;
Uri uri = Uri.parse(url); Uri uri = Uri.parse(url);
if (!UrlConstants.HTTPS_SCHEME.equals(uri.getScheme())) return HeaderState.NOT_HTTPS; if (!UrlConstants.HTTPS_SCHEME.equals(uri.getScheme())) return HeaderState.NOT_HTTPS;
......
...@@ -26,15 +26,11 @@ import org.junit.Rule; ...@@ -26,15 +26,11 @@ import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.InOrder; import org.mockito.InOrder;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider; import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.test.ShadowUrlUtilities;
import org.chromium.chrome.browser.util.UrlUtilitiesJni;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
...@@ -43,8 +39,9 @@ import org.chromium.testing.local.LocalRobolectricTestRunner; ...@@ -43,8 +39,9 @@ import org.chromium.testing.local.LocalRobolectricTestRunner;
* properly loaded in Custom Tabs in different conditions. * properly loaded in Custom Tabs in different conditions.
*/ */
@RunWith(LocalRobolectricTestRunner.class) @RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE, shadows = {ShadowUrlUtilities.class})
public class CustomTabActivityUrlLoadingTest { public class CustomTabActivityUrlLoadingTest {
@Rule @Rule
public final CustomTabActivityContentTestEnvironment env = public final CustomTabActivityContentTestEnvironment env =
new CustomTabActivityContentTestEnvironment(); new CustomTabActivityContentTestEnvironment();
...@@ -53,16 +50,8 @@ public class CustomTabActivityUrlLoadingTest { ...@@ -53,16 +50,8 @@ public class CustomTabActivityUrlLoadingTest {
private CustomTabActivityNavigationController mNavigationController; private CustomTabActivityNavigationController mNavigationController;
private CustomTabIntentHandler mIntentHandler; private CustomTabIntentHandler mIntentHandler;
@Rule
public JniMocker mocker = new JniMocker();
@Mock
UrlUtilities.Natives mUrlUtilitiesJniMock;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this);
mocker.mock(UrlUtilitiesJni.TEST_HOOKS, mUrlUtilitiesJniMock);
mTabController = env.createTabController(); mTabController = env.createTabController();
mNavigationController = env.createNavigationController(mTabController); mNavigationController = env.createNavigationController(mTabController);
mIntentHandler = env.createIntentHandler(mNavigationController); mIntentHandler = env.createIntentHandler(mNavigationController);
......
...@@ -32,6 +32,7 @@ import org.chromium.base.metrics.RecordHistogram; ...@@ -32,6 +32,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordHistogramJni; import org.chromium.base.metrics.RecordHistogramJni;
import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.JniMocker; import org.chromium.base.test.util.JniMocker;
import org.chromium.chrome.browser.omnibox.geo.GeolocationHeaderUnitTest.ShadowUrlUtilities;
import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleCell; import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleCell;
import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleWifi; import org.chromium.chrome.browser.omnibox.geo.VisibleNetworks.VisibleWifi;
import org.chromium.chrome.browser.preferences.website.ContentSettingValues; import org.chromium.chrome.browser.preferences.website.ContentSettingValues;
...@@ -39,7 +40,6 @@ import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge; ...@@ -39,7 +40,6 @@ import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridge;
import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridgeJni; import org.chromium.chrome.browser.preferences.website.WebsitePreferenceBridgeJni;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.chrome.browser.util.UrlUtilitiesJni;
import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.Features;
import java.util.Arrays; import java.util.Arrays;
...@@ -49,7 +49,7 @@ import java.util.HashSet; ...@@ -49,7 +49,7 @@ import java.util.HashSet;
* Robolectric tests for {@link GeolocationHeader}. * Robolectric tests for {@link GeolocationHeader}.
*/ */
@RunWith(BaseRobolectricTestRunner.class) @RunWith(BaseRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE, shadows = {ShadowUrlUtilities.class})
public class GeolocationHeaderUnitTest { public class GeolocationHeaderUnitTest {
private static final String SEARCH_URL = "https://www.google.com/search?q=potatoes"; private static final String SEARCH_URL = "https://www.google.com/search?q=potatoes";
...@@ -102,13 +102,10 @@ public class GeolocationHeaderUnitTest { ...@@ -102,13 +102,10 @@ public class GeolocationHeaderUnitTest {
public JniMocker mocker = new JniMocker(); public JniMocker mocker = new JniMocker();
@Mock @Mock
RecordHistogram.Natives mRecordHistogramJniMock; RecordHistogram.Natives mRecordHistogramMock;
@Mock @Mock
UrlUtilities.Natives mUrlUtilitiesJniMock; WebsitePreferenceBridge.Natives mWebsitePreferenceBridgeMock;
@Mock
WebsitePreferenceBridge.Natives mWebsitePreferenceBridgeJniMock;
@Mock @Mock
private Tab mTab; private Tab mTab;
...@@ -116,21 +113,19 @@ public class GeolocationHeaderUnitTest { ...@@ -116,21 +113,19 @@ public class GeolocationHeaderUnitTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mocker.mock(RecordHistogramJni.TEST_HOOKS, mRecordHistogramJniMock); mocker.mock(RecordHistogramJni.TEST_HOOKS, mRecordHistogramMock);
mocker.mock(UrlUtilitiesJni.TEST_HOOKS, mUrlUtilitiesJniMock); mocker.mock(WebsitePreferenceBridgeJni.TEST_HOOKS, mWebsitePreferenceBridgeMock);
mocker.mock(WebsitePreferenceBridgeJni.TEST_HOOKS, mWebsitePreferenceBridgeJniMock);
GeolocationTracker.setLocationAgeForTesting(null); GeolocationTracker.setLocationAgeForTesting(null);
GeolocationHeader.setLocationSourceForTesting( GeolocationHeader.setLocationSourceForTesting(
GeolocationHeader.LocationSource.HIGH_ACCURACY); GeolocationHeader.LocationSource.HIGH_ACCURACY);
GeolocationHeader.setAppPermissionGrantedForTesting(true); GeolocationHeader.setAppPermissionGrantedForTesting(true);
when(mTab.isIncognito()).thenReturn(false); when(mTab.isIncognito()).thenReturn(false);
when(mWebsitePreferenceBridgeJniMock.getGeolocationSettingForOrigin( when(mWebsitePreferenceBridgeMock.getGeolocationSettingForOrigin(
anyString(), anyString(), anyBoolean())) anyString(), anyString(), anyBoolean()))
.thenReturn(ContentSettingValues.ALLOW); .thenReturn(ContentSettingValues.ALLOW);
when(mWebsitePreferenceBridgeJniMock.isPermissionControlledByDSE( when(mWebsitePreferenceBridgeMock.isPermissionControlledByDSE(
anyInt(), anyString(), anyBoolean())) anyInt(), anyString(), anyBoolean()))
.thenReturn(true); .thenReturn(true);
when(mUrlUtilitiesJniMock.isGoogleSearchUrl(anyString())).thenReturn(true);
sRefreshVisibleNetworksRequests = 0; sRefreshVisibleNetworksRequests = 0;
sRefreshLastKnownLocation = 0; sRefreshLastKnownLocation = 0;
} }
...@@ -302,6 +297,28 @@ public class GeolocationHeaderUnitTest { ...@@ -302,6 +297,28 @@ public class GeolocationHeaderUnitTest {
return location; return location;
} }
/**
* Shadow for UrlUtilities
*/
@Implements(UrlUtilities.class)
public static class ShadowUrlUtilities {
@Implementation
public static boolean nativeIsGoogleSearchUrl(String url) {
return true;
}
}
/**
* Shadow for RecordHistogram
*/
@Implements(RecordHistogram.class)
public static class ShadowRecordHistogram {
@Implementation
public static void recordEnumeratedHistogram(String name, int sample, int boundary) {
// Noop.
}
}
/** /**
* Shadow for VisibleNetworksTracker * Shadow for VisibleNetworksTracker
*/ */
......
...@@ -7,11 +7,9 @@ import("//build/config/android/rules.gni") ...@@ -7,11 +7,9 @@ import("//build/config/android/rules.gni")
android_library("java") { android_library("java") {
deps = [ deps = [
"//base:base_java", "//base:base_java",
"//base:jni_java",
"//chrome/android/features/dev_ui/public:java", "//chrome/android/features/dev_ui/public:java",
"//components/module_installer/android:module_installer_java", "//components/module_installer/android:module_installer_java",
] ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
java_files = [ java_files = [
"java/src/org/chromium/chrome/features/dev_ui/DevUiModuleProvider.java", "java/src/org/chromium/chrome/features/dev_ui/DevUiModuleProvider.java",
] ]
......
...@@ -7,7 +7,6 @@ package org.chromium.chrome.features.dev_ui; ...@@ -7,7 +7,6 @@ package org.chromium.chrome.features.dev_ui;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.annotations.UsedByReflection; import org.chromium.base.annotations.UsedByReflection;
/** Helpers for DevUI DFM installation. */ /** Helpers for DevUI DFM installation. */
...@@ -33,8 +32,7 @@ public class DevUiModuleProvider { ...@@ -33,8 +32,7 @@ public class DevUiModuleProvider {
DevUiModule.install((success) -> { DevUiModule.install((success) -> {
Log.i(TAG, "Install status: %s", success); Log.i(TAG, "Install status: %s", success);
if (mNativeDevUiModuleProvider != 0) { if (mNativeDevUiModuleProvider != 0) {
DevUiModuleProviderJni.get().onInstallResult( nativeOnInstallResult(mNativeDevUiModuleProvider, success);
mNativeDevUiModuleProvider, DevUiModuleProvider.this, success);
} }
}); });
} }
...@@ -44,9 +42,5 @@ public class DevUiModuleProvider { ...@@ -44,9 +42,5 @@ public class DevUiModuleProvider {
mNativeDevUiModuleProvider = 0; mNativeDevUiModuleProvider = 0;
} }
@NativeMethods private native void nativeOnInstallResult(long nativeDevUiModuleProvider, boolean success);
interface Natives {
void onInstallResult(
long nativeDevUiModuleProvider, DevUiModuleProvider caller, boolean success);
}
} }
...@@ -7,13 +7,11 @@ import("//build/config/android/rules.gni") ...@@ -7,13 +7,11 @@ import("//build/config/android/rules.gni")
android_library("java") { android_library("java") {
deps = [ deps = [
"//base:base_java", "//base:base_java",
"//base:jni_java",
"//content/public/android:content_java", "//content/public/android:content_java",
"//third_party/android_deps:com_android_support_collections_java", "//third_party/android_deps:com_android_support_collections_java",
"//third_party/android_deps:com_android_support_support_compat_java", "//third_party/android_deps:com_android_support_support_compat_java",
"//third_party/android_deps:com_android_support_support_core_utils_java", "//third_party/android_deps:com_android_support_support_core_utils_java",
] ]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
java_files = [ java_files = [
"java/src/org/chromium/chrome/browser/util/BitmapCache.java", "java/src/org/chromium/chrome/browser/util/BitmapCache.java",
"java/src/org/chromium/chrome/browser/util/ConversionUtils.java", "java/src/org/chromium/chrome/browser/util/ConversionUtils.java",
......
...@@ -12,7 +12,6 @@ import androidx.annotation.NonNull; ...@@ -12,7 +12,6 @@ import androidx.annotation.NonNull;
import org.chromium.base.CollectionUtil; import org.chromium.base.CollectionUtil;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.content_public.common.ContentUrlConstants; import org.chromium.content_public.common.ContentUrlConstants;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
...@@ -77,7 +76,7 @@ public class UrlUtilities { ...@@ -77,7 +76,7 @@ public class UrlUtilities {
* @return True if the URI's scheme is one that ContentView can handle. * @return True if the URI's scheme is one that ContentView can handle.
*/ */
public static boolean isAcceptedScheme(String uri) { public static boolean isAcceptedScheme(String uri) {
return UrlUtilitiesJni.get().isAcceptedScheme(uri); return nativeIsAcceptedScheme(uri);
} }
/** /**
...@@ -86,7 +85,7 @@ public class UrlUtilities { ...@@ -86,7 +85,7 @@ public class UrlUtilities {
* @return True if the URI is valid for Intent fallback navigation. * @return True if the URI is valid for Intent fallback navigation.
*/ */
public static boolean isValidForIntentFallbackNavigation(String uri) { public static boolean isValidForIntentFallbackNavigation(String uri) {
return UrlUtilitiesJni.get().isValidForIntentFallbackNavigation(uri); return nativeIsValidForIntentFallbackNavigation(uri);
} }
/** /**
...@@ -95,7 +94,7 @@ public class UrlUtilities { ...@@ -95,7 +94,7 @@ public class UrlUtilities {
* @return True if the URI's scheme is one that Chrome can download. * @return True if the URI's scheme is one that Chrome can download.
*/ */
public static boolean isDownloadableScheme(String uri) { public static boolean isDownloadableScheme(String uri) {
return UrlUtilitiesJni.get().isDownloadable(uri); return nativeIsDownloadable(uri);
} }
/** /**
...@@ -146,8 +145,7 @@ public class UrlUtilities { ...@@ -146,8 +145,7 @@ public class UrlUtilities {
*/ */
public static boolean sameDomainOrHost( public static boolean sameDomainOrHost(
String primaryUrl, String secondaryUrl, boolean includePrivateRegistries) { String primaryUrl, String secondaryUrl, boolean includePrivateRegistries) {
return UrlUtilitiesJni.get().sameDomainOrHost( return nativeSameDomainOrHost(primaryUrl, secondaryUrl, includePrivateRegistries);
primaryUrl, secondaryUrl, includePrivateRegistries);
} }
/** /**
...@@ -164,27 +162,27 @@ public class UrlUtilities { ...@@ -164,27 +162,27 @@ public class UrlUtilities {
*/ */
public static String getDomainAndRegistry(String uri, boolean includePrivateRegistries) { public static String getDomainAndRegistry(String uri, boolean includePrivateRegistries) {
if (TextUtils.isEmpty(uri)) return uri; if (TextUtils.isEmpty(uri)) return uri;
return UrlUtilitiesJni.get().getDomainAndRegistry(uri, includePrivateRegistries); return nativeGetDomainAndRegistry(uri, includePrivateRegistries);
} }
/** Returns whether a URL is within another URL's scope. */ /** Returns whether a URL is within another URL's scope. */
@VisibleForTesting @VisibleForTesting
public static boolean isUrlWithinScope(String url, String scopeUrl) { public static boolean isUrlWithinScope(String url, String scopeUrl) {
return UrlUtilitiesJni.get().isUrlWithinScope(url, scopeUrl); return nativeIsUrlWithinScope(url, scopeUrl);
} }
/** @return whether two URLs match, ignoring the #fragment. */ /** @return whether two URLs match, ignoring the #fragment. */
@VisibleForTesting @VisibleForTesting
public static boolean urlsMatchIgnoringFragments(String url, String url2) { public static boolean urlsMatchIgnoringFragments(String url, String url2) {
if (TextUtils.equals(url, url2)) return true; if (TextUtils.equals(url, url2)) return true;
return UrlUtilitiesJni.get().urlsMatchIgnoringFragments(url, url2); return nativeUrlsMatchIgnoringFragments(url, url2);
} }
/** @return whether the #fragmant differs in two URLs. */ /** @return whether the #fragmant differs in two URLs. */
@VisibleForTesting @VisibleForTesting
public static boolean urlsFragmentsDiffer(String url, String url2) { public static boolean urlsFragmentsDiffer(String url, String url2) {
if (TextUtils.equals(url, url2)) return false; if (TextUtils.equals(url, url2)) return false;
return UrlUtilitiesJni.get().urlsFragmentsDiffer(url, url2); return nativeUrlsFragmentsDiffer(url, url2);
} }
/** /**
...@@ -360,28 +358,23 @@ public class UrlUtilities { ...@@ -360,28 +358,23 @@ public class UrlUtilities {
return noScheme; return noScheme;
} }
@NativeMethods private static native boolean nativeIsDownloadable(String url);
public interface Natives { private static native boolean nativeIsValidForIntentFallbackNavigation(String url);
boolean isDownloadable(String url); private static native boolean nativeIsAcceptedScheme(String url);
boolean isValidForIntentFallbackNavigation(String url); private static native boolean nativeSameDomainOrHost(
boolean isAcceptedScheme(String url); String primaryUrl, String secondaryUrl, boolean includePrivateRegistries);
boolean sameDomainOrHost( private static native String nativeGetDomainAndRegistry(
String primaryUrl, String secondaryUrl, boolean includePrivateRegistries); String url, boolean includePrivateRegistries);
String getDomainAndRegistry(String url, boolean includePrivateRegistries); /** Returns whether the given URL uses the Google.com domain. */
/** Returns whether the given URL uses the Google.com domain. */ public static native boolean nativeIsGoogleDomainUrl(String url, boolean allowNonStandardPort);
boolean isGoogleDomainUrl(String url, boolean allowNonStandardPort); /** Returns whether the given URL is a Google.com domain or sub-domain. */
public static native boolean nativeIsGoogleSubDomainUrl(String url);
/** Returns whether the given URL is a Google.com domain or sub-domain. */ /** Returns whether the given URL is a Google.com Search URL. */
boolean isGoogleSubDomainUrl(String url); public static native boolean nativeIsGoogleSearchUrl(String url);
/** Returns whether the given URL is the Google Web Search URL. */
/** Returns whether the given URL is a Google.com Search URL. */ public static native boolean nativeIsGoogleHomePageUrl(String url);
boolean isGoogleSearchUrl(String url);
private static native boolean nativeIsUrlWithinScope(String url, String scopeUrl);
/** Returns whether the given URL is the Google Web Search URL. */ private static native boolean nativeUrlsMatchIgnoringFragments(String url, String url2);
boolean isGoogleHomePageUrl(String url); private static native boolean nativeUrlsFragmentsDiffer(String url, String url2);
boolean isUrlWithinScope(String url, String scopeUrl);
boolean urlsMatchIgnoringFragments(String url, String url2);
boolean urlsFragmentsDiffer(String url, String url2);
}
} }
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