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

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 comments 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_.GetLanguageState();
28 }
29
30 ContentTranslateDriver* TranslateTabHelper::GetTranslateDriver() {
31 return &translate_driver_;
32 }
33
26 bool TranslateTabHelper::OnMessageReceived(const IPC::Message& message) { 34 bool TranslateTabHelper::OnMessageReceived(const IPC::Message& message) {
27 bool handled = true; 35 bool handled = true;
28 IPC_BEGIN_MESSAGE_MAP(TranslateTabHelper, message) 36 IPC_BEGIN_MESSAGE_MAP(TranslateTabHelper, message)
29 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateLanguageDetermined, 37 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_TranslateLanguageDetermined,
30 OnLanguageDetermined) 38 OnLanguageDetermined)
31 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageTranslated, OnPageTranslated) 39 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_PageTranslated, OnPageTranslated)
32 IPC_MESSAGE_UNHANDLED(handled = false) 40 IPC_MESSAGE_UNHANDLED(handled = false)
33 IPC_END_MESSAGE_MAP() 41 IPC_END_MESSAGE_MAP()
34 42
35 return handled; 43 return handled;
36 } 44 }
37 45
38 void TranslateTabHelper::DidNavigateAnyFrame( 46 void TranslateTabHelper::DidNavigateAnyFrame(
39 const content::LoadCommittedDetails& details, 47 const content::LoadCommittedDetails& details,
40 const content::FrameNavigateParams& params) { 48 const content::FrameNavigateParams& params) {
41 // Let the LanguageState clear its state. 49 // Let the LanguageState clear its state.
42 language_state_.DidNavigate(details); 50 translate_driver_.DidNavigate(details);
43 } 51 }
44 52
45 void TranslateTabHelper::OnLanguageDetermined( 53 void TranslateTabHelper::OnLanguageDetermined(
46 const LanguageDetectionDetails& details, 54 const LanguageDetectionDetails& details,
47 bool page_needs_translation) { 55 bool page_needs_translation) {
48 language_state_.LanguageDetermined(details.adopted_language, 56 translate_driver_.GetLanguageState().LanguageDetermined(
49 page_needs_translation); 57 details.adopted_language, page_needs_translation);
50 58
51 content::NotificationService::current()->Notify( 59 content::NotificationService::current()->Notify(
52 chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, 60 chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
53 content::Source<WebContents>(web_contents()), 61 content::Source<WebContents>(web_contents()),
54 content::Details<const LanguageDetectionDetails>(&details)); 62 content::Details<const LanguageDetectionDetails>(&details));
55 } 63 }
56 64
57 void TranslateTabHelper::OnPageTranslated(int32 page_id, 65 void TranslateTabHelper::OnPageTranslated(int32 page_id,
58 const std::string& original_lang, 66 const std::string& original_lang,
59 const std::string& translated_lang, 67 const std::string& translated_lang,
60 TranslateErrors::Type error_type) { 68 TranslateErrors::Type error_type) {
61 language_state_.SetCurrentLanguage(translated_lang); 69 translate_driver_.GetLanguageState().SetCurrentLanguage(translated_lang);
62 language_state_.set_translation_pending(false); 70 translate_driver_.GetLanguageState().set_translation_pending(false);
63 PageTranslatedDetails details; 71 PageTranslatedDetails details;
64 details.source_language = original_lang; 72 details.source_language = original_lang;
65 details.target_language = translated_lang; 73 details.target_language = translated_lang;
66 details.error_type = error_type; 74 details.error_type = error_type;
67 content::NotificationService::current()->Notify( 75 content::NotificationService::current()->Notify(
68 chrome::NOTIFICATION_PAGE_TRANSLATED, 76 chrome::NOTIFICATION_PAGE_TRANSLATED,
69 content::Source<WebContents>(web_contents()), 77 content::Source<WebContents>(web_contents()),
70 content::Details<PageTranslatedDetails>(&details)); 78 content::Details<PageTranslatedDetails>(&details));
71 } 79 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698