From ac2d4abf3979997b1d7039cc238433a24a42206c Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Tue, 10 Jan 2017 08:33:32 -0600 Subject: [PATCH 1/2] Removes web/default_preferences.js file. --- web/default_preferences.js | 36 ----------------------------------- web/preferences.js | 39 ++++++++++++++++++++++---------------- web/viewer.html | 4 ---- 3 files changed, 23 insertions(+), 56 deletions(-) delete mode 100644 web/default_preferences.js diff --git a/web/default_preferences.js b/web/default_preferences.js deleted file mode 100644 index b8fed8c18..000000000 --- a/web/default_preferences.js +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2013 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var DEFAULT_PREFERENCES; - -(function defaultPreferencesLoaderWrapper() { - function loaded() { - try { - DEFAULT_PREFERENCES = JSON.parse(xhr.responseText); - } catch (e) { - console.error('Unable to load DEFAULT_PREFERENCES: ' + e); - DEFAULT_PREFERENCES = {}; - } - var event = document.createEvent('CustomEvent'); - event.initCustomEvent('defaultpreferencesloaded', true, true, null); - document.dispatchEvent(event); - } - var xhr = new XMLHttpRequest(); - xhr.open('GET', 'default_preferences.json'); - xhr.onload = xhr.onerror = loaded; - xhr.send(); -})(); diff --git a/web/preferences.js b/web/preferences.js index 49907315e..471808fd8 100644 --- a/web/preferences.js +++ b/web/preferences.js @@ -12,7 +12,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* globals DEFAULT_PREFERENCES */ 'use strict'; @@ -26,21 +25,29 @@ } }(this, function (exports) { -var defaultPreferences; -if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) { - defaultPreferences = Promise.resolve( - PDFJSDev.json('$ROOT/web/default_preferences.json')); -} else { - defaultPreferences = new Promise(function (resolve) { - if (DEFAULT_PREFERENCES) { - resolve(DEFAULT_PREFERENCES); - return; +var defaultPreferences = null; +function getDefaultPreferences() { + if (!defaultPreferences) { + if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) { + defaultPreferences = Promise.resolve( + PDFJSDev.json('$ROOT/web/default_preferences.json')); + } else { + defaultPreferences = new Promise(function (resolve) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'default_preferences.json'); + xhr.onload = xhr.onerror = function loaded() { + try { + resolve(JSON.parse(xhr.responseText)); + } catch (e) { + console.error('Unable to load default preferences: ' + e); + resolve({}); + } + }; + xhr.send(); + }); } - document.addEventListener('defaultpreferencesloaded', function loaded() { - resolve(DEFAULT_PREFERENCES); - document.removeEventListener('defaultpreferencesloaded', loaded); - }); - }); + } + return defaultPreferences; } function cloneObj(obj) { @@ -69,7 +76,7 @@ var Preferences = { * have been initialized. */ initialize: function preferencesInitialize() { - return this.initializedPromise = defaultPreferences.then( + return this.initializedPromise = getDefaultPreferences().then( function (defaults) { Object.defineProperty(this, 'defaults', { diff --git a/web/viewer.html b/web/viewer.html index d45bde539..22ff8af8e 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -60,10 +60,6 @@ See https://github.com/adobe-type-tools/cmap-resources - - - - From 930a28d879af0e42f2cabe98c2c74514c900da0f Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Tue, 10 Jan 2017 08:49:08 -0600 Subject: [PATCH 2/2] Better DOMContentLoaded handling. --- web/viewer.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index a743e7e08..01c27a608 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -169,15 +169,9 @@ function webViewerLoad() { var config = getViewerConfiguration(); if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) { require.config({paths: {'pdfjs': '../src', 'pdfjs-web': '.'}}); - require(['pdfjs-web/pdfjs'], function () { - // Ensure that src/main_loader.js has loaded all the necessary - // dependencies *before* the viewer loads, to prevent issues in browsers - // relying on e.g. the Promise/URL polyfill in src/shared/util.js (fixes - // issue 7448). - require(['pdfjs-web/app', 'pdfjs-web/pdf_print_service'], function (web) { - window.PDFViewerApplication = web.PDFViewerApplication; - web.PDFViewerApplication.run(config); - }); + require(['pdfjs-web/app', 'pdfjs-web/pdf_print_service'], function (web) { + window.PDFViewerApplication = web.PDFViewerApplication; + web.PDFViewerApplication.run(config); }); } else { window.PDFViewerApplication = pdfjsWebLibs.pdfjsWebApp.PDFViewerApplication; @@ -185,4 +179,9 @@ function webViewerLoad() { } } -document.addEventListener('DOMContentLoaded', webViewerLoad, true); +if (document.readyState === 'interactive' || + document.readyState === 'complete') { + webViewerLoad(); +} else { + document.addEventListener('DOMContentLoaded', webViewerLoad, true); +}