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

Side by Side Diff: chrome/browser/translate/translate_manager.cc

Issue 8956059: Rename NavigationController to NavigationControllerImpl and put it into the content namespace. Al... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 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 | Annotate | Revision Log
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_manager.h" 5 #include "chrome/browser/translate/translate_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 30 matching lines...) Expand all
41 #include "content/public/browser/notification_details.h" 41 #include "content/public/browser/notification_details.h"
42 #include "content/public/browser/notification_service.h" 42 #include "content/public/browser/notification_service.h"
43 #include "content/public/browser/notification_source.h" 43 #include "content/public/browser/notification_source.h"
44 #include "content/public/browser/notification_types.h" 44 #include "content/public/browser/notification_types.h"
45 #include "content/public/common/url_fetcher.h" 45 #include "content/public/common/url_fetcher.h"
46 #include "grit/browser_resources.h" 46 #include "grit/browser_resources.h"
47 #include "net/base/escape.h" 47 #include "net/base/escape.h"
48 #include "net/url_request/url_request_status.h" 48 #include "net/url_request/url_request_status.h"
49 #include "ui/base/resource/resource_bundle.h" 49 #include "ui/base/resource/resource_bundle.h"
50 50
51 using content::NavigationEntry;
51 using content::WebContents; 52 using content::WebContents;
52 53
53 namespace { 54 namespace {
54 55
55 // The list of languages the Google translation server supports. 56 // The list of languages the Google translation server supports.
56 // For information, here is the list of languages that Chrome can be run in 57 // For information, here is the list of languages that Chrome can be run in
57 // but that the translation server does not support: 58 // but that the translation server does not support:
58 // am Amharic 59 // am Amharic
59 // bn Bengali 60 // bn Bengali
60 // gu Gujarati 61 // gu Gujarati
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 256
256 void TranslateManager::Observe(int type, 257 void TranslateManager::Observe(int type,
257 const content::NotificationSource& source, 258 const content::NotificationSource& source,
258 const content::NotificationDetails& details) { 259 const content::NotificationDetails& details) {
259 switch (type) { 260 switch (type) {
260 case content::NOTIFICATION_NAV_ENTRY_COMMITTED: { 261 case content::NOTIFICATION_NAV_ENTRY_COMMITTED: {
261 NavigationController* controller = 262 NavigationController* controller =
262 content::Source<NavigationController>(source).ptr(); 263 content::Source<NavigationController>(source).ptr();
263 content::LoadCommittedDetails* load_details = 264 content::LoadCommittedDetails* load_details =
264 content::Details<content::LoadCommittedDetails>(details).ptr(); 265 content::Details<content::LoadCommittedDetails>(details).ptr();
265 content::NavigationEntry* entry = controller->GetActiveEntry(); 266 NavigationEntry* entry = controller->GetActiveEntry();
266 if (!entry) { 267 if (!entry) {
267 NOTREACHED(); 268 NOTREACHED();
268 return; 269 return;
269 } 270 }
270 271
271 TabContentsWrapper* wrapper = 272 TabContentsWrapper* wrapper =
272 TabContentsWrapper::GetCurrentWrapperForContents( 273 TabContentsWrapper::GetCurrentWrapperForContents(
273 controller->tab_contents()); 274 controller->tab_contents());
274 if (!wrapper || !wrapper->translate_tab_helper()) 275 if (!wrapper || !wrapper->translate_tab_helper())
275 return; 276 return;
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 std::vector<PendingRequest>::const_iterator iter; 396 std::vector<PendingRequest>::const_iterator iter;
396 for (iter = pending_requests_.begin(); iter != pending_requests_.end(); 397 for (iter = pending_requests_.begin(); iter != pending_requests_.end();
397 ++iter) { 398 ++iter) {
398 const PendingRequest& request = *iter; 399 const PendingRequest& request = *iter;
399 TabContents* tab = tab_util::GetTabContentsByID(request.render_process_id, 400 TabContents* tab = tab_util::GetTabContentsByID(request.render_process_id,
400 request.render_view_id); 401 request.render_view_id);
401 if (!tab) { 402 if (!tab) {
402 // The tab went away while we were retrieving the script. 403 // The tab went away while we were retrieving the script.
403 continue; 404 continue;
404 } 405 }
405 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); 406 NavigationEntry* entry = tab->GetController().GetActiveEntry();
406 if (!entry || entry->GetPageID() != request.page_id) { 407 if (!entry || entry->GetPageID() != request.page_id) {
407 // We navigated away from the page the translation was triggered on. 408 // We navigated away from the page the translation was triggered on.
408 continue; 409 continue;
409 } 410 }
410 411
411 if (error) { 412 if (error) {
412 TabContentsWrapper* wrapper = 413 TabContentsWrapper* wrapper =
413 TabContentsWrapper::GetCurrentWrapperForContents(tab); 414 TabContentsWrapper::GetCurrentWrapperForContents(tab);
414 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); 415 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper();
415 ShowInfoBar( 416 ShowInfoBar(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 Profile* profile = Profile::FromBrowserContext(tab->GetBrowserContext()); 462 Profile* profile = Profile::FromBrowserContext(tab->GetBrowserContext());
462 PrefService* prefs = profile->GetOriginalProfile()->GetPrefs(); 463 PrefService* prefs = profile->GetOriginalProfile()->GetPrefs();
463 if (!prefs->GetBoolean(prefs::kEnableTranslate)) 464 if (!prefs->GetBoolean(prefs::kEnableTranslate))
464 return; 465 return;
465 466
466 // Allow disabling of translate from the command line to assist with 467 // Allow disabling of translate from the command line to assist with
467 // automated browser testing. 468 // automated browser testing.
468 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableTranslate)) 469 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableTranslate))
469 return; 470 return;
470 471
471 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); 472 NavigationEntry* entry = tab->GetController().GetActiveEntry();
472 if (!entry) { 473 if (!entry) {
473 // This can happen for popups created with window.open(""). 474 // This can happen for popups created with window.open("").
474 return; 475 return;
475 } 476 }
476 477
477 // If there is already a translate infobar showing, don't show another one. 478 // If there is already a translate infobar showing, don't show another one.
478 if (GetTranslateInfoBarDelegate(tab)) 479 if (GetTranslateInfoBarDelegate(tab))
479 return; 480 return;
480 481
481 std::string target_lang = GetTargetLanguage(prefs); 482 std::string target_lang = GetTargetLanguage(prefs);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 tab)->translate_tab_helper(); 547 tab)->translate_tab_helper();
547 if (helper->language_state().translation_pending()) 548 if (helper->language_state().translation_pending())
548 return; 549 return;
549 550
550 InitiateTranslation(tab, GetLanguageCode(page_lang)); 551 InitiateTranslation(tab, GetLanguageCode(page_lang));
551 } 552 }
552 553
553 void TranslateManager::TranslatePage(WebContents* web_contents, 554 void TranslateManager::TranslatePage(WebContents* web_contents,
554 const std::string& source_lang, 555 const std::string& source_lang,
555 const std::string& target_lang) { 556 const std::string& target_lang) {
556 content::NavigationEntry* entry = 557 NavigationEntry* entry = web_contents->GetController().GetActiveEntry();
557 web_contents->GetController().GetActiveEntry();
558 if (!entry) { 558 if (!entry) {
559 NOTREACHED(); 559 NOTREACHED();
560 return; 560 return;
561 } 561 }
562 562
563 TabContentsWrapper* wrapper = 563 TabContentsWrapper* wrapper =
564 TabContentsWrapper::GetCurrentWrapperForContents(web_contents); 564 TabContentsWrapper::GetCurrentWrapperForContents(web_contents);
565 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); 565 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper();
566 ShowInfoBar(web_contents, TranslateInfoBarDelegate::CreateDelegate( 566 ShowInfoBar(web_contents, TranslateInfoBarDelegate::CreateDelegate(
567 TranslateInfoBarDelegate::TRANSLATING, infobar_helper, 567 TranslateInfoBarDelegate::TRANSLATING, infobar_helper,
(...skipping 11 matching lines...) Expand all
579 request.render_process_id = rvh->process()->GetID(); 579 request.render_process_id = rvh->process()->GetID();
580 request.render_view_id = rvh->routing_id(); 580 request.render_view_id = rvh->routing_id();
581 request.page_id = entry->GetPageID(); 581 request.page_id = entry->GetPageID();
582 request.source_lang = source_lang; 582 request.source_lang = source_lang;
583 request.target_lang = target_lang; 583 request.target_lang = target_lang;
584 pending_requests_.push_back(request); 584 pending_requests_.push_back(request);
585 RequestTranslateScript(); 585 RequestTranslateScript();
586 } 586 }
587 587
588 void TranslateManager::RevertTranslation(WebContents* web_contents) { 588 void TranslateManager::RevertTranslation(WebContents* web_contents) {
589 content::NavigationEntry* entry = 589 NavigationEntry* entry = web_contents->GetController().GetActiveEntry();
590 web_contents->GetController().GetActiveEntry();
591 if (!entry) { 590 if (!entry) {
592 NOTREACHED(); 591 NOTREACHED();
593 return; 592 return;
594 } 593 }
595 web_contents->GetRenderViewHost()->Send(new ChromeViewMsg_RevertTranslation( 594 web_contents->GetRenderViewHost()->Send(new ChromeViewMsg_RevertTranslation(
596 web_contents->GetRenderViewHost()->routing_id(), entry->GetPageID())); 595 web_contents->GetRenderViewHost()->routing_id(), entry->GetPageID()));
597 596
598 TranslateTabHelper* helper = TabContentsWrapper::GetCurrentWrapperForContents( 597 TranslateTabHelper* helper = TabContentsWrapper::GetCurrentWrapperForContents(
599 web_contents)->translate_tab_helper(); 598 web_contents)->translate_tab_helper();
600 helper->language_state().set_current_language( 599 helper->language_state().set_current_language(
(...skipping 25 matching lines...) Expand all
626 return; 625 return;
627 } 626 }
628 browser->AddSelectedTabWithURL(GURL(report_error_url), 627 browser->AddSelectedTabWithURL(GURL(report_error_url),
629 content::PAGE_TRANSITION_AUTO_BOOKMARK); 628 content::PAGE_TRANSITION_AUTO_BOOKMARK);
630 } 629 }
631 630
632 void TranslateManager::DoTranslatePage(WebContents* tab, 631 void TranslateManager::DoTranslatePage(WebContents* tab,
633 const std::string& translate_script, 632 const std::string& translate_script,
634 const std::string& source_lang, 633 const std::string& source_lang,
635 const std::string& target_lang) { 634 const std::string& target_lang) {
636 content::NavigationEntry* entry = tab->GetController().GetActiveEntry(); 635 NavigationEntry* entry = tab->GetController().GetActiveEntry();
637 if (!entry) { 636 if (!entry) {
638 NOTREACHED(); 637 NOTREACHED();
639 return; 638 return;
640 } 639 }
641 640
642 TabContentsWrapper* wrapper = 641 TabContentsWrapper* wrapper =
643 TabContentsWrapper::GetCurrentWrapperForContents(tab); 642 TabContentsWrapper::GetCurrentWrapperForContents(tab);
644 if (!wrapper || !wrapper->translate_tab_helper()) 643 if (!wrapper || !wrapper->translate_tab_helper())
645 return; 644 return;
646 645
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); 832 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper();
834 833
835 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { 834 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) {
836 TranslateInfoBarDelegate* delegate = 835 TranslateInfoBarDelegate* delegate =
837 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate(); 836 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate();
838 if (delegate) 837 if (delegate)
839 return delegate; 838 return delegate;
840 } 839 }
841 return NULL; 840 return NULL;
842 } 841 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698