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); |
+ } |
} |
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, |