OLD | NEW |
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/bind.h" | 7 #include "base/bind.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 translate_manager_->GetLanguageState().translation_declined()) { | 171 translate_manager_->GetLanguageState().translation_declined()) { |
172 // Some sites (such as Google map) may trigger sub-frame navigations | 172 // Some sites (such as Google map) may trigger sub-frame navigations |
173 // when the user interacts with the page. We don't want to show a new | 173 // when the user interacts with the page. We don't want to show a new |
174 // infobar if the user already dismissed one in that case. | 174 // infobar if the user already dismissed one in that case. |
175 return; | 175 return; |
176 } | 176 } |
177 | 177 |
178 // If not a reload, return. | 178 // If not a reload, return. |
179 if (!ui::PageTransitionCoreTypeIs(entry->GetTransitionType(), | 179 if (!ui::PageTransitionCoreTypeIs(entry->GetTransitionType(), |
180 ui::PAGE_TRANSITION_RELOAD) && | 180 ui::PAGE_TRANSITION_RELOAD) && |
181 load_details.type != content::NAVIGATION_TYPE_SAME_PAGE) { | 181 load_details.type != content::NavigationType::SAME_PAGE) { |
182 return; | 182 return; |
183 } | 183 } |
184 | 184 |
185 if (!translate_manager_->GetLanguageState().page_needs_translation()) | 185 if (!translate_manager_->GetLanguageState().page_needs_translation()) |
186 return; | 186 return; |
187 | 187 |
188 // Note that we delay it as the ordering of the processing of this callback | 188 // Note that we delay it as the ordering of the processing of this callback |
189 // by WebContentsObservers is undefined and might result in the current | 189 // by WebContentsObservers is undefined and might result in the current |
190 // infobars being removed. Since the translation initiation process might add | 190 // infobars being removed. Since the translation initiation process might add |
191 // an infobar, it must be done after that. | 191 // an infobar, it must be done after that. |
192 base::ThreadTaskRunnerHandle::Get()->PostTask( | 192 base::ThreadTaskRunnerHandle::Get()->PostTask( |
193 FROM_HERE, | 193 FROM_HERE, |
194 base::Bind(&ContentTranslateDriver::InitiateTranslation, | 194 base::Bind(&ContentTranslateDriver::InitiateTranslation, |
195 weak_pointer_factory_.GetWeakPtr(), | 195 weak_pointer_factory_.GetWeakPtr(), |
196 translate_manager_->GetLanguageState().original_language(), | 196 translate_manager_->GetLanguageState().original_language(), |
197 0)); | 197 0)); |
198 } | 198 } |
199 | 199 |
200 void ContentTranslateDriver::DidNavigateAnyFrame( | 200 void ContentTranslateDriver::DidNavigateAnyFrame( |
201 content::RenderFrameHost* render_frame_host, | 201 content::RenderFrameHost* render_frame_host, |
202 const content::LoadCommittedDetails& details, | 202 const content::LoadCommittedDetails& details, |
203 const content::FrameNavigateParams& params) { | 203 const content::FrameNavigateParams& params) { |
204 // Let the LanguageState clear its state. | 204 // Let the LanguageState clear its state. |
205 const bool reload = | 205 const bool reload = |
206 ui::PageTransitionCoreTypeIs(details.entry->GetTransitionType(), | 206 ui::PageTransitionCoreTypeIs(details.entry->GetTransitionType(), |
207 ui::PAGE_TRANSITION_RELOAD) || | 207 ui::PAGE_TRANSITION_RELOAD) || |
208 details.type == content::NAVIGATION_TYPE_SAME_PAGE; | 208 details.type == content::NavigationType::SAME_PAGE; |
209 translate_manager_->GetLanguageState().DidNavigate( | 209 translate_manager_->GetLanguageState().DidNavigate( |
210 details.is_in_page, details.is_main_frame, reload); | 210 details.is_in_page, details.is_main_frame, reload); |
211 } | 211 } |
212 | 212 |
213 bool ContentTranslateDriver::OnMessageReceived( | 213 bool ContentTranslateDriver::OnMessageReceived( |
214 const IPC::Message& message, | 214 const IPC::Message& message, |
215 content::RenderFrameHost* render_frame_host) { | 215 content::RenderFrameHost* render_frame_host) { |
216 bool handled = true; | 216 bool handled = true; |
217 IPC_BEGIN_MESSAGE_MAP(ContentTranslateDriver, message) | 217 IPC_BEGIN_MESSAGE_MAP(ContentTranslateDriver, message) |
218 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateAssignedSequenceNumber, | 218 IPC_MESSAGE_HANDLER(ChromeFrameHostMsg_TranslateAssignedSequenceNumber, |
(...skipping 29 matching lines...) Expand all Loading... |
248 TranslateErrors::Type error_type) { | 248 TranslateErrors::Type error_type) { |
249 translate_manager_->PageTranslated( | 249 translate_manager_->PageTranslated( |
250 original_lang, translated_lang, error_type); | 250 original_lang, translated_lang, error_type); |
251 FOR_EACH_OBSERVER( | 251 FOR_EACH_OBSERVER( |
252 Observer, | 252 Observer, |
253 observer_list_, | 253 observer_list_, |
254 OnPageTranslated(original_lang, translated_lang, error_type)); | 254 OnPageTranslated(original_lang, translated_lang, error_type)); |
255 } | 255 } |
256 | 256 |
257 } // namespace translate | 257 } // namespace translate |
OLD | NEW |