MOBILE-3645 ios: Fix embedded iframes cookies in iOS
This commit is contained in:
		
							parent
							
								
									45a23eff88
								
							
						
					
					
						commit
						2014d28b90
					
				| @ -482,6 +482,7 @@ export class CoreFormatTextDirective implements OnChanges { | ||||
|         const stopClicksElements = Array.from(div.querySelectorAll('button,input,select,textarea')); | ||||
|         const frames = Array.from(div.querySelectorAll(CoreIframeUtilsProvider.FRAME_TAGS.join(',').replace(/iframe,?/, ''))); | ||||
|         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.
 | ||||
|         // 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) => { | ||||
|             this.treatIframe(iframe, site, canTreatVimeo); | ||||
|             promises.push(this.treatIframe(iframe, site, canTreatVimeo)); | ||||
|         }); | ||||
| 
 | ||||
|         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.
 | ||||
|             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)) { | ||||
|             // URL points to current site, try to use auto-login.
 | ||||
|             const finalUrl = await currentSite.getAutoLoginUrl(src, false); | ||||
|             await CoreIframeUtils.fixIframeCookies(finalUrl); | ||||
| 
 | ||||
|             iframe.src = finalUrl; | ||||
|             CoreIframeUtils.treatFrame(iframe, false); | ||||
| @ -686,6 +690,8 @@ export class CoreFormatTextDirective implements OnChanges { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         await CoreIframeUtils.fixIframeCookies(src); | ||||
| 
 | ||||
|         if (site && src && canTreatVimeo) { | ||||
|             // 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]+)/); | ||||
| @ -694,8 +700,8 @@ export class CoreFormatTextDirective implements OnChanges { | ||||
|                     matches[1] + '&token=' + site.getToken(); | ||||
| 
 | ||||
|                 // Width and height are mandatory, we need to calculate them.
 | ||||
|                 let width; | ||||
|                 let height; | ||||
|                 let width: string | number; | ||||
|                 let height: string | number; | ||||
| 
 | ||||
|                 if (iframe.width) { | ||||
|                     width = iframe.width; | ||||
| @ -719,13 +725,16 @@ export class CoreFormatTextDirective implements OnChanges { | ||||
|                 if (site && !site.isVersionGreaterEqualThan('3.7')) { | ||||
|                     newUrl += '&width=' + width + '&height=' + height; | ||||
|                 } | ||||
| 
 | ||||
|                 await CoreIframeUtils.fixIframeCookies(src); | ||||
| 
 | ||||
|                 iframe.src = newUrl; | ||||
| 
 | ||||
|                 if (!iframe.width) { | ||||
|                     iframe.width = width; | ||||
|                     iframe.width = String(width); | ||||
|                 } | ||||
|                 if (!iframe.height) { | ||||
|                     iframe.height = height; | ||||
|                     iframe.height = String(height); | ||||
|                 } | ||||
| 
 | ||||
|                 // Do the iframe responsive.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user