|
12 | 12 | * See the License for the specific language governing permissions and |
13 | 13 | * limitations under the License. |
14 | 14 | */ |
15 | | -/* globals DEFAULT_PREFERENCES */ |
16 | 15 |
|
17 | 16 | 'use strict'; |
18 | 17 |
|
|
26 | 25 | } |
27 | 26 | }(this, function (exports) { |
28 | 27 |
|
29 | | -var defaultPreferences; |
30 | | -if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) { |
31 | | - defaultPreferences = Promise.resolve( |
32 | | - PDFJSDev.json('$ROOT/web/default_preferences.json')); |
33 | | -} else { |
34 | | - defaultPreferences = new Promise(function (resolve) { |
35 | | - if (DEFAULT_PREFERENCES) { |
36 | | - resolve(DEFAULT_PREFERENCES); |
37 | | - return; |
| 28 | +var defaultPreferences = null; |
| 29 | +function getDefaultPreferences() { |
| 30 | + if (!defaultPreferences) { |
| 31 | + if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) { |
| 32 | + defaultPreferences = Promise.resolve( |
| 33 | + PDFJSDev.json('$ROOT/web/default_preferences.json')); |
| 34 | + } else { |
| 35 | + defaultPreferences = new Promise(function (resolve) { |
| 36 | + var xhr = new XMLHttpRequest(); |
| 37 | + xhr.open('GET', 'default_preferences.json'); |
| 38 | + xhr.onload = xhr.onerror = function loaded() { |
| 39 | + try { |
| 40 | + resolve(JSON.parse(xhr.responseText)); |
| 41 | + } catch (e) { |
| 42 | + console.error('Unable to load default preferences: ' + e); |
| 43 | + resolve({}); |
| 44 | + } |
| 45 | + }; |
| 46 | + xhr.send(); |
| 47 | + }); |
38 | 48 | } |
39 | | - document.addEventListener('defaultpreferencesloaded', function loaded() { |
40 | | - resolve(DEFAULT_PREFERENCES); |
41 | | - document.removeEventListener('defaultpreferencesloaded', loaded); |
42 | | - }); |
43 | | - }); |
| 49 | + } |
| 50 | + return defaultPreferences; |
44 | 51 | } |
45 | 52 |
|
46 | 53 | function cloneObj(obj) { |
@@ -69,7 +76,7 @@ var Preferences = { |
69 | 76 | * have been initialized. |
70 | 77 | */ |
71 | 78 | initialize: function preferencesInitialize() { |
72 | | - return this.initializedPromise = defaultPreferences.then( |
| 79 | + return this.initializedPromise = getDefaultPreferences().then( |
73 | 80 | function (defaults) { |
74 | 81 |
|
75 | 82 | Object.defineProperty(this, 'defaults', { |
|
0 commit comments