// Copyright (c) 2014 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. #ifndef CHROME_BROWSER_RECOVERY_RECOVERY_INSTALL_GLOBAL_ERROR_H_ #define CHROME_BROWSER_RECOVERY_RECOVERY_INSTALL_GLOBAL_ERROR_H_ #include #include "base/macros.h" #include "chrome/browser/ui/global_error/global_error.h" #include "components/keyed_service/core/keyed_service.h" #include "components/prefs/pref_change_registrar.h" class Profile; // Shows elevation needed for recovery component install on the wrench menu // using a bubble view and a menu item. class RecoveryInstallGlobalError : public GlobalErrorWithStandardBubble, public KeyedService { public: explicit RecoveryInstallGlobalError(Profile* profile); ~RecoveryInstallGlobalError() override; private: // KeyedService: void Shutdown() override; // GlobalErrorWithStandardBubble: Severity GetSeverity() override; bool HasMenuItem() override; int MenuItemCommandID() override; base::string16 MenuItemLabel() override; gfx::Image MenuItemIcon() override; void ExecuteMenuItem(Browser* browser) override; bool HasBubbleView() override; bool HasShownBubbleView() override; void ShowBubbleView(Browser* browser) override; bool ShouldCloseOnDeactivate() const override; gfx::Image GetBubbleViewIcon() override; base::string16 GetBubbleViewTitle() override; std::vector GetBubbleViewMessages() override; base::string16 GetBubbleViewAcceptButtonLabel() override; bool ShouldShowCloseButton() const override; bool ShouldAddElevationIconToAcceptButton() override; base::string16 GetBubbleViewCancelButtonLabel() override; void OnBubbleViewDidClose(Browser* browser) override; void BubbleViewAcceptButtonPressed(Browser* browser) override; void BubbleViewCancelButtonPressed(Browser* browser) override; bool HasElevationNotification() const; void OnElevationRequirementChanged(); bool elevation_needed_; // The Profile this service belongs to. Profile* profile_; // Monitors registry change for recovery component install. PrefChangeRegistrar pref_registrar_; bool has_shown_bubble_view_; DISALLOW_COPY_AND_ASSIGN(RecoveryInstallGlobalError); }; #endif // CHROME_BROWSER_RECOVERY_RECOVERY_INSTALL_GLOBAL_ERROR_H_