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

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

Issue 2714223004: Update class prefixes in ios/web_view/translate. (Closed)
Patch Set: Rebase and respond to comments. Created 3 years, 9 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 #import "ios/web_view/internal/translate/criwv_translate_client.h"
6
7 #include <vector>
8
9 #include "base/logging.h"
10 #import "base/mac/scoped_nsobject.h"
11 #include "base/memory/ptr_util.h"
12 #include "components/infobars/core/infobar.h"
13 #include "components/prefs/pref_service.h"
14 #include "components/translate/core/browser/page_translated_details.h"
15 #include "components/translate/core/browser/translate_accept_languages.h"
16 #include "components/translate/core/browser/translate_infobar_delegate.h"
17 #include "components/translate/core/browser/translate_manager.h"
18 #include "components/translate/core/browser/translate_prefs.h"
19 #include "components/translate/core/browser/translate_step.h"
20 #include "ios/web/public/browser_state.h"
21 #import "ios/web/public/web_state/web_state.h"
22 #include "ios/web_view/internal/pref_names.h"
23 #include "ios/web_view/internal/translate/criwv_translate_accept_languages_facto ry.h"
24 #import "ios/web_view/internal/translate/criwv_translate_manager_impl.h"
25 #include "ios/web_view/internal/web_view_browser_state.h"
26 #import "ios/web_view/public/cwv_translate_delegate.h"
27 #include "url/gurl.h"
28
29 DEFINE_WEB_STATE_USER_DATA_KEY(ios_web_view::CRIWVTranslateClient);
30
31 namespace ios_web_view {
32
33 CRIWVTranslateClient::CRIWVTranslateClient(web::WebState* web_state)
34 : web::WebStateObserver(web_state),
35 translate_manager_(base::MakeUnique<translate::TranslateManager>(
36 this,
37 prefs::kAcceptLanguages)),
38 translate_driver_(web_state,
39 web_state->GetNavigationManager(),
40 translate_manager_.get()) {}
41
42 CRIWVTranslateClient::~CRIWVTranslateClient() {}
43
44 // TranslateClient implementation:
45
46 std::unique_ptr<infobars::InfoBar> CRIWVTranslateClient::CreateInfoBar(
47 std::unique_ptr<translate::TranslateInfoBarDelegate> delegate) const {
48 NOTREACHED();
49 return nullptr;
50 }
51
52 void CRIWVTranslateClient::ShowTranslateUI(
53 translate::TranslateStep step,
54 const std::string& source_language,
55 const std::string& target_language,
56 translate::TranslateErrors::Type error_type,
57 bool triggered_from_menu) {
58 if (!delegate_)
59 return;
60
61 if (error_type != translate::TranslateErrors::NONE)
62 step = translate::TRANSLATE_STEP_TRANSLATE_ERROR;
63
64 translate_manager_->GetLanguageState().SetTranslateEnabled(true);
65
66 if (step == translate::TRANSLATE_STEP_BEFORE_TRANSLATE &&
67 !translate_manager_->GetLanguageState().HasLanguageChanged()) {
68 return;
69 }
70
71 base::scoped_nsobject<CRIWVTranslateManagerImpl> criwv_manager(
72 [[CRIWVTranslateManagerImpl alloc]
73 initWithTranslateManager:translate_manager_.get()
74 sourceLanguage:source_language
75 targetLanguage:target_language]);
76
77 CRIWVTransateStep criwv_step;
78 switch (step) {
79 case translate::TRANSLATE_STEP_BEFORE_TRANSLATE:
80 criwv_step = CRIWVTransateStepBeforeTranslate;
81 break;
82 case translate::TRANSLATE_STEP_TRANSLATING:
83 criwv_step = CRIWVTransateStepTranslating;
84 break;
85 case translate::TRANSLATE_STEP_AFTER_TRANSLATE:
86 criwv_step = CRIWVTransateStepAfterTranslate;
87 break;
88 case translate::TRANSLATE_STEP_TRANSLATE_ERROR:
89 criwv_step = CRIWVTransateStepError;
90 break;
91 case translate::TRANSLATE_STEP_NEVER_TRANSLATE:
92 NOTREACHED() << "Never translate is not supported yet in web_view.";
93 criwv_step = CRIWVTransateStepError;
94 break;
95 }
96 [delegate_ translateStepChanged:criwv_step manager:criwv_manager.get()];
97 }
98
99 translate::TranslateDriver* CRIWVTranslateClient::GetTranslateDriver() {
100 return &translate_driver_;
101 }
102
103 PrefService* CRIWVTranslateClient::GetPrefs() {
104 DCHECK(web_state());
105 return WebViewBrowserState::FromBrowserState(web_state()->GetBrowserState())
106 ->GetPrefs();
107 }
108
109 std::unique_ptr<translate::TranslatePrefs>
110 CRIWVTranslateClient::GetTranslatePrefs() {
111 DCHECK(web_state());
112 return base::MakeUnique<translate::TranslatePrefs>(
113 GetPrefs(), prefs::kAcceptLanguages, nullptr);
114 }
115
116 translate::TranslateAcceptLanguages*
117 CRIWVTranslateClient::GetTranslateAcceptLanguages() {
118 translate::TranslateAcceptLanguages* accept_languages =
119 CRIWVTranslateAcceptLanguagesFactory::GetForBrowserState(
120 WebViewBrowserState::FromBrowserState(
121 web_state()->GetBrowserState()));
122 DCHECK(accept_languages);
123 return accept_languages;
124 }
125
126 int CRIWVTranslateClient::GetInfobarIconID() const {
127 NOTREACHED();
128 return 0;
129 }
130
131 bool CRIWVTranslateClient::IsTranslatableURL(const GURL& url) {
132 return !url.is_empty() && !url.SchemeIs(url::kFtpScheme);
133 }
134
135 void CRIWVTranslateClient::ShowReportLanguageDetectionErrorUI(
136 const GURL& report_url) {
137 NOTREACHED();
138 }
139
140 void CRIWVTranslateClient::WebStateDestroyed() {
141 // Translation process can be interrupted.
142 // Destroying the TranslateManager now guarantees that it never has to deal
143 // with nullptr WebState.
144 translate_manager_.reset();
145 }
146
147 } // namespace ios_web_view
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698