summaryrefslogtreecommitdiffstats
path: root/dom/base/StructuredCloneTags.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/base/StructuredCloneTags.h
parentInitial commit. (diff)
downloadfirefox-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 'dom/base/StructuredCloneTags.h')
-rw-r--r--dom/base/StructuredCloneTags.h164
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__