Commit 4214d2a1 authored by Matthew Jones's avatar Matthew Jones Committed by Commit Bot

[Home] Add promo/switch dialog for Chrome Home

This change adds a promo dialog and flag to enable it on every
restart. Choosing a setting different from the one the browser is
currently in will cause the browser's activity to restart when the
dialog is closed. The enabled state of the browser when the promo is
in use is driven off of a new shared preference
"chrome_home_user_enabled". The new preference takes priority over
about:flags.

BUG=767738

Change-Id: I4d0b5da6cf47baf338dbbc2fd8ffb85ea9140211
Reviewed-on: https://chromium-review.googlesource.com/683248
Commit-Queue: Matthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505096}
parent 6ccee515
<?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. -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/promo_dialog_padding"
android:orientation="horizontal"
android:gravity="center_vertical" >
<TextView
android:id="@+id/chrome_home_promo_state_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="4dp"
android:textStyle="bold"
style="@style/PromoDialogNormalText" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/chrome_home_promo_dialog_change_later"
style="@style/PromoDialogNormalText" />
<Switch
android:id="@+id/chrome_home_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end" />
</LinearLayout>
...@@ -68,9 +68,7 @@ ...@@ -68,9 +68,7 @@
android:id="@+id/subheader" android:id="@+id/subheader"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:lineSpacingMultiplier="1.3" style="@style/PromoDialogNormalText" />
android:textColor="#646464"
android:textSize="@dimen/promo_dialog_normal_text_size" />
</org.chromium.chrome.browser.widget.BoundedLinearLayout> </org.chromium.chrome.browser.widget.BoundedLinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -340,6 +340,9 @@ ...@@ -340,6 +340,9 @@
<item name="android:windowIsTranslucent">true</item> <item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
</style> </style>
<style name="PromoDialogNormalText" parent="@style/BlackDisabledText2">
<item name="android:lineSpacingMultiplier">1.3</item>
</style>
<!-- Cast and media playback notifications --> <!-- Cast and media playback notifications -->
<style <style
......
...@@ -143,7 +143,6 @@ ...@@ -143,7 +143,6 @@
<dimen name="promo_dialog_max_content_width">320dp</dimen> <dimen name="promo_dialog_max_content_width">320dp</dimen>
<dimen name="promo_dialog_min_scrollable_height">100dp</dimen> <dimen name="promo_dialog_min_scrollable_height">100dp</dimen>
<dimen name="promo_dialog_title_text_size">23sp</dimen> <dimen name="promo_dialog_title_text_size">23sp</dimen>
<dimen name="promo_dialog_normal_text_size">14sp</dimen>
<!-- Data Saver --> <!-- Data Saver -->
<dimen name="data_usage_chart_height">252dp</dimen> <dimen name="data_usage_chart_height">252dp</dimen>
......
...@@ -161,6 +161,7 @@ public abstract class ChromeFeatureList { ...@@ -161,6 +161,7 @@ public abstract class ChromeFeatureList {
public static final String CHROME_HOME_DESTROY_SUGGESTIONS = "ChromeHomeDestroySuggestions"; public static final String CHROME_HOME_DESTROY_SUGGESTIONS = "ChromeHomeDestroySuggestions";
public static final String CHROME_HOME_DOODLE = "ChromeHomeDoodle"; public static final String CHROME_HOME_DOODLE = "ChromeHomeDoodle";
public static final String CHROME_HOME_EXPAND_BUTTON = "ChromeHomeExpandButton"; public static final String CHROME_HOME_EXPAND_BUTTON = "ChromeHomeExpandButton";
public static final String CHROME_HOME_PROMO = "ChromeHomePromo";
public static final String CONTENT_SUGGESTIONS_FAVICONS_FROM_NEW_SERVER = public static final String CONTENT_SUGGESTIONS_FAVICONS_FROM_NEW_SERVER =
"ContentSuggestionsFaviconsFromNewServer"; "ContentSuggestionsFaviconsFromNewServer";
public static final String CONTENT_SUGGESTIONS_NOTIFICATIONS = public static final String CONTENT_SUGGESTIONS_NOTIFICATIONS =
......
...@@ -121,6 +121,7 @@ import org.chromium.chrome.browser.widget.OverviewListLayout; ...@@ -121,6 +121,7 @@ import org.chromium.chrome.browser.widget.OverviewListLayout;
import org.chromium.chrome.browser.widget.ViewHighlighter; import org.chromium.chrome.browser.widget.ViewHighlighter;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet.StateChangeReason; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet.StateChangeReason;
import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoDialog;
import org.chromium.chrome.browser.widget.emptybackground.EmptyBackgroundViewWrapper; import org.chromium.chrome.browser.widget.emptybackground.EmptyBackgroundViewWrapper;
import org.chromium.chrome.browser.widget.textbubble.ViewAnchoredTextBubble; import org.chromium.chrome.browser.widget.textbubble.ViewAnchoredTextBubble;
import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.feature_engagement.EventConstants;
...@@ -484,9 +485,15 @@ public class ChromeTabbedActivity ...@@ -484,9 +485,15 @@ public class ChromeTabbedActivity
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel(); TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
if (!SigninPromoUtil.launchSigninPromoIfNeeded(this)) { if (!SigninPromoUtil.launchSigninPromoIfNeeded(this)) {
if (!DataReductionPromoScreen.launchDataReductionPromo( if (!DataReductionPromoScreen.launchDataReductionPromo(
this, currentModel.isIncognito()) this, currentModel.isIncognito())) {
&& getBottomSheet() != null) { // TODO(mdjones): Refine this triggering logic when promo is complete:
getBottomSheet().showHelpBubbleIfNecessary(); // crbug.com/767738
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)) {
ChromeHomePromoDialog chDialog = new ChromeHomePromoDialog(this);
chDialog.show();
} else if (getBottomSheet() != null) {
getBottomSheet().showHelpBubbleIfNecessary();
}
} }
} }
} else { } else {
......
...@@ -45,6 +45,7 @@ public class ChromePreferenceManager { ...@@ -45,6 +45,7 @@ public class ChromePreferenceManager {
"contextual_search_current_week_number"; "contextual_search_current_week_number";
private static final String HERB_FLAVOR_KEY = "herb_flavor"; private static final String HERB_FLAVOR_KEY = "herb_flavor";
private static final String CHROME_HOME_ENABLED_KEY = "chrome_home_enabled"; private static final String CHROME_HOME_ENABLED_KEY = "chrome_home_enabled";
private static final String CHROME_HOME_USER_ENABLED_KEY = "chrome_home_user_enabled";
private static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; private static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser";
...@@ -414,6 +415,29 @@ public class ChromePreferenceManager { ...@@ -414,6 +415,29 @@ public class ChromePreferenceManager {
return mSharedPreferences.getBoolean(CHROME_HOME_ENABLED_KEY, false); return mSharedPreferences.getBoolean(CHROME_HOME_ENABLED_KEY, false);
} }
/**
* Set whether or not Chrome Home is enabled by the user.
* @param isEnabled If Chrome Home is enabled by the user.
*/
public void setChromeHomeUserEnabled(boolean isEnabled) {
writeBoolean(CHROME_HOME_USER_ENABLED_KEY, isEnabled);
}
/**
* Get whether or not Chrome Home is enabled by the user.
* @return True if Chrome Home is enabled by the user.
*/
public boolean isChromeHomeUserEnabled() {
return mSharedPreferences.getBoolean(CHROME_HOME_USER_ENABLED_KEY, false);
}
/**
* @return Whether or not the user has set their Chrome Home preference.
*/
public boolean isChromeHomeUserPreferenceSet() {
return mSharedPreferences.contains(CHROME_HOME_USER_ENABLED_KEY);
}
/** Marks that the content suggestions surface has been shown. */ /** Marks that the content suggestions surface has been shown. */
public void setSuggestionsSurfaceShown() { public void setSuggestionsSurfaceShown() {
writeBoolean(CONTENT_SUGGESTIONS_SHOWN_KEY, true); writeBoolean(CONTENT_SUGGESTIONS_SHOWN_KEY, true);
......
...@@ -255,6 +255,16 @@ public class FeatureUtilities { ...@@ -255,6 +255,16 @@ public class FeatureUtilities {
manager.setChromeHomeEnabled(isChromeHomeEnabled); manager.setChromeHomeEnabled(isChromeHomeEnabled);
} }
/**
* Update the user's setting for Chrome Home. This is a user-facing setting different from the
* one in chrome://flags. This setting will take prescience over the one in flags.
* @param enabled Whether or not the feature should be enabled.
*/
public static void switchChromeHomeUserSetting(boolean enabled) {
ChromePreferenceManager.getInstance().setChromeHomeUserEnabled(enabled);
sChromeHomeEnabled = enabled;
}
/** /**
* @return Whether or not chrome should attach the toolbar to the bottom of the screen. * @return Whether or not chrome should attach the toolbar to the bottom of the screen.
*/ */
...@@ -263,17 +273,25 @@ public class FeatureUtilities { ...@@ -263,17 +273,25 @@ public class FeatureUtilities {
if (DeviceFormFactor.isTablet()) return false; if (DeviceFormFactor.isTablet()) return false;
if (sChromeHomeEnabled == null) { if (sChromeHomeEnabled == null) {
boolean isUserPreferenceSet = false;
ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
// Allow disk access for preferences while Chrome Home is in experimentation. // Allow disk access for preferences while Chrome Home is in experimentation.
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
try { try {
sChromeHomeEnabled = ChromePreferenceManager.getInstance().isChromeHomeEnabled(); if (ChromePreferenceManager.getInstance().isChromeHomeUserPreferenceSet()) {
isUserPreferenceSet = true;
sChromeHomeEnabled = prefManager.isChromeHomeUserEnabled();
} else {
sChromeHomeEnabled = prefManager.isChromeHomeEnabled();
}
} finally { } finally {
StrictMode.setThreadPolicy(oldPolicy); StrictMode.setThreadPolicy(oldPolicy);
} }
// If the browser has been initialized by this point, check the experiment as well to // If the browser has been initialized by this point, check the experiment as well to
// avoid the restart logic in cacheChromeHomeEnabled. // avoid the restart logic in cacheChromeHomeEnabled.
if (ChromeFeatureList.isInitialized()) { if (ChromeFeatureList.isInitialized() && !isUserPreferenceSet) {
boolean chromeHomeExperimentEnabled = boolean chromeHomeExperimentEnabled =
ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME); ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME);
......
// 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.
package org.chromium.chrome.browser.widget.bottomsheet;
import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import org.chromium.base.ApplicationStatus;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.chrome.browser.widget.PromoDialog;
import java.lang.ref.WeakReference;
/**
* A promotion for Chrome Home (the bottom sheet). This dialog can optionally restart the current
* activity to bring a user in or out of the feature.
*/
public class ChromeHomePromoDialog extends PromoDialog {
/** Whether or not the switch in the promo is enabled or disabled. */
private boolean mSwitchStateShouldEnable;
/**
* Default constructor.
* @param activity The {@link Activity} showing the promo.
*/
public ChromeHomePromoDialog(Activity activity) {
super(activity);
}
@Override
protected DialogParams getDialogParams() {
PromoDialog.DialogParams params = new PromoDialog.DialogParams();
params.headerStringResource = R.string.chrome_home_promo_dialog_title;
params.subheaderStringResource = R.string.chrome_home_promo_dialog_message;
params.primaryButtonStringResource = R.string.ok;
params.drawableResource = R.drawable.chrome_home_promo_static;
return params;
}
@Override
public void onClick(View view) {
if (mSwitchStateShouldEnable != FeatureUtilities.isChromeHomeEnabled()) {
FeatureUtilities.switchChromeHomeUserSetting(mSwitchStateShouldEnable);
restartChromeInstances();
}
// There is only one button for this dialog, so dismiss on any click.
dismiss();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final String onString = getContext().getString(R.string.text_on);
final String offString = getContext().getString(R.string.text_off);
View toggleLayout = getLayoutInflater().inflate(R.layout.chrome_home_promo_toggle, null);
final TextView toggleText =
(TextView) toggleLayout.findViewById(R.id.chrome_home_promo_state_text);
Switch toggle = (Switch) toggleLayout.findViewById(R.id.chrome_home_toggle);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean enabled) {
mSwitchStateShouldEnable = enabled;
toggleText.setText(mSwitchStateShouldEnable ? onString : offString);
}
});
toggle.setChecked(FeatureUtilities.isChromeHomeEnabled());
toggleText.setText(FeatureUtilities.isChromeHomeEnabled() ? onString : offString);
addControl(toggleLayout);
}
/**
* Restart any open Chrome instances, including the activity this promo is running in.
*/
private void restartChromeInstances() {
// If there can be multiple activities, restart them before restarting this one.
if (FeatureUtilities.isTabModelMergingEnabled()) {
Class<?> otherWindowActivityClass =
MultiWindowUtils.getInstance().getOpenInOtherWindowActivity(getOwnerActivity());
for (WeakReference<Activity> activityRef : ApplicationStatus.getRunningActivities()) {
Activity activity = activityRef.get();
if (activity == null) continue;
if (activity.getClass().equals(otherWindowActivityClass)) {
activity.recreate();
break;
}
}
}
getOwnerActivity().recreate();
}
@Override
public void onDismiss(DialogInterface dialogInterface) {}
}
...@@ -3199,6 +3199,15 @@ You must have Bluetooth and Location turned on in order to use the Physical Web. ...@@ -3199,6 +3199,15 @@ You must have Bluetooth and Location turned on in order to use the Physical Web.
<message name="IDS_BOTTOM_SHEET_APP_MENU_IPH" desc="Label for in-product help that appears in the Chrome three-dot menu (navigation menu). In previous versions of Chrome, the menu contained Bookmarks, Downloads, and History. In this version of Chrome, these three items have been moved out of the menu. Tapping this help text will show the user where they can find these three items. 'Bookmarks', 'Downloads', and 'History' should use the same translations as in Chrome settings and menu items. The tone of this string is that of the user asking Chrome, 'where are these 3 things?'"> <message name="IDS_BOTTOM_SHEET_APP_MENU_IPH" desc="Label for in-product help that appears in the Chrome three-dot menu (navigation menu). In previous versions of Chrome, the menu contained Bookmarks, Downloads, and History. In this version of Chrome, these three items have been moved out of the menu. Tapping this help text will show the user where they can find these three items. 'Bookmarks', 'Downloads', and 'History' should use the same translations as in Chrome settings and menu items. The tone of this string is that of the user asking Chrome, 'where are these 3 things?'">
Where are bookmarks, downloads, and history? Where are bookmarks, downloads, and history?
</message> </message>
<message name="IDS_CHROME_HOME_PROMO_DIALOG_TITLE" desc="The title for the dialog promoting the Chrome Home feature.">
Try the new Chrome
</message>
<message name="IDS_CHROME_HOME_PROMO_DIALOG_MESSAGE" desc="The message for the dialog promoting the Chrome Home feature. The message emphasizes the fact that both appearance and functionality have been updated.">
One swipe access to your shortcuts and bookmarks with a fresh new look.
</message>
<message name="IDS_CHROME_HOME_PROMO_DIALOG_CHANGE_LATER" desc="The message beside the toggle that would enable or disable the Chrome Home feature. This string is used to indicate that the user may change the setting later.">
(You can change this later)
</message>
<!-- Photo picker --> <!-- Photo picker -->
<message name="IDS_PHOTO_PICKER_SELECT_IMAGES" desc="The label in the title bar of the Photo Picker dialog, suggesting which action the user should take."> <message name="IDS_PHOTO_PICKER_SELECT_IMAGES" desc="The label in the title bar of the Photo Picker dialog, suggesting which action the user should take.">
......
...@@ -1313,6 +1313,7 @@ chrome_java_sources = [ ...@@ -1313,6 +1313,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetMetrics.java", "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetMetrics.java",
"java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetNewTabController.java", "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetNewTabController.java",
"java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserver.java", "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserver.java",
"java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoDialog.java",
"java/src/org/chromium/chrome/browser/widget/bottomsheet/EmptyBottomSheetObserver.java", "java/src/org/chromium/chrome/browser/widget/bottomsheet/EmptyBottomSheetObserver.java",
"java/src/org/chromium/chrome/browser/widget/bottomsheet/PlaceholderSheetContent.java", "java/src/org/chromium/chrome/browser/widget/bottomsheet/PlaceholderSheetContent.java",
"java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java", "java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java",
......
...@@ -1931,6 +1931,9 @@ const FeatureEntry kFeatureEntries[] = { ...@@ -1931,6 +1931,9 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-chrome-home", flag_descriptions::kChromeHomeName, {"enable-chrome-home", flag_descriptions::kChromeHomeName,
flag_descriptions::kChromeHomeDescription, kOsAndroid, flag_descriptions::kChromeHomeDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kChromeHomeFeature)}, FEATURE_VALUE_TYPE(chrome::android::kChromeHomeFeature)},
{"always-show-chrome-home-promo", flag_descriptions::kChromeHomePromoName,
flag_descriptions::kChromeHomePromoDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kChromeHomePromo)},
{"enable-chrome-home-doodle", flag_descriptions::kChromeHomeDoodleName, {"enable-chrome-home-doodle", flag_descriptions::kChromeHomeDoodleName,
flag_descriptions::kChromeHomeDoodleDescription, kOsAndroid, flag_descriptions::kChromeHomeDoodleDescription, kOsAndroid,
FEATURE_VALUE_TYPE(chrome::android::kChromeHomeDoodle)}, FEATURE_VALUE_TYPE(chrome::android::kChromeHomeDoodle)},
......
...@@ -61,6 +61,7 @@ const base::Feature* kFeaturesExposedToJava[] = { ...@@ -61,6 +61,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&kChromeHomeDestroySuggestions, &kChromeHomeDestroySuggestions,
&kChromeHomeDoodle, &kChromeHomeDoodle,
&kChromeHomeExpandButton, &kChromeHomeExpandButton,
&kChromeHomePromo,
&kChromeHomeSwipeLogic, &kChromeHomeSwipeLogic,
&kContentSuggestionsLargeThumbnail, &kContentSuggestionsLargeThumbnail,
&kContentSuggestionsScrollToLoad, &kContentSuggestionsScrollToLoad,
...@@ -171,6 +172,9 @@ const base::Feature kChromeHomeDoodle{"ChromeHomeDoodle", ...@@ -171,6 +172,9 @@ const base::Feature kChromeHomeDoodle{"ChromeHomeDoodle",
const base::Feature kChromeHomeExpandButton{"ChromeHomeExpandButton", const base::Feature kChromeHomeExpandButton{"ChromeHomeExpandButton",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kChromeHomePromo{"ChromeHomePromo",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kChromeHomeSwipeLogic{"ChromeHomeSwipeLogic", const base::Feature kChromeHomeSwipeLogic{"ChromeHomeSwipeLogic",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
......
...@@ -25,6 +25,7 @@ extern const base::Feature kChromeHomeFeature; ...@@ -25,6 +25,7 @@ extern const base::Feature kChromeHomeFeature;
extern const base::Feature kChromeHomeDestroySuggestions; extern const base::Feature kChromeHomeDestroySuggestions;
extern const base::Feature kChromeHomeDoodle; extern const base::Feature kChromeHomeDoodle;
extern const base::Feature kChromeHomeExpandButton; extern const base::Feature kChromeHomeExpandButton;
extern const base::Feature kChromeHomePromo;
extern const base::Feature kChromeHomeSwipeLogic; extern const base::Feature kChromeHomeSwipeLogic;
extern const base::Feature kContentSuggestionsLargeThumbnail; extern const base::Feature kContentSuggestionsLargeThumbnail;
extern const base::Feature kContentSuggestionsScrollToLoad; extern const base::Feature kContentSuggestionsScrollToLoad;
......
...@@ -1577,6 +1577,10 @@ const char kChromeHomeExpandButtonName[] = "Chrome Home Expand Button"; ...@@ -1577,6 +1577,10 @@ const char kChromeHomeExpandButtonName[] = "Chrome Home Expand Button";
const char kChromeHomeExpandButtonDescription[] = const char kChromeHomeExpandButtonDescription[] =
"Enables the expand button for Chrome Home."; "Enables the expand button for Chrome Home.";
const char kChromeHomePromoName[] = "Chrome Home Promo";
const char kChromeHomePromoDescription[] =
"Force the Chrome Home promotion to show each time the browser restarts.";
const char kChromeHomeSwipeLogicName[] = "Chrome Home Swipe Logic"; const char kChromeHomeSwipeLogicName[] = "Chrome Home Swipe Logic";
const char kChromeHomeSwipeLogicDescription[] = const char kChromeHomeSwipeLogicDescription[] =
"Various swipe logic options for Chrome Home for sheet expansion."; "Various swipe logic options for Chrome Home for sheet expansion.";
......
...@@ -975,6 +975,9 @@ extern const char kChromeHomeDoodleDescription[]; ...@@ -975,6 +975,9 @@ extern const char kChromeHomeDoodleDescription[];
extern const char kChromeHomeExpandButtonName[]; extern const char kChromeHomeExpandButtonName[];
extern const char kChromeHomeExpandButtonDescription[]; extern const char kChromeHomeExpandButtonDescription[];
extern const char kChromeHomePromoName[];
extern const char kChromeHomePromoDescription[];
extern const char kChromeHomeSwipeLogicName[]; extern const char kChromeHomeSwipeLogicName[];
extern const char kChromeHomeSwipeLogicDescription[]; extern const char kChromeHomeSwipeLogicDescription[];
extern const char kChromeHomeSwipeLogicRestrictArea[]; extern const char kChromeHomeSwipeLogicRestrictArea[];
......
...@@ -23569,6 +23569,7 @@ uploading your change for review. These are checked by presubmit scripts. ...@@ -23569,6 +23569,7 @@ uploading your change for review. These are checked by presubmit scripts.
<int value="-894214299" label="fill-on-account-select:enabled"/> <int value="-894214299" label="fill-on-account-select:enabled"/>
<int value="-894185031" label="HighDynamicRange:disabled"/> <int value="-894185031" label="HighDynamicRange:disabled"/>
<int value="-891856063" label="MidiManagerAndroid:enabled"/> <int value="-891856063" label="MidiManagerAndroid:enabled"/>
<int value="-886912558" label="ChromeHomePromo:enabled"/>
<int value="-885601782" label="enable-contextual-search"/> <int value="-885601782" label="enable-contextual-search"/>
<int value="-884864731" label="WebPaymentsSingleAppUiSkip:enabled"/> <int value="-884864731" label="WebPaymentsSingleAppUiSkip:enabled"/>
<int value="-881854123" label="enable-heap-profiling"/> <int value="-881854123" label="enable-heap-profiling"/>
...@@ -24463,6 +24464,7 @@ from previous Chrome versions. ...@@ -24463,6 +24464,7 @@ from previous Chrome versions.
<int value="1820317896" label="NTPShowGoogleGInOmnibox:disabled"/> <int value="1820317896" label="NTPShowGoogleGInOmnibox:disabled"/>
<int value="1820451991" label="enable-offline-auto-reload"/> <int value="1820451991" label="enable-offline-auto-reload"/>
<int value="1821723343" label="disable-saml-signin"/> <int value="1821723343" label="disable-saml-signin"/>
<int value="1825940786" label="ChromeHomePromo:disabled"/>
<int value="1827369558" label="AndroidPayIntegrationV1:disabled"/> <int value="1827369558" label="AndroidPayIntegrationV1:disabled"/>
<int value="1828660283" label="enable-webfonts-intervention-trigger"/> <int value="1828660283" label="enable-webfonts-intervention-trigger"/>
<int value="1831835753" label="MaterialDesignIncognitoNTP:enabled"/> <int value="1831835753" label="MaterialDesignIncognitoNTP:enabled"/>
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