OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_TRANSLATE_TRANSLATE_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_H_ |
6 #define CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_H_ | 6 #define CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_H_ |
7 | 7 |
8 #include "chrome/browser/web_resource/resource_request_allowed_notifier.h" | 8 #include "chrome/browser/web_resource/resource_request_allowed_notifier.h" |
9 | 9 |
10 class PrefService; | 10 class PrefService; |
11 | 11 |
12 // Singleton managing the resources required for Translate. | 12 // Singleton managing the resources required for Translate. |
13 class TranslateService : public ResourceRequestAllowedNotifier::Observer { | 13 class TranslateService : public ResourceRequestAllowedNotifier::Observer { |
14 public: | 14 public: |
15 // Must be called before the Translate feature can be used. | 15 // Must be called before the Translate feature can be used. |
16 static void Initialize(); | 16 static void Initialize(); |
17 | 17 |
18 // Must be called to shut down the Translate feature. | 18 // Must be called to shut down the Translate feature. |
19 static void Shutdown(bool cleanup_pending_fetcher); | 19 static void Shutdown(bool cleanup_pending_fetcher); |
20 | 20 |
| 21 // Initializes the TranslateService in a way that it can be initialized |
| 22 // multiple times in a unit test suite (once for each test). Should be paired |
| 23 // with ShutdownForTesting at the end of the test. |
| 24 static void InitializeForTesting(); |
| 25 |
| 26 // Shuts down the TranslateService at the end of a test in a way that the next |
| 27 // test can initialize and use the service. |
| 28 static void ShutdownForTesting(); |
| 29 |
21 // Let the caller decide if and when we should fetch the language list from | 30 // Let the caller decide if and when we should fetch the language list from |
22 // the translate server. This is a NOOP if switches::kDisableTranslate is set | 31 // the translate server. This is a NOOP if switches::kDisableTranslate is set |
23 // or if prefs::kEnableTranslate is set to false. | 32 // or if prefs::kEnableTranslate is set to false. |
24 static void FetchLanguageListFromTranslateServer(PrefService* prefs); | 33 static void FetchLanguageListFromTranslateServer(PrefService* prefs); |
25 | 34 |
26 // Returns true if the new translate bubble is enabled. | 35 // Returns true if the new translate bubble is enabled. |
27 static bool IsTranslateBubbleEnabled(); | 36 static bool IsTranslateBubbleEnabled(); |
28 | 37 |
29 // Sets whether of not the infobar UI is used. This method is intended to be | 38 // Sets whether of not the infobar UI is used. This method is intended to be |
30 // used only for tests. | 39 // used only for tests. |
31 static void SetUseInfobar(bool value); | 40 static void SetUseInfobar(bool value); |
32 | 41 |
33 private: | 42 private: |
34 TranslateService(); | 43 TranslateService(); |
35 ~TranslateService(); | 44 ~TranslateService(); |
36 | 45 |
37 // ResourceRequestAllowedNotifier::Observer methods. | 46 // ResourceRequestAllowedNotifier::Observer methods. |
38 virtual void OnResourceRequestsAllowed() OVERRIDE; | 47 virtual void OnResourceRequestsAllowed() OVERRIDE; |
39 | 48 |
40 // Helper class to know if it's allowed to make network resource requests. | 49 // Helper class to know if it's allowed to make network resource requests. |
41 ResourceRequestAllowedNotifier resource_request_allowed_notifier_; | 50 ResourceRequestAllowedNotifier resource_request_allowed_notifier_; |
42 | 51 |
43 // Whether or not the infobar is used. This is intended to be used | 52 // Whether or not the infobar is used. This is intended to be used |
44 // only for testing. | 53 // only for testing. |
45 bool use_infobar_; | 54 bool use_infobar_; |
46 }; | 55 }; |
47 | 56 |
48 #endif // CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_H_ | 57 #endif // CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_H_ |
OLD | NEW |