Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / translate / translate_bubble_view.cc
index b5a285b..2608055 100644 (file)
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/translate/translate_manager.h"
+#include "chrome/browser/translate/translate_service.h"
 #include "chrome/browser/translate/translate_tab_helper.h"
-#include "chrome/browser/translate/translate_ui_delegate.h"
+#include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h"
 #include "chrome/common/url_constants.h"
 #include "components/translate/core/browser/translate_download_manager.h"
+#include "components/translate/core/browser/translate_manager.h"
+#include "components/translate/core/browser/translate_ui_delegate.h"
 #include "content/public/browser/web_contents.h"
 #include "grit/generated_resources.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -57,32 +59,6 @@ views::Link* CreateLink(views::LinkListener* listener,
   return link;
 }
 
-void GetTranslateLanguages(content::WebContents* web_contents,
-                           std::string* source,
-                           std::string* target) {
-  DCHECK(source != NULL);
-  DCHECK(target != NULL);
-
-  TranslateTabHelper* translate_tab_helper =
-      TranslateTabHelper::FromWebContents(web_contents);
-  *source = translate_tab_helper->GetLanguageState().original_language();
-  *source = TranslateDownloadManager::GetLanguageCode(*source);
-
-  Profile* profile =
-      Profile::FromBrowserContext(web_contents->GetBrowserContext());
-  Profile* original_profile = profile->GetOriginalProfile();
-  PrefService* prefs = original_profile->GetPrefs();
-  if (!web_contents->GetBrowserContext()->IsOffTheRecord()) {
-    std::string auto_translate_language =
-        TranslateManager::GetAutoTargetLanguage(*source, prefs);
-    if (!auto_translate_language.empty()) {
-      *target = auto_translate_language;
-      return;
-    }
-  }
-  *target = TranslateManager::GetTargetLanguage(prefs);
-}
-
 class TranslateDenialComboboxModel : public ui::ComboboxModel {
  public:
   enum {
@@ -140,7 +116,7 @@ TranslateBubbleView::~TranslateBubbleView() {
 // static
 void TranslateBubbleView::ShowBubble(views::View* anchor_view,
                                      content::WebContents* web_contents,
-                                     TranslateTabHelper::TranslateStep step,
+                                     translate::TranslateStep step,
                                      TranslateErrors::Type error_type) {
   if (IsShowing()) {
     // When the user reads the advanced setting panel, the bubble should not be
@@ -150,7 +126,7 @@ void TranslateBubbleView::ShowBubble(views::View* anchor_view,
         TranslateBubbleModel::VIEW_STATE_ADVANCED) {
       return;
     }
-    if (step != TranslateTabHelper::TRANSLATE_ERROR) {
+    if (step != translate::TRANSLATE_STEP_TRANSLATE_ERROR) {
       TranslateBubbleModel::ViewState state =
           TranslateBubbleModelImpl::TranslateStepToViewState(step);
       translate_bubble_view_->SwitchView(state);
@@ -162,10 +138,14 @@ void TranslateBubbleView::ShowBubble(views::View* anchor_view,
 
   std::string source_language;
   std::string target_language;
-  GetTranslateLanguages(web_contents, &source_language, &target_language);
-
-  scoped_ptr<TranslateUIDelegate> ui_delegate(
-      new TranslateUIDelegate(web_contents, source_language, target_language));
+  TranslateTabHelper::GetTranslateLanguages(web_contents,
+                                            &source_language, &target_language);
+
+  scoped_ptr<TranslateUIDelegate> ui_delegate(new TranslateUIDelegate(
+      TranslateTabHelper::FromWebContents(web_contents),
+      TranslateTabHelper::GetManagerFromWebContents(web_contents),
+      source_language,
+      target_language));
   scoped_ptr<TranslateBubbleModel> model(
       new TranslateBubbleModelImpl(step, ui_delegate.Pass()));
   TranslateBubbleView* view = new TranslateBubbleView(anchor_view,
@@ -281,8 +261,7 @@ void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) {
   HandleLinkClicked(static_cast<LinkID>(source->id()));
 }
 
-void TranslateBubbleView::WebContentsDestroyed(
-    content::WebContents* web_contents) {
+void TranslateBubbleView::WebContentsDestroyed() {
   GetWidget()->CloseNow();
 }
 
@@ -378,7 +357,7 @@ void TranslateBubbleView::HandleButtonPressed(
     }
     case BUTTON_ID_SHOW_ORIGINAL: {
       model_->RevertTranslation();
-      StartFade(false);
+      GetWidget()->Close();
       break;
     }
     case BUTTON_ID_ALWAYS_TRANSLATE: {
@@ -397,10 +376,9 @@ void TranslateBubbleView::HandleLinkClicked(
       break;
     }
     case LINK_ID_LANGUAGE_SETTINGS: {
-      std::string url = std::string(chrome::kChromeUISettingsURL) +
-          chrome::kLanguageOptionsSubPage;
+      GURL url = chrome::GetSettingsUrl(chrome::kLanguageOptionsSubPage);
       web_contents()->OpenURL(content::OpenURLParams(
-          GURL(url),
+          url,
           content::Referrer(),
           NEW_FOREGROUND_TAB,
           content::PAGE_TRANSITION_LINK,
@@ -429,7 +407,7 @@ void TranslateBubbleView::HandleComboboxPerformAction(
           NOTREACHED();
           break;
       }
-      StartFade(false);
+      GetWidget()->Close();
       break;
     }
     case COMBOBOX_ID_SOURCE_LANGUAGE: {