/* 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 DOMTypes; include ProtocolTypes; namespace mozilla { namespace dom { // This protocol is used for the MessageChannel/MessagePort API [ManualDealloc] protocol PMessagePort { manager PBackground; /* Many of these methods are used just for the shutdown sequence. The correct sequence for the child actor is: 1. SendStopSendingData(); 2. RecvStopSendingDataConfirmed(); 3. SendClose(); 4. Recv__delete__(); */ /* When the port is transferred the sequence is: 1. SendStopSendingData(); 2. RecvStopSendingDataConfirmed(); 3. SendDisentangle(); 4. Recv__delete__(); */ parent: async PostMessages(MessageData[] messages); async Disentangle(MessageData[] messages); async StopSendingData(); async Close(); child: async Entangled(MessageData[] messages); async ReceiveData(MessageData[] messages); async StopSendingDataConfirmed(); async __delete__(); }; } // namespace dom } // namespace mozilla