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

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

Issue 203223002: Translate bubble for Mac OS X (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: (rebasing) Created 6 years, 8 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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_tab_helper.h" 5 #include "chrome/browser/translate/translate_tab_helper.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/prefs/pref_service.h"
9 #include "base/strings/string_split.h"
8 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/translate/translate_accept_languages_factory.h" 12 #include "chrome/browser/translate/translate_accept_languages_factory.h"
11 #include "chrome/browser/translate/translate_infobar_delegate.h" 13 #include "chrome/browser/translate/translate_infobar_delegate.h"
12 #include "chrome/browser/translate/translate_manager.h" 14 #include "chrome/browser/translate/translate_manager.h"
13 #include "chrome/browser/translate/translate_service.h" 15 #include "chrome/browser/translate/translate_service.h"
14 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/browser_finder.h" 17 #include "chrome/browser/ui/browser_finder.h"
16 #include "chrome/browser/ui/browser_window.h" 18 #include "chrome/browser/ui/browser_window.h"
17 #include "chrome/browser/ui/tabs/tab_strip_model.h" 19 #include "chrome/browser/ui/tabs/tab_strip_model.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 82
81 // static 83 // static
82 TranslateManager* TranslateTabHelper::GetManagerFromWebContents( 84 TranslateManager* TranslateTabHelper::GetManagerFromWebContents(
83 content::WebContents* web_contents) { 85 content::WebContents* web_contents) {
84 TranslateTabHelper* translate_tab_helper = FromWebContents(web_contents); 86 TranslateTabHelper* translate_tab_helper = FromWebContents(web_contents);
85 if (!translate_tab_helper) 87 if (!translate_tab_helper)
86 return NULL; 88 return NULL;
87 return translate_tab_helper->GetTranslateManager(); 89 return translate_tab_helper->GetTranslateManager();
88 } 90 }
89 91
92 // static
93 void TranslateTabHelper::GetTranslateLanguages(
94 content::WebContents* web_contents,
95 std::string* source,
96 std::string* target) {
97 DCHECK(source != NULL);
98 DCHECK(target != NULL);
99
100 TranslateTabHelper* translate_tab_helper = FromWebContents(web_contents);
101 if (!translate_tab_helper)
102 return;
103
104 *source = translate_tab_helper->GetLanguageState().original_language();
105
106 Profile* profile =
107 Profile::FromBrowserContext(web_contents->GetBrowserContext());
108 Profile* original_profile = profile->GetOriginalProfile();
109 PrefService* prefs = original_profile->GetPrefs();
110 if (!web_contents->GetBrowserContext()->IsOffTheRecord()) {
111 std::string auto_translate_language =
112 TranslateManager::GetAutoTargetLanguage(*source, prefs);
113 if (!auto_translate_language.empty()) {
114 *target = auto_translate_language;
115 return;
116 }
117 }
118
119 std::string accept_languages_str = prefs->GetString(prefs::kAcceptLanguages);
120 std::vector<std::string> accept_languages_list;
121 base::SplitString(accept_languages_str, ',', &accept_languages_list);
122 *target = TranslateManager::GetTargetLanguage(accept_languages_list);
123 }
124
90 TranslateManager* TranslateTabHelper::GetTranslateManager() { 125 TranslateManager* TranslateTabHelper::GetTranslateManager() {
91 return translate_manager_.get(); 126 return translate_manager_.get();
92 } 127 }
93 128
94 content::WebContents* TranslateTabHelper::GetWebContents() { 129 content::WebContents* TranslateTabHelper::GetWebContents() {
95 return web_contents(); 130 return web_contents();
96 } 131 }
97 132
98 void TranslateTabHelper::ShowTranslateUI(TranslateTabHelper::TranslateStep step, 133 void TranslateTabHelper::ShowTranslateUI(TranslateTabHelper::TranslateStep step,
99 const std::string source_language, 134 const std::string source_language,
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 if (GetLanguageState().InTranslateNavigation()) 406 if (GetLanguageState().InTranslateNavigation())
372 return; 407 return;
373 } 408 }
374 409
375 TranslateBubbleFactory::Show( 410 TranslateBubbleFactory::Show(
376 browser->window(), web_contents(), step, error_type); 411 browser->window(), web_contents(), step, error_type);
377 #else 412 #else
378 NOTREACHED(); 413 NOTREACHED();
379 #endif 414 #endif
380 } 415 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_tab_helper.h ('k') | chrome/browser/ui/cocoa/browser_window_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698