Commit 391b2498 authored by Rouslan Solomakhin's avatar Rouslan Solomakhin Committed by Commit Bot

[Payment Handler] CanMakePaymentEvent.respondWithMinimalUI() #3

Patch #3: Unify flag control for the minimal UI feature.

Before this patch, chrome://flags/#enable-web-payments-minimal-ui
controlled whether the minimal UI could be displayed,
while chrome://flags/#enable-experimental-web-platform-features
controlled whether the respondWithMinimalUI() API was available in
Blink.

After this patch, both UI display and availability of the feature in
Blink is controlled by the single flag
chrome://flags/#enable-web-payments-minimal-ui.

Bug: 1005076
Change-Id: I43c449b0ca14c97ccadcd25da8261119d261d80f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2075479
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: default avatarDanyao Wang <danyao@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#745071}
parent 97737209
......@@ -2703,8 +2703,8 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(payments::features::kWebPaymentsExperimentalFeatures)},
{"enable-web-payments-minimal-ui",
flag_descriptions::kWebPaymentsMinimalUIName,
flag_descriptions::kWebPaymentsMinimalUIDescription, kOsAndroid,
FEATURE_VALUE_TYPE(payments::features::kWebPaymentsMinimalUI)},
flag_descriptions::kWebPaymentsMinimalUIDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kWebPaymentsMinimalUI)},
{"fill-on-account-select", flag_descriptions::kFillOnAccountSelectName,
flag_descriptions::kFillOnAccountSelectDescription, kOsAll,
FEATURE_VALUE_TYPE(password_manager::features::kFillOnAccountSelect)},
......
......@@ -88,6 +88,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&features::kWebAuth,
&features::kWebNfc,
&features::kWebPayments,
&features::kWebPaymentsMinimalUI,
&feature_engagement::kIPHChromeDuetHomeButtonFeature,
&feature_engagement::kIPHChromeDuetSearchFeature,
&feature_engagement::kIPHChromeDuetTabSwitcherFeature,
......@@ -211,7 +212,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
&payments::features::kStrictHasEnrolledAutofillInstrument,
&payments::features::kWebPaymentsExperimentalFeatures,
&payments::features::kWebPaymentsMethodSectionOrderV2,
&payments::features::kWebPaymentsMinimalUI,
&payments::features::kWebPaymentsModifiers,
&payments::features::kWebPaymentsRedactShippingAddress,
&payments::features::kWebPaymentsSingleAppUiSkip,
......
......@@ -53,9 +53,6 @@ const base::Feature kPaymentRequestSkipToGPay{
const base::Feature kPaymentRequestSkipToGPayIfNoCard{
"PaymentRequestSkipToGPayIfNoCard", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kWebPaymentsMinimalUI{"WebPaymentsMinimalUI",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDownRankJustInTimePaymentApp{
"DownRankJustInTimePaymentApp", base::FEATURE_DISABLED_BY_DEFAULT};
......
......@@ -60,9 +60,6 @@ extern const base::Feature kPaymentRequestSkipToGPay;
// eligible credit card.
extern const base::Feature kPaymentRequestSkipToGPayIfNoCard;
// Controls whether the minimal payment request ui features are enabled.
extern const base::Feature kWebPaymentsMinimalUI;
// If enabled, just-in-time installable payment handlers are ranked lower than
// complete autofill instruments in payment sheet's method selection section.
extern const base::Feature kDownRankJustInTimePaymentApp;
......
......@@ -205,6 +205,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableSendBeaconThrowForBlobWithNonSimpleType,
features::kSendBeaconThrowForBlobWithNonSimpleType, kEnableOnly},
{wf::EnablePaymentRequest, features::kWebPayments, kUseFeatureState},
{wf::EnablePaymentHandlerMinimalUI, features::kWebPaymentsMinimalUI,
kEnableOnly},
{wf::EnablePaymentApp, features::kServiceWorkerPaymentApps,
kEnableOnly},
{wf::EnableCompositorTouchAction, features::kCompositorTouchAction,
......
......@@ -778,6 +778,10 @@ const base::Feature kExperimentalProductivityFeatures{
const base::Feature kWebPayments{"WebPayments",
base::FEATURE_ENABLED_BY_DEFAULT};
// Minimal user interface experience for payments on the web.
const base::Feature kWebPaymentsMinimalUI{"WebPaymentsMinimalUI",
base::FEATURE_DISABLED_BY_DEFAULT};
// Makes WebRTC use ECDSA certs by default (i.e., when no cert type was
// specified in JS).
const base::Feature kWebRtcEcdsaDefault{"WebRTC-EnableWebRtcEcdsa",
......
......@@ -163,6 +163,7 @@ CONTENT_EXPORT extern const base::Feature kWebBundlesFromNetwork;
CONTENT_EXPORT extern const base::Feature kWebContentsOcclusion;
CONTENT_EXPORT extern const base::Feature kWebGLImageChromium;
CONTENT_EXPORT extern const base::Feature kWebPayments;
CONTENT_EXPORT extern const base::Feature kWebPaymentsMinimalUI;
CONTENT_EXPORT extern const base::Feature kWebRtcEcdsaDefault;
CONTENT_EXPORT extern const base::Feature kWebRtcUseGpuMemoryBufferVideoFrames;
CONTENT_EXPORT extern const base::Feature kWebUsb;
......
......@@ -142,6 +142,7 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnablePassiveDocumentWheelEventListeners(
bool);
BLINK_PLATFORM_EXPORT static void EnablePaymentApp(bool);
BLINK_PLATFORM_EXPORT static void EnablePaymentHandlerMinimalUI(bool);
BLINK_PLATFORM_EXPORT static void EnablePaymentRequest(bool);
BLINK_PLATFORM_EXPORT static void EnablePercentBasedScrolling(bool);
BLINK_PLATFORM_EXPORT static void EnablePerformanceManagerInstrumentation(
......
......@@ -331,12 +331,17 @@ void WebRuntimeFeatures::EnablePaymentApp(bool enable) {
RuntimeEnabledFeatures::SetPaymentAppEnabled(enable);
}
void WebRuntimeFeatures::EnablePaymentHandlerMinimalUI(bool enable) {
RuntimeEnabledFeatures::SetPaymentHandlerMinimalUIEnabled(enable);
}
void WebRuntimeFeatures::EnablePaymentRequest(bool enable) {
RuntimeEnabledFeatures::SetPaymentRequestEnabled(enable);
if (!enable) {
// Disable features that depend on Payment Request API.
RuntimeEnabledFeatures::SetPaymentMethodChangeEventEnabled(false);
RuntimeEnabledFeatures::SetPaymentAppEnabled(false);
RuntimeEnabledFeatures::SetPaymentHandlerMinimalUIEnabled(false);
RuntimeEnabledFeatures::SetPaymentMethodChangeEventEnabled(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