Index: extensions/common/manifest_location_struct_traits.cc |
diff --git a/extensions/common/manifest_location_struct_traits.cc b/extensions/common/manifest_location_struct_traits.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b78ecb4b2406c6c11b1d55b067ac497dc35893d6 |
--- /dev/null |
+++ b/extensions/common/manifest_location_struct_traits.cc |
@@ -0,0 +1,90 @@ |
+// Copyright 2017 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 "extensions/common/manifest_location_struct_traits.h" |
+ |
+namespace mojo { |
+ |
+using ::extensions::mojom::ManifestLocation; |
+using ::extensions::Manifest; |
+ |
+// static |
+ManifestLocation EnumTraits<ManifestLocation, Manifest::Location>::ToMojom( |
+ Manifest::Location input) { |
+ switch (input) { |
+ case Manifest::Location::INVALID_LOCATION: |
+ return ManifestLocation::INVALID_LOCATION; |
+ case Manifest::Location::INTERNAL: |
+ return ManifestLocation::INTERNAL; |
+ case Manifest::Location::EXTERNAL_PREF: |
+ return ManifestLocation::EXTERNAL_PREF; |
+ case Manifest::Location::EXTERNAL_REGISTRY: |
+ return ManifestLocation::EXTERNAL_REGISTRY; |
+ case Manifest::Location::UNPACKED: |
+ return ManifestLocation::UNPACKED; |
+ case Manifest::Location::COMPONENT: |
+ return ManifestLocation::COMPONENT; |
+ case Manifest::Location::EXTERNAL_PREF_DOWNLOAD: |
+ return ManifestLocation::EXTERNAL_PREF_DOWNLOAD; |
+ case Manifest::Location::EXTERNAL_POLICY_DOWNLOAD: |
+ return ManifestLocation::EXTERNAL_POLICY_DOWNLOAD; |
+ case Manifest::Location::COMMAND_LINE: |
+ return ManifestLocation::COMMAND_LINE; |
+ case Manifest::Location::EXTERNAL_POLICY: |
+ return ManifestLocation::EXTERNAL_POLICY; |
+ case Manifest::Location::EXTERNAL_COMPONENT: |
+ return ManifestLocation::EXTERNAL_COMPONENT; |
+ |
+ case Manifest::Location::NUM_LOCATIONS: |
+ break; |
+ } |
+ |
+ NOTREACHED(); |
+ return {}; |
+} |
+ |
+// static |
+bool EnumTraits<ManifestLocation, Manifest::Location>::FromMojom( |
+ ManifestLocation input, |
+ Manifest::Location* output) { |
+ switch (input) { |
+ case ManifestLocation::INVALID_LOCATION: |
+ *output = Manifest::Location::INVALID_LOCATION; |
+ return true; |
+ case ManifestLocation::INTERNAL: |
+ *output = Manifest::Location::INTERNAL; |
+ return true; |
+ case ManifestLocation::EXTERNAL_PREF: |
+ *output = Manifest::Location::EXTERNAL_PREF; |
+ return true; |
+ case ManifestLocation::EXTERNAL_REGISTRY: |
+ *output = Manifest::Location::EXTERNAL_REGISTRY; |
+ return true; |
+ case ManifestLocation::UNPACKED: |
+ *output = Manifest::Location::UNPACKED; |
+ return true; |
+ case ManifestLocation::COMPONENT: |
+ *output = Manifest::Location::COMPONENT; |
+ return true; |
+ case ManifestLocation::EXTERNAL_PREF_DOWNLOAD: |
+ *output = Manifest::Location::EXTERNAL_PREF_DOWNLOAD; |
+ return true; |
+ case ManifestLocation::EXTERNAL_POLICY_DOWNLOAD: |
+ *output = Manifest::Location::EXTERNAL_POLICY_DOWNLOAD; |
+ return true; |
+ case ManifestLocation::COMMAND_LINE: |
+ *output = Manifest::Location::COMMAND_LINE; |
+ return true; |
+ case ManifestLocation::EXTERNAL_POLICY: |
+ *output = Manifest::Location::EXTERNAL_POLICY; |
+ return true; |
+ case ManifestLocation::EXTERNAL_COMPONENT: |
+ *output = Manifest::Location::EXTERNAL_COMPONENT; |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
+} // namespace mojo |