/* 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 PBackground; include protocol PBlobStream; include protocol PContent; include protocol PContentBridge; include protocol PFileDescriptorSet; include DOMTypes; include InputStreamParams; namespace mozilla { namespace dom { union ResolveMysteryParams { NormalBlobConstructorParams; FileBlobConstructorParams; }; sync protocol PBlob { manager PBackground or PContent or PContentBridge; manages PBlobStream; both: __delete__(); parent: PBlobStream(uint64_t begin, uint64_t length); ResolveMystery(ResolveMysteryParams params); sync BlobStreamSync(uint64_t begin, uint64_t length) returns (InputStreamParams params, OptionalFileDescriptorSet fds); sync WaitForSliceCreation(); // Use only for testing! sync GetFileId() returns (int64_t fileId); // Use only for testing! sync GetFilePath() returns (nsString filePath); child: // This method must be called by the parent when the PBlobParent is fully // created in order to release the known blob. CreatedFromKnownBlob(); }; } // namespace dom } // namespace mozilla