Index: components/autofill/content/public/cpp/autofill_types_struct_traits.h |
diff --git a/components/autofill/content/public/cpp/autofill_types_struct_traits.h b/components/autofill/content/public/cpp/autofill_types_struct_traits.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..120a68ecf40a1ce32310d552ac444c3a428268f6 |
--- /dev/null |
+++ b/components/autofill/content/public/cpp/autofill_types_struct_traits.h |
@@ -0,0 +1,114 @@ |
+// 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. |
+ |
+#ifndef COMPONENTS_AUTOFILL_CONTENT_PUBLIC_INTERFACES_AUTOFILL_TYPES_STRUCT_TRAITS_H_ |
+#define COMPONENTS_AUTOFILL_CONTENT_PUBLIC_INTERFACES_AUTOFILL_TYPES_STRUCT_TRAITS_H_ |
+ |
+#include "base/strings/string16.h" |
+#include "components/autofill/content/public/interfaces/autofill_types.mojom.h" |
+#include "components/autofill/core/common/form_data.h" |
+#include "components/autofill/core/common/form_field_data.h" |
+#include "mojo/public/cpp/bindings/struct_traits.h" |
+ |
+namespace mojo { |
+ |
+template <> |
+struct StructTraits<autofill::mojom::FormFieldData, autofill::FormFieldData> { |
+ static const base::string16& label(const autofill::FormFieldData& r) { |
+ return r.label; |
+ } |
+ |
+ static const base::string16& name(const autofill::FormFieldData& r) { |
+ return r.name; |
+ } |
+ |
+ static const base::string16& value(const autofill::FormFieldData& r) { |
+ return r.value; |
+ } |
+ |
+ static const std::string& form_control_type( |
+ const autofill::FormFieldData& r) { |
+ return r.form_control_type; |
+ } |
+ |
+ static const std::string& autocomplete_attribute( |
+ const autofill::FormFieldData& r) { |
+ return r.autocomplete_attribute; |
+ } |
+ |
+ static const base::string16& placeholder(const autofill::FormFieldData& r) { |
+ return r.placeholder; |
+ } |
+ |
+ static uint64_t max_length(const autofill::FormFieldData& r) { |
+ return r.max_length; |
+ } |
+ |
+ static bool is_autofilled(const autofill::FormFieldData& r) { |
+ return r.is_autofilled; |
+ } |
+ |
+ static bool is_checked(const autofill::FormFieldData& r) { |
+ return r.is_checked; |
+ } |
+ |
+ static bool is_checkable(const autofill::FormFieldData& r) { |
+ return r.is_checkable; |
+ } |
+ |
+ static bool is_focusable(const autofill::FormFieldData& r) { |
+ return r.is_focusable; |
+ } |
+ |
+ static bool should_autocomplete(const autofill::FormFieldData& r) { |
+ return r.should_autocomplete; |
+ } |
+ |
+ static autofill::mojom::RoleAttribute role(const autofill::FormFieldData& r); |
+ |
+ static autofill::mojom::TextDirection text_direction( |
+ const autofill::FormFieldData& r); |
+ |
+ static const std::vector<base::string16>& option_values( |
+ const autofill::FormFieldData& r) { |
+ return r.option_values; |
+ } |
+ |
+ static const std::vector<base::string16>& option_contents( |
+ const autofill::FormFieldData& r) { |
+ return r.option_contents; |
+ } |
+ |
+ static bool Read(autofill::mojom::FormFieldDataDataView data, |
+ autofill::FormFieldData* out); |
+}; |
+ |
+template <> |
+struct StructTraits<autofill::mojom::FormData, autofill::FormData> { |
+ static const base::string16& name(const autofill::FormData& r) { |
+ return r.name; |
+ } |
+ |
+ static const GURL& origin(const autofill::FormData& r) { return r.origin; } |
+ |
+ static const GURL& action(const autofill::FormData& r) { return r.action; } |
+ |
+ static bool is_form_tag(const autofill::FormData& r) { return r.is_form_tag; } |
+ |
+ static bool is_formless_checkout(const autofill::FormData& r) { |
+ return r.is_formless_checkout; |
+ } |
+ |
+ static const std::vector<autofill::FormFieldData>& fields( |
+ const autofill::FormData& r) { |
+ return r.fields; |
+ } |
+ |
+ static bool Read(autofill::mojom::FormDataDataView data, |
+ autofill::FormData* out); |
+}; |
+ |
+} // namespace mojo |
+ |
+#endif // COMPONENTS_AUTOFILL_CONTENT_PUBLIC_INTERFACES_AUTOFILL_TYPES_STRUCT_TRAITS_H_ |