Chromium Code Reviews| Index: components/translate/content/common/translate_struct_traits.cc |
| diff --git a/components/translate/content/common/translate_struct_traits.cc b/components/translate/content/common/translate_struct_traits.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e26707440f972c69c161a4e78d474ccf307987cc |
| --- /dev/null |
| +++ b/components/translate/content/common/translate_struct_traits.cc |
| @@ -0,0 +1,120 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "components/translate/content/common/translate_struct_traits.h" |
| + |
| +#include "ipc/ipc_message_utils.h" |
|
jam
2016/08/09 22:22:18
nit: do you need this?
|
| +#include "url/mojo/url_gurl_struct_traits.h" |
| + |
| +using namespace translate; |
| + |
| +namespace mojo { |
| + |
| +mojom::TranslateError |
| +EnumTraits<mojom::TranslateError, TranslateErrors::Type>::ToMojom( |
| + TranslateErrors::Type input) { |
| + switch (input) { |
| + case TranslateErrors::Type::NONE: |
| + return mojom::TranslateError::NONE; |
| + case TranslateErrors::Type::NETWORK: |
| + return mojom::TranslateError::NETWORK; |
| + case TranslateErrors::Type::INITIALIZATION_ERROR: |
| + return mojom::TranslateError::INITIALIZATION_ERROR; |
| + case TranslateErrors::Type::UNKNOWN_LANGUAGE: |
| + return mojom::TranslateError::UNKNOWN_LANGUAGE; |
| + case TranslateErrors::Type::UNSUPPORTED_LANGUAGE: |
| + return mojom::TranslateError::UNSUPPORTED_LANGUAGE; |
| + case TranslateErrors::Type::IDENTICAL_LANGUAGES: |
| + return mojom::TranslateError::IDENTICAL_LANGUAGES; |
| + case TranslateErrors::Type::TRANSLATION_ERROR: |
| + return mojom::TranslateError::TRANSLATION_ERROR; |
| + case TranslateErrors::Type::TRANSLATION_TIMEOUT: |
| + return mojom::TranslateError::TRANSLATION_TIMEOUT; |
| + case TranslateErrors::Type::UNEXPECTED_SCRIPT_ERROR: |
| + return mojom::TranslateError::UNEXPECTED_SCRIPT_ERROR; |
| + case TranslateErrors::Type::BAD_ORIGIN: |
| + return mojom::TranslateError::BAD_ORIGIN; |
| + case TranslateErrors::Type::SCRIPT_LOAD_ERROR: |
| + return mojom::TranslateError::SCRIPT_LOAD_ERROR; |
| + case TranslateErrors::Type::TRANSLATE_ERROR_MAX: |
| + return mojom::TranslateError::TRANSLATE_ERROR_MAX; |
| + } |
| + |
| + NOTREACHED(); |
| + return mojom::TranslateError::NONE; |
| +} |
| + |
| +bool EnumTraits<mojom::TranslateError, TranslateErrors::Type>::FromMojom( |
| + mojom::TranslateError input, |
| + TranslateErrors::Type* output) { |
| + switch (input) { |
| + case mojom::TranslateError::NONE: |
| + *output = TranslateErrors::Type::NONE; |
| + return true; |
| + case mojom::TranslateError::NETWORK: |
| + *output = TranslateErrors::Type::NETWORK; |
| + return true; |
| + case mojom::TranslateError::INITIALIZATION_ERROR: |
| + *output = TranslateErrors::Type::INITIALIZATION_ERROR; |
| + return true; |
| + case mojom::TranslateError::UNKNOWN_LANGUAGE: |
| + *output = TranslateErrors::Type::UNKNOWN_LANGUAGE; |
| + return true; |
| + case mojom::TranslateError::UNSUPPORTED_LANGUAGE: |
| + *output = TranslateErrors::Type::UNSUPPORTED_LANGUAGE; |
| + return true; |
| + case mojom::TranslateError::IDENTICAL_LANGUAGES: |
| + *output = TranslateErrors::Type::IDENTICAL_LANGUAGES; |
| + return true; |
| + case mojom::TranslateError::TRANSLATION_ERROR: |
| + *output = TranslateErrors::Type::TRANSLATION_ERROR; |
| + return true; |
| + case mojom::TranslateError::TRANSLATION_TIMEOUT: |
| + *output = TranslateErrors::Type::TRANSLATION_TIMEOUT; |
| + return true; |
| + case mojom::TranslateError::UNEXPECTED_SCRIPT_ERROR: |
| + *output = TranslateErrors::Type::UNEXPECTED_SCRIPT_ERROR; |
| + return true; |
| + case mojom::TranslateError::BAD_ORIGIN: |
| + *output = TranslateErrors::Type::BAD_ORIGIN; |
| + return true; |
| + case mojom::TranslateError::SCRIPT_LOAD_ERROR: |
| + *output = TranslateErrors::Type::SCRIPT_LOAD_ERROR; |
| + return true; |
| + case mojom::TranslateError::TRANSLATE_ERROR_MAX: |
| + *output = TranslateErrors::Type::TRANSLATE_ERROR_MAX; |
| + return true; |
| + } |
| + |
| + NOTREACHED(); |
| + return false; |
| +} |
| + |
| +// static |
| +bool StructTraits<mojom::LanguageDetectionDetails, LanguageDetectionDetails>:: |
| + Read(mojom::LanguageDetectionDetailsDataView data, |
| + LanguageDetectionDetails* out) { |
| + if (!data.ReadTime(&out->time)) |
| + return false; |
| + if (!data.ReadUrl(&out->url)) |
| + return false; |
| + if (!data.ReadContentLanguage(&out->content_language)) |
| + return false; |
| + if (!data.ReadCldLanguage(&out->cld_language)) |
| + return false; |
| + |
| + out->is_cld_reliable = data.is_cld_reliable(); |
| + out->has_notranslate = data.has_notranslate(); |
| + |
| + if (!data.ReadHtmlRootLanguage(&out->html_root_language)) |
| + return false; |
| + if (!data.ReadAdoptedLanguage(&out->adopted_language)) |
| + return false; |
| + if (!data.ReadContents(&out->contents)) |
| + return false; |
| + |
| + return true; |
| +} |
| + |
| +} // namespace mojo |