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

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

Issue 12212195: Re-land "view permission" feature (r179916) with Mac Fix. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac Fix Integrated 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
« 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 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 source->AddString("extensionSettingsReloadTerminated", 300 source->AddString("extensionSettingsReloadTerminated",
301 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED)); 301 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED));
302 source->AddString("extensionSettingsLaunch", 302 source->AddString("extensionSettingsLaunch",
303 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH)); 303 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH));
304 source->AddString("extensionSettingsRestart", 304 source->AddString("extensionSettingsRestart",
305 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RESTART)); 305 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RESTART));
306 source->AddString("extensionSettingsReloadUnpacked", 306 source->AddString("extensionSettingsReloadUnpacked",
307 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED)); 307 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED));
308 source->AddString("extensionSettingsOptions", 308 source->AddString("extensionSettingsOptions",
309 l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS_LINK)); 309 l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS_LINK));
310 source->AddString("extensionSettingsPermissions",
311 l10n_util::GetStringUTF16(IDS_EXTENSIONS_PERMISSIONS_LINK));
310 source->AddString("extensionSettingsActivity", 312 source->AddString("extensionSettingsActivity",
311 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ACTIVITY_LINK)); 313 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ACTIVITY_LINK));
312 source->AddString("extensionSettingsVisitWebsite", 314 source->AddString("extensionSettingsVisitWebsite",
313 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSITE)); 315 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSITE));
314 source->AddString("extensionSettingsVisitWebStore", 316 source->AddString("extensionSettingsVisitWebStore",
315 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSTORE)); 317 l10n_util::GetStringUTF16(IDS_EXTENSIONS_VISIT_WEBSTORE));
316 source->AddString("extensionSettingsPolicyControlled", 318 source->AddString("extensionSettingsPolicyControlled",
317 l10n_util::GetStringUTF16(IDS_EXTENSIONS_POLICY_CONTROLLED)); 319 l10n_util::GetStringUTF16(IDS_EXTENSIONS_POLICY_CONTROLLED));
318 source->AddString("extensionSettingsManagedMode", 320 source->AddString("extensionSettingsManagedMode",
319 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCKED_MANAGED_MODE)); 321 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LOCKED_MANAGED_MODE));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 base::Unretained(this))); 396 base::Unretained(this)));
395 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess", 397 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess",
396 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage, 398 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage,
397 base::Unretained(this))); 399 base::Unretained(this)));
398 web_ui()->RegisterMessageCallback("extensionSettingsUninstall", 400 web_ui()->RegisterMessageCallback("extensionSettingsUninstall",
399 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage, 401 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage,
400 base::Unretained(this))); 402 base::Unretained(this)));
401 web_ui()->RegisterMessageCallback("extensionSettingsOptions", 403 web_ui()->RegisterMessageCallback("extensionSettingsOptions",
402 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage, 404 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage,
403 base::Unretained(this))); 405 base::Unretained(this)));
406 web_ui()->RegisterMessageCallback("extensionSettingsPermissions",
407 base::Bind(&ExtensionSettingsHandler::HandlePermissionsMessage,
408 base::Unretained(this)));
404 web_ui()->RegisterMessageCallback("extensionSettingsShowButton", 409 web_ui()->RegisterMessageCallback("extensionSettingsShowButton",
405 base::Bind(&ExtensionSettingsHandler::HandleShowButtonMessage, 410 base::Bind(&ExtensionSettingsHandler::HandleShowButtonMessage,
406 base::Unretained(this))); 411 base::Unretained(this)));
407 web_ui()->RegisterMessageCallback("extensionSettingsAutoupdate", 412 web_ui()->RegisterMessageCallback("extensionSettingsAutoupdate",
408 base::Bind(&ExtensionSettingsHandler::HandleAutoUpdateMessage, 413 base::Bind(&ExtensionSettingsHandler::HandleAutoUpdateMessage,
409 base::Unretained(this))); 414 base::Unretained(this)));
410 web_ui()->RegisterMessageCallback("extensionSettingsLoadUnpackedExtension", 415 web_ui()->RegisterMessageCallback("extensionSettingsLoadUnpackedExtension",
411 base::Bind(&ExtensionSettingsHandler::HandleLoadUnpackedExtensionMessage, 416 base::Bind(&ExtensionSettingsHandler::HandleLoadUnpackedExtensionMessage,
412 base::Unretained(this))); 417 base::Unretained(this)));
413 } 418 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 } 507 }
503 508
504 void ExtensionSettingsHandler::ExtensionUninstallCanceled() { 509 void ExtensionSettingsHandler::ExtensionUninstallCanceled() {
505 extension_id_prompting_ = ""; 510 extension_id_prompting_ = "";
506 } 511 }
507 512
508 void ExtensionSettingsHandler::ExtensionWarningsChanged() { 513 void ExtensionSettingsHandler::ExtensionWarningsChanged() {
509 MaybeUpdateAfterNotification(); 514 MaybeUpdateAfterNotification();
510 } 515 }
511 516
517 void ExtensionSettingsHandler::InstallUIProceed() {
518 // This should never happen. The dialog only has a cancel button.
519 NOTREACHED();
520 }
521
522 void ExtensionSettingsHandler::InstallUIAbort(bool user_initiated) {
523 }
524
512 void ExtensionSettingsHandler::ReloadUnpackedExtensions() { 525 void ExtensionSettingsHandler::ReloadUnpackedExtensions() {
513 const ExtensionSet* extensions = extension_service_->extensions(); 526 const ExtensionSet* extensions = extension_service_->extensions();
514 std::vector<const Extension*> unpacked_extensions; 527 std::vector<const Extension*> unpacked_extensions;
515 for (ExtensionSet::const_iterator extension = extensions->begin(); 528 for (ExtensionSet::const_iterator extension = extensions->begin();
516 extension != extensions->end(); ++extension) { 529 extension != extensions->end(); ++extension) {
517 if ((*extension)->location() == Manifest::LOAD) 530 if ((*extension)->location() == Manifest::LOAD)
518 unpacked_extensions.push_back(*extension); 531 unpacked_extensions.push_back(*extension);
519 } 532 }
520 533
521 for (std::vector<const Extension*>::iterator iter = 534 for (std::vector<const Extension*>::iterator iter =
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 void ExtensionSettingsHandler::HandleOptionsMessage(const ListValue* args) { 804 void ExtensionSettingsHandler::HandleOptionsMessage(const ListValue* args) {
792 const Extension* extension = GetActiveExtension(args); 805 const Extension* extension = GetActiveExtension(args);
793 if (!extension || 806 if (!extension ||
794 extensions::ManifestURL::GetOptionsPage(extension).is_empty()) 807 extensions::ManifestURL::GetOptionsPage(extension).is_empty())
795 return; 808 return;
796 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()))-> 809 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()))->
797 process_manager()->OpenOptionsPage(extension, 810 process_manager()->OpenOptionsPage(extension,
798 chrome::FindBrowserWithWebContents(web_ui()->GetWebContents())); 811 chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()));
799 } 812 }
800 813
814 void ExtensionSettingsHandler::HandlePermissionsMessage(const ListValue* args) {
815 std::string extension_id(UTF16ToUTF8(ExtractStringValue(args)));
816 CHECK(!extension_id.empty());
817 const Extension* extension =
818 extension_service_->GetExtensionById(extension_id, true);
819 if (!extension)
820 return;
821
822 prompt_.reset(new ExtensionInstallPrompt(web_contents()));
823 prompt_->ReviewPermissions(this, extension);
824 }
825
801 void ExtensionSettingsHandler::HandleShowButtonMessage(const ListValue* args) { 826 void ExtensionSettingsHandler::HandleShowButtonMessage(const ListValue* args) {
802 const Extension* extension = GetActiveExtension(args); 827 const Extension* extension = GetActiveExtension(args);
803 if (!extension) 828 if (!extension)
804 return; 829 return;
805 extension_service_->extension_prefs()-> 830 extension_service_->extension_prefs()->
806 SetBrowserActionVisibility(extension, true); 831 SetBrowserActionVisibility(extension, true);
807 } 832 }
808 833
809 void ExtensionSettingsHandler::HandleAutoUpdateMessage(const ListValue* args) { 834 void ExtensionSettingsHandler::HandleAutoUpdateMessage(const ListValue* args) {
810 ExtensionUpdater* updater = extension_service_->updater(); 835 ExtensionUpdater* updater = extension_service_->updater();
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 std::vector<std::string> requirement_errors) { 1034 std::vector<std::string> requirement_errors) {
1010 if (requirement_errors.empty()) { 1035 if (requirement_errors.empty()) {
1011 extension_service_->EnableExtension(extension_id); 1036 extension_service_->EnableExtension(extension_id);
1012 } else { 1037 } else {
1013 ExtensionErrorReporter::GetInstance()->ReportError( 1038 ExtensionErrorReporter::GetInstance()->ReportError(
1014 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1039 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1015 true /* be noisy */); 1040 true /* be noisy */);
1016 } 1041 }
1017 requirements_checker_.reset(); 1042 requirements_checker_.reset();
1018 } 1043 }
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