Skip to content

Commit edb7f0d

Browse files
committed
fix(social-source): use specified target origin for social source postMessage call
1 parent 0ed5863 commit edb7f0d

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/blocks/ExternalSource/ExternalSource.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ export class ExternalSource extends UploaderBlock {
267267

268268
this._messageBridge?.destroy();
269269

270-
this._messageBridge = new MessageBridge(iframe.contentWindow);
270+
this._messageBridge = new MessageBridge(iframe.contentWindow, () => this.cfg.socialBaseUrl);
271271
this._messageBridge.on('selected-files-change', this.handleSelectedFilesChange.bind(this));
272272
this._messageBridge.on('toolbar-state-change', this.handleToolbarStateChange.bind(this));
273273

src/blocks/ExternalSource/MessageBridge.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@ const isWhitelistedMessage = (message: unknown): message is InputMessageMap[Inpu
1515
};
1616

1717
export class MessageBridge {
18-
_handlerMap = new Map<InputMessageType, Set<InputMessageHandler<InputMessageType>>>();
18+
private _handlerMap = new Map<InputMessageType, Set<InputMessageHandler<InputMessageType>>>();
1919

20-
_context: Window;
20+
private _context: Window;
2121

22-
constructor(context: Window) {
22+
private _getTargetOrigin: () => string;
23+
24+
constructor(context: Window, getTargetOrigin: () => string) {
2325
this._context = context;
26+
this._getTargetOrigin = getTargetOrigin;
2427

2528
window.addEventListener('message', this._handleMessage);
2629
}
@@ -52,7 +55,8 @@ export class MessageBridge {
5255
}
5356

5457
send(message: OutputMessage) {
55-
this._context.postMessage(message, '*');
58+
const targetOrigin = this._getTargetOrigin();
59+
this._context.postMessage(message, targetOrigin);
5660
}
5761

5862
destroy() {

0 commit comments

Comments
 (0)