[Pkg-javascript-commits] [pdf.js] 146/414: Allow foriegn origin URLs only for hosted viewers.
David Prévot
taffit at moszumanska.debian.org
Tue Jun 28 17:12:15 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit 7c89bdc8d673ea347e5faa02155e6b401b135420
Author: Yury Delendik <ydelendik at mozilla.com>
Date: Fri Jan 22 11:54:19 2016 -0600
Allow foriegn origin URLs only for hosted viewers.
---
web/viewer.js | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/web/viewer.js b/web/viewer.js
index c56aff6..dc74802 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -1332,6 +1332,37 @@ window.PDFView = PDFViewerApplication; // obsolete name, using it as an alias
//})();
//#endif
+//#if GENERIC
+var HOSTED_VIEWER_ORIGINS = ['null',
+ 'http://mozilla.github.io', 'https://mozilla.github.io'];
+function validateFileURL(file) {
+ try {
+ var viewerOrigin = new URL(window.location.href).origin || 'null';
+ if (HOSTED_VIEWER_ORIGINS.indexOf(viewerOrigin) >= 0) {
+ // Hosted or local viewer, allow for any file locations
+ return;
+ }
+ var fileOrigin = new URL(file, window.location.href).origin;
+ // Removing of the following line will not guarantee that the viewer will
+ // start accepting URLs from foreign origin -- CORS headers on the remote
+ // server must be properly configured.
+ if (fileOrigin !== viewerOrigin) {
+ throw new Error('file origin does not match viewer\'s');
+ }
+ } catch (e) {
+ var message = e && e.message;
+ var loadingErrorMessage = mozL10n.get('loading_error', null,
+ 'An error occurred while loading the PDF.');
+
+ var moreInfo = {
+ message: message
+ };
+ PDFViewerApplication.error(loadingErrorMessage, moreInfo);
+ throw e;
+ }
+}
+//#endif
+
function webViewerLoad(evt) {
//#if !PRODUCTION
require.config({paths: {'pdfjs': '../src'}});
@@ -1351,6 +1382,7 @@ function webViewerInitialized() {
var queryString = document.location.search.substring(1);
var params = parseQueryString(queryString);
var file = 'file' in params ? params.file : DEFAULT_URL;
+ validateFileURL(file);
//#endif
//#if (FIREFOX || MOZCENTRAL)
//var file = window.location.href.split('#')[0];
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list