| Index: chrome/browser/extensions/extension_warning_badge_service.cc
|
| diff --git a/chrome/browser/extensions/extension_warning_badge_service.cc b/chrome/browser/extensions/extension_warning_badge_service.cc
|
| deleted file mode 100644
|
| index 7afb6fcb4b490090bf2f6ee4e516b074892a139d..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/extension_warning_badge_service.cc
|
| +++ /dev/null
|
| @@ -1,152 +0,0 @@
|
| -// Copyright (c) 2012 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_warning_badge_service.h"
|
| -
|
| -#include "base/stl_util.h"
|
| -#include "chrome/app/chrome_command_ids.h"
|
| -#include "chrome/browser/extensions/extension_warning_badge_service_factory.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/browser_commands.h"
|
| -#include "chrome/browser/ui/global_error/global_error.h"
|
| -#include "chrome/browser/ui/global_error/global_error_service.h"
|
| -#include "chrome/browser/ui/global_error/global_error_service_factory.h"
|
| -#include "chrome/grit/generated_resources.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -namespace extensions {
|
| -
|
| -namespace {
|
| -// Non-modal GlobalError implementation that warns the user if extensions
|
| -// created warnings or errors. If the user clicks on the wrench menu, the user
|
| -// is redirected to chrome://extensions to inspect the errors.
|
| -class ErrorBadge : public GlobalError {
|
| - public:
|
| - explicit ErrorBadge(ExtensionWarningBadgeService* badge_service);
|
| - ~ErrorBadge() override;
|
| -
|
| - // Implementation for GlobalError:
|
| - bool HasMenuItem() override;
|
| - int MenuItemCommandID() override;
|
| - base::string16 MenuItemLabel() override;
|
| - void ExecuteMenuItem(Browser* browser) override;
|
| -
|
| - bool HasBubbleView() override;
|
| - bool HasShownBubbleView() override;
|
| - void ShowBubbleView(Browser* browser) override;
|
| - GlobalErrorBubbleViewBase* GetBubbleView() override;
|
| -
|
| - static int GetMenuItemCommandID();
|
| -
|
| - private:
|
| - ExtensionWarningBadgeService* badge_service_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ErrorBadge);
|
| -};
|
| -
|
| -ErrorBadge::ErrorBadge(ExtensionWarningBadgeService* badge_service)
|
| - : badge_service_(badge_service) {}
|
| -
|
| -ErrorBadge::~ErrorBadge() {}
|
| -
|
| -bool ErrorBadge::HasMenuItem() {
|
| - return true;
|
| -}
|
| -
|
| -int ErrorBadge::MenuItemCommandID() {
|
| - return GetMenuItemCommandID();
|
| -}
|
| -
|
| -base::string16 ErrorBadge::MenuItemLabel() {
|
| - return l10n_util::GetStringUTF16(IDS_EXTENSION_WARNINGS_WRENCH_MENU_ITEM);
|
| -}
|
| -
|
| -void ErrorBadge::ExecuteMenuItem(Browser* browser) {
|
| - // Suppress all current warnings in the extension service from triggering
|
| - // a badge on the wrench menu in the future of this session.
|
| - badge_service_->SuppressCurrentWarnings();
|
| -
|
| - chrome::ExecuteCommand(browser, IDC_MANAGE_EXTENSIONS);
|
| -}
|
| -
|
| -bool ErrorBadge::HasBubbleView() { return false; }
|
| -
|
| -bool ErrorBadge::HasShownBubbleView() { return false; }
|
| -
|
| -void ErrorBadge::ShowBubbleView(Browser* browser) { NOTREACHED(); }
|
| -
|
| -GlobalErrorBubbleViewBase* ErrorBadge::GetBubbleView() {
|
| - return NULL;
|
| -}
|
| -
|
| -// static
|
| -int ErrorBadge::GetMenuItemCommandID() {
|
| - return IDC_EXTENSION_ERRORS;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -ExtensionWarningBadgeService::ExtensionWarningBadgeService(Profile* profile)
|
| - : profile_(profile), warning_service_observer_(this) {
|
| - DCHECK(CalledOnValidThread());
|
| - warning_service_observer_.Add(WarningService::Get(profile_));
|
| -}
|
| -
|
| -ExtensionWarningBadgeService::~ExtensionWarningBadgeService() {}
|
| -
|
| -// static
|
| -ExtensionWarningBadgeService* ExtensionWarningBadgeService::Get(
|
| - content::BrowserContext* context) {
|
| - return ExtensionWarningBadgeServiceFactory::GetForBrowserContext(context);
|
| -}
|
| -
|
| -void ExtensionWarningBadgeService::SuppressCurrentWarnings() {
|
| - DCHECK(CalledOnValidThread());
|
| - size_t old_size = suppressed_warnings_.size();
|
| -
|
| - const WarningSet& warnings = GetCurrentWarnings();
|
| - suppressed_warnings_.insert(warnings.begin(), warnings.end());
|
| -
|
| - if (old_size != suppressed_warnings_.size())
|
| - UpdateBadgeStatus();
|
| -}
|
| -
|
| -const WarningSet& ExtensionWarningBadgeService::GetCurrentWarnings() const {
|
| - return WarningService::Get(profile_)->warnings();
|
| -}
|
| -
|
| -void ExtensionWarningBadgeService::ExtensionWarningsChanged() {
|
| - DCHECK(CalledOnValidThread());
|
| - UpdateBadgeStatus();
|
| -}
|
| -
|
| -void ExtensionWarningBadgeService::UpdateBadgeStatus() {
|
| - const std::set<Warning>& warnings = GetCurrentWarnings();
|
| - bool non_suppressed_warnings_exist = false;
|
| - for (std::set<Warning>::const_iterator i = warnings.begin();
|
| - i != warnings.end(); ++i) {
|
| - if (!ContainsKey(suppressed_warnings_, *i)) {
|
| - non_suppressed_warnings_exist = true;
|
| - break;
|
| - }
|
| - }
|
| - ShowBadge(non_suppressed_warnings_exist);
|
| -}
|
| -
|
| -void ExtensionWarningBadgeService::ShowBadge(bool show) {
|
| - GlobalErrorService* service =
|
| - GlobalErrorServiceFactory::GetForProfile(profile_);
|
| - GlobalError* error = service->GetGlobalErrorByMenuItemCommandID(
|
| - ErrorBadge::GetMenuItemCommandID());
|
| -
|
| - // Activate or hide the warning badge in case the current state is incorrect.
|
| - if (error && !show) {
|
| - service->RemoveGlobalError(error);
|
| - delete error;
|
| - } else if (!error && show) {
|
| - service->AddGlobalError(new ErrorBadge(this));
|
| - }
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|