Bug 1665252 - remove allowpaymentrequest attribute from HTMLIFrameElement r=dom-worke...
[gecko.git] / dom / base / StructuredCloneTags.h
blob31e3ea8acf2e5335d7f6c828557baaa8adb298b3
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef StructuredCloneTags_h__
8 #define StructuredCloneTags_h__
10 #include "js/StructuredClone.h"
12 namespace mozilla {
13 namespace dom {
15 // CHANGING THE ORDER/PLACEMENT OF EXISTING ENUM VALUES MAY BREAK INDEXEDDB.
16 // PROCEED WITH EXTREME CAUTION.
18 // If you are planning to add new tags which could be used by IndexedDB,
19 // consider to use empty slots. See EMPTY_SLOT_x
20 enum StructuredCloneTags {
21 SCTAG_BASE = JS_SCTAG_USER_MIN,
23 // IMPORTANT: Don't change the order of these enum values. You could break
24 // IDB.
25 SCTAG_DOM_BLOB,
26 // IMPORTANT: Don't change the order of these enum values. You could break
27 // IDB.
28 // This tag is obsolete and exists only for backwards compatibility with
29 // existing IndexedDB databases.
30 SCTAG_DOM_FILE_WITHOUT_LASTMODIFIEDDATE,
31 // IMPORTANT: Don't change the order of these enum values. You could break
32 // IDB.
33 SCTAG_DOM_FILELIST,
34 // IMPORTANT: Don't change the order of these enum values. You could break
35 // IDB.
36 SCTAG_DOM_MUTABLEFILE,
37 // IMPORTANT: Don't change the order of these enum values. You could break
38 // IDB.
39 SCTAG_DOM_FILE,
40 // IMPORTANT: Don't change the order of these enum values. You could break
41 // IDB.
42 SCTAG_DOM_WASM_MODULE,
44 // IMPORTANT: Don't change the order of these enum values. You could break
45 // IDB.
46 SCTAG_DOM_IMAGEDATA,
48 SCTAG_DOM_DOMPOINT,
49 SCTAG_DOM_DOMPOINTREADONLY,
51 // IMPORTANT: Don't change the order of these enum values. You could break
52 // IDB.
53 // This tag is for WebCrypto keys
54 SCTAG_DOM_CRYPTOKEY,
56 // IMPORTANT: Don't change the order of these enum values. You could break
57 // IDB.
58 SCTAG_DOM_NULL_PRINCIPAL,
59 // IMPORTANT: Don't change the order of these enum values. You could break
60 // IDB.
61 SCTAG_DOM_SYSTEM_PRINCIPAL,
62 // IMPORTANT: Don't change the order of these enum values. You could break
63 // IDB.
64 SCTAG_DOM_CONTENT_PRINCIPAL,
66 // IMPORTANT: Don't change the order of these enum values. You could break
67 // IDB.
68 SCTAG_DOM_DOMQUAD,
70 // IMPORTANT: Don't change the order of these enum values. You could break
71 // IDB.
72 SCTAG_DOM_RTCCERTIFICATE,
74 // IMPORTANT: Don't change the order of these enum values. You could break
75 // IDB.
76 SCTAG_DOM_DOMRECT,
77 // IMPORTANT: Don't change the order of these enum values. You could break
78 // IDB.
79 SCTAG_DOM_DOMRECTREADONLY,
81 // IMPORTANT: Don't change the order of these enum values. You could break
82 // IDB.
83 SCTAG_DOM_EXPANDED_PRINCIPAL,
85 // IMPORTANT: Don't change the order of these enum values. You could break
86 // IDB.
87 SCTAG_DOM_DOMMATRIX,
89 // IMPORTANT: Don't change the order of these enum values. You could break
90 // IDB.
91 SCTAG_DOM_URLSEARCHPARAMS,
93 // IMPORTANT: Don't change the order of these enum values. You could break
94 // IDB.
95 SCTAG_DOM_DOMMATRIXREADONLY,
97 // IMPORTANT: Don't change the order of these enum values. You could break
98 // IDB.
99 EMPTY_SLOT_8,
101 // IMPORTANT: Don't change the order of these enum values. You could break
102 // IDB.
103 EMPTY_SLOT_9,
105 // IMPORTANT: Don't change the order of these enum values. You could break
106 // IDB.
107 SCTAG_DOM_STRUCTUREDCLONETESTER,
109 // If you are planning to add new tags which could be used by IndexedDB,
110 // consider to use empty slots. See EMPTY_SLOT_x
112 // Please update the static assertions in StructuredCloneHolder.cpp and in
113 // IDBObjectStore.cpp, method CommonStructuredCloneReadCallback.
115 // --------------------------------------------------------------------------
117 // All the following tags are not written to disk and they are not used by
118 // IndexedDB directly or via
119 // StructuredCloneHolder::{Read,Write}FullySerializableObjects. In theory they
120 // can be 'less' stable.
122 // Principal written out by worker threads when serializing objects. When
123 // reading on the main thread this principal will be converted to a normal
124 // principal object using nsJSPrincipals::AutoSetActiveWorkerPrincipal.
125 SCTAG_DOM_WORKER_PRINCIPAL,
127 SCTAG_DOM_IMAGEBITMAP,
128 SCTAG_DOM_MAP_MESSAGEPORT,
129 SCTAG_DOM_FORMDATA,
131 // This tag is for OffscreenCanvas.
132 SCTAG_DOM_CANVAS,
134 SCTAG_DOM_DIRECTORY,
136 SCTAG_DOM_INPUTSTREAM,
138 SCTAG_DOM_STRUCTURED_CLONE_HOLDER,
140 SCTAG_DOM_BROWSING_CONTEXT,
142 SCTAG_DOM_CLONED_ERROR_OBJECT,
144 // IMPORTANT: If you plan to add an new IDB tag, it _must_ be add before the
145 // "less stable" tags!
148 } // namespace dom
149 } // namespace mozilla
151 #endif // StructuredCloneTags_h__