Only receives window messages from the parent window (aka this.source
)
#284
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added a check to see if the event source (
event.source) is the source/parent (
this.source`) frame. This prevents DiscordSDK from picking from window messages from child iframes (iframes within the activity iframe).If you were to run this code snippet within an iframe in a Discord activity's iframe,
DiscordSDK
would pick it up on thehandleMessage
function:The result of executing the following script above in a (sandboxed) iframe within the activity iframe:
This is something you wouldn't want to allow if you're displaying arbitrary iframes with user-generated content in your Discord activity, so I added a
if (event.source !== this.source) return;
under this code segement:embedded-app-sdk/src/Discord.ts
Lines 275 to 276 in 2cb879a
I haven't fully tested this change and don't know if there's any unintended side-effects of it, but this change seems to be working for me currently.