diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /dom/base/StructuredCloneTags.h | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/base/StructuredCloneTags.h')
-rw-r--r-- | dom/base/StructuredCloneTags.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/dom/base/StructuredCloneTags.h b/dom/base/StructuredCloneTags.h new file mode 100644 index 0000000000..95233c62d7 --- /dev/null +++ b/dom/base/StructuredCloneTags.h @@ -0,0 +1,166 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef StructuredCloneTags_h__ +#define StructuredCloneTags_h__ + +#include "js/StructuredClone.h" + +namespace mozilla::dom { + +// CHANGING THE ORDER/PLACEMENT OF EXISTING ENUM VALUES MAY BREAK INDEXEDDB. +// PROCEED WITH EXTREME CAUTION. +// +// If you are planning to add new tags which could be used by IndexedDB, +// consider to use empty slots. See EMPTY_SLOT_x +enum StructuredCloneTags : uint32_t { + SCTAG_BASE = JS_SCTAG_USER_MIN, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_BLOB, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + // This tag is obsolete and exists only for backwards compatibility with + // existing IndexedDB databases. + SCTAG_DOM_FILE_WITHOUT_LASTMODIFIEDDATE, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_FILELIST, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_MUTABLEFILE, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_FILE, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_WASM_MODULE, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_IMAGEDATA, + + SCTAG_DOM_DOMPOINT, + SCTAG_DOM_DOMPOINTREADONLY, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + // This tag is for WebCrypto keys + SCTAG_DOM_CRYPTOKEY, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_NULL_PRINCIPAL, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_SYSTEM_PRINCIPAL, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_CONTENT_PRINCIPAL, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMQUAD, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_RTCCERTIFICATE, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMRECT, + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMRECTREADONLY, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_EXPANDED_PRINCIPAL, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMMATRIX, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_URLSEARCHPARAMS, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMMATRIXREADONLY, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_DOMEXCEPTION, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + EMPTY_SLOT_9, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_STRUCTUREDCLONETESTER, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_FILESYSTEMHANDLE, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_FILESYSTEMFILEHANDLE, + + // IMPORTANT: Don't change the order of these enum values. You could break + // IDB. + SCTAG_DOM_FILESYSTEMDIRECTORYHANDLE, + + // If you are planning to add new tags which could be used by IndexedDB, + // consider to use an empty slot. See EMPTY_SLOT_x + + // Please update the static assertions in StructuredCloneHolder.cpp and in + // IDBObjectStore.cpp, method CommonStructuredCloneReadCallback. + + // -------------------------------------------------------------------------- + + // All the following tags are not written to disk and they are not used by + // IndexedDB directly or via + // StructuredCloneHolder::{Read,Write}FullySerializableObjects. In theory they + // can be 'less' stable. + + SCTAG_DOM_IMAGEBITMAP, + SCTAG_DOM_MAP_MESSAGEPORT, + SCTAG_DOM_FORMDATA, + + // This tag is for OffscreenCanvas. + SCTAG_DOM_CANVAS, + + SCTAG_DOM_DIRECTORY, + + SCTAG_DOM_INPUTSTREAM, + + SCTAG_DOM_STRUCTURED_CLONE_HOLDER, + + SCTAG_DOM_BROWSING_CONTEXT, + + SCTAG_DOM_CLONED_ERROR_OBJECT, + + SCTAG_DOM_READABLESTREAM, + + SCTAG_DOM_WRITABLESTREAM, + + SCTAG_DOM_TRANSFORMSTREAM, + + SCTAG_DOM_VIDEOFRAME, + + SCTAG_DOM_ENCODEDVIDEOCHUNK, + + // IMPORTANT: If you plan to add an new IDB tag, it _must_ be add before the + // "less stable" tags! +}; + +} // namespace mozilla::dom + +#endif // StructuredCloneTags_h__ |