| Index: chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| index 3c5e9a0f5346255c6f231d7a99b227bee6f1430d..2c54f9709bb2615ed44fe955b473458a6246361e 100644
|
| --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| @@ -66,6 +66,7 @@
|
| #include "components/google/core/browser/google_util.h"
|
| #include "components/metrics/proto/omnibox_input_type.pb.h"
|
| #include "components/omnibox/autocomplete_match.h"
|
| +#include "components/password_manager/core/common/experiments.h"
|
| #include "components/search_engines/template_url.h"
|
| #include "components/search_engines/template_url_service.h"
|
| #include "components/translate/core/browser/translate_download_manager.h"
|
| @@ -222,9 +223,10 @@ const struct UmaEnumCommandIdPair {
|
| {64, IDC_WRITING_DIRECTION_LTR},
|
| {65, IDC_WRITING_DIRECTION_RTL},
|
| {66, IDC_CONTENT_CONTEXT_SHOW_ORIGINAL_IMAGE},
|
| + {67, IDC_CONTENT_CONTEXT_FORCESAVEPASSWORD},
|
| // Add new items here and use |enum_id| from the next line.
|
| // Also, add new items to RenderViewContextMenuItem enum in histograms.xml.
|
| - {67, 0}, // Must be the last. Increment |enum_id| when new IDC was added.
|
| + {68, 0}, // Must be the last. Increment |enum_id| when new IDC was added.
|
| };
|
|
|
| // Collapses large ranges of ids before looking for UMA enum.
|
| @@ -629,6 +631,11 @@ void RenderViewContextMenu::InitMenu() {
|
| ContextMenuContentType::ITEM_GROUP_PRINT_PREVIEW)) {
|
| AppendPrintPreviewItems();
|
| }
|
| +
|
| + if (content_type_->SupportsGroup(
|
| + ContextMenuContentType::ITEM_GROUP_PASSWORD)) {
|
| + AppendPasswordItems();
|
| + }
|
| }
|
|
|
| Profile* RenderViewContextMenu::GetProfile() {
|
| @@ -1038,6 +1045,15 @@ void RenderViewContextMenu::AppendProtocolHandlerSubMenu() {
|
| &protocol_handler_submenu_model_);
|
| }
|
|
|
| +void RenderViewContextMenu::AppendPasswordItems() {
|
| + if (!password_manager::ForceSavingExperimentEnabled())
|
| + return;
|
| +
|
| + menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
|
| + menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_FORCESAVEPASSWORD,
|
| + IDS_CONTENT_CONTEXT_FORCESAVEPASSWORD);
|
| +}
|
| +
|
| // Menu delegate functions -----------------------------------------------------
|
|
|
| bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
|
| @@ -1340,6 +1356,9 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
|
| case IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_SETTINGS:
|
| return true;
|
|
|
| + case IDC_CONTENT_CONTEXT_FORCESAVEPASSWORD:
|
| + return true;
|
| +
|
| default:
|
| NOTREACHED();
|
| return false;
|
| @@ -1780,6 +1799,10 @@ void RenderViewContextMenu::ExecuteCommand(int id, int event_flags) {
|
| break;
|
| }
|
|
|
| + case IDC_CONTENT_CONTEXT_FORCESAVEPASSWORD:
|
| + // TODO(msramek): Force-save the password.
|
| + break;
|
| +
|
| default:
|
| NOTREACHED();
|
| break;
|
|
|