OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/extension_context_menu_model.h" | 5 #include "chrome/browser/extensions/extension_context_menu_model.h" |
6 | 6 |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
10 #include "chrome/browser/extensions/active_script_controller.h" | 10 #include "chrome/browser/extensions/active_script_controller.h" |
11 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 11 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
12 #include "chrome/browser/extensions/context_menu_matcher.h" | 12 #include "chrome/browser/extensions/context_menu_matcher.h" |
13 #include "chrome/browser/extensions/extension_action.h" | 13 #include "chrome/browser/extensions/extension_action.h" |
14 #include "chrome/browser/extensions/extension_action_manager.h" | 14 #include "chrome/browser/extensions/extension_action_manager.h" |
15 #include "chrome/browser/extensions/extension_service.h" | 15 #include "chrome/browser/extensions/extension_service.h" |
16 #include "chrome/browser/extensions/extension_tab_util.h" | 16 #include "chrome/browser/extensions/extension_tab_util.h" |
17 #include "chrome/browser/extensions/menu_manager.h" | 17 #include "chrome/browser/extensions/menu_manager.h" |
18 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 19 #include "chrome/browser/sessions/session_tab_helper.h" |
19 #include "chrome/browser/ui/browser.h" | 20 #include "chrome/browser/ui/browser.h" |
20 #include "chrome/browser/ui/browser_window.h" | 21 #include "chrome/browser/ui/browser_window.h" |
21 #include "chrome/browser/ui/chrome_pages.h" | 22 #include "chrome/browser/ui/chrome_pages.h" |
22 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 23 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
23 #include "chrome/common/extensions/extension_constants.h" | 24 #include "chrome/common/extensions/extension_constants.h" |
24 #include "chrome/common/extensions/manifest_url_handler.h" | 25 #include "chrome/common/extensions/manifest_url_handler.h" |
25 #include "chrome/common/pref_names.h" | 26 #include "chrome/common/pref_names.h" |
26 #include "chrome/common/url_constants.h" | 27 #include "chrome/common/url_constants.h" |
27 #include "content/public/browser/web_contents.h" | 28 #include "content/public/browser/web_contents.h" |
28 #include "content/public/common/context_menu_params.h" | 29 #include "content/public/common/context_menu_params.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 } else if (command_id == NAME) { | 120 } else if (command_id == NAME) { |
120 // The NAME links to the Homepage URL. If the extension doesn't have a | 121 // The NAME links to the Homepage URL. If the extension doesn't have a |
121 // homepage, we just disable this menu item. | 122 // homepage, we just disable this menu item. |
122 return extensions::ManifestURL::GetHomepageURL(extension).is_valid(); | 123 return extensions::ManifestURL::GetHomepageURL(extension).is_valid(); |
123 } else if (command_id == INSPECT_POPUP) { | 124 } else if (command_id == INSPECT_POPUP) { |
124 WebContents* web_contents = GetActiveWebContents(); | 125 WebContents* web_contents = GetActiveWebContents(); |
125 if (!web_contents) | 126 if (!web_contents) |
126 return false; | 127 return false; |
127 | 128 |
128 return extension_action_ && | 129 return extension_action_ && |
129 extension_action_->HasPopup(SessionID::IdForTab(web_contents)); | 130 extension_action_->HasPopup(SessionTabHelper::IdForTab(web_contents)); |
130 } else if (command_id == UNINSTALL) { | 131 } else if (command_id == UNINSTALL) { |
131 // Some extension types can not be uninstalled. | 132 // Some extension types can not be uninstalled. |
132 return extensions::ExtensionSystem::Get( | 133 return extensions::ExtensionSystem::Get( |
133 profile_)->management_policy()->UserMayModifySettings(extension, NULL); | 134 profile_)->management_policy()->UserMayModifySettings(extension, NULL); |
134 } | 135 } |
135 return true; | 136 return true; |
136 } | 137 } |
137 | 138 |
138 bool ExtensionContextMenuModel::GetAcceleratorForCommandId( | 139 bool ExtensionContextMenuModel::GetAcceleratorForCommandId( |
139 int command_id, ui::Accelerator* accelerator) { | 140 int command_id, ui::Accelerator* accelerator) { |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 extension_items_count_ = 0; | 285 extension_items_count_ = 0; |
285 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), | 286 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), |
286 base::string16(), | 287 base::string16(), |
287 &extension_items_count_, | 288 &extension_items_count_, |
288 true); // is_action_menu | 289 true); // is_action_menu |
289 } | 290 } |
290 | 291 |
291 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { | 292 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { |
292 return browser_->tab_strip_model()->GetActiveWebContents(); | 293 return browser_->tab_strip_model()->GetActiveWebContents(); |
293 } | 294 } |
OLD | NEW |