MCPcopy Create free account
hub / github.com/ampproject/amphtml / setMessageDeliverer

Method setMessageDeliverer

src/service/viewer-impl.js:733–760  ·  view source on GitHub ↗

@override

(deliverer, origin)

Source from the content-addressed store, hash-verified

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() {

Callers 2

test-viewer.jsFile · 0.45
attachShadowDoc_Method · 0.45

Calls 3

devFunction · 0.90
fineMethod · 0.80
forEachMethod · 0.45

Tested by

no test coverage detected