mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
e12ce7d680
This patch removes support for de-serialization of WebAssembly.Modules. The preprocessing which was added just for WebAssembly.Modules is not removed since it can be reused for more efficient de-serialization of big structured clones which are stored as standalone files. (standalone files can be read and uncompressed in content process instead of the parent process). So this patch also adjusts the preprocessing to support that. However the preprocessing is not fully implemented (we lack support for indexes and cursors) and there's a theoretical problem with ordering of IDB requests when preprocessing is involved, so this feature is kept behind a pref for now. Differential Revision: https://phabricator.services.mozilla.com/D36879 --HG-- rename : dom/indexedDB/test/unit/test_wasm_recompile.js => dom/indexedDB/test/unit/test_wasm_get_values.js rename : dom/indexedDB/test/unit/wasm_recompile_profile.zip => dom/indexedDB/test/unit/wasm_get_values_profile.zip
85 lines
2.0 KiB
C++
85 lines
2.0 KiB
C++
/* -*- 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 mozilla_dom_indexeddatabase_h__
|
|
#define mozilla_dom_indexeddatabase_h__
|
|
|
|
#include "js/StructuredClone.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "nsTArray.h"
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class Blob;
|
|
class IDBDatabase;
|
|
class IDBMutableFile;
|
|
|
|
namespace indexedDB {
|
|
|
|
class FileInfo;
|
|
class SerializedStructuredCloneReadInfo;
|
|
|
|
struct StructuredCloneFile {
|
|
enum FileType {
|
|
eBlob,
|
|
eMutableFile,
|
|
eStructuredClone,
|
|
eWasmBytecode,
|
|
eWasmCompiled,
|
|
eEndGuard
|
|
};
|
|
|
|
RefPtr<Blob> mBlob;
|
|
RefPtr<IDBMutableFile> mMutableFile;
|
|
RefPtr<FileInfo> mFileInfo;
|
|
FileType mType;
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline StructuredCloneFile();
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline ~StructuredCloneFile();
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline bool operator==(const StructuredCloneFile& aOther) const;
|
|
};
|
|
|
|
struct StructuredCloneReadInfo {
|
|
JSStructuredCloneData mData;
|
|
nsTArray<StructuredCloneFile> mFiles;
|
|
IDBDatabase* mDatabase;
|
|
bool mHasPreprocessInfo;
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline explicit StructuredCloneReadInfo(JS::StructuredCloneScope aScope);
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline StructuredCloneReadInfo();
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline ~StructuredCloneReadInfo();
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline StructuredCloneReadInfo(StructuredCloneReadInfo&& aOther);
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline StructuredCloneReadInfo& operator=(StructuredCloneReadInfo&& aOther);
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline MOZ_IMPLICIT StructuredCloneReadInfo(
|
|
SerializedStructuredCloneReadInfo&& aOther);
|
|
|
|
// In IndexedDatabaseInlines.h
|
|
inline size_t Size() const;
|
|
};
|
|
|
|
} // namespace indexedDB
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_indexeddatabase_h__
|