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

Side by Side Diff: components/translate/content/browser/content_translate_driver.cc

Issue 290573013: LanguageState should be owned by TranslateManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Inlining the DidNavigate function Created 6 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/content/browser/content_translate_driver.h" 5 #include "components/translate/content/browser/content_translate_driver.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "components/translate/content/common/translate_messages.h" 8 #include "components/translate/content/common/translate_messages.h"
9 #include "content/public/browser/browser_context.h" 9 #include "content/public/browser/browser_context.h"
10 #include "content/public/browser/navigation_controller.h" 10 #include "content/public/browser/navigation_controller.h"
11 #include "content/public/browser/navigation_details.h" 11 #include "content/public/browser/navigation_details.h"
droger 2014/05/20 07:43:07 Maybe you can remove this include.
nshaik 2014/05/20 22:33:53 Done.
12 #include "content/public/browser/navigation_entry.h" 12 #include "content/public/browser/navigation_entry.h"
13 #include "content/public/browser/render_view_host.h" 13 #include "content/public/browser/render_view_host.h"
14 #include "content/public/browser/web_contents.h" 14 #include "content/public/browser/web_contents.h"
15 #include "url/gurl.h" 15 #include "url/gurl.h"
16 16
17 ContentTranslateDriver::ContentTranslateDriver( 17 ContentTranslateDriver::ContentTranslateDriver(
18 content::NavigationController* nav_controller) 18 content::NavigationController* nav_controller)
19 : navigation_controller_(nav_controller), 19 : navigation_controller_(nav_controller),
20 language_state_(this),
21 observer_(NULL) { 20 observer_(NULL) {
22 DCHECK(navigation_controller_); 21 DCHECK(navigation_controller_);
23 } 22 }
24 23
25 ContentTranslateDriver::~ContentTranslateDriver() {} 24 ContentTranslateDriver::~ContentTranslateDriver() {}
26 25
27 void ContentTranslateDriver::DidNavigate(
28 const content::LoadCommittedDetails& details) {
29 const bool reload =
30 details.entry->GetTransitionType() == content::PAGE_TRANSITION_RELOAD ||
31 details.type == content::NAVIGATION_TYPE_SAME_PAGE;
32 language_state_.DidNavigate(
33 details.is_in_page, details.is_main_frame, reload);
34 }
35
36 // TranslateDriver methods 26 // TranslateDriver methods
37 27
38 bool ContentTranslateDriver::IsLinkNavigation() { 28 bool ContentTranslateDriver::IsLinkNavigation() {
39 return navigation_controller_ && navigation_controller_->GetActiveEntry() && 29 return navigation_controller_ && navigation_controller_->GetActiveEntry() &&
40 navigation_controller_->GetActiveEntry()->GetTransitionType() == 30 navigation_controller_->GetActiveEntry()->GetTransitionType() ==
41 content::PAGE_TRANSITION_LINK; 31 content::PAGE_TRANSITION_LINK;
42 } 32 }
43 33
44 void ContentTranslateDriver::OnTranslateEnabledChanged() { 34 void ContentTranslateDriver::OnTranslateEnabledChanged() {
45 if (observer_) { 35 if (observer_) {
46 content::WebContents* web_contents = 36 content::WebContents* web_contents =
47 navigation_controller_->GetWebContents(); 37 navigation_controller_->GetWebContents();
48 observer_->OnTranslateEnabledChanged(web_contents); 38 observer_->OnTranslateEnabledChanged(web_contents);
49 } 39 }
50 } 40 }
51 41
52 void ContentTranslateDriver::OnIsPageTranslatedChanged() { 42 void ContentTranslateDriver::OnIsPageTranslatedChanged() {
53 if (observer_) { 43 if (observer_) {
54 content::WebContents* web_contents = 44 content::WebContents* web_contents =
55 navigation_controller_->GetWebContents(); 45 navigation_controller_->GetWebContents();
56 observer_->OnIsPageTranslatedChanged(web_contents); 46 observer_->OnIsPageTranslatedChanged(web_contents);
57 } 47 }
58 } 48 }
59 49
60 LanguageState& ContentTranslateDriver::GetLanguageState() {
61 return language_state_;
62 }
63
64 void ContentTranslateDriver::TranslatePage(const std::string& translate_script, 50 void ContentTranslateDriver::TranslatePage(const std::string& translate_script,
65 const std::string& source_lang, 51 const std::string& source_lang,
66 const std::string& target_lang) { 52 const std::string& target_lang) {
67 content::NavigationEntry* entry = navigation_controller_->GetActiveEntry(); 53 content::NavigationEntry* entry = navigation_controller_->GetActiveEntry();
68 if (!entry) { 54 if (!entry) {
69 NOTREACHED(); 55 NOTREACHED();
70 return; 56 return;
71 } 57 }
72 58
73 content::WebContents* web_contents = navigation_controller_->GetWebContents(); 59 content::WebContents* web_contents = navigation_controller_->GetWebContents();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 102
117 bool ContentTranslateDriver::HasCurrentPage() { 103 bool ContentTranslateDriver::HasCurrentPage() {
118 return (navigation_controller_->GetActiveEntry() != NULL); 104 return (navigation_controller_->GetActiveEntry() != NULL);
119 } 105 }
120 106
121 int ContentTranslateDriver::GetCurrentPageID() { 107 int ContentTranslateDriver::GetCurrentPageID() {
122 DCHECK(HasCurrentPage()); 108 DCHECK(HasCurrentPage());
123 content::NavigationEntry* entry = navigation_controller_->GetActiveEntry(); 109 content::NavigationEntry* entry = navigation_controller_->GetActiveEntry();
124 return entry->GetPageID(); 110 return entry->GetPageID();
125 } 111 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698