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" |
+#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 |