Commit e49d87b9 authored by Andrei Chulkov's avatar Andrei Chulkov Committed by Commit Bot

Add Java code to support experiments with the password manager onboarding

This CL adds Java code that retrieves the "story" parameter from the
PasswordManagerOnboardingAndroid feature and sets sets the correct
image accordingly.

Bug: 983445
Change-Id: I53e046562faac7b26fe9f81feaad87786444a563
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1781642
Commit-Queue: Andrei Chulkov <achulkov@google.com>
Reviewed-by: default avatarIoana Pandele <ioanap@chromium.org>
Reviewed-by: default avatarFriedrich [CET] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#693136}
parent 3ac846ff
......@@ -291,6 +291,8 @@ public abstract class ChromeFeatureList {
public static final String OVERLAY_NEW_LAYOUT = "OverlayNewLayout";
public static final String OVERSCROLL_HISTORY_NAVIGATION = "OverscrollHistoryNavigation";
public static final String PASSWORD_EDITING_ANDROID = "PasswordEditingAndroid";
public static final String PASSWORD_MANAGER_ONBOARDING_ANDROID =
"PasswordManagerOnboardingAndroid";
public static final String PAY_WITH_GOOGLE_V1 = "PayWithGoogleV1";
public static final String PERMISSION_DELEGATION = "PermissionDelegation";
public static final String PER_METHOD_CAN_MAKE_PAYMENT_QUOTA =
......
......@@ -4,6 +4,9 @@
package org.chromium.chrome.browser.password_manager;
import static org.chromium.chrome.browser.ChromeFeatureList.PASSWORD_MANAGER_ONBOARDING_ANDROID;
import static org.chromium.chrome.browser.ChromeFeatureList.getFieldTrialParamByFeature;
import android.content.res.Resources;
import org.chromium.base.annotations.CalledByNative;
......@@ -17,6 +20,12 @@ public class OnboardingDialogBridge {
private long mNativeOnboardingDialogView;
private final PasswordManagerDialogCoordinator mOnboardingDialog;
private final Resources mResources;
/** Experiment parameter. */
private static final String EXPERIMENT_PARAMETER = "story";
/** Story centered on password safety and leak detection. */
private static final String ILLUSTRATION_01 = "safety";
/** Story centered on availability on multiple devices. */
private static final String ILLUSTRATION_02 = "access";
private OnboardingDialogBridge(WindowAndroid windowAndroid, long nativeOnboardingDialogView) {
mNativeOnboardingDialogView = nativeOnboardingDialogView;
......@@ -33,11 +42,27 @@ public class OnboardingDialogBridge {
return new OnboardingDialogBridge(windowAndroid, nativeDialog);
}
/**
* Choose the illustration shown based on an experiment parameter.
* By default we show the story centered on not having to remember your password.
*/
private int getDrawableResourceFromFeature() {
String story = getFieldTrialParamByFeature(
PASSWORD_MANAGER_ONBOARDING_ANDROID, EXPERIMENT_PARAMETER);
switch (story) {
case ILLUSTRATION_01:
return R.drawable.password_manager_onboarding_illustration01;
case ILLUSTRATION_02:
return R.drawable.password_manager_onboarding_illustration02;
default:
return R.drawable.password_manager_onboarding_illustration03;
}
}
@CalledByNative
public void showDialog(String onboardingTitle, String onboardingDetails) {
mOnboardingDialog.showDialog(onboardingTitle, onboardingDetails,
R.drawable.password_manager_onboarding_illustration01,
mResources.getString(R.string.continue_button),
getDrawableResourceFromFeature(), mResources.getString(R.string.continue_button),
mResources.getString(R.string.cancel), this::onClick);
}
......
......@@ -217,6 +217,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&omnibox::kOmniboxSearchEngineLogo,
&password_manager::features::kGooglePasswordManager,
&password_manager::features::kPasswordEditingAndroid,
&password_manager::features::kPasswordManagerOnboardingAndroid,
&password_manager::features::kLeakDetection,
&safe_browsing::kCaptureSafetyNetId,
&safe_browsing::kSendOnFocusPing,
......
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