Chromium Code Reviews| 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..cdd90572745a67ed857141d6e09438d995fc3106 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,14 @@ void RenderViewContextMenu::AppendProtocolHandlerSubMenu() { |
| &protocol_handler_submenu_model_); |
| } |
| +void RenderViewContextMenu::AppendPasswordItems() { |
| + if (password_manager::ForceSavingExperimentEnabled()) { |
|
vabr (Chromium)
2015/05/19 09:58:13
nit: To spare indenting, we usually do
if (!experi
msramek
2015/05/19 12:53:11
I thought that this is semantically better, as App
|
| + 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 +1355,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 +1798,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; |