diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/base/StructuredCloneTags.h | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | dom/base/StructuredCloneTags.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/dom/base/StructuredCloneTags.h b/dom/base/StructuredCloneTags.h new file mode 100644 index 0000000000..19007c2943 --- /dev/null +++ b/dom/base/StructuredCloneTags.h @@ -0,0 +1,164 @@ +/* -*- 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, + + // 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__ |