| Index: chrome/browser/ui/webui/extensions/extension_settings_handler.cc
|
| diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
|
| index 559d261e8336a672319f6e0914083cef29b99576..21c798dd96b3351624beacf9d912de211114cea3 100644
|
| --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
|
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
|
| @@ -307,6 +307,8 @@ void ExtensionSettingsHandler::GetLocalizedValues(
|
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED));
|
| source->AddString("extensionSettingsOptions",
|
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_OPTIONS_LINK));
|
| + source->AddString("extensionSettingsPermissions",
|
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_PERMISSIONS_LINK));
|
| source->AddString("extensionSettingsActivity",
|
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_ACTIVITY_LINK));
|
| source->AddString("extensionSettingsVisitWebsite",
|
| @@ -401,6 +403,9 @@ void ExtensionSettingsHandler::RegisterMessages() {
|
| web_ui()->RegisterMessageCallback("extensionSettingsOptions",
|
| base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage,
|
| base::Unretained(this)));
|
| + web_ui()->RegisterMessageCallback("extensionSettingsPermissions",
|
| + base::Bind(&ExtensionSettingsHandler::HandlePermissionsMessage,
|
| + base::Unretained(this)));
|
| web_ui()->RegisterMessageCallback("extensionSettingsShowButton",
|
| base::Bind(&ExtensionSettingsHandler::HandleShowButtonMessage,
|
| base::Unretained(this)));
|
| @@ -509,6 +514,14 @@ void ExtensionSettingsHandler::ExtensionWarningsChanged() {
|
| MaybeUpdateAfterNotification();
|
| }
|
|
|
| +void ExtensionSettingsHandler::InstallUIProceed() {
|
| + // This should never happen. The dialog only has a cancel button.
|
| + NOTREACHED();
|
| +}
|
| +
|
| +void ExtensionSettingsHandler::InstallUIAbort(bool user_initiated) {
|
| +}
|
| +
|
| void ExtensionSettingsHandler::ReloadUnpackedExtensions() {
|
| const ExtensionSet* extensions = extension_service_->extensions();
|
| std::vector<const Extension*> unpacked_extensions;
|
| @@ -798,6 +811,18 @@ void ExtensionSettingsHandler::HandleOptionsMessage(const ListValue* args) {
|
| chrome::FindBrowserWithWebContents(web_ui()->GetWebContents()));
|
| }
|
|
|
| +void ExtensionSettingsHandler::HandlePermissionsMessage(const ListValue* args) {
|
| + std::string extension_id(UTF16ToUTF8(ExtractStringValue(args)));
|
| + CHECK(!extension_id.empty());
|
| + const Extension* extension =
|
| + extension_service_->GetExtensionById(extension_id, true);
|
| + if (!extension)
|
| + return;
|
| +
|
| + prompt_.reset(new ExtensionInstallPrompt(web_contents()));
|
| + prompt_->ReviewPermissions(this, extension);
|
| +}
|
| +
|
| void ExtensionSettingsHandler::HandleShowButtonMessage(const ListValue* args) {
|
| const Extension* extension = GetActiveExtension(args);
|
| if (!extension)
|
|
|