Chromium Code Reviews| 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 34e61c4dc9038a696c5199fadb1b2fd00487742e..53fd23ff0d4fdf32068f4e27cf94df38dd361b77 100644 |
| --- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| +++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc |
| @@ -40,6 +40,7 @@ |
| #include "chrome/browser/extensions/path_util.h" |
| #include "chrome/browser/extensions/shared_module_service.h" |
| #include "chrome/browser/extensions/updater/extension_updater.h" |
| +#include "chrome/browser/extensions/webstore_reinstaller.h" |
| #include "chrome/browser/platform_util.h" |
| #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -253,6 +254,9 @@ base::DictionaryValue* ExtensionSettingsHandler::CreateExtensionDetailValue( |
| extension_data->SetString("icon", icon.spec()); |
| extension_data->SetBoolean("isUnpacked", |
| Manifest::IsUnpackedLocation(extension->location())); |
| + extension_data->SetBoolean("isFromStore", |
| + extension->location() == Manifest::INTERNAL && |
| + ManifestURL::UpdatesFromGallery(extension)); |
| ExtensionRegistry* registry = |
| ExtensionRegistry::Get(extension_service_->profile()); |
| extension_data->SetBoolean( |
| @@ -510,6 +514,8 @@ void ExtensionSettingsHandler::GetLocalizedValues( |
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_INCOGNITO_WARNING)); |
| source->AddString("extensionSettingsReloadTerminated", |
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED)); |
| + source->AddString("extensionSettingsRepairCorrupted", |
| + l10n_util::GetStringUTF16(IDS_EXTENSIONS_REPAIR_CORRUPTED)); |
| source->AddString("extensionSettingsLaunch", |
| l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH)); |
| source->AddString("extensionSettingsReloadUnpacked", |
| @@ -537,11 +543,6 @@ void ExtensionSettingsHandler::GetLocalizedValues( |
| l10n_util::GetStringUTF16(IDS_EXTENSION_WEB_STORE_TITLE))); |
| source->AddString("extensionSettingsLearnMore", |
| l10n_util::GetStringUTF16(IDS_LEARN_MORE)); |
| - source->AddString("extensionSettingsCorruptInstallHelpUrl", |
| - base::ASCIIToUTF16( |
| - google_util::AppendGoogleLocaleParam( |
| - GURL(chrome::kCorruptExtensionURL), |
| - g_browser_process->GetApplicationLocale()).spec())); |
| source->AddString("extensionSettingsSuspiciousInstallHelpUrl", |
| base::ASCIIToUTF16( |
| google_util::AppendGoogleLocaleParam( |
| @@ -631,6 +632,9 @@ void ExtensionSettingsHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("extensionSettingsReload", |
| base::Bind(&ExtensionSettingsHandler::HandleReloadMessage, |
| AsWeakPtr())); |
| + web_ui()->RegisterMessageCallback("extensionSettingsRepair", |
| + base::Bind(&ExtensionSettingsHandler::HandleRepairMessage, |
| + AsWeakPtr())); |
| web_ui()->RegisterMessageCallback("extensionSettingsEnable", |
| base::Bind(&ExtensionSettingsHandler::HandleEnableMessage, |
| AsWeakPtr())); |
| @@ -978,6 +982,18 @@ void ExtensionSettingsHandler::HandleReloadMessage( |
| extension_service_->ReloadExtensionWithQuietFailure(extension_id); |
| } |
| +void ExtensionSettingsHandler::HandleRepairMessage( |
| + const base::ListValue* args) { |
| + std::string extension_id = base::UTF16ToUTF8(ExtractStringValue(args)); |
| + CHECK(!extension_id.empty()); |
| + scoped_refptr<WebstoreReinstaller> reinstaller(new WebstoreReinstaller( |
| + web_contents(), |
| + extension_id, |
| + base::Bind(&ExtensionSettingsHandler::OnReinstallComplete, |
| + AsWeakPtr()))); |
| + reinstaller->BeginReinstall(); |
| +} |
| + |
| void ExtensionSettingsHandler::HandleEnableMessage( |
| const base::ListValue* args) { |
| CHECK_EQ(2U, args->GetSize()); |
| @@ -1407,6 +1423,13 @@ ExtensionSettingsHandler::GetExtensionUninstallDialog() { |
| #endif // !defined(OS_ANDROID) |
| } |
| +void ExtensionSettingsHandler::OnReinstallComplete( |
| + bool success, |
| + const std::string& error, |
| + webstore_install::Result result) { |
| + MaybeUpdateAfterNotification(); |
|
Yoyo Zhou
2014/09/18 22:47:08
Why do we need to run this callback if the uninsta
Devlin
2014/09/18 23:19:10
To me, it seems safer and more consistent. It wou
|
| +} |
| + |
| void ExtensionSettingsHandler::OnRequirementsChecked( |
| std::string extension_id, |
| std::vector<std::string> requirement_errors) { |