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

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

Issue 133273029: Move LanguageState to the translate component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comment + rebase Created 6 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
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chrome/browser/chrome_notification_types.h" 7 #include "chrome/browser/chrome_notification_types.h"
8 #include "chrome/common/render_messages.h" 8 #include "chrome/common/render_messages.h"
9 #include "components/translate/core/browser/page_translated_details.h" 9 #include "components/translate/core/browser/page_translated_details.h"
10 #include "components/translate/core/common/language_detection_details.h" 10 #include "components/translate/core/common/language_detection_details.h"
11 #include "content/public/browser/notification_service.h" 11 #include "content/public/browser/notification_service.h"
12 #include "content/public/browser/web_contents.h" 12 #include "content/public/browser/web_contents.h"
13 13
14 using content::WebContents; 14 using content::WebContents;
15 15
16 DEFINE_WEB_CONTENTS_USER_DATA_KEY(TranslateTabHelper); 16 DEFINE_WEB_CONTENTS_USER_DATA_KEY(TranslateTabHelper);
17 17
18 TranslateTabHelper::TranslateTabHelper(WebContents* web_contents) 18 TranslateTabHelper::TranslateTabHelper(WebContents* web_contents)
19 : content::WebContentsObserver(web_contents), 19 : content::WebContentsObserver(web_contents),
20 language_state_(&web_contents->GetController()) { 20 translate_driver_(&web_contents->GetController()) {
21 } 21 }
22 22
23 TranslateTabHelper::~TranslateTabHelper() { 23 TranslateTabHelper::~TranslateTabHelper() {
24 } 24 }
25 25
26 LanguageState& TranslateTabHelper::GetLanguageState() {
27 return translate_driver_.language_state();
28 }
29
26 bool TranslateTabHelper::OnMessageReceived(const IPC::Message& message) { 30 bool TranslateTabHelper::OnMessageReceived(const IPC::Message& message) {
27 bool handled = true; 31 bool handled = true;
28 IPC_BEGIN_MESSAGE_MAP(TranslateTabHelper, message) 32 IPC_BEGIN_MESSAGE_MAP(TranslateTabHelper, message)
29 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateLanguageDetermined, 33 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateLanguageDetermined,
30 OnLanguageDetermined) 34 OnLanguageDetermined)
31 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageTranslated, OnPageTranslated) 35 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageTranslated, OnPageTranslated)
32 IPC_MESSAGE_UNHANDLED(handled = false) 36 IPC_MESSAGE_UNHANDLED(handled = false)
33 IPC_END_MESSAGE_MAP() 37 IPC_END_MESSAGE_MAP()
34 38
35 return handled; 39 return handled;
36 } 40 }
37 41
38 void TranslateTabHelper::DidNavigateAnyFrame( 42 void TranslateTabHelper::DidNavigateAnyFrame(
39 const content::LoadCommittedDetails& details, 43 const content::LoadCommittedDetails& details,
40 const content::FrameNavigateParams& params) { 44 const content::FrameNavigateParams& params) {
41 // Let the LanguageState clear its state. 45 // Let the LanguageState clear its state.
42 language_state_.DidNavigate(details); 46 translate_driver_.DidNavigate(details);
43 } 47 }
44 48
45 void TranslateTabHelper::OnLanguageDetermined( 49 void TranslateTabHelper::OnLanguageDetermined(
46 const LanguageDetectionDetails& details, 50 const LanguageDetectionDetails& details,
47 bool page_needs_translation) { 51 bool page_needs_translation) {
48 language_state_.LanguageDetermined(details.adopted_language, 52 translate_driver_.language_state().LanguageDetermined(
49 page_needs_translation); 53 details.adopted_language, page_needs_translation);
50 54
51 content::NotificationService::current()->Notify( 55 content::NotificationService::current()->Notify(
52 chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, 56 chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
53 content::Source<WebContents>(web_contents()), 57 content::Source<WebContents>(web_contents()),
54 content::Details<const LanguageDetectionDetails>(&details)); 58 content::Details<const LanguageDetectionDetails>(&details));
55 } 59 }
56 60
57 void TranslateTabHelper::OnPageTranslated(int32 page_id, 61 void TranslateTabHelper::OnPageTranslated(int32 page_id,
58 const std::string& original_lang, 62 const std::string& original_lang,
59 const std::string& translated_lang, 63 const std::string& translated_lang,
60 TranslateErrors::Type error_type) { 64 TranslateErrors::Type error_type) {
61 language_state_.SetCurrentLanguage(translated_lang); 65 translate_driver_.language_state().SetCurrentLanguage(translated_lang);
62 language_state_.set_translation_pending(false); 66 translate_driver_.language_state().set_translation_pending(false);
63 PageTranslatedDetails details; 67 PageTranslatedDetails details;
64 details.source_language = original_lang; 68 details.source_language = original_lang;
65 details.target_language = translated_lang; 69 details.target_language = translated_lang;
66 details.error_type = error_type; 70 details.error_type = error_type;
67 content::NotificationService::current()->Notify( 71 content::NotificationService::current()->Notify(
68 chrome::NOTIFICATION_PAGE_TRANSLATED, 72 chrome::NOTIFICATION_PAGE_TRANSLATED,
69 content::Source<WebContents>(web_contents()), 73 content::Source<WebContents>(web_contents()),
70 content::Details<PageTranslatedDetails>(&details)); 74 content::Details<PageTranslatedDetails>(&details));
71 } 75 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_tab_helper.h ('k') | chrome/browser/translate/translate_ui_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698