OLD | NEW |
---|---|
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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
62 #include "content/common/view_messages.h" | 62 #include "content/common/view_messages.h" |
63 #include "grit/generated_resources.h" | 63 #include "grit/generated_resources.h" |
64 #include "net/base/escape.h" | 64 #include "net/base/escape.h" |
65 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" | 65 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" |
66 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerAction. h" | 66 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerAction. h" |
67 #include "ui/base/l10n/l10n_util.h" | 67 #include "ui/base/l10n/l10n_util.h" |
68 #include "ui/base/text/text_elider.h" | 68 #include "ui/base/text/text_elider.h" |
69 #include "ui/gfx/favicon_size.h" | 69 #include "ui/gfx/favicon_size.h" |
70 #include "webkit/glue/webmenuitem.h" | 70 #include "webkit/glue/webmenuitem.h" |
71 | 71 |
72 #ifdef OS_CHROMEOS | |
73 #include "chrome/browser/extensions/file_manager_util.h" | |
74 #endif | |
75 | |
72 using WebKit::WebContextMenuData; | 76 using WebKit::WebContextMenuData; |
73 using WebKit::WebMediaPlayerAction; | 77 using WebKit::WebMediaPlayerAction; |
74 using WebKit::WebURL; | 78 using WebKit::WebURL; |
75 using WebKit::WebString; | 79 using WebKit::WebString; |
76 | 80 |
77 namespace { | 81 namespace { |
78 | 82 |
79 bool IsCustomItemEnabled(const std::vector<WebMenuItem>& items, int id) { | 83 bool IsCustomItemEnabled(const std::vector<WebMenuItem>& items, int id) { |
80 DCHECK(id >= IDC_CONTENT_CONTEXT_CUSTOM_FIRST && | 84 DCHECK(id >= IDC_CONTENT_CONTEXT_CUSTOM_FIRST && |
81 id <= IDC_CONTENT_CONTEXT_CUSTOM_LAST); | 85 id <= IDC_CONTENT_CONTEXT_CUSTOM_LAST); |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
665 // Full page plugin, so show page menu items. | 669 // Full page plugin, so show page menu items. |
666 if (params_.link_url.is_empty() && params_.selection_text.empty()) | 670 if (params_.link_url.is_empty() && params_.selection_text.empty()) |
667 AppendPageItems(); | 671 AppendPageItems(); |
668 } else { | 672 } else { |
669 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS, | 673 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS, |
670 IDS_CONTENT_CONTEXT_SAVEPAGEAS); | 674 IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
671 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); | 675 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
672 } | 676 } |
673 } | 677 } |
674 | 678 |
679 static bool ShouldShowTranslateItem(GURL page_url) { | |
achuithb
2011/08/25 17:30:48
Drive-by review with 2 nits. You don't need to wai
Oleg Eterevsky
2011/08/25 17:34:42
Done. Thanks for your comments.
| |
680 if (page_url.SchemeIs("chrome")) | |
681 return false; | |
682 | |
683 #ifdef OS_CHROMEOS | |
684 if (page_url.SchemeIs("chrome-extension") && | |
685 page_url.DomainIs(kFileBrowserDomain)) | |
686 return false; | |
687 #endif | |
688 | |
689 return true; | |
690 } | |
691 | |
675 void RenderViewContextMenu::AppendPageItems() { | 692 void RenderViewContextMenu::AppendPageItems() { |
676 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); | 693 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); |
677 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); | 694 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); |
678 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); | 695 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); |
679 menu_model_.AddSeparator(); | 696 menu_model_.AddSeparator(); |
680 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, | 697 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, |
681 IDS_CONTENT_CONTEXT_SAVEPAGEAS); | 698 IDS_CONTENT_CONTEXT_SAVEPAGEAS); |
682 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); | 699 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); |
683 | 700 |
684 std::string locale = g_browser_process->GetApplicationLocale(); | 701 if (ShouldShowTranslateItem(params_.page_url)) { |
685 locale = TranslateManager::GetLanguageCode(locale); | 702 std::string locale = g_browser_process->GetApplicationLocale(); |
686 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale, true); | 703 locale = TranslateManager::GetLanguageCode(locale); |
687 menu_model_.AddItem( | 704 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale, |
688 IDC_CONTENT_CONTEXT_TRANSLATE, | 705 true); |
689 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); | 706 menu_model_.AddItem( |
707 IDC_CONTENT_CONTEXT_TRANSLATE, | |
708 l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_TRANSLATE, language)); | |
709 } | |
690 | 710 |
691 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, | 711 menu_model_.AddItemWithStringId(IDC_VIEW_SOURCE, |
692 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); | 712 IDS_CONTENT_CONTEXT_VIEWPAGESOURCE); |
693 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, | 713 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWPAGEINFO, |
694 IDS_CONTENT_CONTEXT_VIEWPAGEINFO); | 714 IDS_CONTENT_CONTEXT_VIEWPAGEINFO); |
695 } | 715 } |
696 | 716 |
697 void RenderViewContextMenu::AppendFrameItems() { | 717 void RenderViewContextMenu::AppendFrameItems() { |
698 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_RELOADFRAME, | 718 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_RELOADFRAME, |
699 IDS_CONTENT_CONTEXT_RELOADFRAME); | 719 IDS_CONTENT_CONTEXT_RELOADFRAME); |
(...skipping 1134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1834 g_browser_process->clipboard()); | 1854 g_browser_process->clipboard()); |
1835 } | 1855 } |
1836 | 1856 |
1837 void RenderViewContextMenu::MediaPlayerActionAt( | 1857 void RenderViewContextMenu::MediaPlayerActionAt( |
1838 const gfx::Point& location, | 1858 const gfx::Point& location, |
1839 const WebMediaPlayerAction& action) { | 1859 const WebMediaPlayerAction& action) { |
1840 RenderViewHost* rvh = source_tab_contents_->render_view_host(); | 1860 RenderViewHost* rvh = source_tab_contents_->render_view_host(); |
1841 rvh->Send(new ViewMsg_MediaPlayerActionAt( | 1861 rvh->Send(new ViewMsg_MediaPlayerActionAt( |
1842 rvh->routing_id(), location, action)); | 1862 rvh->routing_id(), location, action)); |
1843 } | 1863 } |
OLD | NEW |