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

Side by Side Diff: chrome/browser/translate/translate_infobar_delegate.cc

Issue 10830353: Introduce InfoBarTabService API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to review comments, merge to LKGR Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/translate/translate_infobar_delegate.h" 5 #include "chrome/browser/translate/translate_infobar_delegate.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 DCHECK_GE(language_index, 0U); 107 DCHECK_GE(language_index, 0U);
108 target_language_index_ = language_index; 108 target_language_index_ = language_index;
109 if (infobar_view_) 109 if (infobar_view_)
110 infobar_view_->TargetLanguageChanged(); 110 infobar_view_->TargetLanguageChanged();
111 if (type_ == AFTER_TRANSLATE) 111 if (type_ == AFTER_TRANSLATE)
112 Translate(); 112 Translate();
113 } 113 }
114 114
115 void TranslateInfoBarDelegate::Translate() { 115 void TranslateInfoBarDelegate::Translate() {
116 const std::string& original_language_code = GetOriginalLanguageCode(); 116 const std::string& original_language_code = GetOriginalLanguageCode();
117 if (!owner()->web_contents()->GetBrowserContext()->IsOffTheRecord()) { 117 if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) {
118 prefs_.ResetTranslationDeniedCount(original_language_code); 118 prefs_.ResetTranslationDeniedCount(original_language_code);
119 prefs_.IncrementTranslationAcceptedCount(original_language_code); 119 prefs_.IncrementTranslationAcceptedCount(original_language_code);
120 } 120 }
121 121
122 TranslateManager::GetInstance()->TranslatePage(owner()->web_contents(), 122 TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(),
123 GetLanguageCodeAt(original_language_index()), 123 GetLanguageCodeAt(original_language_index()),
124 GetLanguageCodeAt(target_language_index())); 124 GetLanguageCodeAt(target_language_index()));
125 } 125 }
126 126
127 void TranslateInfoBarDelegate::RevertTranslation() { 127 void TranslateInfoBarDelegate::RevertTranslation() {
128 TranslateManager::GetInstance()->RevertTranslation(owner()->web_contents()); 128 TranslateManager::GetInstance()->RevertTranslation(owner()->GetWebContents());
129 RemoveSelf(); 129 RemoveSelf();
130 } 130 }
131 131
132 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { 132 void TranslateInfoBarDelegate::ReportLanguageDetectionError() {
133 TranslateManager::GetInstance()-> 133 TranslateManager::GetInstance()->
134 ReportLanguageDetectionError(owner()->web_contents()); 134 ReportLanguageDetectionError(owner()->GetWebContents());
135 } 135 }
136 136
137 void TranslateInfoBarDelegate::TranslationDeclined() { 137 void TranslateInfoBarDelegate::TranslationDeclined() {
138 const std::string& original_language_code = GetOriginalLanguageCode(); 138 const std::string& original_language_code = GetOriginalLanguageCode();
139 if (!owner()->web_contents()->GetBrowserContext()->IsOffTheRecord()) { 139 if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) {
140 prefs_.ResetTranslationAcceptedCount(original_language_code); 140 prefs_.ResetTranslationAcceptedCount(original_language_code);
141 prefs_.IncrementTranslationDeniedCount(original_language_code); 141 prefs_.IncrementTranslationDeniedCount(original_language_code);
142 } 142 }
143 143
144 // Remember that the user declined the translation so as to prevent showing a 144 // Remember that the user declined the translation so as to prevent showing a
145 // translate infobar for that page again. (TranslateManager initiates 145 // translate infobar for that page again. (TranslateManager initiates
146 // translations when getting a LANGUAGE_DETERMINED from the page, which 146 // translations when getting a LANGUAGE_DETERMINED from the page, which
147 // happens when a load stops. That could happen multiple times, including 147 // happens when a load stops. That could happen multiple times, including
148 // after the user already declined the translation.) 148 // after the user already declined the translation.)
149 TranslateTabHelper* helper = TabContents::FromWebContents( 149 TranslateTabHelper* helper = TabContents::FromWebContents(
150 owner()->web_contents())->translate_tab_helper(); 150 owner()->GetWebContents())->translate_tab_helper();
151 helper->language_state().set_translation_declined(true); 151 helper->language_state().set_translation_declined(true);
152 } 152 }
153 153
154 bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { 154 bool TranslateInfoBarDelegate::IsLanguageBlacklisted() {
155 return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode()); 155 return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode());
156 } 156 }
157 157
158 void TranslateInfoBarDelegate::ToggleLanguageBlacklist() { 158 void TranslateInfoBarDelegate::ToggleLanguageBlacklist() {
159 const std::string& original_lang = GetOriginalLanguageCode(); 159 const std::string& original_lang = GetOriginalLanguageCode();
160 if (prefs_.IsLanguageBlacklisted(original_lang)) { 160 if (prefs_.IsLanguageBlacklisted(original_lang)) {
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 return string16(); 256 return string16();
257 } 257 }
258 258
259 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { 259 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() {
260 DCHECK_EQ(TRANSLATION_ERROR, type_); 260 DCHECK_EQ(TRANSLATION_ERROR, type_);
261 if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { 261 if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) {
262 RevertTranslation(); 262 RevertTranslation();
263 return; 263 return;
264 } 264 }
265 // This is the "Try again..." case. 265 // This is the "Try again..." case.
266 TranslateManager::GetInstance()->TranslatePage(owner()->web_contents(), 266 TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(),
267 GetOriginalLanguageCode(), GetTargetLanguageCode()); 267 GetOriginalLanguageCode(), GetTargetLanguageCode());
268 } 268 }
269 269
270 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { 270 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() {
271 return !GetMessageInfoBarButtonText().empty(); 271 return !GetMessageInfoBarButtonText().empty();
272 } 272 }
273 273
274 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() { 274 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() {
275 DCHECK_EQ(BEFORE_TRANSLATE, type_); 275 DCHECK_EQ(BEFORE_TRANSLATE, type_);
276 return !owner()->web_contents()->GetBrowserContext()->IsOffTheRecord() && 276 return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() &&
277 (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3); 277 (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3);
278 } 278 }
279 279
280 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() { 280 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() {
281 DCHECK_EQ(BEFORE_TRANSLATE, type_); 281 DCHECK_EQ(BEFORE_TRANSLATE, type_);
282 return !owner()->web_contents()->GetBrowserContext()->IsOffTheRecord() && 282 return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() &&
283 (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3); 283 (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3);
284 } 284 }
285 285
286 void TranslateInfoBarDelegate::UpdateBackgroundAnimation( 286 void TranslateInfoBarDelegate::UpdateBackgroundAnimation(
287 TranslateInfoBarDelegate* previous_infobar) { 287 TranslateInfoBarDelegate* previous_infobar) {
288 if (!previous_infobar || previous_infobar->IsError() == IsError()) 288 if (!previous_infobar || previous_infobar->IsError() == IsError())
289 background_animation_ = NONE; 289 background_animation_ = NONE;
290 else 290 else
291 background_animation_ = IsError() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL; 291 background_animation_ = IsError() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL;
292 } 292 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 return PAGE_ACTION_TYPE; 395 return PAGE_ACTION_TYPE;
396 } 396 }
397 397
398 TranslateInfoBarDelegate* 398 TranslateInfoBarDelegate*
399 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { 399 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() {
400 return this; 400 return this;
401 } 401 }
402 402
403 std::string TranslateInfoBarDelegate::GetPageHost() { 403 std::string TranslateInfoBarDelegate::GetPageHost() {
404 NavigationEntry* entry = 404 NavigationEntry* entry =
405 owner()->web_contents()->GetController().GetActiveEntry(); 405 owner()->GetWebContents()->GetController().GetActiveEntry();
406 return entry ? entry->GetURL().HostNoBrackets() : std::string(); 406 return entry ? entry->GetURL().HostNoBrackets() : std::string();
407 } 407 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_infobar_delegate.h ('k') | chrome/browser/translate/translate_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698