/* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8 -*- */ /* vim: set sw=4 ts=8 et tw=80 ft=cpp : */ /* 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/. */ include protocol PBlob; include InputStreamParams; using mozilla::SerializedStructuredCloneBuffer; namespace mozilla { namespace dom { struct ClonedMessageData { SerializedStructuredCloneBuffer data; PBlob[] blobs; }; struct NormalBlobConstructorParams { nsString contentType; uint64_t length; }; struct FileBlobConstructorParams { nsString name; nsString contentType; uint64_t length; uint64_t modDate; }; struct SlicedBlobConstructorParams { PBlob source; uint64_t begin; uint64_t end; nsString contentType; }; struct MysteryBlobConstructorParams { // Nothing is known about this type of blob. }; union ChildBlobConstructorParams { NormalBlobConstructorParams; FileBlobConstructorParams; SlicedBlobConstructorParams; MysteryBlobConstructorParams; }; struct ParentBlobConstructorParams { ChildBlobConstructorParams blobParams; OptionalInputStreamParams optionalInputStreamParams; }; union BlobConstructorParams { ChildBlobConstructorParams; ParentBlobConstructorParams; }; } // namespace dom } // namespace mozilla