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

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

Issue 2225343002: Navigation: move RestoreType and ReloadType into a separate file (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase+ Created 4 years, 4 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/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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698