From 1db51c5c5852df2250df8091a6931c008741153a Mon Sep 17 00:00:00 2001 From: danielweck Date: Tue, 20 Sep 2016 17:54:48 +0100 Subject: [PATCH 1/2] submodule --- readium-shared-js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readium-shared-js b/readium-shared-js index aa0d57228..71df2031b 160000 --- a/readium-shared-js +++ b/readium-shared-js @@ -1 +1 @@ -Subproject commit aa0d5722818e21b7fd0c16f21f58f09976215a39 +Subproject commit 71df2031ba26c81ac50d2214b2f45072b9f92b39 From d2763d8e629fc724198555dc4a3f8ca82b282818 Mon Sep 17 00:00:00 2001 From: "r.hanson" Date: Mon, 21 Nov 2016 16:47:56 -0600 Subject: [PATCH 2/2] When fetching internal resources, emit an event before doing so, and after doing so. This provides plugin resource fetchers a hook to do some additional processing when fetching internal resources. For example, a resource fetcher might batch up the requested files, and process them all in one go. --- js/epub-fetch/content_document_fetcher.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/js/epub-fetch/content_document_fetcher.js b/js/epub-fetch/content_document_fetcher.js index be6d84b0d..6f3c6db26 100644 --- a/js/epub-fetch/content_document_fetcher.js +++ b/js/epub-fetch/content_document_fetcher.js @@ -37,7 +37,9 @@ define( if (_contentDocumentTextPreprocessor) { _contentDocumentText = _contentDocumentTextPreprocessor(loadedDocumentUri, _contentDocumentText); } + ReadiumSDK.emit('ContentDocumentFetcher-BeforeResolveResources'); self.resolveInternalPackageResources(contentDocumentResolvedCallback, errorCallback); + ReadiumSDK.emit('ContentDocumentFetcher-AfterResolveResources'); }, errorCallback ); }; @@ -52,7 +54,7 @@ define( if (_publicationFetcher.shouldFetchMediaAssetsProgrammatically()) { console.log("fetchMediaAssetsProgrammatically ..."); - + resolveDocumentImages(resolutionDeferreds, onerror); resolveDocumentAudios(resolutionDeferreds, onerror); @@ -60,7 +62,7 @@ define( // both audio and video resolveResourceElements('source', 'src', 'blob', resolutionDeferreds, onerror); - + resolveResourceElements('object', 'data', 'blob', resolutionDeferreds, onerror); } @@ -262,6 +264,8 @@ define( function preprocessCssStyleSheetData(styleSheetResourceData, styleSheetUriRelativeToPackageDocument, callback) { + ReadiumSDK.emit('ContentDocumentFetcher-BeforeResolveResources'); + var cssUrlRegexp = /[Uu][Rr][Ll]\(\s*([']([^']+)[']|["]([^"]+)["]|([^)]+))\s*\)/g; var nonUrlCssImportRegexp = /@[Ii][Mm][Pp][Oo][Rr][Tt]\s*('([^']+)'|"([^"]+)")/g; var stylesheetCssResourceUrlsMap = {}; @@ -286,6 +290,7 @@ define( } }); + ReadiumSDK.emit('ContentDocumentFetcher-AfterResolveResources'); if (cssResourceDownloadDeferreds.length > 0) { $.when.apply($, cssResourceDownloadDeferreds).done(function () {