Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.cc

Issue 12094034: Add a link (to view Permissions) to the Extension details on chrome://extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_settings_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ui/webui/extensions/extension_settings_handler.h" 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/base64.h" 8 #include "base/base64.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 source->AddString("extensionSettingsReloadTerminated", 293 source->AddString("extensionSettingsReloadTerminated",
294 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED)); 294 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED));
295 source->AddString("extensionSettingsLaunch", 295 source->AddString("extensionSettingsLaunch",
296 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH)); 296 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH));
297 source->AddString("extensionSettingsRestart", 297 source->AddString("extensionSettingsRestart",
298 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RESTART)); 298 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RESTART));
299 source->AddString("extensionSettingsReloadUnpacked", 299 source->AddString("extensionSettingsReloadUnpacked",
300 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED)); 300 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED));
301 source->AddString("extensionSettingsOptions", 301 source->AddString("extensionSettingsOptions",
302 l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS_LINK)); 302 l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS_LINK));
303 source->AddString("extensionSettingsPermissions",
304 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PERMISSIONS_LINK));
303 source->AddString("extensionSettingsActivity", 305 source->AddString("extensionSettingsActivity",
304 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ACTIVITY_LINK)); 306 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ACTIVITY_LINK));
305 source->AddString("extensionSettingsVisitWebsite", 307 source->AddString("extensionSettingsVisitWebsite",
306 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSITE)); 308 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSITE));
307 source->AddString("extensionSettingsVisitWebStore", 309 source->AddString("extensionSettingsVisitWebStore",
308 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSTORE)); 310 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSTORE));
309 source->AddString("extensionSettingsPolicyControlled", 311 source->AddString("extensionSettingsPolicyControlled",
310 l10n_util::GetStringUTF16(IDS_EXTENSIONS_POLICY_CONTROLLED)); 312 l10n_util::GetStringUTF16(IDS_EXTENSIONS_POLICY_CONTROLLED));
311 source->AddString("extensionSettingsManagedMode", 313 source->AddString("extensionSettingsManagedMode",
312 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCKED_MANAGED_MODE)); 314 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCKED_MANAGED_MODE));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 base::Unretained(this))); 389 base::Unretained(this)));
388 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess", 390 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess",
389 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage, 391 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage,
390 base::Unretained(this))); 392 base::Unretained(this)));
391 web_ui()->RegisterMessageCallback("extensionSettingsUninstall", 393 web_ui()->RegisterMessageCallback("extensionSettingsUninstall",
392 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage, 394 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage,
393 base::Unretained(this))); 395 base::Unretained(this)));
394 web_ui()->RegisterMessageCallback("extensionSettingsOptions", 396 web_ui()->RegisterMessageCallback("extensionSettingsOptions",
395 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage, 397 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage,
396 base::Unretained(this))); 398 base::Unretained(this)));
399 web_ui()->RegisterMessageCallback("extensionSettingsPermissions",
400 base::Bind(&ExtensionSettingsHandler::HandlePermissionsMessage,
401 base::Unretained(this)));
397 web_ui()->RegisterMessageCallback("extensionSettingsShowButton", 402 web_ui()->RegisterMessageCallback("extensionSettingsShowButton",
398 base::Bind(&ExtensionSettingsHandler::HandleShowButtonMessage, 403 base::Bind(&ExtensionSettingsHandler::HandleShowButtonMessage,
399 base::Unretained(this))); 404 base::Unretained(this)));
400 web_ui()->RegisterMessageCallback("extensionSettingsAutoupdate", 405 web_ui()->RegisterMessageCallback("extensionSettingsAutoupdate",
401 base::Bind(&ExtensionSettingsHandler::HandleAutoUpdateMessage, 406 base::Bind(&ExtensionSettingsHandler::HandleAutoUpdateMessage,
402 base::Unretained(this))); 407 base::Unretained(this)));
403 web_ui()->RegisterMessageCallback("extensionSettingsLoadUnpackedExtension", 408 web_ui()->RegisterMessageCallback("extensionSettingsLoadUnpackedExtension",
404 base::Bind(&ExtensionSettingsHandler::HandleLoadUnpackedExtensionMessage, 409 base::Bind(&ExtensionSettingsHandler::HandleLoadUnpackedExtensionMessage,
405 base::Unretained(this))); 410 base::Unretained(this)));
406 } 411 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 } 499 }
495 500
496 void ExtensionSettingsHandler::ExtensionUninstallCanceled() { 501 void ExtensionSettingsHandler::ExtensionUninstallCanceled() {
497 extension_id_prompting_ = ""; 502 extension_id_prompting_ = "";
498 } 503 }
499 504
500 void ExtensionSettingsHandler::ExtensionWarningsChanged() { 505 void ExtensionSettingsHandler::ExtensionWarningsChanged() {
501 MaybeUpdateAfterNotification(); 506 MaybeUpdateAfterNotification();
502 } 507 }
503 508
509 void ExtensionSettingsHandler::InstallUIProceed() {
510 // This should never happen. The dialog only has a cancel button.
511 NOTREACHED();
512 }
513
514 void ExtensionSettingsHandler::InstallUIAbort(bool user_initiated) {
515 }
516
504 void ExtensionSettingsHandler::ReloadUnpackedExtensions() { 517 void ExtensionSettingsHandler::ReloadUnpackedExtensions() {
505 const ExtensionSet* extensions = extension_service_->extensions(); 518 const ExtensionSet* extensions = extension_service_->extensions();
506 std::vector<const Extension*> unpacked_extensions; 519 std::vector<const Extension*> unpacked_extensions;
507 for (ExtensionSet::const_iterator extension = extensions->begin(); 520 for (ExtensionSet::const_iterator extension = extensions->begin();
508 extension != extensions->end(); ++extension) { 521 extension != extensions->end(); ++extension) {
509 if ((*extension)->location() == Extension::LOAD) 522 if ((*extension)->location() == Extension::LOAD)
510 unpacked_extensions.push_back(*extension); 523 unpacked_extensions.push_back(*extension);
511 } 524 }
512 525
513 for (std::vector<const Extension*>::iterator iter = 526 for (std::vector<const Extension*>::iterator iter =
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 void ExtensionSettingsHandler::HandleOptionsMessage(const ListValue* args) { 800 void ExtensionSettingsHandler::HandleOptionsMessage(const ListValue* args) {
788 const Extension* extension = GetActiveExtension(args); 801 const Extension* extension = GetActiveExtension(args);
789 if (!extension || 802 if (!extension ||
790 extensions::ManifestURL::GetOptionsPage(extension).is_empty()) 803 extensions::ManifestURL::GetOptionsPage(extension).is_empty())
791 return; 804 return;
792 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()))-> 805 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()))->
793 process_manager()->OpenOptionsPage(extension, 806 process_manager()->OpenOptionsPage(extension,
794 chrome::FindBrowserWithWebContents(web_ui()->GetWebContents())); 807 chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()));
795 } 808 }
796 809
810 void ExtensionSettingsHandler::HandlePermissionsMessage(const ListValue* args) {
811 std::string extension_id(UTF16ToUTF8(ExtractStringValue(args)));
812 CHECK(!extension_id.empty());
813 const Extension* extension =
814 extension_service_->GetExtensionById(extension_id, true);
815 if (!extension)
816 return;
817
818 prompt_.reset(new ExtensionInstallPrompt(web_contents()));
819 prompt_->ReviewPermissions(this, extension);
820 }
821
797 void ExtensionSettingsHandler::HandleShowButtonMessage(const ListValue* args) { 822 void ExtensionSettingsHandler::HandleShowButtonMessage(const ListValue* args) {
798 const Extension* extension = GetActiveExtension(args); 823 const Extension* extension = GetActiveExtension(args);
799 if (!extension) 824 if (!extension)
800 return; 825 return;
801 extension_service_->extension_prefs()-> 826 extension_service_->extension_prefs()->
802 SetBrowserActionVisibility(extension, true); 827 SetBrowserActionVisibility(extension, true);
803 } 828 }
804 829
805 void ExtensionSettingsHandler::HandleAutoUpdateMessage(const ListValue* args) { 830 void ExtensionSettingsHandler::HandleAutoUpdateMessage(const ListValue* args) {
806 ExtensionUpdater* updater = extension_service_->updater(); 831 ExtensionUpdater* updater = extension_service_->updater();
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 std::vector<std::string> requirement_errors) { 1032 std::vector<std::string> requirement_errors) {
1008 if (requirement_errors.empty()) { 1033 if (requirement_errors.empty()) {
1009 extension_service_->EnableExtension(extension_id); 1034 extension_service_->EnableExtension(extension_id);
1010 } else { 1035 } else {
1011 ExtensionErrorReporter::GetInstance()->ReportError( 1036 ExtensionErrorReporter::GetInstance()->ReportError(
1012 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1037 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1013 true /* be noisy */); 1038 true /* be noisy */);
1014 } 1039 }
1015 requirements_checker_.reset(); 1040 requirements_checker_.reset();
1016 } 1041 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_settings_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698