Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Side by Side Diff: chrome/browser/tab_contents/render_view_context_menu.cc

Issue 8422006: Adds a bubble that asks a user whether to integrate the Spelling service. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 #include <set> 6 #include <set>
7 7
8 #include "chrome/browser/tab_contents/render_view_context_menu.h" 8 #include "chrome/browser/tab_contents/render_view_context_menu.h"
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 break; 569 break;
570 #ifdef WEBCONTEXT_MEDIATYPEFILE_DEFINED 570 #ifdef WEBCONTEXT_MEDIATYPEFILE_DEFINED
571 case WebContextMenuData::MediaTypeFile: 571 case WebContextMenuData::MediaTypeFile:
572 break; 572 break;
573 #endif 573 #endif
574 } 574 }
575 575
576 if (params_.is_editable) { 576 if (params_.is_editable) {
577 // Add a menu item that shows suggestions. 577 // Add a menu item that shows suggestions.
578 if (!spelling_menu_observer_.get()) { 578 if (!spelling_menu_observer_.get()) {
579 spelling_menu_observer_.reset( 579 spelling_menu_observer_.reset(new SpellingMenuObserver(this));
580 new SpellingMenuObserver(this));
581 } 580 }
582 if (spelling_menu_observer_.get()) 581 if (spelling_menu_observer_.get()) {
583 observers_.AddObserver(spelling_menu_observer_.get()); 582 observers_.AddObserver(spelling_menu_observer_.get());
583 spelling_menu_observer_->InitMenu(params_);
584 }
584 } 585 }
585 586
586 // Ask our observers to add their menu items.
587 FOR_EACH_OBSERVER(RenderViewContextMenuObserver, observers_,
588 InitMenu(params_));
589
590 if (params_.is_editable) 587 if (params_.is_editable)
591 AppendEditableItems(); 588 AppendEditableItems();
592 else if (has_selection) 589 else if (has_selection)
593 AppendCopyItem(); 590 AppendCopyItem();
594 591
595 if (has_selection) 592 if (has_selection)
596 AppendSearchProvider(); 593 AppendSearchProvider();
597 594
598 if (!IsDevToolsURL(params_.page_url)) 595 if (!IsDevToolsURL(params_.page_url))
599 AppendAllExtensionItems(); 596 AppendAllExtensionItems();
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 return; 828 return;
832 menu_model_.AddItem( 829 menu_model_.AddItem(
833 IDC_CONTENT_CONTEXT_SEARCHWEBFOR, 830 IDC_CONTENT_CONTEXT_SEARCHWEBFOR,
834 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_SEARCHWEBFOR, 831 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_SEARCHWEBFOR,
835 default_provider->short_name(), 832 default_provider->short_name(),
836 printable_selection_text)); 833 printable_selection_text));
837 } 834 }
838 } 835 }
839 836
840 void RenderViewContextMenu::AppendEditableItems() { 837 void RenderViewContextMenu::AppendEditableItems() {
841 // Append Dictionary spell check suggestions.
842 for (size_t i = 0; i < params_.dictionary_suggestions.size() &&
843 IDC_SPELLCHECK_SUGGESTION_0 + i <= IDC_SPELLCHECK_SUGGESTION_LAST;
844 ++i) {
845 menu_model_.AddItem(IDC_SPELLCHECK_SUGGESTION_0 + static_cast<int>(i),
846 params_.dictionary_suggestions[i]);
847 }
848 if (!params_.dictionary_suggestions.empty()) { 838 if (!params_.dictionary_suggestions.empty()) {
849 menu_model_.AddSeparator(); 839 menu_model_.AddSeparator();
850 840
851 // |spellcheck_host| can be null when the suggested word is 841 // |spellcheck_host| can be null when the suggested word is
852 // provided by Web SpellCheck API. 842 // provided by Web SpellCheck API.
853 SpellCheckHost* spellcheck_host = profile_->GetSpellCheckHost(); 843 SpellCheckHost* spellcheck_host = profile_->GetSpellCheckHost();
854 if (spellcheck_host && spellcheck_host->GetMetrics()) 844 if (spellcheck_host && spellcheck_host->GetMetrics())
855 spellcheck_host->GetMetrics()->RecordSuggestionStats(1); 845 spellcheck_host->GetMetrics()->RecordSuggestionStats(1);
856 } 846 }
857 847
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 return false; 1217 return false;
1228 } 1218 }
1229 return params_.media_type == WebContextMenuData::MediaTypeNone || 1219 return params_.media_type == WebContextMenuData::MediaTypeNone ||
1230 params_.media_flags & WebContextMenuData::MediaCanPrint; 1220 params_.media_flags & WebContextMenuData::MediaCanPrint;
1231 1221
1232 case IDC_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS: 1222 case IDC_CONTENT_CONTEXT_NO_SPELLING_SUGGESTIONS:
1233 return false; 1223 return false;
1234 1224
1235 case IDC_CONTENT_CONTEXT_SEARCHWEBFOR: 1225 case IDC_CONTENT_CONTEXT_SEARCHWEBFOR:
1236 case IDC_CONTENT_CONTEXT_GOTOURL: 1226 case IDC_CONTENT_CONTEXT_GOTOURL:
1237 case IDC_SPELLCHECK_SUGGESTION_0:
1238 case IDC_SPELLCHECK_SUGGESTION_1:
1239 case IDC_SPELLCHECK_SUGGESTION_2:
1240 case IDC_SPELLCHECK_SUGGESTION_3:
1241 case IDC_SPELLCHECK_SUGGESTION_4:
1242 case IDC_SPELLPANEL_TOGGLE: 1227 case IDC_SPELLPANEL_TOGGLE:
1243 #if !defined(OS_MACOSX) 1228 #if !defined(OS_MACOSX)
1244 // TODO(jeremy): re-enable - http://crbug.com/34512 . 1229 // TODO(jeremy): re-enable - http://crbug.com/34512 .
1245 case IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS: 1230 case IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS:
1246 #endif 1231 #endif
1247 case IDC_CONTENT_CONTEXT_VIEWFRAMEINFO: 1232 case IDC_CONTENT_CONTEXT_VIEWFRAMEINFO:
1248 return true; 1233 return true;
1249 1234
1250 case IDC_CHECK_SPELLING_OF_THIS_FIELD: 1235 case IDC_CHECK_SPELLING_OF_THIS_FIELD:
1251 return profile_->GetPrefs()->GetBoolean(prefs::kEnableSpellCheck); 1236 return profile_->GetPrefs()->GetBoolean(prefs::kEnableSpellCheck);
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
1682 WindowOpenDisposition disposition = 1667 WindowOpenDisposition disposition =
1683 ForceNewTabDispositionFromEventFlags(event_flags); 1668 ForceNewTabDispositionFromEventFlags(event_flags);
1684 OpenURL(selection_navigation_url_, 1669 OpenURL(selection_navigation_url_,
1685 GURL(), 1670 GURL(),
1686 params_.frame_id, 1671 params_.frame_id,
1687 disposition, 1672 disposition,
1688 content::PAGE_TRANSITION_LINK); 1673 content::PAGE_TRANSITION_LINK);
1689 break; 1674 break;
1690 } 1675 }
1691 1676
1692 case IDC_SPELLCHECK_SUGGESTION_0:
1693 case IDC_SPELLCHECK_SUGGESTION_1:
1694 case IDC_SPELLCHECK_SUGGESTION_2:
1695 case IDC_SPELLCHECK_SUGGESTION_3:
1696 case IDC_SPELLCHECK_SUGGESTION_4: {
1697 rvh->Replace(
1698 params_.dictionary_suggestions[id - IDC_SPELLCHECK_SUGGESTION_0]);
1699 // GetSpellCheckHost() can return null when the suggested word is
1700 // provided by Web SpellCheck API.
1701 SpellCheckHost* spellcheck_host = profile_->GetSpellCheckHost();
1702 if (spellcheck_host && spellcheck_host->GetMetrics())
1703 spellcheck_host->GetMetrics()->RecordReplacedWordStats(1);
1704 break;
1705 }
1706 case IDC_SPELLCHECK_ADD_TO_DICTIONARY: { 1677 case IDC_SPELLCHECK_ADD_TO_DICTIONARY: {
1707 // GetSpellCheckHost() can return null when the suggested word is 1678 // GetSpellCheckHost() can return null when the suggested word is
1708 // provided by Web SpellCheck API. 1679 // provided by Web SpellCheck API.
1709 if (profile_->GetSpellCheckHost()) 1680 if (profile_->GetSpellCheckHost())
1710 profile_->GetSpellCheckHost()->AddWord( 1681 profile_->GetSpellCheckHost()->AddWord(
1711 UTF16ToUTF8(params_.misspelled_word)); 1682 UTF16ToUTF8(params_.misspelled_word));
1712 SpellCheckerPlatform::AddWord(params_.misspelled_word); 1683 SpellCheckerPlatform::AddWord(params_.misspelled_word);
1713 break; 1684 break;
1714 } 1685 }
1715 1686
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1897 profile_->GetPrefs()->GetString(prefs::kAcceptLanguages), 1868 profile_->GetPrefs()->GetString(prefs::kAcceptLanguages),
1898 g_browser_process->clipboard()); 1869 g_browser_process->clipboard());
1899 } 1870 }
1900 1871
1901 void RenderViewContextMenu::MediaPlayerActionAt( 1872 void RenderViewContextMenu::MediaPlayerActionAt(
1902 const gfx::Point& location, 1873 const gfx::Point& location,
1903 const WebMediaPlayerAction& action) { 1874 const WebMediaPlayerAction& action) {
1904 source_tab_contents_->render_view_host()-> 1875 source_tab_contents_->render_view_host()->
1905 ExecuteMediaPlayerActionAtLocation(location, action); 1876 ExecuteMediaPlayerActionAtLocation(location, action);
1906 } 1877 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile.cc ('k') | chrome/browser/tab_contents/spellchecker_submenu_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698