| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/ui/webui/translate_internals/translate_internals_handle
r.h" | 5 #include "chrome/browser/ui/webui/translate_internals/translate_internals_handle
r.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 event_subscription_ = language_list->RegisterEventCallback(base::Bind( | 51 event_subscription_ = language_list->RegisterEventCallback(base::Bind( |
| 52 &TranslateInternalsHandler::OnTranslateEvent, base::Unretained(this))); | 52 &TranslateInternalsHandler::OnTranslateEvent, base::Unretained(this))); |
| 53 } | 53 } |
| 54 | 54 |
| 55 TranslateInternalsHandler::~TranslateInternalsHandler() { | 55 TranslateInternalsHandler::~TranslateInternalsHandler() { |
| 56 // |event_subscription_| and |error_subscription_| are deleted automatically | 56 // |event_subscription_| and |error_subscription_| are deleted automatically |
| 57 // and un-register the callbacks automatically. | 57 // and un-register the callbacks automatically. |
| 58 } | 58 } |
| 59 | 59 |
| 60 void TranslateInternalsHandler::RegisterMessages() { | 60 void TranslateInternalsHandler::RegisterMessages() { |
| 61 web_ui()->RegisterMessageCallback("removePrefItem", base::Bind( | 61 web_ui()->RegisterMessageCallback( |
| 62 &TranslateInternalsHandler::OnRemovePrefItem, base::Unretained(this))); | 62 "removePrefItem", base::Bind(&TranslateInternalsHandler::OnRemovePrefItem, |
| 63 web_ui()->RegisterMessageCallback("requestInfo", base::Bind( | 63 base::Unretained(this))); |
| 64 &TranslateInternalsHandler::OnRequestInfo, base::Unretained(this))); | 64 web_ui()->RegisterMessageCallback( |
| 65 "requestInfo", base::Bind(&TranslateInternalsHandler::OnRequestInfo, |
| 66 base::Unretained(this))); |
| 65 web_ui()->RegisterMessageCallback( | 67 web_ui()->RegisterMessageCallback( |
| 66 "overrideCountry", | 68 "overrideCountry", |
| 67 base::Bind(&TranslateInternalsHandler::OnOverrideCountry, | 69 base::Bind(&TranslateInternalsHandler::OnOverrideCountry, |
| 68 base::Unretained(this))); | 70 base::Unretained(this))); |
| 69 } | 71 } |
| 70 | 72 |
| 71 void TranslateInternalsHandler::Observe( | 73 void TranslateInternalsHandler::Observe( |
| 72 int type, | 74 int type, |
| 73 const content::NotificationSource& source, | 75 const content::NotificationSource& source, |
| 74 const content::NotificationDetails& details) { | 76 const content::NotificationDetails& details) { |
| 75 DCHECK_EQ(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, type); | 77 DCHECK_EQ(chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED, type); |
| 76 const translate::LanguageDetectionDetails* language_detection_details = | 78 const translate::LanguageDetectionDetails* language_detection_details = |
| 77 content::Details<const translate::LanguageDetectionDetails>(details) | 79 content::Details<const translate::LanguageDetectionDetails>(details) |
| 78 .ptr(); | 80 .ptr(); |
| 79 content::WebContents* web_contents = | 81 content::WebContents* web_contents = |
| 80 content::Source<content::WebContents>(source).ptr(); | 82 content::Source<content::WebContents>(source).ptr(); |
| 81 | 83 |
| 82 if (web_contents->GetBrowserContext()->IsOffTheRecord() || | 84 if (web_contents->GetBrowserContext()->IsOffTheRecord() || |
| 83 !TranslateService::IsTranslatableURL(language_detection_details->url)) { | 85 !TranslateService::IsTranslatableURL(language_detection_details->url)) { |
| 84 return; | 86 return; |
| 85 } | 87 } |
| 86 | 88 |
| 87 base::DictionaryValue dict; | 89 base::DictionaryValue dict; |
| 88 dict.Set( | 90 dict.Set("time", new base::FundamentalValue( |
| 89 "time", | 91 language_detection_details->time.ToJsTime())); |
| 90 new base::FundamentalValue(language_detection_details->time.ToJsTime())); | |
| 91 dict.Set("url", | 92 dict.Set("url", |
| 92 new base::StringValue(language_detection_details->url.spec())); | 93 new base::StringValue(language_detection_details->url.spec())); |
| 93 dict.Set("content_language", | 94 dict.Set("content_language", |
| 94 new base::StringValue(language_detection_details->content_language)); | 95 new base::StringValue(language_detection_details->content_language)); |
| 95 dict.Set("cld_language", | 96 dict.Set("cld_language", |
| 96 new base::StringValue(language_detection_details->cld_language)); | 97 new base::StringValue(language_detection_details->cld_language)); |
| 97 dict.Set( | 98 dict.Set("is_cld_reliable", new base::FundamentalValue( |
| 98 "is_cld_reliable", | 99 language_detection_details->is_cld_reliable)); |
| 99 new base::FundamentalValue(language_detection_details->is_cld_reliable)); | 100 dict.Set("has_notranslate", new base::FundamentalValue( |
| 100 dict.Set( | 101 language_detection_details->has_notranslate)); |
| 101 "has_notranslate", | |
| 102 new base::FundamentalValue(language_detection_details->has_notranslate)); | |
| 103 dict.Set( | 102 dict.Set( |
| 104 "html_root_language", | 103 "html_root_language", |
| 105 new base::StringValue(language_detection_details->html_root_language)); | 104 new base::StringValue(language_detection_details->html_root_language)); |
| 106 dict.Set("adopted_language", | 105 dict.Set("adopted_language", |
| 107 new base::StringValue(language_detection_details->adopted_language)); | 106 new base::StringValue(language_detection_details->adopted_language)); |
| 108 dict.Set("content", | 107 dict.Set("content", |
| 109 new base::StringValue(language_detection_details->contents)); | 108 new base::StringValue(language_detection_details->contents)); |
| 110 SendMessageToJs("languageDetectionInfoAdded", dict); | 109 SendMessageToJs("languageDetectionInfoAdded", dict); |
| 111 } | 110 } |
| 112 | 111 |
| 113 void TranslateInternalsHandler::OnTranslateError( | 112 void TranslateInternalsHandler::OnTranslateError( |
| 114 const translate::TranslateErrorDetails& details) { | 113 const translate::TranslateErrorDetails& details) { |
| 115 base::DictionaryValue dict; | 114 base::DictionaryValue dict; |
| 116 dict.Set("time", | 115 dict.Set("time", new base::FundamentalValue(details.time.ToJsTime())); |
| 117 new base::FundamentalValue(details.time.ToJsTime())); | 116 dict.Set("url", new base::StringValue(details.url.spec())); |
| 118 dict.Set("url", | 117 dict.Set("error", new base::FundamentalValue(details.error)); |
| 119 new base::StringValue(details.url.spec())); | |
| 120 dict.Set("error", | |
| 121 new base::FundamentalValue(details.error)); | |
| 122 SendMessageToJs("translateErrorDetailsAdded", dict); | 118 SendMessageToJs("translateErrorDetailsAdded", dict); |
| 123 } | 119 } |
| 124 | 120 |
| 125 void TranslateInternalsHandler::OnTranslateEvent( | 121 void TranslateInternalsHandler::OnTranslateEvent( |
| 126 const translate::TranslateEventDetails& details) { | 122 const translate::TranslateEventDetails& details) { |
| 127 base::DictionaryValue dict; | 123 base::DictionaryValue dict; |
| 128 dict.Set("time", new base::FundamentalValue(details.time.ToJsTime())); | 124 dict.Set("time", new base::FundamentalValue(details.time.ToJsTime())); |
| 129 dict.Set("filename", new base::StringValue(details.filename)); | 125 dict.Set("filename", new base::StringValue(details.filename)); |
| 130 dict.Set("line", new base::FundamentalValue(details.line)); | 126 dict.Set("line", new base::FundamentalValue(details.line)); |
| 131 dict.Set("message", new base::StringValue(details.message)); | 127 dict.Set("message", new base::StringValue(details.message)); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 | 198 |
| 203 void TranslateInternalsHandler::SendPrefsToJs() { | 199 void TranslateInternalsHandler::SendPrefsToJs() { |
| 204 content::WebContents* web_contents = web_ui()->GetWebContents(); | 200 content::WebContents* web_contents = web_ui()->GetWebContents(); |
| 205 Profile* profile = | 201 Profile* profile = |
| 206 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | 202 Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
| 207 PrefService* prefs = profile->GetOriginalProfile()->GetPrefs(); | 203 PrefService* prefs = profile->GetOriginalProfile()->GetPrefs(); |
| 208 | 204 |
| 209 base::DictionaryValue dict; | 205 base::DictionaryValue dict; |
| 210 | 206 |
| 211 static const char* keys[] = { | 207 static const char* keys[] = { |
| 212 prefs::kEnableTranslate, | 208 prefs::kEnableTranslate, |
| 213 translate::TranslatePrefs::kPrefTranslateBlockedLanguages, | 209 translate::TranslatePrefs::kPrefTranslateBlockedLanguages, |
| 214 translate::TranslatePrefs::kPrefTranslateSiteBlacklist, | 210 translate::TranslatePrefs::kPrefTranslateSiteBlacklist, |
| 215 translate::TranslatePrefs::kPrefTranslateWhitelists, | 211 translate::TranslatePrefs::kPrefTranslateWhitelists, |
| 216 translate::TranslatePrefs::kPrefTranslateDeniedCount, | 212 translate::TranslatePrefs::kPrefTranslateDeniedCount, |
| 217 translate::TranslatePrefs::kPrefTranslateAcceptedCount, | 213 translate::TranslatePrefs::kPrefTranslateIgnoredCount, |
| 218 translate::TranslatePrefs::kPrefTranslateLastDeniedTimeForLanguage, | 214 translate::TranslatePrefs::kPrefTranslateAcceptedCount, |
| 219 translate::TranslatePrefs::kPrefTranslateTooOftenDeniedForLanguage, | 215 translate::TranslatePrefs::kPrefTranslateLastDeniedTimeForLanguage, |
| 216 translate::TranslatePrefs::kPrefTranslateTooOftenDeniedForLanguage, |
| 220 }; | 217 }; |
| 221 for (const char* key : keys) { | 218 for (const char* key : keys) { |
| 222 const PrefService::Preference* pref = prefs->FindPreference(key); | 219 const PrefService::Preference* pref = prefs->FindPreference(key); |
| 223 if (pref) | 220 if (pref) |
| 224 dict.Set(key, pref->GetValue()->DeepCopy()); | 221 dict.Set(key, pref->GetValue()->DeepCopy()); |
| 225 } | 222 } |
| 226 | 223 |
| 227 SendMessageToJs("prefsUpdated", dict); | 224 SendMessageToJs("prefsUpdated", dict); |
| 228 } | 225 } |
| 229 | 226 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 240 for (std::vector<std::string>::iterator it = languages.begin(); | 237 for (std::vector<std::string>::iterator it = languages.begin(); |
| 241 it != languages.end(); ++it) { | 238 it != languages.end(); ++it) { |
| 242 const std::string& lang = *it; | 239 const std::string& lang = *it; |
| 243 languages_list->Append(new base::StringValue(lang)); | 240 languages_list->Append(new base::StringValue(lang)); |
| 244 if (translate::TranslateDownloadManager::IsAlphaLanguage(lang)) | 241 if (translate::TranslateDownloadManager::IsAlphaLanguage(lang)) |
| 245 alpha_languages_list->Append(new base::StringValue(lang)); | 242 alpha_languages_list->Append(new base::StringValue(lang)); |
| 246 } | 243 } |
| 247 | 244 |
| 248 dict.Set("languages", languages_list); | 245 dict.Set("languages", languages_list); |
| 249 dict.Set("alpha_languages", alpha_languages_list); | 246 dict.Set("alpha_languages", alpha_languages_list); |
| 250 dict.Set("last_updated", | 247 dict.Set("last_updated", new base::FundamentalValue(last_updated.ToJsTime())); |
| 251 new base::FundamentalValue(last_updated.ToJsTime())); | |
| 252 SendMessageToJs("supportedLanguagesUpdated", dict); | 248 SendMessageToJs("supportedLanguagesUpdated", dict); |
| 253 } | 249 } |
| 254 | 250 |
| 255 void TranslateInternalsHandler::SendCountryToJs(bool was_updated) { | 251 void TranslateInternalsHandler::SendCountryToJs(bool was_updated) { |
| 256 std::string country; | 252 std::string country; |
| 257 variations::VariationsService* variations_service = | 253 variations::VariationsService* variations_service = |
| 258 g_browser_process->variations_service(); | 254 g_browser_process->variations_service(); |
| 259 if (variations_service) | 255 if (variations_service) |
| 260 country = variations_service->GetStoredPermanentCountry(); | 256 country = variations_service->GetStoredPermanentCountry(); |
| 261 | 257 |
| 262 base::DictionaryValue dict; | 258 base::DictionaryValue dict; |
| 263 if (!country.empty()) { | 259 if (!country.empty()) { |
| 264 dict.Set("country", new base::StringValue(country)); | 260 dict.Set("country", new base::StringValue(country)); |
| 265 dict.Set("update", new base::FundamentalValue(was_updated)); | 261 dict.Set("update", new base::FundamentalValue(was_updated)); |
| 266 } | 262 } |
| 267 SendMessageToJs("countryUpdated", dict); | 263 SendMessageToJs("countryUpdated", dict); |
| 268 } | 264 } |
| OLD | NEW |