OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 5 #ifndef CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 6 #define CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/files/file_path.h" | 13 #include "base/files/file_path.h" |
14 #include "base/observer_list.h" | 14 #include "base/observer_list.h" |
15 #include "base/strings/string16.h" | 15 #include "base/strings/string16.h" |
16 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" | 16 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
17 #include "chrome/browser/ui/browser.h" | 17 #include "chrome/browser/ui/browser.h" |
18 #include "components/renderer_context_menu/context_menu_content_type.h" | 18 #include "components/renderer_context_menu/context_menu_content_type.h" |
19 #include "components/renderer_context_menu/render_view_context_menu_base.h" | 19 #include "components/renderer_context_menu/render_view_context_menu_base.h" |
20 #include "components/renderer_context_menu/render_view_context_menu_observer.h" | 20 #include "components/renderer_context_menu/render_view_context_menu_observer.h" |
21 #include "components/renderer_context_menu/render_view_context_menu_proxy.h" | 21 #include "components/renderer_context_menu/render_view_context_menu_proxy.h" |
22 #include "content/public/common/context_menu_params.h" | 22 #include "content/public/common/context_menu_params.h" |
| 23 #include "extensions/features/features.h" |
23 #include "printing/features/features.h" | 24 #include "printing/features/features.h" |
24 #include "ui/base/models/simple_menu_model.h" | 25 #include "ui/base/models/simple_menu_model.h" |
25 #include "ui/base/window_open_disposition.h" | 26 #include "ui/base/window_open_disposition.h" |
26 #include "ui/gfx/geometry/vector2d.h" | 27 #include "ui/gfx/geometry/vector2d.h" |
27 | 28 |
28 #if defined(ENABLE_EXTENSIONS) | 29 #if BUILDFLAG(ENABLE_EXTENSIONS) |
29 #include "chrome/browser/extensions/context_menu_matcher.h" | 30 #include "chrome/browser/extensions/context_menu_matcher.h" |
30 #include "chrome/browser/extensions/menu_manager.h" | 31 #include "chrome/browser/extensions/menu_manager.h" |
31 #endif | 32 #endif |
32 | 33 |
33 class OpenWithMenuObserver; | 34 class OpenWithMenuObserver; |
34 class PrintPreviewContextMenuObserver; | 35 class PrintPreviewContextMenuObserver; |
35 class Profile; | 36 class Profile; |
36 class SpellingMenuObserver; | 37 class SpellingMenuObserver; |
37 class SpellingOptionsSubMenuObserver; | 38 class SpellingOptionsSubMenuObserver; |
38 | 39 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 protected: | 83 protected: |
83 Profile* GetProfile(); | 84 Profile* GetProfile(); |
84 | 85 |
85 // Returns a (possibly truncated) version of the current selection text | 86 // Returns a (possibly truncated) version of the current selection text |
86 // suitable for putting in the title of a menu item. | 87 // suitable for putting in the title of a menu item. |
87 base::string16 PrintableSelectionText(); | 88 base::string16 PrintableSelectionText(); |
88 | 89 |
89 // Helper function to escape "&" as "&&". | 90 // Helper function to escape "&" as "&&". |
90 void EscapeAmpersands(base::string16* text); | 91 void EscapeAmpersands(base::string16* text); |
91 | 92 |
92 #if defined(ENABLE_EXTENSIONS) | 93 #if BUILDFLAG(ENABLE_EXTENSIONS) |
93 extensions::ContextMenuMatcher extension_items_; | 94 extensions::ContextMenuMatcher extension_items_; |
94 #endif | 95 #endif |
95 void RecordUsedItem(int id) override; | 96 void RecordUsedItem(int id) override; |
96 | 97 |
97 // Returns true if the browser is in HTML fullscreen mode, initiated by the | 98 // Returns true if the browser is in HTML fullscreen mode, initiated by the |
98 // page (as opposed to the user). Used to determine which shortcut to display. | 99 // page (as opposed to the user). Used to determine which shortcut to display. |
99 bool IsHTML5Fullscreen() const; | 100 bool IsHTML5Fullscreen() const; |
100 | 101 |
101 private: | 102 private: |
102 friend class RenderViewContextMenuTest; | 103 friend class RenderViewContextMenuTest; |
103 friend class TestRenderViewContextMenu; | 104 friend class TestRenderViewContextMenu; |
104 | 105 |
105 static bool IsDevToolsURL(const GURL& url); | 106 static bool IsDevToolsURL(const GURL& url); |
106 static bool IsInternalResourcesURL(const GURL& url); | 107 static bool IsInternalResourcesURL(const GURL& url); |
107 #if defined(ENABLE_EXTENSIONS) | 108 #if BUILDFLAG(ENABLE_EXTENSIONS) |
108 static bool ExtensionContextAndPatternMatch( | 109 static bool ExtensionContextAndPatternMatch( |
109 const content::ContextMenuParams& params, | 110 const content::ContextMenuParams& params, |
110 const extensions::MenuItem::ContextList& contexts, | 111 const extensions::MenuItem::ContextList& contexts, |
111 const extensions::URLPatternSet& target_url_patterns); | 112 const extensions::URLPatternSet& target_url_patterns); |
112 static bool MenuItemMatchesParams(const content::ContextMenuParams& params, | 113 static bool MenuItemMatchesParams(const content::ContextMenuParams& params, |
113 const extensions::MenuItem* item); | 114 const extensions::MenuItem* item); |
114 #endif | 115 #endif |
115 | 116 |
116 // RenderViewContextMenuBase: | 117 // RenderViewContextMenuBase: |
117 void InitMenu() override; | 118 void InitMenu() override; |
(...skipping 21 matching lines...) Expand all Loading... |
139 void AppendPageItems(); | 140 void AppendPageItems(); |
140 void AppendExitFullscreenItem(); | 141 void AppendExitFullscreenItem(); |
141 void AppendCopyItem(); | 142 void AppendCopyItem(); |
142 void AppendPrintItem(); | 143 void AppendPrintItem(); |
143 void AppendMediaRouterItem(); | 144 void AppendMediaRouterItem(); |
144 void AppendRotationItems(); | 145 void AppendRotationItems(); |
145 void AppendEditableItems(); | 146 void AppendEditableItems(); |
146 void AppendLanguageSettings(); | 147 void AppendLanguageSettings(); |
147 void AppendSpellingSuggestionItems(); | 148 void AppendSpellingSuggestionItems(); |
148 void AppendSearchProvider(); | 149 void AppendSearchProvider(); |
149 #if defined(ENABLE_EXTENSIONS) | 150 #if BUILDFLAG(ENABLE_EXTENSIONS) |
150 void AppendAllExtensionItems(); | 151 void AppendAllExtensionItems(); |
151 void AppendCurrentExtensionItems(); | 152 void AppendCurrentExtensionItems(); |
152 #endif | 153 #endif |
153 void AppendPrintPreviewItems(); | 154 void AppendPrintPreviewItems(); |
154 void AppendSearchWebForImageItems(); | 155 void AppendSearchWebForImageItems(); |
155 void AppendProtocolHandlerSubMenu(); | 156 void AppendProtocolHandlerSubMenu(); |
156 void AppendPasswordItems(); | 157 void AppendPasswordItems(); |
157 | 158 |
158 // Command enabled query functions. | 159 // Command enabled query functions. |
159 bool IsReloadEnabled() const; | 160 bool IsReloadEnabled() const; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 | 244 |
244 // In the case of a MimeHandlerView this will point to the WebContents that | 245 // In the case of a MimeHandlerView this will point to the WebContents that |
245 // embeds the MimeHandlerViewGuest. Otherwise this will be the same as | 246 // embeds the MimeHandlerViewGuest. Otherwise this will be the same as |
246 // |source_web_contents_|. | 247 // |source_web_contents_|. |
247 content::WebContents* const embedder_web_contents_; | 248 content::WebContents* const embedder_web_contents_; |
248 | 249 |
249 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu); | 250 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenu); |
250 }; | 251 }; |
251 | 252 |
252 #endif // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ | 253 #endif // CHROME_BROWSER_RENDERER_CONTEXT_MENU_RENDER_VIEW_CONTEXT_MENU_H_ |
OLD | NEW |