Commit 03c91988 authored by Friedrich Horschig's avatar Friedrich Horschig Committed by Commit Bot

Add search bar to Android password settings

By enabling the feature PasswordSearch, a search icon will appear in the
action bar in Chrome > Settings > Save Passwords.

Clicking the icon will trigger a search box that hides non-password
views.
Every newly typed letter will instantly filter passwords which
don't contain the query. Ignores case.

Update: instead of adding a new white icon, the ic_search is recolored.
Update: merged with WIP crrev/c/868213

Bug: 794108
Change-Id: I9b4e3c7754bb5b0cc56e3156a746bcbf44aa5bd3
Reviewed-on: https://chromium-review.googlesource.com/866830
Commit-Queue: Friedrich Horschig <fhorschig@chromium.org>
Reviewed-by: default avatarMaxim Kolosovskiy <kolos@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531891}
parent 63fe7062
......@@ -6,6 +6,13 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:chrome="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/menu_id_search"
android:icon="@drawable/ic_search"
android:title="@string/search"
chrome:showAsAction="ifRoom|collapseActionView"
chrome:actionViewClass="android.support.v7.widget.SearchView" />
<item
android:id="@id/menu_id_general_help"
android:icon="@drawable/ic_help_and_feedback"
......
......@@ -233,6 +233,7 @@ public abstract class ChromeFeatureList {
"OfflinePagesDescriptivePendingStatus";
public static final String OMNIBOX_SPARE_RENDERER = "OmniboxSpareRenderer";
public static final String PAY_WITH_GOOGLE_V1 = "PayWithGoogleV1";
public static final String PASSWORD_SEARCH = "PasswordSearchMobile";
public static final String PROGRESS_BAR_THROTTLE = "ProgressBarThrottle";
public static final String PWA_PERSISTENT_NOTIFICATION = "PwaPersistentNotification";
public static final String READER_MODE_IN_CCT = "ReaderModeInCCT";
......
......@@ -2614,6 +2614,11 @@ const FeatureEntry kFeatureEntries[] = {
{"PasswordImport", flag_descriptions::kPasswordImportName,
flag_descriptions::kPasswordImportDescription, kOsAll,
FEATURE_VALUE_TYPE(password_manager::features::kPasswordImport)},
#if defined(OS_ANDROID)
{"password-search", flag_descriptions::kPasswordSearchMobileName,
flag_descriptions::kPasswordSearchMobileDescription, kOsAndroid,
FEATURE_VALUE_TYPE(password_manager::features::kPasswordSearchMobile)},
#endif // OS_ANDROID
#if defined(OS_CHROMEOS)
{"enable-experimental-accessibility-features",
flag_descriptions::kExperimentalAccessibilityFeaturesName,
......
......@@ -141,6 +141,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&offline_pages::kOfflinePagesSharingFeature,
&omnibox::kAndroidChromeHomePersonalizedSuggestions,
&password_manager::features::kPasswordExport,
&password_manager::features::kPasswordSearchMobile,
&password_manager::features::kViewPasswords,
&subresource_filter::kSafeBrowsingSubresourceFilterExperimentalUI,
&safe_browsing::kDispatchSafetyNetCheckOffThread,
......
......@@ -1116,6 +1116,10 @@ const char kPasswordImportName[] = "Password import";
const char kPasswordImportDescription[] =
"Import functionality in password settings.";
const char kPasswordSearchMobileName[] = "Password search";
const char kPasswordSearchMobileDescription[] =
"Search functionality in password settings.";
const char kPermissionActionReportingName[] = "Permission Action Reporting";
const char kPermissionActionReportingDescription[] =
"Enables permission action reporting to Safe Browsing servers for opted in "
......
......@@ -694,6 +694,9 @@ extern const char kPasswordExportDescription[];
extern const char kPasswordImportName[];
extern const char kPasswordImportDescription[];
extern const char kPasswordSearchMobileName[];
extern const char kPasswordSearchMobileDescription[];
extern const char kPermissionActionReportingName[];
extern const char kPermissionActionReportingDescription[];
......
......@@ -73,6 +73,10 @@ const base::Feature kPasswordExport = {"PasswordExport",
const base::Feature kPasswordImport = {"PasswordImport",
base::FEATURE_DISABLED_BY_DEFAULT};
// Allows searching for saved passwords in the settings page on mobile devices.
const base::Feature kPasswordSearchMobile = {"PasswordSearchMobile",
base::FEATURE_DISABLED_BY_DEFAULT};
// Control whether users can view and copy passwords. This is only used for
// mobile, the desktop version of Chrome always allows users to view
// passwords.
......
......@@ -29,6 +29,7 @@ extern const base::Feature kEnableShowAllSavedPasswordsContextMenu;
extern const base::Feature kFillOnAccountSelect;
extern const base::Feature kPasswordExport;
extern const base::Feature kPasswordImport;
extern const base::Feature kPasswordSearchMobile;
extern const base::Feature kProtectSyncCredential;
extern const base::Feature kProtectSyncCredentialOnReauth;
extern const base::Feature kViewPasswords;
......
......@@ -25487,6 +25487,7 @@ from previous Chrome versions.
<int value="-1463410070" label="IPH_DemoMode:enabled"/>
<int value="-1461261930" label="OutOfBlinkCORS:disabled"/>
<int value="-1460462432" label="disable-media-source"/>
<int value="-1457775295" label="PasswordSearchMobile:disabled"/>
<int value="-1456004000" label="VrShell:disabled"/>
<int value="-1455852875" label="WebAuthentication:disabled"/>
<int value="-1454397907" label="OptimizationHints:disabled"/>
......@@ -25642,6 +25643,7 @@ from previous Chrome versions.
<int value="-1067635248" label="SpeculativeResourcePrefetching:disabled"/>
<int value="-1064733740" label="ui-show-composited-layer-borders"/>
<int value="-1062119671" label="enable-password-force-saving"/>
<int value="-1060395248" label="PasswordSearchMobile:enabled"/>
<int value="-1056310158" label="disable-memory-pressure-chromeos"/>
<int value="-1052782474" label="enable-cloud-devices"/>
<int value="-1052415111" label="malware-interstitial-v2"/>
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