| OLD | NEW |
| 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/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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 return; | 213 return; |
| 214 } | 214 } |
| 215 static const size_t kLanguageListCallbackNameLength = | 215 static const size_t kLanguageListCallbackNameLength = |
| 216 strlen(kLanguageListCallbackName); | 216 strlen(kLanguageListCallbackName); |
| 217 std::string languages_json = language_list.substr( | 217 std::string languages_json = language_list.substr( |
| 218 kLanguageListCallbackNameLength, | 218 kLanguageListCallbackNameLength, |
| 219 language_list.size() - kLanguageListCallbackNameLength - 1); | 219 language_list.size() - kLanguageListCallbackNameLength - 1); |
| 220 // JSON doesn't support single quotes though this is what is used on the | 220 // JSON doesn't support single quotes though this is what is used on the |
| 221 // translate server so we must replace them with double quotes. | 221 // translate server so we must replace them with double quotes. |
| 222 ReplaceSubstringsAfterOffset(&languages_json, 0, "'", "\""); | 222 ReplaceSubstringsAfterOffset(&languages_json, 0, "'", "\""); |
| 223 scoped_ptr<Value> json_value(base::JSONReader::Read(languages_json, true)); | 223 scoped_ptr<Value> json_value( |
| 224 base::JSONReader::Read(languages_json, base::JSON_ALLOW_TRAILING_COMMAS)); |
| 224 if (json_value == NULL || !json_value->IsType(Value::TYPE_DICTIONARY)) { | 225 if (json_value == NULL || !json_value->IsType(Value::TYPE_DICTIONARY)) { |
| 225 NOTREACHED(); | 226 NOTREACHED(); |
| 226 return; | 227 return; |
| 227 } | 228 } |
| 228 // The first level dictionary contains two sub-dict, one for source languages | 229 // The first level dictionary contains two sub-dict, one for source languages |
| 229 // and the other for target languages, we want to use the target languages. | 230 // and the other for target languages, we want to use the target languages. |
| 230 DictionaryValue* language_dict = | 231 DictionaryValue* language_dict = |
| 231 static_cast<DictionaryValue*>(json_value.get()); | 232 static_cast<DictionaryValue*>(json_value.get()); |
| 232 DictionaryValue* target_languages = NULL; | 233 DictionaryValue* target_languages = NULL; |
| 233 if (!language_dict->GetDictionary(kTargetLanguagesKey, &target_languages) || | 234 if (!language_dict->GetDictionary(kTargetLanguagesKey, &target_languages) || |
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); | 899 InfoBarTabHelper* infobar_helper = wrapper->infobar_tab_helper(); |
| 899 | 900 |
| 900 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { | 901 for (size_t i = 0; i < infobar_helper->infobar_count(); ++i) { |
| 901 TranslateInfoBarDelegate* delegate = | 902 TranslateInfoBarDelegate* delegate = |
| 902 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate(); | 903 infobar_helper->GetInfoBarDelegateAt(i)->AsTranslateInfoBarDelegate(); |
| 903 if (delegate) | 904 if (delegate) |
| 904 return delegate; | 905 return delegate; |
| 905 } | 906 } |
| 906 return NULL; | 907 return NULL; |
| 907 } | 908 } |
| OLD | NEW |