// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_VALUE_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_VALUE_H_ #include <memory> #include <optional> #include <utility> #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "third_party/blink/public/mojom/file_system_access/file_system_access_transfer_token.mojom-blink-forward.h" #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-blink-forward.h" #include "third_party/blink/renderer/modules/indexeddb/idb_key.h" #include "third_party/blink/renderer/modules/indexeddb/idb_key_path.h" #include "third_party/blink/renderer/modules/modules_export.h" #include "v8/include/v8.h" namespace blink { class BlobDataHandle; class SerializedScriptValue; class WebBlobInfo; // Represents an IndexedDB Object Store value retrieved from the backing store. // // For most purposes, the backing store represents each IndexedDB value as wire // data (a vector of bytes produced by SerializedScriptValue) and attached Blobs // (a vector of Blobs). // // Object stores with auto-incrementing primary keys are a special case. To // guarantee that we generate unique sequential numbers, the primary keys for // these values are generated by the backing store. In this case, the primary // key must be stored along the wire data. The backing store cannot invoke // SerializedScriptValue, so it cannot inject the primary key into the wire // bytes. Instead, when the values are read, Blink receives the primary keys // along the IndexedDB values, and is responsible for injecting the keys into // the values before returning them to the user. class MODULES_EXPORT IDBValue final { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_INDEXEDDB_IDB_VALUE_H_