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 ~SigninGlobalError() override
;
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 void Shutdown() override
;
42 // GlobalErrorWithStandardBubble:
43 bool HasMenuItem() override
;
44 int MenuItemCommandID() override
;
45 base::string16
MenuItemLabel() override
;
46 void ExecuteMenuItem(Browser
* browser
) override
;
47 bool HasBubbleView() override
;
48 base::string16
GetBubbleViewTitle() override
;
49 std::vector
<base::string16
> GetBubbleViewMessages() override
;
50 base::string16
GetBubbleViewAcceptButtonLabel() override
;
51 base::string16
GetBubbleViewCancelButtonLabel() override
;
52 void OnBubbleViewDidClose(Browser
* browser
) override
;
53 void BubbleViewAcceptButtonPressed(Browser
* browser
) override
;
54 void BubbleViewCancelButtonPressed(Browser
* browser
) override
;
56 // SigninErrorController::Observer:
57 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_