/* 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 protocol PSendStream; include BlobTypes; include DOMTypes; include InputStreamParams; namespace mozilla { namespace dom { union ResolveMysteryParams { NormalBlobConstructorParams; FileBlobConstructorParams; }; sync protocol PBlob { manager PBackground or PContent or PContentBridge; manages PBlobStream; both: async __delete__(); parent: async PBlobStream(uint64_t begin, uint64_t length); async 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); 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. async CreatedFromKnownBlob(); }; } // namespace dom } // namespace mozilla