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

Side by Side Diff: chrome/renderer/translate/translate_helper.cc

Issue 378253002: Fix translate namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer/translate/translate_helper.h" 5 #include "chrome/renderer/translate/translate_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 bool is_cld_reliable; 163 bool is_cld_reliable;
164 std::string language = translate::DeterminePageLanguage( 164 std::string language = translate::DeterminePageLanguage(
165 content_language, html_lang, contents, &cld_language, &is_cld_reliable); 165 content_language, html_lang, contents, &cld_language, &is_cld_reliable);
166 166
167 if (language.empty()) 167 if (language.empty())
168 return; 168 return;
169 169
170 language_determined_time_ = base::TimeTicks::Now(); 170 language_determined_time_ = base::TimeTicks::Now();
171 171
172 GURL url(document.url()); 172 GURL url(document.url());
173 LanguageDetectionDetails details; 173 translate::LanguageDetectionDetails details;
174 details.time = base::Time::Now(); 174 details.time = base::Time::Now();
175 details.url = url; 175 details.url = url;
176 details.content_language = content_language; 176 details.content_language = content_language;
177 details.cld_language = cld_language; 177 details.cld_language = cld_language;
178 details.is_cld_reliable = is_cld_reliable; 178 details.is_cld_reliable = is_cld_reliable;
179 details.html_root_language = html_lang; 179 details.html_root_language = html_lang;
180 details.adopted_language = language; 180 details.adopted_language = language;
181 181
182 // TODO(hajimehoshi): If this affects performance, it should be set only if 182 // TODO(hajimehoshi): If this affects performance, it should be set only if
183 // translate-internals tab exists. 183 // translate-internals tab exists.
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 void TranslateHelper::CheckTranslateStatus(int page_seq_no) { 448 void TranslateHelper::CheckTranslateStatus(int page_seq_no) {
449 // If this is not the same page, the translation has been canceled. If the 449 // If this is not the same page, the translation has been canceled. If the
450 // view is gone, the page is closing. 450 // view is gone, the page is closing.
451 if (page_seq_no_ != page_seq_no || !render_view()->GetWebView()) 451 if (page_seq_no_ != page_seq_no || !render_view()->GetWebView())
452 return; 452 return;
453 453
454 // First check if there was an error. 454 // First check if there was an error.
455 if (HasTranslationFailed()) { 455 if (HasTranslationFailed()) {
456 // TODO(toyoshim): Check |errorCode| of translate.js and notify it here. 456 // TODO(toyoshim): Check |errorCode| of translate.js and notify it here.
457 NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR); 457 NotifyBrowserTranslationFailed(
458 translate::TranslateErrors::TRANSLATION_ERROR);
458 return; // There was an error. 459 return; // There was an error.
459 } 460 }
460 461
461 if (HasTranslationFinished()) { 462 if (HasTranslationFinished()) {
462 std::string actual_source_lang; 463 std::string actual_source_lang;
463 // Translation was successfull, if it was auto, retrieve the source 464 // Translation was successfull, if it was auto, retrieve the source
464 // language the Translate Element detected. 465 // language the Translate Element detected.
465 if (source_lang_ == kAutoDetectionLanguage) { 466 if (source_lang_ == kAutoDetectionLanguage) {
466 actual_source_lang = GetOriginalPageLanguage(); 467 actual_source_lang = GetOriginalPageLanguage();
467 if (actual_source_lang.empty()) { 468 if (actual_source_lang.empty()) {
468 NotifyBrowserTranslationFailed(TranslateErrors::UNKNOWN_LANGUAGE); 469 NotifyBrowserTranslationFailed(
470 translate::TranslateErrors::UNKNOWN_LANGUAGE);
469 return; 471 return;
470 } else if (actual_source_lang == target_lang_) { 472 } else if (actual_source_lang == target_lang_) {
471 NotifyBrowserTranslationFailed(TranslateErrors::IDENTICAL_LANGUAGES); 473 NotifyBrowserTranslationFailed(
474 translate::TranslateErrors::IDENTICAL_LANGUAGES);
472 return; 475 return;
473 } 476 }
474 } else { 477 } else {
475 actual_source_lang = source_lang_; 478 actual_source_lang = source_lang_;
476 } 479 }
477 480
478 if (!translation_pending_) { 481 if (!translation_pending_) {
479 NOTREACHED(); 482 NOTREACHED();
480 return; 483 return;
481 } 484 }
482 485
483 translation_pending_ = false; 486 translation_pending_ = false;
484 487
485 // Check JavaScript performance counters for UMA reports. 488 // Check JavaScript performance counters for UMA reports.
486 translate::ReportTimeToTranslate( 489 translate::ReportTimeToTranslate(
487 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.translationTime")); 490 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.translationTime"));
488 491
489 // Notify the browser we are done. 492 // Notify the browser we are done.
490 render_view()->Send(new ChromeViewHostMsg_PageTranslated( 493 render_view()->Send(
491 render_view()->GetRoutingID(), actual_source_lang, target_lang_, 494 new ChromeViewHostMsg_PageTranslated(render_view()->GetRoutingID(),
492 TranslateErrors::NONE)); 495 actual_source_lang,
496 target_lang_,
497 translate::TranslateErrors::NONE));
493 return; 498 return;
494 } 499 }
495 500
496 // The translation is still pending, check again later. 501 // The translation is still pending, check again later.
497 base::MessageLoop::current()->PostDelayedTask( 502 base::MessageLoop::current()->PostDelayedTask(
498 FROM_HERE, 503 FROM_HERE,
499 base::Bind(&TranslateHelper::CheckTranslateStatus, 504 base::Bind(&TranslateHelper::CheckTranslateStatus,
500 weak_method_factory_.GetWeakPtr(), page_seq_no), 505 weak_method_factory_.GetWeakPtr(), page_seq_no),
501 AdjustDelay(kTranslateStatusCheckDelayMs)); 506 AdjustDelay(kTranslateStatusCheckDelayMs));
502 } 507 }
503 508
504 void TranslateHelper::TranslatePageImpl(int page_seq_no, int count) { 509 void TranslateHelper::TranslatePageImpl(int page_seq_no, int count) {
505 DCHECK_LT(count, kMaxTranslateInitCheckAttempts); 510 DCHECK_LT(count, kMaxTranslateInitCheckAttempts);
506 if (page_seq_no_ != page_seq_no || !render_view()->GetWebView()) 511 if (page_seq_no_ != page_seq_no || !render_view()->GetWebView())
507 return; 512 return;
508 513
509 if (!IsTranslateLibReady()) { 514 if (!IsTranslateLibReady()) {
510 // The library is not ready, try again later, unless we have tried several 515 // The library is not ready, try again later, unless we have tried several
511 // times unsucessfully already. 516 // times unsucessfully already.
512 if (++count >= kMaxTranslateInitCheckAttempts) { 517 if (++count >= kMaxTranslateInitCheckAttempts) {
513 NotifyBrowserTranslationFailed(TranslateErrors::INITIALIZATION_ERROR); 518 NotifyBrowserTranslationFailed(
519 translate::TranslateErrors::INITIALIZATION_ERROR);
514 return; 520 return;
515 } 521 }
516 base::MessageLoop::current()->PostDelayedTask( 522 base::MessageLoop::current()->PostDelayedTask(
517 FROM_HERE, 523 FROM_HERE,
518 base::Bind(&TranslateHelper::TranslatePageImpl, 524 base::Bind(&TranslateHelper::TranslatePageImpl,
519 weak_method_factory_.GetWeakPtr(), 525 weak_method_factory_.GetWeakPtr(),
520 page_seq_no, count), 526 page_seq_no, count),
521 AdjustDelay(count * kTranslateInitCheckDelayMs)); 527 AdjustDelay(count * kTranslateInitCheckDelayMs));
522 return; 528 return;
523 } 529 }
524 530
525 // The library is loaded, and ready for translation now. 531 // The library is loaded, and ready for translation now.
526 // Check JavaScript performance counters for UMA reports. 532 // Check JavaScript performance counters for UMA reports.
527 translate::ReportTimeToBeReady( 533 translate::ReportTimeToBeReady(
528 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.readyTime")); 534 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.readyTime"));
529 translate::ReportTimeToLoad( 535 translate::ReportTimeToLoad(
530 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.loadTime")); 536 ExecuteScriptAndGetDoubleResult("cr.googleTranslate.loadTime"));
531 537
532 if (!StartTranslation()) { 538 if (!StartTranslation()) {
533 NotifyBrowserTranslationFailed(TranslateErrors::TRANSLATION_ERROR); 539 NotifyBrowserTranslationFailed(
540 translate::TranslateErrors::TRANSLATION_ERROR);
534 return; 541 return;
535 } 542 }
536 // Check the status of the translation. 543 // Check the status of the translation.
537 base::MessageLoop::current()->PostDelayedTask( 544 base::MessageLoop::current()->PostDelayedTask(
538 FROM_HERE, 545 FROM_HERE,
539 base::Bind(&TranslateHelper::CheckTranslateStatus, 546 base::Bind(&TranslateHelper::CheckTranslateStatus,
540 weak_method_factory_.GetWeakPtr(), page_seq_no), 547 weak_method_factory_.GetWeakPtr(), page_seq_no),
541 AdjustDelay(kTranslateStatusCheckDelayMs)); 548 AdjustDelay(kTranslateStatusCheckDelayMs));
542 } 549 }
543 550
544 void TranslateHelper::NotifyBrowserTranslationFailed( 551 void TranslateHelper::NotifyBrowserTranslationFailed(
545 TranslateErrors::Type error) { 552 translate::TranslateErrors::Type error) {
546 translation_pending_ = false; 553 translation_pending_ = false;
547 // Notify the browser there was an error. 554 // Notify the browser there was an error.
548 render_view()->Send(new ChromeViewHostMsg_PageTranslated( 555 render_view()->Send(new ChromeViewHostMsg_PageTranslated(
549 render_view()->GetRoutingID(), source_lang_, target_lang_, error)); 556 render_view()->GetRoutingID(), source_lang_, target_lang_, error));
550 } 557 }
551 558
552 WebFrame* TranslateHelper::GetMainFrame() { 559 WebFrame* TranslateHelper::GetMainFrame() {
553 WebView* web_view = render_view()->GetWebView(); 560 WebView* web_view = render_view()->GetWebView();
554 561
555 // When the tab is going to be closed, the web_view can be NULL. 562 // When the tab is going to be closed, the web_view can be NULL.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 } 608 }
602 609
603 void TranslateHelper::OnCldDataAvailable() { 610 void TranslateHelper::OnCldDataAvailable() {
604 if (deferred_page_capture_) { 611 if (deferred_page_capture_) {
605 deferred_page_capture_ = false; // Don't do this a second time. 612 deferred_page_capture_ = false; // Don't do this a second time.
606 PageCapturedImpl(deferred_page_seq_no_, deferred_contents_); 613 PageCapturedImpl(deferred_page_seq_no_, deferred_contents_);
607 deferred_page_seq_no_ = -1; // Clean up for sanity 614 deferred_page_seq_no_ = -1; // Clean up for sanity
608 deferred_contents_.clear(); // Clean up for sanity 615 deferred_contents_.clear(); // Clean up for sanity
609 } 616 }
610 } 617 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698