From f9a16901750a9f31f498c2b545960a4754697e79 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 1 Oct 2020 12:50:06 +0200 Subject: [PATCH] fix #2863 @1 --- js/libs/fluidbook/fluidbook.loader.js | 2 +- js/libs/fluidbook/fluidbook.pagetransitions.js | 4 ++-- js/libs/fluidbook/fluidbook.support.js | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.loader.js b/js/libs/fluidbook/fluidbook.loader.js index 323ed20e..148cdb4b 100644 --- a/js/libs/fluidbook/fluidbook.loader.js +++ b/js/libs/fluidbook/fluidbook.loader.js @@ -418,7 +418,7 @@ FluidbookLoader.prototype = { }, _loadTexture: function (page, callback) { - if (page <= 0 || page > this.fluidbook.settings.pages) { + if (!this.fluidbook.support.datauriallowed || page <= 0 || page > this.fluidbook.settings.pages) { callback(); return; } diff --git a/js/libs/fluidbook/fluidbook.pagetransitions.js b/js/libs/fluidbook/fluidbook.pagetransitions.js index 38f21ccd..89274898 100644 --- a/js/libs/fluidbook/fluidbook.pagetransitions.js +++ b/js/libs/fluidbook/fluidbook.pagetransitions.js @@ -65,14 +65,14 @@ FluidbookPageTransition.prototype = { if (this.fluidbook.settings.mobileTransitions === 'slide') { return 'slide'; } - if (!this.fluidbook.support.transitions3dacc) { + if (!this.fluidbook.support.transitions3dacc || !this.fluidbook.support.datauriallowed) { if (!this.fluidbook.support.transitions3d) { return 'slide'; } else { return 'flipcss'; } } - if (this.fluidbook.support.transitions3dacc && this.fluidbook.settings.mobileTransitions === 'flip3d') { + if (this.fluidbook.support.transitions3dacc && this.fluidbook.settings.mobileTransitions === 'flip3d' && this.fluidbook.support.datauriallowed) { return 'flip3d'; } return 'flipcss'; diff --git a/js/libs/fluidbook/fluidbook.support.js b/js/libs/fluidbook/fluidbook.support.js index 0befbfc9..ddab074b 100644 --- a/js/libs/fluidbook/fluidbook.support.js +++ b/js/libs/fluidbook/fluidbook.support.js @@ -1,5 +1,6 @@ function FluidbookSupport(fluidbook) { this.fluidbook = fluidbook; + this.testDataURILoading(); this.userAgent = navigator.userAgent; this.IE = 0; try { @@ -66,6 +67,21 @@ function FluidbookSupport(fluidbook) { } FluidbookSupport.prototype = { + testDataURILoading: function () { + var img = new Image(); + var $this = this; + $(img).on('error', function () { + $this.datauriallowed = false; + }); + $(img).on('load', function () { + $this.datauriallowed = true; + }); + try { + img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'; + } catch (err) { + $this.datauriallowed = false; + } + }, getTransitionEndEvent: function (all) { if (all == undefined) { all = false; -- 2.39.5