MOBILE-3645 ios: Fix embedded iframes cookies in iOS
parent
45a23eff88
commit
2014d28b90
|
@ -482,6 +482,7 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
const stopClicksElements = Array.from(div.querySelectorAll('button,input,select,textarea'));
|
const stopClicksElements = Array.from(div.querySelectorAll('button,input,select,textarea'));
|
||||||
const frames = Array.from(div.querySelectorAll(CoreIframeUtilsProvider.FRAME_TAGS.join(',').replace(/iframe,?/, '')));
|
const frames = Array.from(div.querySelectorAll(CoreIframeUtilsProvider.FRAME_TAGS.join(',').replace(/iframe,?/, '')));
|
||||||
const svgImages = Array.from(div.querySelectorAll('image'));
|
const svgImages = Array.from(div.querySelectorAll('image'));
|
||||||
|
const promises: Promise<void>[] = [];
|
||||||
|
|
||||||
// Walk through the content to find the links and add our directive to it.
|
// Walk through the content to find the links and add our directive to it.
|
||||||
// Important: We need to look for links first because in 'img' we add new links without core-link.
|
// Important: We need to look for links first because in 'img' we add new links without core-link.
|
||||||
|
@ -520,7 +521,7 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
});
|
});
|
||||||
|
|
||||||
iframes.forEach((iframe) => {
|
iframes.forEach((iframe) => {
|
||||||
this.treatIframe(iframe, site, canTreatVimeo);
|
promises.push(this.treatIframe(iframe, site, canTreatVimeo));
|
||||||
});
|
});
|
||||||
|
|
||||||
svgImages.forEach((image) => {
|
svgImages.forEach((image) => {
|
||||||
|
@ -570,8 +571,10 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Automatically reject the promise after 5 seconds to prevent blocking the user forever.
|
// Automatically reject the promise after 5 seconds to prevent blocking the user forever.
|
||||||
await CoreUtils.ignoreErrors(CoreUtils.timeoutPromise(promise, 5000));
|
promises.push(CoreUtils.ignoreErrors(CoreUtils.timeoutPromise(promise, 5000)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -679,6 +682,7 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
if (currentSite?.containsUrl(src)) {
|
if (currentSite?.containsUrl(src)) {
|
||||||
// URL points to current site, try to use auto-login.
|
// URL points to current site, try to use auto-login.
|
||||||
const finalUrl = await currentSite.getAutoLoginUrl(src, false);
|
const finalUrl = await currentSite.getAutoLoginUrl(src, false);
|
||||||
|
await CoreIframeUtils.fixIframeCookies(finalUrl);
|
||||||
|
|
||||||
iframe.src = finalUrl;
|
iframe.src = finalUrl;
|
||||||
CoreIframeUtils.treatFrame(iframe, false);
|
CoreIframeUtils.treatFrame(iframe, false);
|
||||||
|
@ -686,6 +690,8 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await CoreIframeUtils.fixIframeCookies(src);
|
||||||
|
|
||||||
if (site && src && canTreatVimeo) {
|
if (site && src && canTreatVimeo) {
|
||||||
// Check if it's a Vimeo video. If it is, use the wsplayer script instead to make restricted videos work.
|
// Check if it's a Vimeo video. If it is, use the wsplayer script instead to make restricted videos work.
|
||||||
const matches = iframe.src.match(/https?:\/\/player\.vimeo\.com\/video\/([0-9]+)/);
|
const matches = iframe.src.match(/https?:\/\/player\.vimeo\.com\/video\/([0-9]+)/);
|
||||||
|
@ -694,8 +700,8 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
matches[1] + '&token=' + site.getToken();
|
matches[1] + '&token=' + site.getToken();
|
||||||
|
|
||||||
// Width and height are mandatory, we need to calculate them.
|
// Width and height are mandatory, we need to calculate them.
|
||||||
let width;
|
let width: string | number;
|
||||||
let height;
|
let height: string | number;
|
||||||
|
|
||||||
if (iframe.width) {
|
if (iframe.width) {
|
||||||
width = iframe.width;
|
width = iframe.width;
|
||||||
|
@ -719,13 +725,16 @@ export class CoreFormatTextDirective implements OnChanges {
|
||||||
if (site && !site.isVersionGreaterEqualThan('3.7')) {
|
if (site && !site.isVersionGreaterEqualThan('3.7')) {
|
||||||
newUrl += '&width=' + width + '&height=' + height;
|
newUrl += '&width=' + width + '&height=' + height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await CoreIframeUtils.fixIframeCookies(src);
|
||||||
|
|
||||||
iframe.src = newUrl;
|
iframe.src = newUrl;
|
||||||
|
|
||||||
if (!iframe.width) {
|
if (!iframe.width) {
|
||||||
iframe.width = width;
|
iframe.width = String(width);
|
||||||
}
|
}
|
||||||
if (!iframe.height) {
|
if (!iframe.height) {
|
||||||
iframe.height = height;
|
iframe.height = String(height);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do the iframe responsive.
|
// Do the iframe responsive.
|
||||||
|
|
Loading…
Reference in New Issue