mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
Bug 1878148 - fix the WPT IndexedDB/serialize-sharedarraybuffer-throws.https.html to trigger a data clone error per spec, and send the correct DataCloneError it expects; r=jari,dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D208506
This commit is contained in:
parent
7cd5a89960
commit
c9f56fc858
@ -276,12 +276,22 @@ bool CopyingStructuredCloneWriteCallback(JSContext* aCx,
|
||||
aObj);
|
||||
}
|
||||
|
||||
void StructuredCloneErrorCallback(JSContext* aCx, uint32_t aErrorId,
|
||||
void* aClosure, const char* aErrorMessage) {
|
||||
// This callback is only used to prevent the default cloning TypeErrors
|
||||
// from being thrown, as we will throw DataCloneErrors instead per spec.
|
||||
}
|
||||
|
||||
nsresult GetAddInfoCallback(JSContext* aCx, void* aClosure) {
|
||||
static const JSStructuredCloneCallbacks kStructuredCloneCallbacks = {
|
||||
nullptr /* read */, StructuredCloneWriteCallback /* write */,
|
||||
nullptr /* reportError */, nullptr /* readTransfer */,
|
||||
nullptr /* writeTransfer */, nullptr /* freeTransfer */,
|
||||
nullptr /* canTransfer */, nullptr /* sabCloned */
|
||||
nullptr /* read */,
|
||||
StructuredCloneWriteCallback /* write */,
|
||||
StructuredCloneErrorCallback /* reportError */,
|
||||
nullptr /* readTransfer */,
|
||||
nullptr /* writeTransfer */,
|
||||
nullptr /* freeTransfer */,
|
||||
nullptr /* canTransfer */,
|
||||
nullptr /* sabCloned */
|
||||
};
|
||||
|
||||
MOZ_ASSERT(aCx);
|
||||
@ -555,7 +565,7 @@ bool IDBObjectStore::DeserializeValue(
|
||||
static const JSStructuredCloneCallbacks callbacks = {
|
||||
StructuredCloneReadCallback<StructuredCloneReadInfoChild>,
|
||||
nullptr,
|
||||
nullptr,
|
||||
StructuredCloneErrorCallback,
|
||||
nullptr,
|
||||
nullptr,
|
||||
nullptr,
|
||||
@ -1751,7 +1761,7 @@ bool IDBObjectStore::ValueWrapper::Clone(JSContext* aCx) {
|
||||
static const JSStructuredCloneCallbacks callbacks = {
|
||||
CopyingStructuredCloneReadCallback /* read */,
|
||||
CopyingStructuredCloneWriteCallback /* write */,
|
||||
nullptr /* reportError */,
|
||||
StructuredCloneErrorCallback /* reportError */,
|
||||
nullptr /* readTransfer */,
|
||||
nullptr /* writeTransfer */,
|
||||
nullptr /* freeTransfer */,
|
||||
|
@ -2,5 +2,3 @@
|
||||
expected:
|
||||
if (os == "android") and not debug: [OK, TIMEOUT]
|
||||
if (os == "android") and debug: [OK, TIMEOUT]
|
||||
[IndexedDB: Attempting to serialize a SharedArrayBuffer should throw]
|
||||
expected: FAIL
|
||||
|
@ -4,17 +4,7 @@
|
||||
[SharedArrayBuffer cloning via IndexedDB: basic case]
|
||||
expected:
|
||||
if (processor == "x86") and (os == "win") and not debug: [FAIL, TIMEOUT]
|
||||
FAIL
|
||||
|
||||
[SharedArrayBuffer cloning via the IndexedDB: is interleaved correctly]
|
||||
expected:
|
||||
if (processor == "x86") and (os == "win") and not debug: [FAIL, TIMEOUT]
|
||||
FAIL
|
||||
|
||||
|
||||
[serialization-via-idb.any.html]
|
||||
[SharedArrayBuffer cloning via IndexedDB: basic case]
|
||||
expected: FAIL
|
||||
|
||||
[SharedArrayBuffer cloning via the IndexedDB: is interleaved correctly]
|
||||
expected: FAIL
|
||||
|
@ -13,7 +13,7 @@
|
||||
let open_rq = createdb(t);
|
||||
open_rq.onupgradeneeded = function(e) {
|
||||
let db = e.target.result;
|
||||
let objStore = db.createObjectStore("test", { keyPath:"pKey" });
|
||||
let objStore = db.createObjectStore("test");
|
||||
|
||||
let sab = new SharedArrayBuffer(256);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user