Commit c7572d6a authored by Michael Thiessen's avatar Michael Thiessen Committed by Commit Bot

Migrate payments/ to GURL

Replaces usages of java.net.URI with GURL.

GURL appends a trailing slash to pathless URIs to normalize them, which
java.net.URI does not do, so AndroidPaymentAppFinder has to normalize
URI methods in the same way Origins get normalized.

Bug: 783819
Change-Id: I0574ff318309642ce3220488ef7f5c08a389478a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2031525Reviewed-by: default avatarSahel Sharify <sahel@chromium.org>
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737354}
parent e7141ca0
...@@ -373,6 +373,7 @@ android_library("chrome_java") { ...@@ -373,6 +373,7 @@ android_library("chrome_java") {
"//ui/android:ui_java", "//ui/android:ui_java",
"//ui/base/mojom:mojom_java", "//ui/base/mojom:mojom_java",
"//ui/gfx/geometry/mojom:mojom_java", "//ui/gfx/geometry/mojom:mojom_java",
"//url:gurl_java",
"//url/mojom:url_mojom_gurl_java", "//url/mojom:url_mojom_gurl_java",
] ]
...@@ -872,6 +873,7 @@ android_library("chrome_test_java") { ...@@ -872,6 +873,7 @@ android_library("chrome_test_java") {
"//ui/android:ui_java", "//ui/android:ui_java",
"//ui/android:ui_java_test_support", "//ui/android:ui_java_test_support",
"//ui/base/mojom:mojom_java", "//ui/base/mojom:mojom_java",
"//url:gurl_java",
"//url/mojom:url_mojom_gurl_java", "//url/mojom:url_mojom_gurl_java",
] ]
...@@ -2873,6 +2875,7 @@ android_library("native_java_unittests_java") { ...@@ -2873,6 +2875,7 @@ android_library("native_java_unittests_java") {
"//third_party/mockito:mockito_java", "//third_party/mockito:mockito_java",
"//ui/android:ui_java", "//ui/android:ui_java",
"//ui/android:ui_java_test_support", "//ui/android:ui_java_test_support",
"//url:gurl_java",
"//url/mojom:url_mojom_gurl_java", "//url/mojom:url_mojom_gurl_java",
] ]
sources = [ sources = [
......
...@@ -39,11 +39,11 @@ import org.chromium.content_public.common.Referrer; ...@@ -39,11 +39,11 @@ import org.chromium.content_public.common.Referrer;
import org.chromium.content_public.common.ResourceRequestBody; import org.chromium.content_public.common.ResourceRequestBody;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.URI;
import org.chromium.webapk.lib.client.WebApkIdentityServiceClient; import org.chromium.webapk.lib.client.WebApkIdentityServiceClient;
import org.chromium.webapk.lib.client.WebApkNavigationClient; import org.chromium.webapk.lib.client.WebApkNavigationClient;
import org.chromium.webapk.lib.client.WebApkValidator; import org.chromium.webapk.lib.client.WebApkValidator;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.List; import java.util.List;
......
...@@ -38,10 +38,10 @@ import org.chromium.payments.mojom.PaymentOptions; ...@@ -38,10 +38,10 @@ import org.chromium.payments.mojom.PaymentOptions;
import org.chromium.payments.mojom.PaymentShippingOption; import org.chromium.payments.mojom.PaymentShippingOption;
import org.chromium.ui.UiUtils; import org.chromium.ui.UiUtils;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.URI;
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
......
...@@ -17,10 +17,9 @@ import org.chromium.components.payments.MethodStrings; ...@@ -17,10 +17,9 @@ import org.chromium.components.payments.MethodStrings;
import org.chromium.components.payments.PaymentManifestDownloader; import org.chromium.components.payments.PaymentManifestDownloader;
import org.chromium.components.payments.PaymentManifestParser; import org.chromium.components.payments.PaymentManifestParser;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.url.URI;
import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
...@@ -238,28 +237,29 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback { ...@@ -238,28 +237,29 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback {
URI appOrigin = null; URI appOrigin = null;
URI defaultUriMethod = null; URI defaultUriMethod = null;
if (!TextUtils.isEmpty(defaultMethod)) { if (!TextUtils.isEmpty(defaultMethod)) {
if (UriUtils.looksLikeUriMethod(defaultMethod)) {
defaultUriMethod = UriUtils.parseUriFromString(defaultMethod);
if (defaultUriMethod != null) defaultMethod = defaultUriMethod.toString();
}
if (!methodToAppsMapping.containsKey(defaultMethod)) { if (!methodToAppsMapping.containsKey(defaultMethod)) {
methodToAppsMapping.put(defaultMethod, new HashSet<ResolveInfo>()); methodToAppsMapping.put(defaultMethod, new HashSet<ResolveInfo>());
} }
methodToAppsMapping.get(defaultMethod).add(app); methodToAppsMapping.get(defaultMethod).add(app);
if (UriUtils.looksLikeUriMethod(defaultMethod)) { if (defaultUriMethod != null) {
defaultUriMethod = UriUtils.parseUriFromString(defaultMethod); uriMethods.add(defaultUriMethod);
if (defaultUriMethod != null) {
uriMethods.add(defaultUriMethod); if (!uriMethodToDefaultAppsMapping.containsKey(defaultUriMethod)) {
uriMethodToDefaultAppsMapping.put(
if (!uriMethodToDefaultAppsMapping.containsKey(defaultUriMethod)) { defaultUriMethod, new HashSet<ResolveInfo>());
uriMethodToDefaultAppsMapping.put( }
defaultUriMethod, new HashSet<ResolveInfo>()); uriMethodToDefaultAppsMapping.get(defaultUriMethod).add(app);
}
uriMethodToDefaultAppsMapping.get(defaultUriMethod).add(app); appOrigin = UriUtils.getOrigin(defaultUriMethod);
if (!mOriginToUriDefaultMethodsMapping.containsKey(appOrigin)) {
appOrigin = UriUtils.getOrigin(defaultUriMethod); mOriginToUriDefaultMethodsMapping.put(appOrigin, new HashSet<URI>());
if (!mOriginToUriDefaultMethodsMapping.containsKey(appOrigin)) {
mOriginToUriDefaultMethodsMapping.put(appOrigin, new HashSet<URI>());
}
mOriginToUriDefaultMethodsMapping.get(appOrigin).add(defaultUriMethod);
} }
mOriginToUriDefaultMethodsMapping.get(appOrigin).add(defaultUriMethod);
} }
} }
...@@ -358,7 +358,15 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback { ...@@ -358,7 +358,15 @@ public class AndroidPaymentAppFinder implements ManifestVerifyCallback {
activityInfo.applicationInfo, resId); activityInfo.applicationInfo, resId);
if (nonDefaultPaymentMethodNames == null) return result; if (nonDefaultPaymentMethodNames == null) return result;
Collections.addAll(result, nonDefaultPaymentMethodNames); // Normalize methods that look like URIs in the same way they will be normalized in
// #findAndroidPaymentApps.
for (String method : nonDefaultPaymentMethodNames) {
URI uriMethod = null;
if (UriUtils.looksLikeUriMethod(method)) {
uriMethod = UriUtils.parseUriFromString(method);
}
result.add(uriMethod != null ? uriMethod.toString() : method);
}
return result; return result;
} }
......
...@@ -9,8 +9,8 @@ import androidx.annotation.Nullable; ...@@ -9,8 +9,8 @@ import androidx.annotation.Nullable;
import org.chromium.payments.mojom.PaymentAddress; import org.chromium.payments.mojom.PaymentAddress;
import org.chromium.payments.mojom.PaymentDetailsModifier; import org.chromium.payments.mojom.PaymentDetailsModifier;
import org.chromium.payments.mojom.PaymentMethodData; import org.chromium.payments.mojom.PaymentMethodData;
import org.chromium.url.URI;
import java.net.URI;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
......
...@@ -16,8 +16,8 @@ import org.chromium.components.payments.PaymentManifestDownloader.ManifestDownlo ...@@ -16,8 +16,8 @@ import org.chromium.components.payments.PaymentManifestDownloader.ManifestDownlo
import org.chromium.components.payments.PaymentManifestParser; import org.chromium.components.payments.PaymentManifestParser;
import org.chromium.components.payments.PaymentManifestParser.ManifestParseCallback; import org.chromium.components.payments.PaymentManifestParser.ManifestParseCallback;
import org.chromium.components.payments.WebAppManifestSection; import org.chromium.components.payments.WebAppManifestSection;
import org.chromium.url.URI;
import java.net.URI;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -550,4 +550,4 @@ public class PaymentManifestVerifier ...@@ -550,4 +550,4 @@ public class PaymentManifestVerifier
if (mIsManifestCacheStaleOrUnusable) mCallback.onFinishedVerification(); if (mIsManifestCacheStaleOrUnusable) mCallback.onFinishedVerification();
mCallback.onFinishedUsingResources(); mCallback.onFinishedUsingResources();
} }
} }
\ No newline at end of file
...@@ -90,8 +90,8 @@ import org.chromium.payments.mojom.PaymentResponse; ...@@ -90,8 +90,8 @@ import org.chromium.payments.mojom.PaymentResponse;
import org.chromium.payments.mojom.PaymentShippingOption; import org.chromium.payments.mojom.PaymentShippingOption;
import org.chromium.payments.mojom.PaymentShippingType; import org.chromium.payments.mojom.PaymentShippingType;
import org.chromium.payments.mojom.PaymentValidationErrors; import org.chromium.payments.mojom.PaymentValidationErrors;
import org.chromium.url.URI;
import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
......
...@@ -18,8 +18,8 @@ import org.chromium.payments.mojom.PaymentMethodData; ...@@ -18,8 +18,8 @@ import org.chromium.payments.mojom.PaymentMethodData;
import org.chromium.payments.mojom.PaymentOptions; import org.chromium.payments.mojom.PaymentOptions;
import org.chromium.payments.mojom.PaymentRequestDetailsUpdate; import org.chromium.payments.mojom.PaymentRequestDetailsUpdate;
import org.chromium.payments.mojom.PaymentShippingOption; import org.chromium.payments.mojom.PaymentShippingOption;
import org.chromium.url.URI;
import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
......
...@@ -35,8 +35,8 @@ import org.chromium.payments.mojom.PaymentItem; ...@@ -35,8 +35,8 @@ import org.chromium.payments.mojom.PaymentItem;
import org.chromium.payments.mojom.PaymentMethodData; import org.chromium.payments.mojom.PaymentMethodData;
import org.chromium.payments.mojom.PaymentOptions; import org.chromium.payments.mojom.PaymentOptions;
import org.chromium.payments.mojom.PaymentShippingOption; import org.chromium.payments.mojom.PaymentShippingOption;
import org.chromium.url.URI;
import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
......
...@@ -7,8 +7,8 @@ package org.chromium.chrome.browser.payments; ...@@ -7,8 +7,8 @@ package org.chromium.chrome.browser.payments;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
/** URI utilities. */ /** URI utilities. */
...@@ -59,19 +59,8 @@ public class UriUtils { ...@@ -59,19 +59,8 @@ public class UriUtils {
*/ */
public static URI getOrigin(URI uri) { public static URI getOrigin(URI uri) {
assert uri != null; assert uri != null;
return uri.getOrigin();
String originString = uri.resolve("/").toString();
// Strip the trailing slash.
if (!originString.isEmpty() && originString.charAt(originString.length() - 1) == '/') {
originString = originString.substring(0, originString.length() - 1);
}
URI origin = parseUriFromString(originString);
assert origin != null;
return origin;
} }
private UriUtils() {} private UriUtils() {}
} }
\ No newline at end of file
...@@ -19,8 +19,7 @@ import org.chromium.content_public.browser.WebContents; ...@@ -19,8 +19,7 @@ import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.ViewAndroidDelegate; import org.chromium.ui.base.ViewAndroidDelegate;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
import org.chromium.url.URI;
import java.net.URI;
/** /**
* PaymentHandler coordinator, which owns the component overall, i.e., creates other objects in the * PaymentHandler coordinator, which owns the component overall, i.e., creates other objects in the
......
...@@ -14,8 +14,7 @@ import org.chromium.components.security_state.ConnectionSecurityLevel; ...@@ -14,8 +14,7 @@ import org.chromium.components.security_state.ConnectionSecurityLevel;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
import org.chromium.url.URI;
import java.net.URI;
/** /**
* PaymentHandlerToolbar coordinator, which owns the component overall, i.e., creates other objects * PaymentHandlerToolbar coordinator, which owns the component overall, i.e., creates other objects
......
...@@ -16,8 +16,8 @@ import org.chromium.content_public.browser.NavigationHandle; ...@@ -16,8 +16,8 @@ import org.chromium.content_public.browser.NavigationHandle;
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.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
/** /**
......
...@@ -9,8 +9,7 @@ import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey; ...@@ -9,8 +9,7 @@ import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableFloatPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableFloatPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableIntPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableIntPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
import org.chromium.url.URI;
import java.net.URI;
/** PaymentHandlerToolbar UI properties, which fully describe the state of the UI. */ /** PaymentHandlerToolbar UI properties, which fully describe the state of the UI. */
/* package */ class PaymentHandlerToolbarProperties { /* package */ class PaymentHandlerToolbarProperties {
......
...@@ -26,8 +26,8 @@ import org.chromium.components.payments.PaymentManifestParser; ...@@ -26,8 +26,8 @@ import org.chromium.components.payments.PaymentManifestParser;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.net.test.EmbeddedTestServer; import org.chromium.net.test.EmbeddedTestServer;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
......
...@@ -25,8 +25,7 @@ import org.chromium.components.payments.PaymentManifestDownloader.ManifestDownlo ...@@ -25,8 +25,7 @@ import org.chromium.components.payments.PaymentManifestDownloader.ManifestDownlo
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.net.test.EmbeddedTestServer; import org.chromium.net.test.EmbeddedTestServer;
import org.chromium.url.URI;
import java.net.URI;
/** An integration test for the payment manifest downloader. */ /** An integration test for the payment manifest downloader. */
@RunWith(ChromeJUnit4ClassRunner.class) @RunWith(ChromeJUnit4ClassRunner.class)
......
...@@ -24,8 +24,7 @@ import org.chromium.components.payments.PaymentManifestParser.ManifestParseCallb ...@@ -24,8 +24,7 @@ import org.chromium.components.payments.PaymentManifestParser.ManifestParseCallb
import org.chromium.components.payments.WebAppManifestSection; import org.chromium.components.payments.WebAppManifestSection;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.url.URI;
import java.net.URI;
/** An integration test for the payment manifest parser. */ /** An integration test for the payment manifest parser. */
@RunWith(ChromeJUnit4ClassRunner.class) @RunWith(ChromeJUnit4ClassRunner.class)
...@@ -204,4 +203,4 @@ public class PaymentManifestParserTest implements ManifestParseCallback { ...@@ -204,4 +203,4 @@ public class PaymentManifestParserTest implements ManifestParseCallback {
(byte) 0xC1}, (byte) 0xC1},
mWebAppManifest[0].fingerprints[0]); mWebAppManifest[0].fingerprints[0]);
} }
} }
\ No newline at end of file
...@@ -25,8 +25,8 @@ import org.chromium.components.payments.PaymentManifestDownloader; ...@@ -25,8 +25,8 @@ import org.chromium.components.payments.PaymentManifestDownloader;
import org.chromium.components.payments.PaymentManifestParser; import org.chromium.components.payments.PaymentManifestParser;
import org.chromium.components.payments.WebAppManifestSection; import org.chromium.components.payments.WebAppManifestSection;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
......
...@@ -20,8 +20,8 @@ import org.chromium.components.payments.PaymentManifestDownloader; ...@@ -20,8 +20,8 @@ import org.chromium.components.payments.PaymentManifestDownloader;
import org.chromium.components.payments.PaymentManifestParser; import org.chromium.components.payments.PaymentManifestParser;
import org.chromium.components.payments.WebAppManifestSection; import org.chromium.components.payments.WebAppManifestSection;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
......
...@@ -67,6 +67,7 @@ android_library("java") { ...@@ -67,6 +67,7 @@ android_library("java") {
"//content/public/android:content_java", "//content/public/android:content_java",
"//mojo/public/java:bindings_java", "//mojo/public/java:bindings_java",
"//third_party/blink/public/mojom:android_mojo_bindings_java", "//third_party/blink/public/mojom:android_mojo_bindings_java",
"//url:gurl_java",
] ]
} }
......
...@@ -9,8 +9,7 @@ import org.chromium.base.annotations.CalledByNative; ...@@ -9,8 +9,7 @@ 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.NativeMethods;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.url.URI;
import java.net.URI;
/** /**
* See comment in: * See comment in:
......
...@@ -9,8 +9,8 @@ import org.chromium.base.annotations.CalledByNative; ...@@ -9,8 +9,8 @@ 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.NativeMethods;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.url.URI;
import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
/** Parses payment manifests in a utility process. */ /** Parses payment manifests in a utility process. */
......
...@@ -2426,6 +2426,7 @@ jumbo_source_set("browser") { ...@@ -2426,6 +2426,7 @@ jumbo_source_set("browser") {
"//ui/android", "//ui/android",
"//ui/compositor", "//ui/compositor",
"//ui/compositor/host", "//ui/compositor/host",
"//url:gurl_android",
"//url:origin_android", "//url:origin_android",
] ]
if (enable_vulkan) { if (enable_vulkan) {
......
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