Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: ios/web_view/internal/translate/criwv_translate_client.h

Issue 2643773005: Upstream ios/web_view source code. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef IOS_WEB_VIEW_INTERNAL_TRANSLATE_CRIWV_TRANSLATE_CLIENT_H_
6 #define IOS_WEB_VIEW_INTERNAL_TRANSLATE_CRIWV_TRANSLATE_CLIENT_H_
7
8 #include <memory>
9 #include <string>
10
11 #import "base/mac/scoped_nsobject.h"
sdefresne 2017/01/20 10:28:13 Remove.
michaeldo 2017/01/24 22:35:26 Done in dep CL.
12 #include "components/translate/core/browser/translate_client.h"
13 #include "components/translate/core/browser/translate_step.h"
14 #include "components/translate/core/common/translate_errors.h"
15 #import "components/translate/ios/browser/ios_translate_driver.h"
16 #include "ios/web/public/web_state/web_state_observer.h"
17 #import "ios/web/public/web_state/web_state_user_data.h"
18
19 @protocol CRIWVTranslateDelegate;
20 class PrefService;
21
22 namespace translate {
23 class TranslateAcceptLanguages;
24 class TranslatePrefs;
25 class TranslateManager;
26 } // namespace translate
27
28 namespace web {
29 class WebState;
30 }
31
32 namespace ios_web_view {
33
34 class CRIWVTranslateClient
35 : public translate::TranslateClient,
36 public web::WebStateObserver,
37 public web::WebStateUserData<CRIWVTranslateClient> {
38 public:
39 // Sets the delegate passed by the embedder.
40 // |delegate| is assumed to outlive this CRIWVTranslateClient.
41 void set_translate_delegate(id<CRIWVTranslateDelegate> delegate) {
42 delegate_ = delegate;
43 }
44
45 private:
46 friend class web::WebStateUserData<CRIWVTranslateClient>;
47
48 // The lifetime of CRIWVTranslateClient is managed by WebStateUserData.
49 explicit CRIWVTranslateClient(web::WebState* web_state);
50 ~CRIWVTranslateClient() override;
51
52 // TranslateClient implementation.
53 translate::TranslateDriver* GetTranslateDriver() override;
54 PrefService* GetPrefs() override;
55 std::unique_ptr<translate::TranslatePrefs> GetTranslatePrefs() override;
56 translate::TranslateAcceptLanguages* GetTranslateAcceptLanguages() override;
57 int GetInfobarIconID() const override;
58 std::unique_ptr<infobars::InfoBar> CreateInfoBar(
59 std::unique_ptr<translate::TranslateInfoBarDelegate> delegate)
60 const override;
61 void ShowTranslateUI(translate::TranslateStep step,
62 const std::string& source_language,
63 const std::string& target_language,
64 translate::TranslateErrors::Type error_type,
65 bool triggered_from_menu) override;
66 bool IsTranslatableURL(const GURL& url) override;
67 void ShowReportLanguageDetectionErrorUI(const GURL& report_url) override;
68
69 // web::WebStateObserver implementation.
70 void WebStateDestroyed() override;
71
72 std::unique_ptr<translate::TranslateManager> translate_manager_;
73 translate::IOSTranslateDriver translate_driver_;
74
75 // Delegate provided by the embedder.
76 id<CRIWVTranslateDelegate> delegate_; // Weak.
77
78 DISALLOW_COPY_AND_ASSIGN(CRIWVTranslateClient);
79 };
80
81 } // namespace ios_web_view
82
83 #endif // IOS_WEB_VIEW_INTERNAL_TRANSLATE_CRIWV_TRANSLATE_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698