MOBILE-3068 page: Fix base64 images shown

main
Pau Ferrer Ocaña 2019-08-23 15:11:36 +02:00
parent 0c578d8e5d
commit 789eb299b0
2 changed files with 20 additions and 2 deletions

View File

@ -49,6 +49,8 @@ export class CoreExternalContentDirective implements AfterViewInit, OnChanges {
protected logger; protected logger;
protected initialized = false; protected initialized = false;
invalid = false;
constructor(element: ElementRef, logger: CoreLoggerProvider, private filepoolProvider: CoreFilepoolProvider, constructor(element: ElementRef, logger: CoreLoggerProvider, private filepoolProvider: CoreFilepoolProvider,
private platform: Platform, private sitesProvider: CoreSitesProvider, private domUtils: CoreDomUtilsProvider, private platform: Platform, private sitesProvider: CoreSitesProvider, private domUtils: CoreDomUtilsProvider,
private urlUtils: CoreUrlUtilsProvider, private appProvider: CoreAppProvider, private utils: CoreUtilsProvider) { private urlUtils: CoreUrlUtilsProvider, private appProvider: CoreAppProvider, private utils: CoreUtilsProvider) {
@ -141,6 +143,15 @@ export class CoreExternalContentDirective implements AfterViewInit, OnChanges {
} }
} else { } else {
this.invalid = true;
return;
}
// Avoid handling data url's.
if (url.indexOf('data:') === 0) {
this.invalid = true;
return; return;
} }

View File

@ -409,7 +409,12 @@ export class CoreFormatTextDirective implements OnChanges {
// Walk through the content to find images, and add our directive. // Walk through the content to find images, and add our directive.
images.forEach((img: HTMLElement) => { images.forEach((img: HTMLElement) => {
this.addMediaAdaptClass(img); this.addMediaAdaptClass(img);
externalImages.push(this.addExternalContent(img));
const externalImage = this.addExternalContent(img);
if (!externalImage.invalid) {
externalImages.push(externalImage);
}
if (this.utils.isTrueOrOne(this.adaptImg) && !img.classList.contains('icon')) { if (this.utils.isTrueOrOne(this.adaptImg) && !img.classList.contains('icon')) {
this.adaptImage(img); this.adaptImage(img);
} }
@ -475,7 +480,9 @@ export class CoreFormatTextDirective implements OnChanges {
promise = Promise.resolve(); promise = Promise.resolve();
} }
return promise.then(() => { return promise.catch(() => {
// Ignore errors. So content gets always shown.
}).then(() => {
return div; return div;
}); });
}); });