| 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 d019e8e5bacab378a611f54e2ab42f9e05fd069e..2e855e2f22a0e6ccdf974564dfa2972d0bd491a7 100644
|
| --- a/chrome/browser/extensions/extension_disabled_ui.cc
|
| +++ b/chrome/browser/extensions/extension_disabled_ui.cc
|
| @@ -64,11 +64,12 @@ static const int kIconSize = extension_misc::EXTENSION_ICON_SMALL;
|
|
|
| // ExtensionDisabledGlobalError -----------------------------------------------
|
|
|
| -class ExtensionDisabledGlobalError
|
| - : public GlobalErrorWithStandardBubble,
|
| - public content::NotificationObserver,
|
| - public extensions::ExtensionUninstallDialog::Delegate,
|
| - public extensions::ExtensionRegistryObserver {
|
| +namespace extensions {
|
| +
|
| +class ExtensionDisabledGlobalError : public GlobalErrorWithStandardBubble,
|
| + public content::NotificationObserver,
|
| + public ExtensionUninstallDialog::Delegate,
|
| + public ExtensionRegistryObserver {
|
| public:
|
| ExtensionDisabledGlobalError(ExtensionService* service,
|
| const Extension* extension,
|
| @@ -106,7 +107,7 @@ class ExtensionDisabledGlobalError
|
| // ExtensionRegistryObserver:
|
| void OnExtensionLoaded(content::BrowserContext* browser_context,
|
| const Extension* extension) override;
|
| - void OnShutdown(extensions::ExtensionRegistry* registry) override;
|
| + void OnShutdown(ExtensionRegistry* registry) override;
|
|
|
| void RemoveGlobalError();
|
|
|
| @@ -124,15 +125,15 @@ class ExtensionDisabledGlobalError
|
| };
|
| UserResponse user_response_;
|
|
|
| - std::unique_ptr<extensions::ExtensionUninstallDialog> uninstall_dialog_;
|
| + std::unique_ptr<ExtensionUninstallDialog> uninstall_dialog_;
|
|
|
| // Helper to get menu command ID assigned for this extension's error.
|
| - extensions::ExtensionInstallErrorMenuItemIdProvider id_provider_;
|
| + ExtensionInstallErrorMenuItemIdProvider id_provider_;
|
|
|
| content::NotificationRegistrar registrar_;
|
|
|
| - ScopedObserver<extensions::ExtensionRegistry,
|
| - extensions::ExtensionRegistryObserver> registry_observer_;
|
| + ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
|
| + registry_observer_;
|
| };
|
|
|
| // TODO(yoz): create error at startup for disabled extensions.
|
| @@ -148,18 +149,13 @@ ExtensionDisabledGlobalError::ExtensionDisabledGlobalError(
|
| user_response_(IGNORED),
|
| registry_observer_(this) {
|
| if (icon_.IsEmpty()) {
|
| - icon_ = gfx::Image(
|
| - gfx::ImageSkiaOperations::CreateResizedImage(
|
| - extension_->is_app() ?
|
| - extensions::util::GetDefaultAppIcon() :
|
| - extensions::util::GetDefaultExtensionIcon(),
|
| - skia::ImageOperations::RESIZE_BEST,
|
| - gfx::Size(kIconSize, kIconSize)));
|
| + icon_ = gfx::Image(gfx::ImageSkiaOperations::CreateResizedImage(
|
| + extension_->is_app() ? util::GetDefaultAppIcon()
|
| + : util::GetDefaultExtensionIcon(),
|
| + skia::ImageOperations::RESIZE_BEST, gfx::Size(kIconSize, kIconSize)));
|
| }
|
| - registry_observer_.Add(
|
| - extensions::ExtensionRegistry::Get(service->profile()));
|
| - registrar_.Add(this,
|
| - extensions::NOTIFICATION_EXTENSION_REMOVED,
|
| + registry_observer_.Add(ExtensionRegistry::Get(service->profile()));
|
| + registrar_.Add(this, NOTIFICATION_EXTENSION_REMOVED,
|
| content::Source<Profile>(service->profile()));
|
| }
|
|
|
| @@ -215,8 +211,15 @@ base::string16 ExtensionDisabledGlobalError::GetBubbleViewTitle() {
|
| std::vector<base::string16>
|
| ExtensionDisabledGlobalError::GetBubbleViewMessages() {
|
| std::vector<base::string16> messages;
|
| +
|
| + std::unique_ptr<const PermissionSet> granted_permissions =
|
| + ExtensionPrefs::Get(service_->GetBrowserContext())
|
| + ->GetGrantedPermissions(extension_->id());
|
| +
|
| PermissionMessages permission_warnings =
|
| - extension_->permissions_data()->GetPermissionMessages();
|
| + extension_->permissions_data()->GetNewPermissionMessages(
|
| + *granted_permissions);
|
| +
|
| if (is_remote_install_) {
|
| if (!permission_warnings.empty())
|
| messages.push_back(
|
| @@ -224,12 +227,8 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() {
|
| } else {
|
| // TODO(treib): If NeedCustodianApprovalForPermissionIncrease, add an extra
|
| // message for supervised users. crbug.com/461261
|
| - 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));
|
| + messages.push_back(
|
| + l10n_util::GetStringUTF16(IDS_EXTENSION_DISABLED_ERROR_LABEL));
|
| }
|
| for (const PermissionMessage& msg : permission_warnings) {
|
| messages.push_back(l10n_util::GetStringFUTF16(IDS_EXTENSION_PERMISSION_LINE,
|
| @@ -239,8 +238,7 @@ ExtensionDisabledGlobalError::GetBubbleViewMessages() {
|
| }
|
|
|
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewAcceptButtonLabel() {
|
| - if (extensions::util::IsExtensionSupervised(extension_,
|
| - service_->profile())) {
|
| + if (util::IsExtensionSupervised(extension_, service_->profile())) {
|
| // TODO(treib): Probably use a new string here once we get UX design.
|
| // For now, just use "OK". crbug.com/461261
|
| return l10n_util::GetStringUTF16(IDS_OK);
|
| @@ -251,18 +249,18 @@ base::string16 ExtensionDisabledGlobalError::GetBubbleViewAcceptButtonLabel() {
|
| ? IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_APP
|
| : IDS_EXTENSION_PROMPT_REMOTE_INSTALL_BUTTON_EXTENSION);
|
| }
|
| - return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_RE_ENABLE_BUTTON);
|
| + return l10n_util::GetStringUTF16(
|
| + IDS_EXTENSION_PROMPT_PERMISSIONS_ACCEPT_BUTTON);
|
| }
|
|
|
| base::string16 ExtensionDisabledGlobalError::GetBubbleViewCancelButtonLabel() {
|
| - if (extensions::util::IsExtensionSupervised(extension_,
|
| - service_->profile())) {
|
| + if (util::IsExtensionSupervised(extension_, service_->profile())) {
|
| // The supervised user can't approve the update, and hence there is no
|
| // "cancel" button. Return an empty string such that the "cancel" button
|
| // is not shown in the dialog.
|
| return base::string16();
|
| }
|
| - return l10n_util::GetStringUTF16(IDS_EXTENSIONS_UNINSTALL);
|
| + return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_UNINSTALL_BUTTON);
|
| }
|
|
|
| void ExtensionDisabledGlobalError::OnBubbleViewDidClose(Browser* browser) {
|
| @@ -283,8 +281,7 @@ void ExtensionDisabledGlobalError::OnBubbleViewDidClose(Browser* browser) {
|
|
|
| void ExtensionDisabledGlobalError::BubbleViewAcceptButtonPressed(
|
| Browser* browser) {
|
| - if (extensions::util::IsExtensionSupervised(extension_,
|
| - service_->profile())) {
|
| + if (util::IsExtensionSupervised(extension_, service_->profile())) {
|
| return;
|
| }
|
| user_response_ = REENABLE;
|
| @@ -300,19 +297,17 @@ void ExtensionDisabledGlobalError::BubbleViewCancelButtonPressed(
|
| // For custodian-installed extensions, this button should not exist because
|
| // there is only an "OK" button.
|
| // Supervised users may never remove custodian-installed extensions.
|
| - DCHECK(!extensions::util::IsExtensionSupervised(extension_,
|
| - service_->profile()));
|
| - uninstall_dialog_.reset(extensions::ExtensionUninstallDialog::Create(
|
| + DCHECK(!util::IsExtensionSupervised(extension_, service_->profile()));
|
| + uninstall_dialog_.reset(ExtensionUninstallDialog::Create(
|
| service_->profile(), browser->window()->GetNativeWindow(), this));
|
| user_response_ = UNINSTALL;
|
| // Delay showing the uninstall dialog, so that this function returns
|
| // immediately, to close the bubble properly. See crbug.com/121544.
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&extensions::ExtensionUninstallDialog::ConfirmUninstall,
|
| - uninstall_dialog_->AsWeakPtr(), extension_,
|
| - extensions::UNINSTALL_REASON_EXTENSION_DISABLED,
|
| - extensions::UNINSTALL_SOURCE_PERMISSIONS_INCREASE));
|
| + FROM_HERE, base::Bind(&ExtensionUninstallDialog::ConfirmUninstall,
|
| + uninstall_dialog_->AsWeakPtr(), extension_,
|
| + UNINSTALL_REASON_EXTENSION_DISABLED,
|
| + UNINSTALL_SOURCE_PERMISSIONS_INCREASE));
|
| }
|
|
|
| bool ExtensionDisabledGlobalError::ShouldCloseOnDeactivate() const {
|
| @@ -341,7 +336,7 @@ void ExtensionDisabledGlobalError::Observe(
|
| const content::NotificationSource& source,
|
| const content::NotificationDetails& details) {
|
| // The error is invalidated if the extension has been loaded or removed.
|
| - DCHECK_EQ(extensions::NOTIFICATION_EXTENSION_REMOVED, type);
|
| + DCHECK_EQ(NOTIFICATION_EXTENSION_REMOVED, type);
|
| const Extension* extension = content::Details<const Extension>(details).ptr();
|
| if (extension != extension_)
|
| return;
|
| @@ -356,9 +351,8 @@ void ExtensionDisabledGlobalError::OnExtensionLoaded(
|
| RemoveGlobalError();
|
| }
|
|
|
| -void ExtensionDisabledGlobalError::OnShutdown(
|
| - extensions::ExtensionRegistry* registry) {
|
| - DCHECK_EQ(extensions::ExtensionRegistry::Get(service_->profile()), registry);
|
| +void ExtensionDisabledGlobalError::OnShutdown(ExtensionRegistry* registry) {
|
| + DCHECK_EQ(ExtensionRegistry::Get(service_->profile()), registry);
|
| registry_observer_.RemoveAll();
|
| }
|
|
|
| @@ -375,8 +369,6 @@ void ExtensionDisabledGlobalError::RemoveGlobalError() {
|
|
|
| // Globals --------------------------------------------------------------------
|
|
|
| -namespace extensions {
|
| -
|
| void AddExtensionDisabledErrorWithIcon(base::WeakPtr<ExtensionService> service,
|
| const std::string& extension_id,
|
| bool is_remote_install,
|
| @@ -394,7 +386,7 @@ void AddExtensionDisabledErrorWithIcon(base::WeakPtr<ExtensionService> service,
|
| void AddExtensionDisabledError(ExtensionService* service,
|
| const Extension* extension,
|
| bool is_remote_install) {
|
| - extensions::ExtensionResource image = extensions::IconsInfo::GetIconResource(
|
| + ExtensionResource image = IconsInfo::GetIconResource(
|
| extension, kIconSize, ExtensionIconSet::MATCH_BIGGER);
|
| gfx::Size size(kIconSize, kIconSize);
|
| ImageLoader::Get(service->profile())
|
|
|