| 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 efaa96a83b148475144cece67fb5ef52641a5848..c3d0b2115a7674590937176c4c93663f2482a248 100644
|
| --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
|
| @@ -120,6 +120,10 @@
|
| #include "ui/gfx/path.h"
|
| #include "ui/gfx/text_elider.h"
|
|
|
| +#if !defined(USE_BROWSER_SPELLCHECKER)
|
| +#include "chrome/browser/renderer_context_menu/spellchecker_submenu_observer.h"
|
| +#endif
|
| +
|
| #if defined(ENABLE_EXTENSIONS)
|
| #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
|
| #endif
|
| @@ -270,9 +274,10 @@ const struct UmaEnumCommandIdPair {
|
| {69, -1, IDC_CONTENT_CONTEXT_COPYLINKTEXT},
|
| {70, -1, IDC_CONTENT_CONTEXT_OPENLINKINPROFILE},
|
| {71, -1, IDC_OPEN_LINK_IN_PROFILE_FIRST},
|
| + {72, -1, IDC_SPELLCHECK_MULTI_LINGUAL},
|
| // Add new items here and use |enum_id| from the next line.
|
| // Also, add new items to RenderViewContextMenuItem enum in histograms.xml.
|
| - {72, -1, 0}, // Must be the last. Increment |enum_id| when new IDC
|
| + {73, -1, 0}, // Must be the last. Increment |enum_id| when new IDC
|
| // was added.
|
| };
|
|
|
| @@ -1183,7 +1188,7 @@ void RenderViewContextMenu::AppendEditableItems() {
|
| const bool use_spellcheck_and_search = !chrome::IsRunningInForcedAppMode();
|
|
|
| if (use_spellcheck_and_search)
|
| - AppendSpellingSuggestionsSubMenu();
|
| + AppendSpellcheckSuggestionItems();
|
|
|
| // 'Undo' and 'Redo' for text input with no suggestions and no text selected.
|
| // We make an exception for OS X as context clicking will select the closest
|
| @@ -1221,13 +1226,25 @@ void RenderViewContextMenu::AppendEditableItems() {
|
|
|
| void RenderViewContextMenu::AppendLanguageSettings() {
|
| const bool use_spellcheck_and_search = !chrome::IsRunningInForcedAppMode();
|
| + if (!use_spellcheck_and_search)
|
| + return;
|
|
|
| - if (use_spellcheck_and_search)
|
| +#if defined(USE_BROWSER_SPELLCHECKER)
|
| menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS,
|
| IDS_CONTENT_CONTEXT_LANGUAGE_SETTINGS);
|
| +#else
|
| + if (!spellchecker_submenu_observer_.get()) {
|
| + const int kSpellcheckRadioGroup = 1;
|
| + spellchecker_submenu_observer_.reset(
|
| + new SpellCheckerSubMenuObserver(this, this, kSpellcheckRadioGroup));
|
| + }
|
| +
|
| + spellchecker_submenu_observer_->InitMenu(params_);
|
| + observers_.AddObserver(spellchecker_submenu_observer_.get());
|
| +#endif
|
| }
|
|
|
| -void RenderViewContextMenu::AppendSpellingSuggestionsSubMenu() {
|
| +void RenderViewContextMenu::AppendSpellcheckSuggestionItems() {
|
| if (!spelling_menu_observer_.get())
|
| spelling_menu_observer_.reset(new SpellingMenuObserver(this));
|
| observers_.AddObserver(spelling_menu_observer_.get());
|
|
|