Chromium Code Reviews| 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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 167 if (!web_contents) | 167 if (!web_contents) |
| 168 return false; | 168 return false; |
| 169 | 169 |
| 170 return extension_action_ && | 170 return extension_action_ && |
| 171 extension_action_->HasPopup(SessionTabHelper::IdForTab(web_contents)); | 171 extension_action_->HasPopup(SessionTabHelper::IdForTab(web_contents)); |
| 172 } else if (command_id == UNINSTALL) { | 172 } else if (command_id == UNINSTALL) { |
| 173 // Some extension types can not be uninstalled. | 173 // Some extension types can not be uninstalled. |
| 174 extensions::ManagementPolicy* policy = | 174 extensions::ManagementPolicy* policy = |
| 175 extensions::ExtensionSystem::Get(profile_)->management_policy(); | 175 extensions::ExtensionSystem::Get(profile_)->management_policy(); |
| 176 return policy->UserMayModifySettings(extension, nullptr) && | 176 return policy->UserMayModifySettings(extension, nullptr) && |
| 177 !policy->MustRemainInstalled(extension, nullptr); | 177 !policy->MustRemainInstalled(extension, nullptr); |
|
Finnur
2015/05/20 12:02:35
nit: I think I'd like to see a private function ca
Devlin
2015/05/20 20:40:18
Done.
| |
| 178 } | 178 } |
| 179 return true; | 179 return true; |
| 180 } | 180 } |
| 181 | 181 |
| 182 bool ExtensionContextMenuModel::GetAcceleratorForCommandId( | 182 bool ExtensionContextMenuModel::GetAcceleratorForCommandId( |
| 183 int command_id, ui::Accelerator* accelerator) { | 183 int command_id, ui::Accelerator* accelerator) { |
| 184 return false; | 184 return false; |
| 185 } | 185 } |
| 186 | 186 |
| 187 void ExtensionContextMenuModel::ExecuteCommand(int command_id, | 187 void ExtensionContextMenuModel::ExecuteCommand(int command_id, |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 WebContents* web_contents = GetActiveWebContents(); | 299 WebContents* web_contents = GetActiveWebContents(); |
| 300 if (web_contents && | 300 if (web_contents && |
| 301 extensions::ActiveScriptController::GetForWebContents(web_contents) | 301 extensions::ActiveScriptController::GetForWebContents(web_contents) |
| 302 ->WantsToRun(extension)) { | 302 ->WantsToRun(extension)) { |
| 303 AddItemWithStringId(ALWAYS_RUN, IDS_EXTENSIONS_ALWAYS_RUN); | 303 AddItemWithStringId(ALWAYS_RUN, IDS_EXTENSIONS_ALWAYS_RUN); |
| 304 } | 304 } |
| 305 | 305 |
| 306 if (!is_component_ || extensions::OptionsPageInfo::HasOptionsPage(extension)) | 306 if (!is_component_ || extensions::OptionsPageInfo::HasOptionsPage(extension)) |
| 307 AddItemWithStringId(CONFIGURE, IDS_EXTENSIONS_OPTIONS_MENU_ITEM); | 307 AddItemWithStringId(CONFIGURE, IDS_EXTENSIONS_OPTIONS_MENU_ITEM); |
| 308 | 308 |
| 309 if (!is_component_) | 309 if (!is_component_) { |
| 310 AddItem(UNINSTALL, l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL)); | 310 extensions::ManagementPolicy* policy = |
| 311 extensions::ExtensionSystem::Get(profile_)->management_policy(); | |
| 312 bool is_required_by_policy = | |
| 313 !policy->UserMayModifySettings(extension, nullptr) || | |
| 314 policy->MustRemainInstalled(extension, nullptr); | |
| 315 int message_id = is_required_by_policy ? | |
| 316 IDS_EXTENSIONS_INSTALLED_BY_ADMIN : IDS_EXTENSIONS_UNINSTALL; | |
| 317 AddItem(UNINSTALL, l10n_util::GetStringUTF16(message_id)); | |
| 318 if (is_required_by_policy) { | |
| 319 int uninstall_index = GetIndexOfCommandId(UNINSTALL); | |
| 320 SetIcon(uninstall_index, | |
| 321 ui::ResourceBundle::GetSharedInstance().GetImageNamed( | |
| 322 IDR_CONTROLLED_SETTING_MANDATORY)); | |
| 323 } | |
| 324 } | |
| 311 | 325 |
| 312 // Add a toggle visibility (show/hide) if the extension icon is shown on the | 326 // Add a toggle visibility (show/hide) if the extension icon is shown on the |
| 313 // toolbar. | 327 // toolbar. |
| 314 int visibility_string_id = | 328 int visibility_string_id = |
| 315 GetVisibilityStringId(profile_, extension, button_visibility); | 329 GetVisibilityStringId(profile_, extension, button_visibility); |
| 316 if (visibility_string_id != -1) | 330 if (visibility_string_id != -1) |
| 317 AddItemWithStringId(TOGGLE_VISIBILITY, visibility_string_id); | 331 AddItemWithStringId(TOGGLE_VISIBILITY, visibility_string_id); |
| 318 | 332 |
| 319 if (!is_component_) { | 333 if (!is_component_) { |
| 320 AddSeparator(ui::NORMAL_SEPARATOR); | 334 AddSeparator(ui::NORMAL_SEPARATOR); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 341 extension_items_count_ = 0; | 355 extension_items_count_ = 0; |
| 342 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), | 356 extension_items_->AppendExtensionItems(MenuItem::ExtensionKey(extension_id_), |
| 343 base::string16(), | 357 base::string16(), |
| 344 &extension_items_count_, | 358 &extension_items_count_, |
| 345 true); // is_action_menu | 359 true); // is_action_menu |
| 346 } | 360 } |
| 347 | 361 |
| 348 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { | 362 content::WebContents* ExtensionContextMenuModel::GetActiveWebContents() const { |
| 349 return browser_->tab_strip_model()->GetActiveWebContents(); | 363 return browser_->tab_strip_model()->GetActiveWebContents(); |
| 350 } | 364 } |
| OLD | NEW |