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 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user