notes plugin allows messsages from current/upcoming slide windows

This commit is contained in:
hakimel 2022-03-21 10:36:22 +01:00
parent 31407082eb
commit 0247ae7582
4 changed files with 9 additions and 5 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -203,6 +203,7 @@ const Plugin = () => {
// that we remain connected to the notes even if the presentation
// is reloaded.
window.addEventListener( 'message', event => {
if( !speakerWindow && typeof event.data === 'string' ) {
let data;

View File

@ -350,7 +350,8 @@
layoutDropdown,
pendingCalls = {},
lastRevealApiCallId = 0,
connected = false;
connected = false,
whitelistedWindows = [window.opener];
var SPEAKER_LAYOUTS = {
'default': 'Default',
@ -368,8 +369,8 @@
;
window.addEventListener( 'message', function( event ) {
// Validate the origin of this message to avoid XSS
if( window.location.origin !== event.origin && event.source !== window.opener ) {
// Validate the origin of this message to prevent XSS
if( window.location.origin !== event.origin && whitelistedWindows.indexOf( event.source ) === -1 ) {
return;
}
@ -538,6 +539,8 @@
upcomingSlide.setAttribute( 'src', upcomingURL );
document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );
whitelistedWindows.push( currentSlide.contentWindow, upcomingSlide.contentWindow );
}
/**