Chromium Code Reviews| Index: chrome/browser/extensions/extension_disabled_ui.cc |
| diff --git a/chrome/browser/extensions/extension_disabled_ui.cc b/chrome/browser/extensions/extension_disabled_ui.cc |
| index ece2144a677674b42c38b75b017a167c1bc1add8..09bfaf68f6ad6190b66a2039a5aa8bd590c9e93f 100644 |
| --- a/chrome/browser/extensions/extension_disabled_ui.cc |
| +++ b/chrome/browser/extensions/extension_disabled_ui.cc |
| @@ -142,6 +142,7 @@ class ExtensionDisabledGlobalError : public GlobalErrorWithStandardBubble, |
| public: |
| ExtensionDisabledGlobalError(ExtensionService* service, |
| const Extension* extension, |
| + bool is_remote_install, |
| const gfx::Image& icon); |
| virtual ~ExtensionDisabledGlobalError(); |
| @@ -172,6 +173,7 @@ class ExtensionDisabledGlobalError : public GlobalErrorWithStandardBubble, |
| private: |
| ExtensionService* service_; |
| const Extension* extension_; |
| + bool is_remote_install_; |
| gfx::Image icon_; |
| // How the user responded to the error; used for metrics. |
| @@ -195,9 +197,11 @@ class ExtensionDisabledGlobalError : public GlobalErrorWithStandardBubble, |
| ExtensionDisabledGlobalError::ExtensionDisabledGlobalError( |
| ExtensionService* service, |
| const Extension* extension, |
| + bool is_remote_install, |
| const gfx::Image& icon) |
| : service_(service), |
| extension_(extension), |
| + is_remote_install_(is_remote_install), |
| icon_(icon), |
| user_response_(IGNORED), |
| menu_command_id_(GetMenuCommandID()) { |
| @@ -219,9 +223,15 @@ ExtensionDisabledGlobalError::ExtensionDisabledGlobalError( |
| ExtensionDisabledGlobalError::~ExtensionDisabledGlobalError() { |
| ReleaseMenuCommandID(menu_command_id_); |
| - UMA_HISTOGRAM_ENUMERATION("Extensions.DisabledUIUserResponse", |
| - user_response_, |
| - EXTENSION_DISABLED_UI_BUCKET_BOUNDARY); |
| + if (is_remote_install_) { |
| + UMA_HISTOGRAM_ENUMERATION("Extensions.DisabledUIUserResponseRemoteInstall", |
| + user_response_, |
| + EXTENSION_DISABLED_UI_BUCKET_BOUNDARY); |
| + } else { |
| + UMA_HISTOGRAM_ENUMERATION("Extensions.DisabledUIUserResponse", |
| + user_response_, |
| + EXTENSION_DISABLED_UI_BUCKET_BOUNDARY); |
| + } |
| } |
| GlobalError::Severity ExtensionDisabledGlobalError::GetSeverity() { |
| @@ -237,8 +247,14 @@ int ExtensionDisabledGlobalError::MenuItemCommandID() { |
| } |
| base::string16 ExtensionDisabledGlobalError::MenuItemLabel() { |
| - return l10n_util::GetStringFUTF16(IDS_EXTENSION_DISABLED_ERROR_TITLE, |
| - base::UTF8ToUTF16(extension_->name())); |
| + if (is_remote_install_) { |
| + return l10n_util::GetStringFUTF16( |
| + IDS_EXTENSION_DISABLED_REMOTE_INSTALL_ERROR_TITLE, |
| + base::UTF8ToUTF16(extension_->name())); |
| + } else { |
| + return l10n_util::GetStringFUTF16(IDS_EXTENSION_DISABLED_ERROR_TITLE, |
| + base::UTF8ToUTF16(extension_->name())); |
| + } |
| } |
| void ExtensionDisabledGlobalError::ExecuteMenuItem(Browser* browser) { |
| @@ -250,22 +266,39 @@ gfx::Image ExtensionDisabledGlobalError::GetBubbleViewIcon() { |
| } |
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewTitle() { |
| - return l10n_util::GetStringFUTF16(IDS_EXTENSION_DISABLED_ERROR_TITLE, |
| - base::UTF8ToUTF16(extension_->name())); |
| + if (is_remote_install_) { |
| + return l10n_util::GetStringFUTF16( |
| + IDS_EXTENSION_DISABLED_REMOTE_INSTALL_ERROR_TITLE, |
| + base::UTF8ToUTF16(extension_->name())); |
| + } else { |
| + return l10n_util::GetStringFUTF16(IDS_EXTENSION_DISABLED_ERROR_TITLE, |
| + base::UTF8ToUTF16(extension_->name())); |
| + } |
| } |
| std::vector<base::string16> |
| ExtensionDisabledGlobalError::GetBubbleViewMessages() { |
| std::vector<base::string16> messages; |
| - messages.push_back(l10n_util::GetStringFUTF16( |
| - extension_->is_app() ? |
| - IDS_APP_DISABLED_ERROR_LABEL : IDS_EXTENSION_DISABLED_ERROR_LABEL, |
| - base::UTF8ToUTF16(extension_->name()))); |
| - messages.push_back(l10n_util::GetStringUTF16( |
| - IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO)); |
| std::vector<base::string16> permission_warnings = |
| extensions::PermissionMessageProvider::Get()->GetWarningMessages( |
| extension_->GetActivePermissions(), extension_->GetType()); |
| + if (is_remote_install_) { |
| + messages.push_back(l10n_util::GetStringFUTF16( |
| + extension_->is_app() |
| + ? IDS_APP_DISABLED_REMOTE_INSTALL_ERROR_LABEL |
| + : IDS_EXTENSION_DISABLED_REMOTE_INSTALL_ERROR_LABEL, |
| + base::UTF8ToUTF16(extension_->name()))); |
| + if (!permission_warnings.empty()) |
| + messages.push_back( |
| + l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WILL_HAVE_ACCESS_TO)); |
| + } else { |
| + messages.push_back(l10n_util::GetStringFUTF16( |
| + extension_->is_app() ? IDS_APP_DISABLED_ERROR_LABEL |
| + : IDS_EXTENSION_DISABLED_ERROR_LABEL, |
| + base::UTF8ToUTF16(extension_->name()))); |
| + messages.push_back(l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO)); |
| + } |
| for (size_t i = 0; i < permission_warnings.size(); ++i) { |
| messages.push_back(l10n_util::GetStringFUTF16( |
| IDS_EXTENSION_PERMISSION_LINE, permission_warnings[i])); |
| @@ -274,7 +307,12 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() { |
| } |
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewAcceptButtonLabel() { |
| - return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON); |
| + if (is_remote_install_) { |
| + return l10n_util::GetStringUTF16( |
| + IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON); |
| + } else { |
| + return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON); |
|
meacer
2014/05/15 00:01:10
nit: might want to use
return is_remote_install_
|
| + } |
| } |
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewCancelButtonLabel() { |
| @@ -339,19 +377,21 @@ namespace extensions { |
| void AddExtensionDisabledErrorWithIcon(base::WeakPtr<ExtensionService> service, |
| const std::string& extension_id, |
| + bool is_remote_install, |
| const gfx::Image& icon) { |
| if (!service.get()) |
| return; |
| const Extension* extension = service->GetInstalledExtension(extension_id); |
| if (extension) { |
| GlobalErrorServiceFactory::GetForProfile(service->profile()) |
| - ->AddGlobalError( |
| - new ExtensionDisabledGlobalError(service.get(), extension, icon)); |
| + ->AddGlobalError(new ExtensionDisabledGlobalError( |
| + service.get(), extension, is_remote_install, icon)); |
| } |
| } |
| void AddExtensionDisabledError(ExtensionService* service, |
| - const Extension* extension) { |
| + const Extension* extension, |
| + bool is_remote_install) { |
| // Do not display notifications for ephemeral apps that have been disabled. |
| // Instead, a prompt will be shown the next time the app is launched. |
| if (extension->is_ephemeral()) |
| @@ -360,10 +400,14 @@ void AddExtensionDisabledError(ExtensionService* service, |
| extensions::ExtensionResource image = extensions::IconsInfo::GetIconResource( |
| extension, kIconSize, ExtensionIconSet::MATCH_BIGGER); |
| gfx::Size size(kIconSize, kIconSize); |
| - ImageLoader::Get(service->profile())->LoadImageAsync( |
| - extension, image, size, |
| - base::Bind(&AddExtensionDisabledErrorWithIcon, |
| - service->AsWeakPtr(), extension->id())); |
| + ImageLoader::Get(service->profile()) |
| + ->LoadImageAsync(extension, |
| + image, |
| + size, |
| + base::Bind(&AddExtensionDisabledErrorWithIcon, |
| + service->AsWeakPtr(), |
| + extension->id(), |
| + is_remote_install)); |
| } |
| void ShowExtensionDisabledDialog(ExtensionService* service, |