| // Copyright 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 IOS_CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_IOS_H_ |
| #define IOS_CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_IOS_H_ |
| |
| #include "base/macros.h" |
| #include "components/web_resource/resource_request_allowed_notifier.h" |
| |
| class GURL; |
| |
| // Singleton managing the resources required for Translate. |
| class TranslateServiceIOS |
| : public web_resource::ResourceRequestAllowedNotifier::Observer { |
| public: |
| // Must be called before the Translate feature can be used. |
| static void Initialize(); |
| |
| // Must be called to shut down the Translate feature. |
| static void Shutdown(); |
| |
| // Returns true if the URL can be translated. |
| static bool IsTranslatableURL(const GURL& url); |
| |
| private: |
| TranslateServiceIOS(); |
| ~TranslateServiceIOS() override; |
| |
| // ResourceRequestAllowedNotifier::Observer methods. |
| void OnResourceRequestsAllowed() override; |
| |
| // Helper class to know if it's allowed to make network resource requests. |
| web_resource::ResourceRequestAllowedNotifier |
| resource_request_allowed_notifier_; |
| |
| DISALLOW_COPY_AND_ASSIGN(TranslateServiceIOS); |
| }; |
| |
| #endif // IOS_CHROME_BROWSER_TRANSLATE_TRANSLATE_SERVICE_IOS_H_ |