summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_disabled_infobar_delegate.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_disabled_infobar_delegate.cc')
-rw-r--r--chrome/browser/extensions/extension_disabled_infobar_delegate.cc195
1 files changed, 0 insertions, 195 deletions
diff --git a/chrome/browser/extensions/extension_disabled_infobar_delegate.cc b/chrome/browser/extensions/extension_disabled_infobar_delegate.cc
deleted file mode 100644
index a090e95..0000000
--- a/chrome/browser/extensions/extension_disabled_infobar_delegate.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/extensions/extension_disabled_infobar_delegate.h"
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/extensions/extension_install_ui.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/infobars/infobar_tab_helper.h"
-#include "chrome/browser/tab_contents/confirm_infobar_delegate.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
-#include "chrome/common/chrome_notification_types.h"
-#include "chrome/common/extensions/extension_file_util.h"
-#include "chrome/common/extensions/extension_resource.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/web_contents.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-
-// ExtensionDisabledDialogDelegate --------------------------------------------
-
-class ExtensionDisabledDialogDelegate
- : public ExtensionInstallUI::Delegate,
- public base::RefCountedThreadSafe<ExtensionDisabledDialogDelegate> {
- public:
- ExtensionDisabledDialogDelegate(Profile* profile,
- ExtensionService* service,
- const Extension* extension);
-
- private:
- friend class base::RefCountedThreadSafe<ExtensionDisabledDialogDelegate>;
-
- virtual ~ExtensionDisabledDialogDelegate();
-
- // ExtensionInstallUI::Delegate:
- virtual void InstallUIProceed() OVERRIDE;
- virtual void InstallUIAbort(bool user_initiated) OVERRIDE;
-
- // The UI for showing the install dialog when enabling.
- scoped_ptr<ExtensionInstallUI> install_ui_;
-
- ExtensionService* service_;
- const Extension* extension_;
-};
-
-ExtensionDisabledDialogDelegate::ExtensionDisabledDialogDelegate(
- Profile* profile,
- ExtensionService* service,
- const Extension* extension)
- : service_(service), extension_(extension) {
- AddRef(); // Balanced in Proceed or Abort.
-
- install_ui_.reset(new ExtensionInstallUI(profile));
- install_ui_->ConfirmReEnable(this, extension_);
-}
-
-ExtensionDisabledDialogDelegate::~ExtensionDisabledDialogDelegate() {
-}
-
-void ExtensionDisabledDialogDelegate::InstallUIProceed() {
- service_->GrantPermissionsAndEnableExtension(extension_);
- Release();
-}
-
-void ExtensionDisabledDialogDelegate::InstallUIAbort(bool user_initiated) {
- std::string histogram_name = user_initiated ?
- "Extensions.Permissions_ReEnableCancel" :
- "Extensions.Permissions_ReEnableAbort";
- ExtensionService::RecordPermissionMessagesHistogram(
- extension_, histogram_name.c_str());
-
- // Do nothing. The extension will remain disabled.
- Release();
-}
-
-
-// ExtensionDisabledInfobarDelegate -------------------------------------------
-
-class ExtensionDisabledInfobarDelegate : public ConfirmInfoBarDelegate,
- public content::NotificationObserver {
- public:
- ExtensionDisabledInfobarDelegate(InfoBarTabHelper* infobar_helper,
- ExtensionService* service,
- const Extension* extension);
-
- private:
- virtual ~ExtensionDisabledInfobarDelegate();
-
- // ConfirmInfoBarDelegate:
- virtual string16 GetMessageText() const OVERRIDE;
- virtual int GetButtons() const OVERRIDE;
- virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE;
- virtual bool Accept() OVERRIDE;
-
- // content::NotificationObserver:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- content::NotificationRegistrar registrar_;
- ExtensionService* service_;
- const Extension* extension_;
-};
-
-ExtensionDisabledInfobarDelegate::ExtensionDisabledInfobarDelegate(
- InfoBarTabHelper* infobar_helper,
- ExtensionService* service,
- const Extension* extension)
- : ConfirmInfoBarDelegate(infobar_helper),
- service_(service),
- extension_(extension) {
- // The user might re-enable the extension in other ways, so watch for that.
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED,
- content::Source<Profile>(service->profile()));
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED,
- content::Source<Profile>(service->profile()));
-}
-
-ExtensionDisabledInfobarDelegate::~ExtensionDisabledInfobarDelegate() {
-}
-
-string16 ExtensionDisabledInfobarDelegate::GetMessageText() const {
- return l10n_util::GetStringFUTF16(extension_->is_app() ?
- IDS_APP_DISABLED_INFOBAR_LABEL : IDS_EXTENSION_DISABLED_INFOBAR_LABEL,
- UTF8ToUTF16(extension_->name()));
-}
-
-int ExtensionDisabledInfobarDelegate::GetButtons() const {
- return BUTTON_OK;
-}
-
-string16 ExtensionDisabledInfobarDelegate::GetButtonLabel(
- InfoBarButton button) const {
- DCHECK_EQ(BUTTON_OK, button);
- return l10n_util::GetStringUTF16(
- IDS_EXTENSION_DISABLED_INFOBAR_ENABLE_BUTTON);
-}
-
-bool ExtensionDisabledInfobarDelegate::Accept() {
- // This object manages its own lifetime.
- new ExtensionDisabledDialogDelegate(service_->profile(), service_,
- extension_);
- return true;
-}
-
-void ExtensionDisabledInfobarDelegate::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- // TODO(mpcomplete): RemoveInfoBar doesn't seem to always result in us getting
- // deleted.
- const Extension* extension = NULL;
- if (type == chrome::NOTIFICATION_EXTENSION_LOADED) {
- extension = content::Details<const Extension>(details).ptr();
- } else {
- DCHECK_EQ(chrome::NOTIFICATION_EXTENSION_UNLOADED, type);
- UnloadedExtensionInfo* info =
- content::Details<UnloadedExtensionInfo>(details).ptr();
- extension = info->extension;
- }
- if (extension == extension_)
- RemoveSelf();
-}
-
-
-// Globals --------------------------------------------------------------------
-
-void ShowExtensionDisabledUI(ExtensionService* service,
- Profile* profile,
- const Extension* extension) {
- Browser* browser = BrowserList::GetLastActiveWithProfile(profile);
- if (!browser)
- return;
-
- TabContentsWrapper* tab_contents = browser->GetSelectedTabContentsWrapper();
- if (!tab_contents)
- return;
-
- InfoBarTabHelper* infobar_helper = tab_contents->infobar_tab_helper();
- infobar_helper->AddInfoBar(
- new ExtensionDisabledInfobarDelegate(infobar_helper, service, extension));
-}
-
-void ShowExtensionDisabledDialog(ExtensionService* service, Profile* profile,
- const Extension* extension) {
- // This object manages its own lifetime.
- new ExtensionDisabledDialogDelegate(profile, service, extension);
-}