Commit d086cd92 authored by Liquan (Max) Gu's avatar Liquan (Max) Gu Committed by Chromium LUCI CQ

[ExpandablePaymentHandler] Clean up for the enabled feature

Now that the ScrollToExpandPaymentHandler/ExpandablePaymentHandler
feature has been enabled by default, this CL is to clean up the
switch of it.

Highlights in this CL:
* Removed the CCT payment handler support from ServiceTabLauncher. It
  seems reasonable to combine the two branches, but I will leave it
  to follow-up CLs.
* Removed the code to disable the feature from
  payment_handler_exploit_browsertest.cc.
* Removed slide_out_down because CQ warns of unused resources.

Bug: 1157895
Change-Id: I76c96704388c52bdb3ae9c2d17f940cfa29c76b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2585809Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Liquan (Max) Gu <maxlg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#836649}
parent bd495b8b
......@@ -14,7 +14,6 @@ chrome_java_resources = [
"java/res/anim/decelerate_quart.xml",
"java/res/anim/fast_out_slow_in_interpolator.xml",
"java/res/anim/slide_in_up.xml",
"java/res/anim/slide_out_down.xml",
"java/res/anim/stay_hidden.xml",
"java/res/color/item_chooser_row_icon_color.xml",
"java/res/color/item_chooser_row_text_color.xml",
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2017 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. -->
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime" />
......@@ -4,27 +4,18 @@
package org.chromium.chrome.browser;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.provider.Browser;
import androidx.annotation.Nullable;
import androidx.browser.customtabs.CustomTabsIntent;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.task.PostTask;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.browserservices.BrowserServicesMetrics;
import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient;
import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
import org.chromium.chrome.browser.payments.handler.PaymentHandlerCoordinator;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.AsyncTabCreationParams;
......@@ -80,18 +71,11 @@ public class ServiceTabLauncher {
// Open popup window in custom tab.
// Note that this is used by PaymentRequestEvent.openWindow().
if (disposition == WindowOpenDisposition.NEW_POPUP) {
boolean success = false;
if (PaymentHandlerCoordinator.isEnabled()) {
WebContents paymentHandlerWebContent =
PaymentRequestService.openPaymentHandlerWindow(url);
if (paymentHandlerWebContent != null) {
success = true;
onWebContentsForRequestAvailable(requestId, paymentHandlerWebContent);
}
WebContents paymentHandlerWebContent =
PaymentRequestService.openPaymentHandlerWindow(url);
if (paymentHandlerWebContent != null) {
onWebContentsForRequestAvailable(requestId, paymentHandlerWebContent);
} else {
success = createPopupCustomTab(requestId, url.getSpec(), incognito);
}
if (!success) {
PostTask.postTask(UiThreadTaskTraits.DEFAULT,
() -> onWebContentsForRequestAvailable(requestId, null));
}
......@@ -187,39 +171,6 @@ public class ServiceTabLauncher {
}
}
/**
* Creates a popup custom tab to open the url. The popup tab is animated in from bottom to top
* and out from top to bottom.
* Note that this is used by PaymentRequestEvent.openWindow().
*
* @param requestId The tab launch request ID from the {@link ServiceTabLauncher}.
* @param url The url to open in the new tab.
*/
private static boolean createPopupCustomTab(int requestId, String url, boolean incognito) {
// Do not open the popup custom tab if the chrome activity is not in the forground.
Activity lastTrackedActivity = ApplicationStatus.getLastTrackedFocusedActivity();
if (!(lastTrackedActivity instanceof ChromeActivity)) return false;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.setShowTitle(true);
builder.setStartAnimations(lastTrackedActivity, R.anim.slide_in_up, 0);
builder.setExitAnimations(lastTrackedActivity, 0, R.anim.slide_out_down);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.intent.setPackage(ContextUtils.getApplicationContext().getPackageName());
customTabsIntent.intent.putExtra(ServiceTabLauncher.LAUNCH_REQUEST_ID_EXTRA, requestId);
customTabsIntent.intent.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, incognito);
customTabsIntent.intent.putExtra(Browser.EXTRA_APPLICATION_ID,
ContextUtils.getApplicationContext().getPackageName());
// Customize items on menu as payment request UI to show 'Find in page', 'Forward arrow',
// 'Info' and 'Refresh' only.
CustomTabIntentDataProvider.addPaymentRequestUIExtras(customTabsIntent.intent);
customTabsIntent.launchUrl(lastTrackedActivity, Uri.parse(url));
return true;
}
/**
* To be called by the activity when the WebContents for |requestId| has been created, or has
* been recycled from previous use. The |webContents| must not yet have started provisional
......
......@@ -13,7 +13,6 @@ import androidx.collection.ArrayMap;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
import org.chromium.chrome.browser.payments.handler.PaymentHandlerCoordinator;
import org.chromium.chrome.browser.payments.ui.PaymentUiService;
import org.chromium.components.autofill.EditableOption;
import org.chromium.components.payments.AbortReason;
......@@ -259,17 +258,12 @@ public class ChromePaymentRequestService
return null;
}
private void dimBackgroundIfNotBottomSheetPaymentHandler(PaymentApp selectedApp) {
// Putting isEnabled() last is intentional. It's to ensure not to confused the unexecuted
// group and the disabled in A/B testing.
private void dimBackgroundIfNotPaymentHandler(PaymentApp selectedApp) {
if (selectedApp != null
&& selectedApp.getPaymentAppType() == PaymentAppType.SERVICE_WORKER_APP
&& PaymentHandlerCoordinator.isEnabled()) {
// When the Payment Handler (PH) UI is based on Activity, dimming the Payment
// Request (PR) UI does not dim the PH; when it's based on bottom-sheet, dimming
// the PR dims both UIs. As bottom-sheet itself has dimming effect, dimming PR
// is unnecessary for the bottom-sheet PH. For now, service worker based payment apps
// are the only ones that can open the bottom-sheet.
&& selectedApp.getPaymentAppType() == PaymentAppType.SERVICE_WORKER_APP) {
// As bottom-sheet itself has dimming effect, dimming PR is unnecessary for the
// bottom-sheet PH. For now, service worker based payment apps are the only ones that
// can open the bottom-sheet.
return;
}
mPaymentUiService.dimBackground();
......@@ -305,7 +299,7 @@ public class ChromePaymentRequestService
assert !mPaymentUiService.getPaymentApps().isEmpty();
PaymentApp selectedApp = mPaymentUiService.getSelectedPaymentApp();
dimBackgroundIfNotBottomSheetPaymentHandler(selectedApp);
dimBackgroundIfNotPaymentHandler(selectedApp);
mJourneyLogger.setEventOccurred(Event.SKIPPED_SHOW);
invokePaymentApp(null /* selectedShippingAddress */, null /* selectedShippingOption */,
selectedApp);
......
......@@ -15,7 +15,6 @@ import org.chromium.chrome.browser.version.ChromeVersionInfo;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerProvider;
import org.chromium.components.embedder_support.view.ContentView;
import org.chromium.components.payments.PaymentFeatureList;
import org.chromium.components.thinwebview.ThinWebView;
import org.chromium.components.thinwebview.ThinWebViewConstraints;
import org.chromium.components.thinwebview.ThinWebViewFactory;
......@@ -40,9 +39,7 @@ public class PaymentHandlerCoordinator {
private PaymentHandlerToolbarCoordinator mToolbarCoordinator;
/** Constructs the payment-handler component coordinator. */
public PaymentHandlerCoordinator() {
assert isEnabled();
}
public PaymentHandlerCoordinator() {}
/** Observes the state changes of the payment-handler UI. */
public interface PaymentHandlerUiObserver {
......@@ -153,18 +150,6 @@ public class PaymentHandlerCoordinator {
mHider = null;
}
/**
* @return Whether this solution (as opposed to the Chrome-custom-tab based solution) of
* PaymentHandler is enabled. This solution is intended to replace the other
* solution.
*/
public static boolean isEnabled() {
// Enabling the flag of either ScrollToExpand or PaymentsExperimentalFeatures will enable
// this feature.
return PaymentFeatureList.isEnabledOrExperimentalFeaturesEnabled(
PaymentFeatureList.SCROLL_TO_EXPAND_PAYMENT_HANDLER);
}
@VisibleForTesting
public void clickSecurityIconForTest() {
mToolbarCoordinator.clickSecurityIconForTest();
......
......@@ -20,7 +20,6 @@ import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.payments.PaymentFeatureList;
import org.chromium.net.test.EmbeddedTestServer;
import org.chromium.net.test.ServerCertificate;
import org.chromium.ui.test.util.DisableAnimationsTestRule;
......@@ -28,8 +27,7 @@ import org.chromium.ui.test.util.DisableAnimationsTestRule;
/** An integration test for PaymentRequestEvent.changePaymentMethod(). */
@RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
"enable-blink-features=PaymentMethodChangeEvent,PaymentHandlerChangePaymentMethod",
"enable-features=" + PaymentFeatureList.SCROLL_TO_EXPAND_PAYMENT_HANDLER})
"enable-blink-features=PaymentMethodChangeEvent,PaymentHandlerChangePaymentMethod"})
@MediumTest
public class ExpandablePaymentHandlerChangePaymentMethodTest {
// Disable animations to reduce flakiness.
......
......@@ -22,7 +22,6 @@ import org.chromium.base.test.util.Feature;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.payments.PaymentFeatureList;
import org.chromium.net.test.EmbeddedTestServer;
import org.chromium.net.test.ServerCertificate;
import org.chromium.ui.test.util.DisableAnimationsTestRule;
......@@ -31,8 +30,7 @@ import org.chromium.ui.test.util.UiDisableIf;
/** An integration test for PaymentRequestEvent.changePaymentMethod(). */
@RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
"enable-blink-features=PaymentMethodChangeEvent,PaymentHandlerChangePaymentMethod",
"disable-features=" + PaymentFeatureList.SCROLL_TO_EXPAND_PAYMENT_HANDLER})
"enable-blink-features=PaymentMethodChangeEvent,PaymentHandlerChangePaymentMethod"})
@MediumTest
public class PaymentHandlerChangePaymentMethodTest {
// Disable animations to reduce flakiness.
......
......@@ -42,8 +42,7 @@ import java.util.concurrent.TimeoutException;
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
// For all the tests in this file, we expect abort exception when there is no supported
// payment apps instead of showing payment request UI.
"enable-features=" + PaymentFeatureList.STRICT_HAS_ENROLLED_AUTOFILL_INSTRUMENT + ","
+ PaymentFeatureList.SCROLL_TO_EXPAND_PAYMENT_HANDLER,
"enable-features=" + PaymentFeatureList.STRICT_HAS_ENROLLED_AUTOFILL_INSTRUMENT,
// Prevent crawling the web for real payment apps.
"disable-features=" + PaymentFeatureList.SERVICE_WORKER_PAYMENT_APPS})
public class PaymentRequestServiceWorkerExpandablePaymentHandlerTest {
......
......@@ -44,8 +44,7 @@ import java.util.concurrent.TimeoutException;
// payment apps instead of showing payment request UI.
"enable-features=" + PaymentFeatureList.STRICT_HAS_ENROLLED_AUTOFILL_INSTRUMENT,
// Prevent crawling the web for real payment apps.
"disable-features=" + PaymentFeatureList.SERVICE_WORKER_PAYMENT_APPS + ","
+ PaymentFeatureList.SCROLL_TO_EXPAND_PAYMENT_HANDLER})
"disable-features=" + PaymentFeatureList.SERVICE_WORKER_PAYMENT_APPS})
public class PaymentRequestServiceWorkerPaymentAppTest {
// Disable animations to reduce flakiness.
@ClassRule
......
......@@ -2,10 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/test/payments/payment_request_platform_browsertest_base.h"
#include "components/payments/content/android/payment_feature_list.h"
#include "content/public/test/browser_test.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
......@@ -22,11 +20,7 @@ class ExpandablePaymentHandlerBrowserTest
: public PaymentRequestPlatformBrowserTestBase {
public:
ExpandablePaymentHandlerBrowserTest()
: http_server_(net::EmbeddedTestServer::TYPE_HTTP) {
scoped_feature_list_.InitWithFeatures(
/*enabled_features=*/{payments::android::kScrollToExpandPaymentHandler},
/*disabled_features=*/{});
}
: http_server_(net::EmbeddedTestServer::TYPE_HTTP) {}
void SetUpOnMainThread() override {
PaymentRequestPlatformBrowserTestBase::SetUpOnMainThread();
......@@ -44,7 +38,6 @@ class ExpandablePaymentHandlerBrowserTest
private:
net::EmbeddedTestServer http_server_;
base::test::ScopedFeatureList scoped_feature_list_;
};
// Make sure merchants can confirm the payment.
......
......@@ -25,18 +25,8 @@ constexpr char kOriginalPrice[] = "5.00";
constexpr char kDiscountPrice[] = "4.00";
class PaymentHandlerCapabilitiesTest
: public PaymentRequestPlatformBrowserTestBase,
public testing::WithParamInterface<bool> {
: public PaymentRequestPlatformBrowserTestBase {
public:
#if defined(OS_ANDROID)
PaymentHandlerCapabilitiesTest() {
if (GetParam()) {
features_.InitAndEnableFeature(android::kScrollToExpandPaymentHandler);
} else {
features_.InitAndDisableFeature(android::kScrollToExpandPaymentHandler);
}
}
#endif // OS_ANDROID
void ExpectAppTotals() {
EXPECT_EQ(expected_app_totals_.size(),
......@@ -70,20 +60,9 @@ class PaymentHandlerCapabilitiesTest
base::test::ScopedFeatureList features_;
};
// Only Andorid has the scroll to expand payment handler feature.
INSTANTIATE_TEST_SUITE_P(ScrollToExpand,
PaymentHandlerCapabilitiesTest,
::testing::Values(
#if defined(OS_ANDROID)
// "Scroll to expand" payment handler is an
// Android-only feature.
true,
#endif // OS_ANDROID
false));
// Modified price should be displayed for the payment handler with the matching
// capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest, TwoApps) {
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest, TwoApps) {
NavigateTo("alicepay.com", "/payment_handler_installer.html");
EXPECT_EQ(
"success",
......@@ -112,7 +91,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest, TwoApps) {
// A "basic-card" modifier without any networks will apply to a payment handler
// that does not declare its capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
AllCardsModifierMatchesAppWithoutCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ("success",
......@@ -134,7 +113,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
// A "basic-card" modifier without any networks will apply to a payment handler
// with visa capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
AllCardsModifierMatchesVisaCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ("success",
......@@ -156,7 +135,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
// A "basic-card" modifier with visa network will not apply to a payment handler
// that does not declare its capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
VisaCardsModifierDoesNotMatchAppWithoutCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ("success",
......@@ -177,7 +156,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
// A "basic-card" modifier with visa network will apply to a payment handler
// with visa capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
VisaCardsModifierMatchesVisaCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ("success",
......@@ -198,7 +177,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
// A "basic-card" modifier without any networks will apply to a payment handler
// with mastercard capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
AllCardsModifierMatchesMastercardCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ(
......@@ -221,7 +200,7 @@ IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
// A "basic-card" modifier with visa network will not apply to a payment handler
// with mastercard capabilities.
IN_PROC_BROWSER_TEST_P(PaymentHandlerCapabilitiesTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerCapabilitiesTest,
VisaCardsModifierDoesNotMatchMastercardCapabilities) {
NavigateTo("bobpay.com", "/payment_handler_installer.html");
EXPECT_EQ(
......
......@@ -83,17 +83,6 @@ class PaymentHandlerExploitTest : public PaymentRequestPlatformBrowserTestBase,
GURL payment_handler_window_url_;
};
class DefaultPaymentHandlerExploitTest : public PaymentHandlerExploitTest {
public:
DefaultPaymentHandlerExploitTest() {
#if defined(OS_ANDROID)
// Scroll-to-Expand payment handler feature is available only on Android.
features_.InitAndDisableFeature(
payments::android::kScrollToExpandPaymentHandler);
#endif // defined(OS_ANDROID)
}
};
// Android browsertests are not able to open a Chrome Custom Tab for the payment
// handler window due to an ActivityNotFoundException: "No Activity found to
// handle Intent." https://crbug.com/998737
......@@ -102,36 +91,14 @@ class DefaultPaymentHandlerExploitTest : public PaymentHandlerExploitTest {
#else
#define MAYBE_SmokeTest SmokeTest
#endif // defined(OS_ANDROID)
IN_PROC_BROWSER_TEST_F(DefaultPaymentHandlerExploitTest, MAYBE_SmokeTest) {
IN_PROC_BROWSER_TEST_F(PaymentHandlerExploitTest, MAYBE_SmokeTest) {
SmokeTest();
}
IN_PROC_BROWSER_TEST_F(DefaultPaymentHandlerExploitTest,
IN_PROC_BROWSER_TEST_F(PaymentHandlerExploitTest,
RendererCannotOpenCrossOriginWindow) {
TestThatRendererCannotOpenCrossOriginWindow();
}
#if defined(OS_ANDROID)
// Same tests as above, but with Scroll-to-Expand payment handler feature
// enabled. This feature is only available on Android.
class ScrollToExpandPaymentHandlerExploitTest
: public PaymentHandlerExploitTest {
public:
ScrollToExpandPaymentHandlerExploitTest() {
features_.InitAndEnableFeature(
payments::android::kScrollToExpandPaymentHandler);
}
};
IN_PROC_BROWSER_TEST_F(ScrollToExpandPaymentHandlerExploitTest, SmokeTest) {
SmokeTest();
}
IN_PROC_BROWSER_TEST_F(ScrollToExpandPaymentHandlerExploitTest,
RendererCannotOpenCrossOriginWindow) {
TestThatRendererCannotOpenCrossOriginWindow();
}
#endif // defined(OS_ANDROID)
} // namespace
} // namespace payments
......@@ -30,8 +30,7 @@ void SetUseDelegateOnPaymentRequestForTesting(
// Gets the WebContents of the Expandable Payment Handler for testing purpose,
// or null if nonexistent. To guarantee a non-null return, this function should
// be called only if: 1) PaymentRequest UI is opening. 2)
// ScrollToExpandPaymentHandler feature is enabled. 3) PaymentHandler is
// be called only if: 1) PaymentRequest UI is opening. 2) PaymentHandler is
// opening.
content::WebContents* GetPaymentHandlerWebContentsForTest();
......
......@@ -75,8 +75,7 @@ class PaymentRequestTestController {
// Gets the WebContents of the Payment Handler for testing purpose, or null if
// nonexistent. To guarantee a non-null return, this function should be called
// only if: 1) PaymentRequest UI is opening. 2) ScrollToExpandPaymentHandler
// feature is enabled (on Android). 3) PaymentHandler is opening.
// only if: 1) PaymentRequest UI is opening. 2) PaymentHandler is opening.
content::WebContents* GetPaymentHandlerWebContents();
#if defined(OS_ANDROID)
......
......@@ -21,7 +21,6 @@ public class PaymentFeatureList {
public static final String PAYMENT_REQUEST_SKIP_TO_GPAY = "PaymentRequestSkipToGPay";
public static final String PAYMENT_REQUEST_SKIP_TO_GPAY_IF_NO_CARD =
"PaymentRequestSkipToGPayIfNoCard";
public static final String SCROLL_TO_EXPAND_PAYMENT_HANDLER = "ScrollToExpandPaymentHandler";
public static final String SERVICE_WORKER_PAYMENT_APPS = "ServiceWorkerPaymentApps";
public static final String STRICT_HAS_ENROLLED_AUTOFILL_INSTRUMENT =
"StrictHasEnrolledAutofillInstrument";
......
......@@ -37,7 +37,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
&features::kWebPaymentsRedactShippingAddress,
&features::kWebPaymentsSingleAppUiSkip,
&kAndroidAppPaymentUpdateEvents,
&kScrollToExpandPaymentHandler,
};
const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) {
......@@ -55,9 +54,6 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) {
// Android only features.
const base::Feature kAndroidAppPaymentUpdateEvents{
"AndroidAppPaymentUpdateEvents", base::FEATURE_ENABLED_BY_DEFAULT};
// TODO(crbug.com/1094549): clean up after being stable.
const base::Feature kScrollToExpandPaymentHandler{
"ScrollToExpandPaymentHandler", base::FEATURE_ENABLED_BY_DEFAULT};
static jboolean JNI_PaymentFeatureList_IsEnabled(
JNIEnv* env,
......
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