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

Side by Side Diff: components/translate/core/browser/translate_ui_delegate.cc

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test breakage Created 4 years, 7 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
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 #include "components/translate/core/browser/translate_ui_delegate.h" 5 #include "components/translate/core/browser/translate_ui_delegate.h"
6 6
7 #include "base/i18n/string_compare.h" 7 #include "base/i18n/string_compare.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "components/translate/core/browser/language_state.h" 9 #include "components/translate/core/browser/language_state.h"
10 #include "components/translate/core/browser/translate_client.h" 10 #include "components/translate/core/browser/translate_client.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 198
199 std::string TranslateUIDelegate::GetTargetLanguageCode() const { 199 std::string TranslateUIDelegate::GetTargetLanguageCode() const {
200 return (GetTargetLanguageIndex() == kNoIndex) 200 return (GetTargetLanguageIndex() == kNoIndex)
201 ? translate::kUnknownLanguageCode 201 ? translate::kUnknownLanguageCode
202 : GetLanguageCodeAt(GetTargetLanguageIndex()); 202 : GetLanguageCodeAt(GetTargetLanguageIndex());
203 } 203 }
204 204
205 void TranslateUIDelegate::Translate() { 205 void TranslateUIDelegate::Translate() {
206 if (!translate_driver_->IsOffTheRecord()) { 206 if (!translate_driver_->IsOffTheRecord()) {
207 prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode()); 207 prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode());
208 prefs_->ResetTranslationIgnoredCount(GetOriginalLanguageCode());
208 prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode()); 209 prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode());
209 } 210 }
210 211
211 if (translate_manager_) { 212 if (translate_manager_) {
212 translate_manager_->TranslatePage( 213 translate_manager_->TranslatePage(
213 GetOriginalLanguageCode(), GetTargetLanguageCode(), false); 214 GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
214 UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true); 215 UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
215 } 216 }
216 } 217 }
217 218
218 void TranslateUIDelegate::RevertTranslation() { 219 void TranslateUIDelegate::RevertTranslation() {
219 if (translate_manager_) { 220 if (translate_manager_) {
220 translate_manager_->RevertTranslation(); 221 translate_manager_->RevertTranslation();
221 UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true); 222 UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true);
222 } 223 }
223 } 224 }
224 225
225 void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) { 226 void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
226 if (explicitly_closed && !translate_driver_->IsOffTheRecord()) { 227 if (!translate_driver_->IsOffTheRecord()) {
227 const std::string& language = GetOriginalLanguageCode(); 228 const std::string& language = GetOriginalLanguageCode();
228 prefs_->ResetTranslationAcceptedCount(language); 229 if (explicitly_closed) {
groby-ooo-7-16 2016/04/27 19:08:25 Can we get unit tests?
229 prefs_->IncrementTranslationDeniedCount(language); 230 prefs_->ResetTranslationAcceptedCount(language);
230 prefs_->UpdateLastDeniedTime(language); 231 prefs_->IncrementTranslationDeniedCount(language);
232 prefs_->UpdateLastDeniedTime(language);
233 } else {
234 prefs_->IncrementTranslationIgnoredCount(language);
235 }
231 } 236 }
232 237
233 // Remember that the user declined the translation so as to prevent showing a 238 // Remember that the user declined the translation so as to prevent showing a
234 // translate UI for that page again. (TranslateManager initiates translations 239 // translate UI for that page again. (TranslateManager initiates translations
235 // when getting a LANGUAGE_DETERMINED from the page, which happens when a load 240 // when getting a LANGUAGE_DETERMINED from the page, which happens when a load
236 // stops. That could happen multiple times, including after the user already 241 // stops. That could happen multiple times, including after the user already
237 // declined the translation.) 242 // declined the translation.)
238 if (explicitly_closed && translate_manager_) { 243 if (explicitly_closed && translate_manager_) {
239 translate_manager_->GetLanguageState().set_translation_declined(true); 244 translate_manager_->GetLanguageState().set_translation_declined(true);
240 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true); 245 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
241 } 246 }
242 247
243 if (!explicitly_closed) { 248 if (!explicitly_closed) {
244 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true); 249 UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true);
245 } 250 }
246 } 251 }
247 252
248 bool TranslateUIDelegate::IsLanguageBlocked() { 253 bool TranslateUIDelegate::IsLanguageBlocked() {
249 return prefs_->IsBlockedLanguage(GetOriginalLanguageCode()); 254 return prefs_->IsBlockedLanguage(GetOriginalLanguageCode());
250 } 255 }
251 256
257
groby-ooo-7-16 2016/04/27 19:08:25 nit:Please remove
ftang 2016/04/27 21:43:16 Done.
252 void TranslateUIDelegate::SetLanguageBlocked(bool value) { 258 void TranslateUIDelegate::SetLanguageBlocked(bool value) {
253 if (value) { 259 if (value) {
254 prefs_->BlockLanguage(GetOriginalLanguageCode()); 260 prefs_->BlockLanguage(GetOriginalLanguageCode());
255 if (translate_manager_) { 261 if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2)) {
256 translate_manager_->GetLanguageState().SetTranslateEnabled(false); 262 if (translate_manager_) {
groby-ooo-7-16 2016/04/27 19:08:25 Why are we not resetting TranslateEnabled for the
ftang 2016/04/27 21:43:16 In the new ui, the omnibar icon is always shown, r
groby-ooo-7-16 2016/04/29 05:26:14 Ah, I understand - thanks for the explanation. Wou
263 translate_manager_->GetLanguageState().SetTranslateEnabled(false);
264 }
257 } 265 }
258 } else { 266 } else {
259 prefs_->UnblockLanguage(GetOriginalLanguageCode()); 267 prefs_->UnblockLanguage(GetOriginalLanguageCode());
260 } 268 }
261 269
262 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateLang, true); 270 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateLang, true);
263 } 271 }
264 272
265 bool TranslateUIDelegate::IsSiteBlacklisted() { 273 bool TranslateUIDelegate::IsSiteBlacklisted() {
266 std::string host = GetPageHost(); 274 std::string host = GetPageHost();
267 return !host.empty() && prefs_->IsSiteBlacklisted(host); 275 return !host.empty() && prefs_->IsSiteBlacklisted(host);
268 } 276 }
269 277
270 void TranslateUIDelegate::SetSiteBlacklist(bool value) { 278 void TranslateUIDelegate::SetSiteBlacklist(bool value) {
271 std::string host = GetPageHost(); 279 std::string host = GetPageHost();
272 if (host.empty()) 280 if (host.empty())
273 return; 281 return;
274 282
275 if (value) { 283 if (value) {
276 prefs_->BlacklistSite(host); 284 prefs_->BlacklistSite(host);
277 if (translate_manager_) { 285 if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2)) {
278 translate_manager_->GetLanguageState().SetTranslateEnabled(false); 286 if (translate_manager_) {
287 translate_manager_->GetLanguageState().SetTranslateEnabled(false);
288 }
279 } 289 }
280 } else { 290 } else {
281 prefs_->RemoveSiteFromBlacklist(host); 291 prefs_->RemoveSiteFromBlacklist(host);
282 } 292 }
283 293
284 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateSite, true); 294 UMA_HISTOGRAM_BOOLEAN(kNeverTranslateSite, true);
285 } 295 }
286 296
287 bool TranslateUIDelegate::ShouldAlwaysTranslate() { 297 bool TranslateUIDelegate::ShouldAlwaysTranslate() {
288 return prefs_->IsLanguagePairWhitelisted(GetOriginalLanguageCode(), 298 return prefs_->IsLanguagePairWhitelisted(GetOriginalLanguageCode(),
289 GetTargetLanguageCode()); 299 GetTargetLanguageCode());
290 } 300 }
291 301
302 bool TranslateUIDelegate::ShowAlwaysTranslateChecked() {
303 return ShouldAlwaysTranslate() ||
304 // After 2 clicks on Translate for the same language.
305 // it is == 2 not >2 because if the user translate with always on
306 // the next time the bubble won't show up. So the only chance the
307 // bubble will show up is if the user uncheck the Always translate,
308 // but in that case since user explictly uncheck, we should show
309 // as uncheck.
310 prefs_->GetTranslationAcceptedCount(GetOriginalLanguageCode()) == 3;
311 }
312
292 void TranslateUIDelegate::SetAlwaysTranslate(bool value) { 313 void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
293 const std::string& original_lang = GetOriginalLanguageCode(); 314 const std::string& original_lang = GetOriginalLanguageCode();
294 const std::string& target_lang = GetTargetLanguageCode(); 315 const std::string& target_lang = GetTargetLanguageCode();
295 if (value) 316 if (value)
296 prefs_->WhitelistLanguagePair(original_lang, target_lang); 317 prefs_->WhitelistLanguagePair(original_lang, target_lang);
297 else 318 else
298 prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang); 319 prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang);
299 320
300 UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, true); 321 UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, true);
301 } 322 }
302 323
303 std::string TranslateUIDelegate::GetPageHost() { 324 std::string TranslateUIDelegate::GetPageHost() {
304 if (!translate_driver_->HasCurrentPage()) 325 if (!translate_driver_->HasCurrentPage())
305 return std::string(); 326 return std::string();
306 return translate_driver_->GetLastCommittedURL().HostNoBrackets(); 327 return translate_driver_->GetLastCommittedURL().HostNoBrackets();
307 } 328 }
308 329
309 } // namespace translate 330 } // namespace translate
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698