@override
(deliverer, origin)
| 731 | |
| 732 | /** @override */ |
| 733 | setMessageDeliverer(deliverer, origin) { |
| 734 | if (this.messageDeliverer_) { |
| 735 | throw new Error('message channel can only be initialized once'); |
| 736 | } |
| 737 | if (origin == null) { |
| 738 | throw new Error('message channel must have an origin'); |
| 739 | } |
| 740 | dev().fine(TAG_, 'message channel established with origin: ', origin); |
| 741 | this.messageDeliverer_ = deliverer; |
| 742 | this.messagingOrigin_ = origin; |
| 743 | this.messagingReadyResolver_(origin); |
| 744 | |
| 745 | if (this.messageQueue_.length > 0) { |
| 746 | const queue = this.messageQueue_.slice(0); |
| 747 | this.messageQueue_ = []; |
| 748 | queue.forEach((message) => { |
| 749 | const responsePromise = this.messageDeliverer_( |
| 750 | message.eventType, |
| 751 | message.data, |
| 752 | message.awaitResponse |
| 753 | ); |
| 754 | |
| 755 | if (message.awaitResponse) { |
| 756 | message.responseResolver(responsePromise); |
| 757 | } |
| 758 | }); |
| 759 | } |
| 760 | } |
| 761 | |
| 762 | /** @override */ |
| 763 | maybeGetMessageDeliverer() { |
no test coverage detected