OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ |
6 #define CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ | 6 #define CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATOR_H
_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_negotiator.h" | 9 #include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_negotiator.h" |
10 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_acto
r_observer.h" | 10 #include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_view
_observer.h" |
11 | 11 |
12 namespace chromeos { | 12 namespace chromeos { |
13 class ArcTermsOfServiceScreenActor; | 13 class ArcTermsOfServiceScreenView; |
14 } | 14 } |
15 | 15 |
16 namespace arc { | 16 namespace arc { |
17 | 17 |
18 // Handles the Terms-of-service agreement user action via OOBE OptIn UI. | 18 // Handles the Terms-of-service agreement user action via OOBE OptIn UI. |
19 class ArcTermsOfServiceOobeNegotiator | 19 class ArcTermsOfServiceOobeNegotiator |
20 : public ArcTermsOfServiceNegotiator, | 20 : public ArcTermsOfServiceNegotiator, |
21 public chromeos::ArcTermsOfServiceScreenActorObserver { | 21 public chromeos::ArcTermsOfServiceScreenViewObserver { |
22 public: | 22 public: |
23 ArcTermsOfServiceOobeNegotiator(); | 23 ArcTermsOfServiceOobeNegotiator(); |
24 ~ArcTermsOfServiceOobeNegotiator() override; | 24 ~ArcTermsOfServiceOobeNegotiator() override; |
25 | 25 |
26 // Injects ARC OOBE screen handler in unit tests, where OOBE UI is not | 26 // Injects ARC OOBE screen handler in unit tests, where OOBE UI is not |
27 // available. | 27 // available. |
28 static void SetArcTermsOfServiceScreenActorForTesting( | 28 static void SetArcTermsOfServiceScreenViewForTesting( |
29 chromeos::ArcTermsOfServiceScreenActor* actor); | 29 chromeos::ArcTermsOfServiceScreenView* view); |
30 | 30 |
31 private: | 31 private: |
32 // Helper to handle callbacks from | 32 // Helper to handle callbacks from |
33 // chromeos::ArcTermsOfServiceScreenActorObserver. It removes observer from | 33 // chromeos::ArcTermsOfServiceScreenViewObserver. It removes observer from |
34 // |screen_actor_|, resets it, and then dispatches |accepted|. It is expected | 34 // |screen_view_|, resets it, and then dispatches |accepted|. It is expected |
35 // that this method is called exactly once for each instance of | 35 // that this method is called exactly once for each instance of |
36 // ArcTermsOfServiceOobeNegotiator. | 36 // ArcTermsOfServiceOobeNegotiator. |
37 void HandleTermsAccepted(bool accepted); | 37 void HandleTermsAccepted(bool accepted); |
38 | 38 |
39 // chromeos::ArcTermsOfServiceScreenActorObserver: | 39 // chromeos::ArcTermsOfServiceScreenViewObserver: |
40 void OnSkip() override; | 40 void OnSkip() override; |
41 void OnAccept() override; | 41 void OnAccept() override; |
42 void OnActorDestroyed(chromeos::ArcTermsOfServiceScreenActor* actor) override; | 42 void OnViewDestroyed(chromeos::ArcTermsOfServiceScreenView* view) override; |
43 | 43 |
44 // ArcTermsOfServiceNegotiator: | 44 // ArcTermsOfServiceNegotiator: |
45 void StartNegotiationImpl() override; | 45 void StartNegotiationImpl() override; |
46 | 46 |
47 // Unowned pointer. If a user signs out while ARC OOBE opt-in is active, | 47 // Unowned pointer. If a user signs out while ARC OOBE opt-in is active, |
48 // LoginDisplayHost is detached first then OnActorDestroyed is called. | 48 // LoginDisplayHost is detached first then OnViewDestroyed is called. |
49 // It means, in OnSkip() and OnAccept(), the Actor needs to be obtained via | 49 // It means, in OnSkip() and OnAccept(), the View needs to be obtained via |
50 // LoginDisplayHost, but in OnActorDestroyed(), the argument needs to be used. | 50 // LoginDisplayHost, but in OnViewDestroyed(), the argument needs to be used. |
51 // In order to use the same way to access the Actor, remember the pointer in | 51 // In order to use the same way to access the View, remember the pointer in |
52 // StartNegotiationImpl(), and reset in HandleTermsAccepted(). | 52 // StartNegotiationImpl(), and reset in HandleTermsAccepted(). |
53 chromeos::ArcTermsOfServiceScreenActor* screen_actor_ = nullptr; | 53 chromeos::ArcTermsOfServiceScreenView* screen_view_ = nullptr; |
54 | 54 |
55 DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceOobeNegotiator); | 55 DISALLOW_COPY_AND_ASSIGN(ArcTermsOfServiceOobeNegotiator); |
56 }; | 56 }; |
57 | 57 |
58 } // namespace arc | 58 } // namespace arc |
59 | 59 |
60 #endif // CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATO
R_H_ | 60 #endif // CHROME_BROWSER_CHROMEOS_ARC_OPTIN_ARC_TERMS_OF_SERVICE_OOBE_NEGOTIATO
R_H_ |
OLD | NEW |