Skip to content

Commit

Permalink
Merge pull request mozilla#7944 from yurydelendik/rm-defpref
Browse files Browse the repository at this point in the history
Removes Promise usage from preferences.js
  • Loading branch information
Snuffleupagus authored Jan 10, 2017
2 parents 1027edb + 151a44d commit d613359
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 66 deletions.
36 changes: 0 additions & 36 deletions web/default_preferences.js

This file was deleted.

39 changes: 23 additions & 16 deletions web/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* globals DEFAULT_PREFERENCES */

'use strict';

Expand All @@ -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) {
Expand Down Expand Up @@ -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', {
Expand Down
4 changes: 0 additions & 4 deletions web/viewer.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,6 @@
<!--#include viewer-snippet.html-->
<!--#endif-->

<!--#if !PRODUCTION-->
<script src="default_preferences.js"></script>
<!--#endif-->

<!--#if !MINIFIED -->
<script src="viewer.js"></script>
<!--#else-->
Expand Down
19 changes: 9 additions & 10 deletions web/viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,20 +169,19 @@ 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;
pdfjsWebLibs.pdfjsWebApp.PDFViewerApplication.run(config);
}
}

document.addEventListener('DOMContentLoaded', webViewerLoad, true);
if (document.readyState === 'interactive' ||
document.readyState === 'complete') {
webViewerLoad();
} else {
document.addEventListener('DOMContentLoaded', webViewerLoad, true);
}

0 comments on commit d613359

Please sign in to comment.