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" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 #include "chrome/grit/generated_resources.h" | 29 #include "chrome/grit/generated_resources.h" |
30 #include "content/public/browser/web_contents.h" | 30 #include "content/public/browser/web_contents.h" |
31 #include "content/public/common/context_menu_params.h" | 31 #include "content/public/common/context_menu_params.h" |
32 #include "extensions/browser/extension_prefs.h" | 32 #include "extensions/browser/extension_prefs.h" |
33 #include "extensions/browser/extension_registry.h" | 33 #include "extensions/browser/extension_registry.h" |
34 #include "extensions/browser/extension_system.h" | 34 #include "extensions/browser/extension_system.h" |
35 #include "extensions/browser/management_policy.h" | 35 #include "extensions/browser/management_policy.h" |
36 #include "extensions/browser/uninstall_reason.h" | 36 #include "extensions/browser/uninstall_reason.h" |
37 #include "extensions/common/extension.h" | 37 #include "extensions/common/extension.h" |
38 #include "extensions/common/feature_switch.h" | 38 #include "extensions/common/feature_switch.h" |
39 #include "extensions/common/manifest_handlers/options_page_info.h" | |
39 #include "ui/base/l10n/l10n_util.h" | 40 #include "ui/base/l10n/l10n_util.h" |
40 | 41 |
41 using content::OpenURLParams; | 42 using content::OpenURLParams; |
42 using content::Referrer; | 43 using content::Referrer; |
43 using content::WebContents; | 44 using content::WebContents; |
44 using extensions::Extension; | 45 using extensions::Extension; |
45 using extensions::ExtensionActionAPI; | 46 using extensions::ExtensionActionAPI; |
46 using extensions::ExtensionPrefs; | 47 using extensions::ExtensionPrefs; |
47 using extensions::MenuItem; | 48 using extensions::MenuItem; |
48 using extensions::MenuManager; | 49 using extensions::MenuManager; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
134 | 135 |
135 bool ExtensionContextMenuModel::IsCommandIdEnabled(int command_id) const { | 136 bool ExtensionContextMenuModel::IsCommandIdEnabled(int command_id) const { |
136 const Extension* extension = GetExtension(); | 137 const Extension* extension = GetExtension(); |
137 if (!extension) | 138 if (!extension) |
138 return false; | 139 return false; |
139 | 140 |
140 if (command_id >= IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST && | 141 if (command_id >= IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST && |
141 command_id <= IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST) { | 142 command_id <= IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST) { |
142 return extension_items_->IsCommandIdEnabled(command_id); | 143 return extension_items_->IsCommandIdEnabled(command_id); |
143 } else if (command_id == CONFIGURE) { | 144 } else if (command_id == CONFIGURE) { |
144 return | 145 return extensions::OptionsPageInfo::GetOptionsPage(extension) |
145 extensions::ManifestURL::GetOptionsPage(extension).spec().length() > 0; | 146 .spec() |
147 .length() > 0; | |
not at google - send to devlin
2014/08/29 05:39:23
Weird. You can write (url.spec().length() > 0) as
ericzeng
2014/08/29 22:08:49
Done.
| |
146 } else if (command_id == NAME) { | 148 } else if (command_id == NAME) { |
147 // The NAME links to the Homepage URL. If the extension doesn't have a | 149 // The NAME links to the Homepage URL. If the extension doesn't have a |
148 // homepage, we just disable this menu item. | 150 // homepage, we just disable this menu item. |
149 return extensions::ManifestURL::GetHomepageURL(extension).is_valid(); | 151 return extensions::ManifestURL::GetHomepageURL(extension).is_valid(); |
150 } else if (command_id == INSPECT_POPUP) { | 152 } else if (command_id == INSPECT_POPUP) { |
151 WebContents* web_contents = GetActiveWebContents(); | 153 WebContents* web_contents = GetActiveWebContents(); |
152 if (!web_contents) | 154 if (!web_contents) |
153 return false; | 155 return false; |
154 | 156 |
155 return extension_action_ && | 157 return extension_action_ && |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
193 } | 195 } |
194 case ALWAYS_RUN: { | 196 case ALWAYS_RUN: { |
195 WebContents* web_contents = GetActiveWebContents(); | 197 WebContents* web_contents = GetActiveWebContents(); |
196 if (web_contents) { | 198 if (web_contents) { |
197 extensions::ActiveScriptController::GetForWebContents(web_contents) | 199 extensions::ActiveScriptController::GetForWebContents(web_contents) |
198 ->AlwaysRunOnVisibleOrigin(extension); | 200 ->AlwaysRunOnVisibleOrigin(extension); |
199 } | 201 } |
200 break; | 202 break; |
201 } | 203 } |
202 case CONFIGURE: | 204 case CONFIGURE: |
203 DCHECK(!extensions::ManifestURL::GetOptionsPage(extension).is_empty()); | 205 DCHECK( |
206 !extensions::OptionsPageInfo::GetOptionsPage(extension).is_empty()); | |
204 extensions::ExtensionTabUtil::OpenOptionsPage(extension, browser_); | 207 extensions::ExtensionTabUtil::OpenOptionsPage(extension, browser_); |
205 break; | 208 break; |
206 case TOGGLE_VISIBILITY: { | 209 case TOGGLE_VISIBILITY: { |
207 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_); | 210 ExtensionPrefs* prefs = ExtensionPrefs::Get(profile_); |
208 bool visible = ExtensionActionAPI::GetBrowserActionVisibility( | 211 bool visible = ExtensionActionAPI::GetBrowserActionVisibility( |
209 prefs, extension->id()); | 212 prefs, extension->id()); |
210 ExtensionActionAPI::SetBrowserActionVisibility( | 213 ExtensionActionAPI::SetBrowserActionVisibility( |
211 prefs, extension->id(), !visible); | 214 prefs, extension->id(), !visible); |
212 break; | 215 break; |
213 } | 216 } |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
319 extension_items_count_ = 0; | 322 extension_items_count_ = 0; |
320 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), | 323 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), |
321 base::string16(), | 324 base::string16(), |
322 &extension_items_count_, | 325 &extension_items_count_, |
323 true); // is_action_menu | 326 true); // is_action_menu |
324 } | 327 } |
325 | 328 |
326 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { | 329 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { |
327 return browser_->tab_strip_model()->GetActiveWebContents(); | 330 return browser_->tab_strip_model()->GetActiveWebContents(); |
328 } | 331 } |
OLD | NEW |