Index: content/common/indexed_db/indexed_db_struct_traits.cc |
diff --git a/content/common/indexed_db/indexed_db_struct_traits.cc b/content/common/indexed_db/indexed_db_struct_traits.cc |
index f9ab3189ea559b3ffb409ef4ee4e7a62ca01d78f..ecd1e67505ee42d2b5b8a4ec6677383445501d33 100644 |
--- a/content/common/indexed_db/indexed_db_struct_traits.cc |
+++ b/content/common/indexed_db/indexed_db_struct_traits.cc |
@@ -8,6 +8,12 @@ |
using content::IndexedDBKey; |
using content::IndexedDBKeyPath; |
using content::IndexedDBKeyRange; |
+using indexed_db::mojom::CursorDirection; |
+using indexed_db::mojom::DataLoss; |
+using indexed_db::mojom::OperationType; |
+using indexed_db::mojom::PutMode; |
+using indexed_db::mojom::TaskType; |
+using indexed_db::mojom::TransactionMode; |
namespace mojo { |
@@ -237,4 +243,206 @@ bool StructTraits<indexed_db::mojom::DatabaseMetadataDataView, |
return true; |
} |
+// static |
+CursorDirection |
+EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::ToMojom( |
+ blink::WebIDBCursorDirection input) { |
+ switch (input) { |
+ case blink::WebIDBCursorDirectionNext: |
+ return CursorDirection::Next; |
+ case blink::WebIDBCursorDirectionNextNoDuplicate: |
+ return CursorDirection::NextNoDuplicate; |
+ case blink::WebIDBCursorDirectionPrev: |
+ return CursorDirection::Prev; |
+ case blink::WebIDBCursorDirectionPrevNoDuplicate: |
+ return CursorDirection::PrevNoDuplicate; |
+ } |
+ NOTREACHED(); |
+ return CursorDirection::Next; |
+} |
+ |
+// static |
+bool EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::FromMojom( |
+ CursorDirection input, |
+ blink::WebIDBCursorDirection* output) { |
+ switch (input) { |
+ case CursorDirection::Next: |
+ *output = blink::WebIDBCursorDirectionNext; |
+ return true; |
+ case CursorDirection::NextNoDuplicate: |
+ *output = blink::WebIDBCursorDirectionNextNoDuplicate; |
+ return true; |
+ case CursorDirection::Prev: |
+ *output = blink::WebIDBCursorDirectionPrev; |
+ return true; |
+ case CursorDirection::PrevNoDuplicate: |
+ *output = blink::WebIDBCursorDirectionPrevNoDuplicate; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+DataLoss EnumTraits<DataLoss, blink::WebIDBDataLoss>::ToMojom( |
+ blink::WebIDBDataLoss input) { |
+ switch (input) { |
+ case blink::WebIDBDataLossNone: |
+ return DataLoss::None; |
+ case blink::WebIDBDataLossTotal: |
+ return DataLoss::Total; |
+ } |
+ NOTREACHED(); |
+ return DataLoss::None; |
+} |
+ |
+// static |
+bool EnumTraits<DataLoss, blink::WebIDBDataLoss>::FromMojom( |
+ DataLoss input, |
+ blink::WebIDBDataLoss* output) { |
+ switch (input) { |
+ case DataLoss::None: |
+ *output = blink::WebIDBDataLossNone; |
+ return true; |
+ case DataLoss::Total: |
+ *output = blink::WebIDBDataLossTotal; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+OperationType EnumTraits<OperationType, blink::WebIDBOperationType>::ToMojom( |
+ blink::WebIDBOperationType input) { |
+ switch (input) { |
+ case blink::WebIDBAdd: |
+ return OperationType::Add; |
+ case blink::WebIDBPut: |
+ return OperationType::Put; |
+ case blink::WebIDBDelete: |
+ return OperationType::Delete; |
+ case blink::WebIDBClear: |
+ return OperationType::Clear; |
+ case blink::WebIDBOperationTypeCount: |
+ // WebIDBOperationTypeCount is not a valid option. |
+ break; |
+ } |
+ NOTREACHED(); |
+ return OperationType::Add; |
+} |
+ |
+// static |
+bool EnumTraits<OperationType, blink::WebIDBOperationType>::FromMojom( |
+ OperationType input, |
+ blink::WebIDBOperationType* output) { |
+ switch (input) { |
+ case OperationType::Add: |
+ *output = blink::WebIDBAdd; |
+ return true; |
+ case OperationType::Put: |
+ *output = blink::WebIDBPut; |
+ return true; |
+ case OperationType::Delete: |
+ *output = blink::WebIDBDelete; |
+ return true; |
+ case OperationType::Clear: |
+ *output = blink::WebIDBClear; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+PutMode EnumTraits<PutMode, blink::WebIDBPutMode>::ToMojom( |
+ blink::WebIDBPutMode input) { |
+ switch (input) { |
+ case blink::WebIDBPutModeAddOrUpdate: |
+ return PutMode::AddOrUpdate; |
+ case blink::WebIDBPutModeAddOnly: |
+ return PutMode::AddOnly; |
+ case blink::WebIDBPutModeCursorUpdate: |
+ return PutMode::CursorUpdate; |
+ } |
+ NOTREACHED(); |
+ return PutMode::AddOrUpdate; |
+} |
+ |
+// static |
+bool EnumTraits<PutMode, blink::WebIDBPutMode>::FromMojom( |
+ PutMode input, |
+ blink::WebIDBPutMode* output) { |
+ switch (input) { |
+ case PutMode::AddOrUpdate: |
+ *output = blink::WebIDBPutModeAddOrUpdate; |
+ return true; |
+ case PutMode::AddOnly: |
+ *output = blink::WebIDBPutModeAddOnly; |
+ return true; |
+ case PutMode::CursorUpdate: |
+ *output = blink::WebIDBPutModeCursorUpdate; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+TaskType EnumTraits<TaskType, blink::WebIDBTaskType>::ToMojom( |
+ blink::WebIDBTaskType input) { |
+ switch (input) { |
+ case blink::WebIDBTaskTypeNormal: |
+ return TaskType::Normal; |
+ case blink::WebIDBTaskTypePreemptive: |
+ return TaskType::Preemptive; |
+ } |
+ NOTREACHED(); |
+ return TaskType::Normal; |
+} |
+ |
+// static |
+bool EnumTraits<TaskType, blink::WebIDBTaskType>::FromMojom( |
+ TaskType input, |
+ blink::WebIDBTaskType* output) { |
+ switch (input) { |
+ case TaskType::Normal: |
+ *output = blink::WebIDBTaskTypeNormal; |
+ return true; |
+ case TaskType::Preemptive: |
+ *output = blink::WebIDBTaskTypePreemptive; |
+ return true; |
+ } |
+ return false; |
+} |
+ |
+// static |
+TransactionMode |
+EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::ToMojom( |
+ blink::WebIDBTransactionMode input) { |
+ switch (input) { |
+ case blink::WebIDBTransactionModeReadOnly: |
+ return TransactionMode::ReadOnly; |
+ case blink::WebIDBTransactionModeReadWrite: |
+ return TransactionMode::ReadWrite; |
+ case blink::WebIDBTransactionModeVersionChange: |
+ return TransactionMode::VersionChange; |
+ } |
+ NOTREACHED(); |
+ return TransactionMode::ReadOnly; |
+} |
+ |
+// static |
+bool EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::FromMojom( |
+ TransactionMode input, |
+ blink::WebIDBTransactionMode* output) { |
+ switch (input) { |
+ case TransactionMode::ReadOnly: |
+ *output = blink::WebIDBTransactionModeReadOnly; |
+ return true; |
+ case TransactionMode::ReadWrite: |
+ *output = blink::WebIDBTransactionModeReadWrite; |
+ return true; |
+ case TransactionMode::VersionChange: |
+ *output = blink::WebIDBTransactionModeVersionChange; |
+ return true; |
+ } |
+ return false; |
+} |
} // namespace mojo |