1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_SIGNIN_SIGNIN_GLOBAL_ERROR_H_
6 #define CHROME_BROWSER_SIGNIN_SIGNIN_GLOBAL_ERROR_H_
9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h"
11 #include "base/gtest_prod_util.h"
12 #include "chrome/browser/ui/global_error/global_error.h"
13 #include "components/keyed_service/core/keyed_service.h"
14 #include "components/signin/core/browser/signin_error_controller.h"
18 // Shows auth errors on the wrench menu using a bubble view and a menu item.
19 class SigninGlobalError
: public GlobalErrorWithStandardBubble
,
20 public SigninErrorController::Observer
,
23 SigninGlobalError(SigninErrorController
* error_controller
,
25 virtual ~SigninGlobalError();
27 // Returns true if there is an authentication error.
30 // Shows re-authentication UI to the user in an attempt to fix the error.
31 // The re-authentication UI will be shown in |browser|.
32 void AttemptToFixError(Browser
* browser
);
35 FRIEND_TEST_ALL_PREFIXES(SigninGlobalErrorTest
, NoErrorAuthStatusProviders
);
36 FRIEND_TEST_ALL_PREFIXES(SigninGlobalErrorTest
, ErrorAuthStatusProvider
);
37 FRIEND_TEST_ALL_PREFIXES(SigninGlobalErrorTest
, AuthStatusEnumerateAllErrors
);
40 virtual void Shutdown() override
;
42 // GlobalErrorWithStandardBubble:
43 virtual bool HasMenuItem() override
;
44 virtual int MenuItemCommandID() override
;
45 virtual base::string16
MenuItemLabel() override
;
46 virtual void ExecuteMenuItem(Browser
* browser
) override
;
47 virtual bool HasBubbleView() override
;
48 virtual base::string16
GetBubbleViewTitle() override
;
49 virtual std::vector
<base::string16
> GetBubbleViewMessages() override
;
50 virtual base::string16
GetBubbleViewAcceptButtonLabel() override
;
51 virtual base::string16
GetBubbleViewCancelButtonLabel() override
;
52 virtual void OnBubbleViewDidClose(Browser
* browser
) override
;
53 virtual void BubbleViewAcceptButtonPressed(Browser
* browser
) override
;
54 virtual void BubbleViewCancelButtonPressed(Browser
* browser
) override
;
56 // SigninErrorController::Observer:
57 virtual void OnErrorChanged() override
;
59 // The Profile this service belongs to.
62 // The SigninErrorController that provides auth status.
63 SigninErrorController
* error_controller_
;
65 // True if signin global error was added to the global error service.
66 bool is_added_to_global_error_service_
;
68 DISALLOW_COPY_AND_ASSIGN(SigninGlobalError
);
71 #endif // CHROME_BROWSER_SIGNIN_SIGNIN_GLOBAL_ERROR_H_