Merge pull request #7944 from yurydelendik/rm-defpref

Removes Promise usage from preferences.js
This commit is contained in:
Jonas Jenwald 2017-01-10 17:19:26 +01:00 committed by GitHub
commit e5cea05881
4 changed files with 32 additions and 66 deletions

View File

@ -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();
})();

View File

@ -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', {

View File

@ -60,10 +60,6 @@ See https://github.com/adobe-type-tools/cmap-resources
<!--#include viewer-snippet.html-->
<!--#endif-->
<!--#if !PRODUCTION-->
<script src="default_preferences.js"></script>
<!--#endif-->
<!--#if !MINIFIED -->
<script src="viewer.js"></script>
<!--#else-->

View File

@ -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);
}