pdfjs-dist 2.0.489 → 2.2.228

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (169) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +18515 -11402
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +48266 -37137
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/external/url/url-lib.js +627 -0
  10. package/image_decoders/pdf.image_decoders.js +11350 -0
  11. package/image_decoders/pdf.image_decoders.js.map +1 -0
  12. package/image_decoders/pdf.image_decoders.min.js +1 -0
  13. package/lib/core/annotation.js +587 -242
  14. package/lib/core/arithmetic_decoder.js +275 -245
  15. package/lib/core/bidi.js +65 -6
  16. package/lib/core/ccitt.js +173 -18
  17. package/lib/core/ccitt_stream.js +15 -6
  18. package/lib/core/cff_parser.js +433 -61
  19. package/lib/core/charsets.js +5 -4
  20. package/lib/core/chunked_stream.js +400 -152
  21. package/lib/core/cmap.js +326 -87
  22. package/lib/core/colorspace.js +874 -594
  23. package/lib/core/core_utils.js +147 -0
  24. package/lib/core/crypto.js +290 -45
  25. package/lib/core/document.js +560 -268
  26. package/lib/core/encodings.js +19 -10
  27. package/lib/core/evaluator.js +1005 -360
  28. package/lib/core/font_renderer.js +331 -97
  29. package/lib/core/fonts.js +812 -195
  30. package/lib/core/function.js +284 -71
  31. package/lib/core/glyphlist.js +4 -3
  32. package/lib/core/image.js +169 -62
  33. package/lib/core/image_utils.js +111 -0
  34. package/lib/core/jbig2.js +479 -66
  35. package/lib/core/jbig2_stream.js +19 -8
  36. package/lib/core/jpeg_stream.js +38 -13
  37. package/lib/core/jpg.js +253 -29
  38. package/lib/core/jpx.js +396 -6
  39. package/lib/core/jpx_stream.js +18 -6
  40. package/lib/core/metrics.js +15 -15
  41. package/lib/core/murmurhash3.js +56 -34
  42. package/lib/core/obj.js +1354 -488
  43. package/lib/core/operator_list.js +144 -31
  44. package/lib/core/parser.js +539 -191
  45. package/lib/core/pattern.js +148 -14
  46. package/lib/core/pdf_manager.js +323 -133
  47. package/lib/core/primitives.js +111 -24
  48. package/lib/core/ps_parser.js +134 -45
  49. package/lib/core/standard_fonts.js +17 -17
  50. package/lib/core/stream.js +313 -34
  51. package/lib/core/type1_parser.js +143 -13
  52. package/lib/core/unicode.js +32 -5
  53. package/lib/core/worker.js +217 -190
  54. package/lib/core/worker_stream.js +277 -0
  55. package/lib/display/annotation_layer.js +450 -133
  56. package/lib/display/api.js +1597 -784
  57. package/lib/display/api_compatibility.js +11 -13
  58. package/lib/display/canvas.js +360 -44
  59. package/lib/display/content_disposition.js +83 -32
  60. package/lib/display/display_utils.js +747 -0
  61. package/lib/display/fetch_stream.js +221 -90
  62. package/lib/display/font_loader.js +468 -236
  63. package/lib/display/metadata.js +38 -16
  64. package/lib/display/network.js +635 -428
  65. package/lib/display/network_utils.js +32 -19
  66. package/lib/display/node_stream.js +367 -175
  67. package/lib/display/pattern_helper.js +81 -31
  68. package/lib/display/svg.js +1235 -519
  69. package/lib/display/text_layer.js +153 -29
  70. package/lib/display/transport_stream.js +345 -94
  71. package/lib/display/webgl.js +64 -18
  72. package/lib/display/worker_options.js +5 -4
  73. package/lib/display/xml_parser.js +166 -53
  74. package/lib/examples/node/domstubs.js +60 -4
  75. package/lib/pdf.js +36 -14
  76. package/lib/pdf.worker.js +5 -3
  77. package/lib/shared/compatibility.js +158 -564
  78. package/lib/shared/global_scope.js +2 -2
  79. package/lib/shared/is_node.js +4 -4
  80. package/lib/shared/message_handler.js +521 -0
  81. package/lib/shared/streams_polyfill.js +21 -17
  82. package/lib/shared/url_polyfill.js +56 -0
  83. package/lib/shared/util.js +243 -710
  84. package/lib/test/unit/annotation_spec.js +870 -401
  85. package/lib/test/unit/api_spec.js +657 -345
  86. package/lib/test/unit/bidi_spec.js +7 -7
  87. package/lib/test/unit/cff_parser_spec.js +54 -11
  88. package/lib/test/unit/clitests_helper.js +10 -8
  89. package/lib/test/unit/cmap_spec.js +95 -41
  90. package/lib/test/unit/colorspace_spec.js +115 -63
  91. package/lib/test/unit/core_utils_spec.js +191 -0
  92. package/lib/test/unit/crypto_spec.js +17 -5
  93. package/lib/test/unit/custom_spec.js +43 -55
  94. package/lib/test/unit/display_svg_spec.js +34 -18
  95. package/lib/test/unit/display_utils_spec.js +273 -0
  96. package/lib/test/unit/document_spec.js +8 -13
  97. package/lib/test/unit/encodings_spec.js +25 -45
  98. package/lib/test/unit/evaluator_spec.js +38 -15
  99. package/lib/test/unit/fetch_stream_spec.js +109 -0
  100. package/lib/test/unit/function_spec.js +17 -5
  101. package/lib/test/unit/jasmine-boot.js +33 -20
  102. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  103. package/lib/test/unit/metadata_spec.js +71 -11
  104. package/lib/test/unit/murmurhash3_spec.js +3 -3
  105. package/lib/test/unit/network_spec.js +19 -54
  106. package/lib/test/unit/network_utils_spec.js +91 -14
  107. package/lib/test/unit/node_stream_spec.js +56 -32
  108. package/lib/test/unit/parser_spec.js +162 -71
  109. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  110. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  111. package/lib/test/unit/pdf_history_spec.js +21 -9
  112. package/lib/test/unit/primitives_spec.js +53 -20
  113. package/lib/test/unit/stream_spec.js +12 -4
  114. package/lib/test/unit/test_utils.js +273 -56
  115. package/lib/test/unit/testreporter.js +21 -3
  116. package/lib/test/unit/type1_parser_spec.js +8 -6
  117. package/lib/test/unit/ui_utils_spec.js +454 -16
  118. package/lib/test/unit/unicode_spec.js +18 -15
  119. package/lib/test/unit/util_spec.js +87 -128
  120. package/lib/web/annotation_layer_builder.js +39 -22
  121. package/lib/web/app.js +1290 -588
  122. package/lib/web/app_options.js +100 -62
  123. package/lib/web/base_viewer.js +511 -182
  124. package/lib/web/chromecom.js +261 -117
  125. package/lib/web/debugger.js +166 -22
  126. package/lib/web/download_manager.js +32 -13
  127. package/lib/web/firefox_print_service.js +20 -10
  128. package/lib/web/firefoxcom.js +315 -80
  129. package/lib/web/genericcom.js +89 -30
  130. package/lib/web/genericl10n.js +142 -30
  131. package/lib/web/grab_to_pan.js +28 -4
  132. package/lib/web/interfaces.js +170 -47
  133. package/lib/web/overlay_manager.js +235 -85
  134. package/lib/web/password_prompt.js +22 -14
  135. package/lib/web/pdf_attachment_viewer.js +38 -18
  136. package/lib/web/pdf_cursor_tools.js +39 -16
  137. package/lib/web/pdf_document_properties.js +255 -136
  138. package/lib/web/pdf_find_bar.js +84 -40
  139. package/lib/web/pdf_find_controller.js +495 -184
  140. package/lib/web/pdf_find_utils.js +111 -0
  141. package/lib/web/pdf_history.js +190 -53
  142. package/lib/web/pdf_link_service.js +138 -77
  143. package/lib/web/pdf_outline_viewer.js +122 -46
  144. package/lib/web/pdf_page_view.js +191 -67
  145. package/lib/web/pdf_presentation_mode.js +99 -34
  146. package/lib/web/pdf_print_service.js +61 -13
  147. package/lib/web/pdf_rendering_queue.js +28 -9
  148. package/lib/web/pdf_sidebar.js +141 -81
  149. package/lib/web/pdf_sidebar_resizer.js +42 -16
  150. package/lib/web/pdf_single_page_viewer.js +74 -66
  151. package/lib/web/pdf_thumbnail_view.js +104 -33
  152. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  153. package/lib/web/pdf_viewer.component.js +112 -32
  154. package/lib/web/pdf_viewer.js +91 -52
  155. package/lib/web/preferences.js +284 -89
  156. package/lib/web/secondary_toolbar.js +165 -40
  157. package/lib/web/text_layer_builder.js +134 -59
  158. package/lib/web/toolbar.js +78 -43
  159. package/lib/web/ui_utils.js +462 -136
  160. package/lib/web/view_history.js +215 -67
  161. package/lib/web/viewer_compatibility.js +4 -13
  162. package/package.json +5 -4
  163. package/web/pdf_viewer.css +79 -11
  164. package/web/pdf_viewer.js +6107 -3748
  165. package/web/pdf_viewer.js.map +1 -1
  166. package/lib/display/dom_utils.js +0 -309
  167. package/lib/test/unit/dom_utils_spec.js +0 -89
  168. package/lib/test/unit/fonts_spec.js +0 -81
  169. package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,30 +19,50 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.ChromeCom = undefined;
27
+ exports.ChromeCom = void 0;
28
28
 
29
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
29
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
30
 
31
- var _app = require('./app');
31
+ var _app = require("./app");
32
32
 
33
- var _app_options = require('./app_options');
33
+ var _app_options = require("./app_options");
34
34
 
35
- var _preferences = require('./preferences');
35
+ var _preferences = require("./preferences");
36
36
 
37
- var _download_manager = require('./download_manager');
37
+ var _download_manager = require("./download_manager");
38
38
 
39
- var _genericl10n = require('./genericl10n');
39
+ var _genericl10n = require("./genericl10n");
40
+
41
+ var _pdf = require("../pdf");
42
+
43
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
44
+
45
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
46
+
47
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
48
+
49
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
40
50
 
41
51
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
52
 
43
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
53
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
54
+
55
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
44
56
 
45
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
57
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
58
+
59
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
60
+
61
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
62
+
63
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
64
+
65
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
66
 
47
67
  {
48
68
  throw new Error('Module "pdfjs-web/chromecom" shall not be used outside ' + 'CHROME build.');
@@ -53,8 +73,10 @@ var ChromeCom = {
53
73
  action: action,
54
74
  data: data
55
75
  };
76
+
56
77
  if (!chrome.runtime) {
57
78
  console.error('chrome.runtime is undefined.');
79
+
58
80
  if (callback) {
59
81
  callback();
60
82
  }
@@ -66,142 +88,192 @@ var ChromeCom = {
66
88
  },
67
89
  resolvePDFFile: function resolvePDFFile(file, overlayManager, callback) {
68
90
  file = file.replace(/^drive:/i, 'filesystem:' + location.origin + '/external/');
91
+
69
92
  if (/^https?:/.test(file)) {
70
93
  setReferer(file, function () {
71
94
  callback(file);
72
95
  });
73
96
  return;
74
97
  }
98
+
75
99
  if (/^file?:/.test(file)) {
76
100
  getEmbedderOrigin(function (origin) {
77
101
  if (origin && !/^file:|^chrome-extension:/.test(origin)) {
78
102
  _app.PDFViewerApplication.error('Blocked ' + origin + ' from loading ' + file + '. Refused to load a local file in a non-local page ' + 'for security reasons.');
103
+
79
104
  return;
80
105
  }
106
+
81
107
  isAllowedFileSchemeAccess(function (isAllowedAccess) {
82
108
  if (isAllowedAccess) {
83
109
  callback(file);
84
110
  } else {
85
- requestAccessToLocalFile(file, overlayManager);
111
+ requestAccessToLocalFile(file, overlayManager, callback);
86
112
  }
87
113
  });
88
114
  });
89
115
  return;
90
116
  }
117
+
91
118
  callback(file);
92
119
  }
93
120
  };
121
+ exports.ChromeCom = ChromeCom;
122
+
94
123
  function getEmbedderOrigin(callback) {
95
124
  var origin = window === top ? location.origin : location.ancestorOrigins[0];
125
+
96
126
  if (origin === 'null') {
97
127
  getParentOrigin(callback);
98
128
  } else {
99
129
  callback(origin);
100
130
  }
101
131
  }
132
+
102
133
  function getParentOrigin(callback) {
103
134
  ChromeCom.request('getParentOrigin', null, callback);
104
135
  }
136
+
105
137
  function isAllowedFileSchemeAccess(callback) {
106
138
  ChromeCom.request('isAllowedFileSchemeAccess', null, callback);
107
139
  }
140
+
108
141
  function isRuntimeAvailable() {
109
142
  try {
110
143
  if (chrome.runtime && chrome.runtime.getManifest()) {
111
144
  return true;
112
145
  }
113
146
  } catch (e) {}
147
+
114
148
  return false;
115
149
  }
150
+
116
151
  function reloadIfRuntimeIsUnavailable() {
117
152
  if (!isRuntimeAvailable()) {
118
153
  location.reload();
119
154
  }
120
155
  }
121
- var chromeFileAccessOverlayPromise = void 0;
122
- function requestAccessToLocalFile(fileUrl, overlayManager) {
156
+
157
+ var chromeFileAccessOverlayPromise;
158
+
159
+ function requestAccessToLocalFile(fileUrl, overlayManager, callback) {
123
160
  var onCloseOverlay = null;
161
+
124
162
  if (top !== window) {
125
163
  window.addEventListener('focus', reloadIfRuntimeIsUnavailable);
164
+
126
165
  onCloseOverlay = function onCloseOverlay() {
127
166
  window.removeEventListener('focus', reloadIfRuntimeIsUnavailable);
128
167
  reloadIfRuntimeIsUnavailable();
129
168
  overlayManager.close('chromeFileAccessOverlay');
130
169
  };
131
170
  }
171
+
132
172
  if (!chromeFileAccessOverlayPromise) {
133
173
  chromeFileAccessOverlayPromise = overlayManager.register('chromeFileAccessOverlay', document.getElementById('chromeFileAccessOverlay'), onCloseOverlay, true);
134
174
  }
175
+
135
176
  chromeFileAccessOverlayPromise.then(function () {
136
177
  var iconPath = chrome.runtime.getManifest().icons[48];
137
178
  document.getElementById('chrome-pdfjs-logo-bg').style.backgroundImage = 'url(' + chrome.runtime.getURL(iconPath) + ')';
138
179
  var i18nFileAccessLabel = {
139
- "am": '\u1208\u134B\u12ED\u120D \u12E9\u12A0\u122D\u12A4\u120D\u12CE\u127D \u1218\u12F3\u1228\u123B \u134D\u1240\u12F5',
140
- "ar": '\u200F\u0627\u0644\u0633\u0645\u0627\u062D \u0628\u0627\u0644\u062F\u062E\u0648\u0644 \u0625\u0644\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 URL \u0644\u0644\u0645\u0644\u0641\u0627\u062A',
141
- "bg": '\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E URL \u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435',
142
- "bn": '\u09AB\u09BE\u0987\u09B2 URL\u0997\u09C1\u09B2\u09BF\u09A4\u09C7 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8 \u09AE\u099E\u09CD\u099C\u09C1\u09B0 \u0995\u09B0\u09C1\u09A8',
143
- "ca": 'Permet l\'acc\xE9s als URL de fitxer',
144
- "cs": 'Umo\u017Enit p\u0159\xEDstup k adres\xE1m URL soubor\u016F',
145
- "da": 'Tillad adgang til webadresser p\xE5 filer',
180
+ "am": "\u1208\u134B\u12ED\u120D \u12E9\u12A0\u122D\u12A4\u120D\u12CE\u127D \u1218\u12F3\u1228\u123B \u134D\u1240\u12F5",
181
+ "ar": "\u200F\u0627\u0644\u0633\u0645\u0627\u062D \u0628\u0627\u0644\u062F\u062E\u0648\u0644 \u0625\u0644\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 URL \u0644\u0644\u0645\u0644\u0641\u0627\u062A",
182
+ "bg": "\u0414\u0430 \u0441\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E URL \u0430\u0434\u0440\u0435\u0441\u0438\u0442\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B\u043E\u0432\u0435\u0442\u0435",
183
+ "bn": "\u09AB\u09BE\u0987\u09B2 URL\u0997\u09C1\u09B2\u09BF\u09A4\u09C7 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8 \u09AE\u099E\u09CD\u099C\u09C1\u09B0 \u0995\u09B0\u09C1\u09A8",
184
+ "ca": "Permet l'acc\xE9s als URL de fitxer",
185
+ "cs": "Umo\u017Enit p\u0159\xEDstup k adres\xE1m URL soubor\u016F",
186
+ "da": "Tillad adgang til webadresser p\xE5 filer",
146
187
  "de": "Zugriff auf Datei-URLs zulassen",
147
- "el": '\u039D\u03B1 \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03C4\u03B1\u03B9 \u03B7 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03C3\u03B5 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 URL \u03B1\u03C1\u03C7\u03B5\u03AF\u03C9\u03BD',
188
+ "el": "\u039D\u03B1 \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03C4\u03B1\u03B9 \u03B7 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03C3\u03B5 \u03B4\u03B9\u03B5\u03C5\u03B8\u03CD\u03BD\u03C3\u03B5\u03B9\u03C2 URL \u03B1\u03C1\u03C7\u03B5\u03AF\u03C9\u03BD",
148
189
  "en-GB": "Allow access to file URLs",
149
190
  "es": "Permitir acceso a URL de archivo",
150
191
  "es-419": "Permitir el acceso a las URL del archivo",
151
- "et": 'Luba juurdep\xE4\xE4s failide URL-idele',
152
- "fa": '\u200F\u0627\u062C\u0627\u0632\u0647\u0654 \u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 URL \u0647\u0627\u06CC \u0641\u0627\u06CC\u0644',
153
- "fi": 'Salli tiedostojen URL-osoitteiden k\xE4ytt\xF6',
192
+ "et": "Luba juurdep\xE4\xE4s failide URL-idele",
193
+ "fa": "\u200F\u0627\u062C\u0627\u0632\u0647\u0654 \u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 URL \u0647\u0627\u06CC \u0641\u0627\u06CC\u0644",
194
+ "fi": "Salli tiedostojen URL-osoitteiden k\xE4ytt\xF6",
154
195
  "fil": "Payagan ang access na mag-file ng mga URL",
155
- "fr": 'Autoriser l\'acc\xE8s aux URL de fichier',
156
- "gu": 'URL \u0AAB\u0ABE\u0A87\u0AB2 \u0A95\u0AB0\u0AB5\u0ABE \u0A8D\u0A95\u0ACD\u0AB8\u0AC7\u0AB8\u0AA8\u0AC0 \u0AAE\u0A82\u0A9C\u0AC2\u0AB0\u0AC0 \u0A86\u0AAA\u0ACB',
157
- "hi": '\u092B\u093C\u093E\u0907\u0932 URL \u0924\u0915 \u092A\u0939\u0941\u0902\u091A\u0928\u0947 \u0915\u0940 \u0905\u0928\u0941\u092E\u0924\u093F \u0926\u0947\u0902',
196
+ "fr": "Autoriser l'acc\xE8s aux URL de fichier",
197
+ "gu": "URL \u0AAB\u0ABE\u0A87\u0AB2 \u0A95\u0AB0\u0AB5\u0ABE \u0A8D\u0A95\u0ACD\u0AB8\u0AC7\u0AB8\u0AA8\u0AC0 \u0AAE\u0A82\u0A9C\u0AC2\u0AB0\u0AC0 \u0A86\u0AAA\u0ACB",
198
+ "hi": "\u092B\u093C\u093E\u0907\u0932 URL \u0924\u0915 \u092A\u0939\u0941\u0902\u091A\u0928\u0947 \u0915\u0940 \u0905\u0928\u0941\u092E\u0924\u093F \u0926\u0947\u0902",
158
199
  "hr": "Dozvoli pristup URL-ovima datoteke",
159
- "hu": 'F\xE1jl URL-ekhez val\xF3 hozz\xE1f\xE9r\xE9s enged\xE9lyez\xE9se',
200
+ "hu": "F\xE1jl URL-ekhez val\xF3 hozz\xE1f\xE9r\xE9s enged\xE9lyez\xE9se",
160
201
  "id": "Izinkan akses ke URL file",
161
202
  "it": "Consenti l'accesso agli URL dei file",
162
- "iw": '\u05D0\u05E4\u05E9\u05E8 \u05D2\u05D9\u05E9\u05D4 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05DC \u05E7\u05D1\u05E6\u05D9\u05DD',
163
- "ja": '\u30D5\u30A1\u30A4\u30EB\u306E URL \u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF\u3059\u308B',
164
- "kn": 'URL \u0C97\u0CB3\u0CA8\u0CCD\u0CA8\u0CC1 \u0CAB\u0CC8\u0CB2\u0CCD\u200C\u0C97\u0CB3\u0CBF\u0C97\u0CC6 \u0CAA\u0CCD\u0CB0\u0CB5\u0CC7\u0CB6\u0CBF\u0CB8\u0CB2\u0CC1 \u0C85\u0CA8\u0CC1\u0CAE\u0CA4\u0CBF\u0CB8\u0CBF',
165
- "ko": '\uD30C\uC77C URL\uC5D0 \uB300\uD55C \uC561\uC138\uC2A4 \uD5C8\uC6A9',
203
+ "iw": "\u05D0\u05E4\u05E9\u05E8 \u05D2\u05D9\u05E9\u05D4 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05D0\u05EA\u05E8\u05D9\u05DD \u05E9\u05DC \u05E7\u05D1\u05E6\u05D9\u05DD",
204
+ "ja": "\u30D5\u30A1\u30A4\u30EB\u306E URL \u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF\u3059\u308B",
205
+ "kn": "URL \u0C97\u0CB3\u0CA8\u0CCD\u0CA8\u0CC1 \u0CAB\u0CC8\u0CB2\u0CCD\u200C\u0C97\u0CB3\u0CBF\u0C97\u0CC6 \u0CAA\u0CCD\u0CB0\u0CB5\u0CC7\u0CB6\u0CBF\u0CB8\u0CB2\u0CC1 \u0C85\u0CA8\u0CC1\u0CAE\u0CA4\u0CBF\u0CB8\u0CBF",
206
+ "ko": "\uD30C\uC77C URL\uC5D0 \uB300\uD55C \uC561\uC138\uC2A4 \uD5C8\uC6A9",
166
207
  "lt": "Leisti pasiekti failo URL",
167
- "lv": 'At\u013Caut piek\u013Cuvi faila vietr\u0101\u017Eiem URL',
168
- "ml": 'URL \u0D15\u0D33\u0D4D\u200D\u200C \u0D2B\u0D2F\u0D32\u0D4D\u200D\u200C \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D28\u0D4D\u0D28\u0D24\u0D3F\u0D28\u0D4D \u0D06\u0D15\u0D4D\u200D\u0D38\u0D38\u0D4D\u0D38\u0D4D \u0D05\u0D28\u0D41\u0D35\u0D26\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D15',
169
- "mr": '\u092B\u093E\u0907\u0932 URL \u092E\u0927\u094D\u092F\u0947 \u092A\u094D\u0930\u0935\u0947\u0936\u093E\u0938 \u0905\u0928\u0941\u092E\u0924\u0940 \u0926\u094D\u092F\u093E',
208
+ "lv": "At\u013Caut piek\u013Cuvi faila vietr\u0101\u017Eiem URL",
209
+ "ml": "URL \u0D15\u0D33\u0D4D\u200D\u200C \u0D2B\u0D2F\u0D32\u0D4D\u200D\u200C \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D28\u0D4D\u0D28\u0D24\u0D3F\u0D28\u0D4D \u0D06\u0D15\u0D4D\u200D\u0D38\u0D38\u0D4D\u0D38\u0D4D \u0D05\u0D28\u0D41\u0D35\u0D26\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D15",
210
+ "mr": "\u092B\u093E\u0907\u0932 URL \u092E\u0927\u094D\u092F\u0947 \u092A\u094D\u0930\u0935\u0947\u0936\u093E\u0938 \u0905\u0928\u0941\u092E\u0924\u0940 \u0926\u094D\u092F\u093E",
170
211
  "ms": "Membenarkan akses ke URL fail",
171
212
  "nl": "Toegang tot bestand-URL's toestaan",
172
213
  "no": "Tillat tilgang til filnettadresser",
173
- "pl": 'Zezwalaj na dost\u0119p do adres\xF3w URL plik\xF3w',
214
+ "pl": "Zezwalaj na dost\u0119p do adres\xF3w URL plik\xF3w",
174
215
  "pt-BR": "Permitir acesso aos URLs do arquivo",
175
216
  "pt-PT": "Permitir acesso a URLs de ficheiro",
176
- "ro": 'Permite accesul la adresele URL de fi\u0219iere',
177
- "ru": '\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0441\u0441\u044B\u043B\u043A\u0430\u043C',
178
- "sk": 'Povoli\u0165 pr\xEDstup k webov\xFDm adres\xE1m s\xFAboru',
217
+ "ro": "Permite accesul la adresele URL de fi\u0219iere",
218
+ "ru": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043F\u043E \u0441\u0441\u044B\u043B\u043A\u0430\u043C",
219
+ "sk": "Povoli\u0165 pr\xEDstup k webov\xFDm adres\xE1m s\xFAboru",
179
220
  "sl": "Dovoli dostop do URL-jev datoteke",
180
- "sr": '\u0414\u043E\u0437\u0432\u043E\u043B\u0438 \u043F\u0440\u0438\u0441\u0442\u0443\u043F URL \u0430\u0434\u0440\u0435\u0441\u0430\u043C\u0430 \u0434\u0430\u0442\u043E\u0442\u0435\u043A\u0430',
181
- "sv": 'Till\xE5t \xE5tkomst till webbadresser i filen',
221
+ "sr": "\u0414\u043E\u0437\u0432\u043E\u043B\u0438 \u043F\u0440\u0438\u0441\u0442\u0443\u043F URL \u0430\u0434\u0440\u0435\u0441\u0430\u043C\u0430 \u0434\u0430\u0442\u043E\u0442\u0435\u043A\u0430",
222
+ "sv": "Till\xE5t \xE5tkomst till webbadresser i filen",
182
223
  "sw": "Ruhusu kufikia URL za faili",
183
- "ta": '\u0B95\u0BCB\u0BAA\u0BCD\u0BAA\u0BC1 URL\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B85\u0BA3\u0BC1\u0B95\u0BB2\u0BC8 \u0B85\u0BA9\u0BC1\u0BAE\u0BA4\u0BBF',
184
- "te": '\u0C2B\u0C48\u0C32\u0C4D URL\u0C32\u0C15\u0C41 \u0C2A\u0C4D\u0C30\u0C3E\u0C2A\u0C4D\u0C24\u0C3F\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C2E\u0C24\u0C3F\u0C02\u0C1A\u0C41',
185
- "th": '\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E43\u0E2B\u0E49\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E44\u0E1F\u0E25\u0E4C URL',
186
- "tr": 'Dosya URL\'lerine eri\u015Fime izin ver',
187
- "uk": '\u041D\u0430\u0434\u0430\u0432\u0430\u0442\u0438 \u0434\u043E\u0441\u0442\u0443\u043F \u0434\u043E URL-\u0430\u0434\u0440\u0435\u0441 \u0444\u0430\u0439\u043B\u0443',
188
- "vi": 'Cho ph\xE9p truy c\u1EADp v\xE0o c\xE1c URL c\u1EE7a t\u1EC7p',
189
- "zh-CN": '\u5141\u8BB8\u8BBF\u95EE\u6587\u4EF6\u7F51\u5740',
190
- "zh-TW": '\u5141\u8A31\u5B58\u53D6\u6A94\u6848\u7DB2\u5740'
224
+ "ta": "\u0B95\u0BCB\u0BAA\u0BCD\u0BAA\u0BC1 URL\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B85\u0BA3\u0BC1\u0B95\u0BB2\u0BC8 \u0B85\u0BA9\u0BC1\u0BAE\u0BA4\u0BBF",
225
+ "te": "\u0C2B\u0C48\u0C32\u0C4D URL\u0C32\u0C15\u0C41 \u0C2A\u0C4D\u0C30\u0C3E\u0C2A\u0C4D\u0C24\u0C3F\u0C28\u0C3F \u0C05\u0C28\u0C41\u0C2E\u0C24\u0C3F\u0C02\u0C1A\u0C41",
226
+ "th": "\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E43\u0E2B\u0E49\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E44\u0E1F\u0E25\u0E4C URL",
227
+ "tr": "Dosya URL'lerine eri\u015Fime izin ver",
228
+ "uk": "\u041D\u0430\u0434\u0430\u0432\u0430\u0442\u0438 \u0434\u043E\u0441\u0442\u0443\u043F \u0434\u043E URL-\u0430\u0434\u0440\u0435\u0441 \u0444\u0430\u0439\u043B\u0443",
229
+ "vi": "Cho ph\xE9p truy c\u1EADp v\xE0o c\xE1c URL c\u1EE7a t\u1EC7p",
230
+ "zh-CN": "\u5141\u8BB8\u8BBF\u95EE\u6587\u4EF6\u7F51\u5740",
231
+ "zh-TW": "\u5141\u8A31\u5B58\u53D6\u6A94\u6848\u7DB2\u5740"
191
232
  }[chrome.i18n.getUILanguage && chrome.i18n.getUILanguage()];
233
+
192
234
  if (i18nFileAccessLabel) {
193
235
  document.getElementById('chrome-file-access-label').textContent = i18nFileAccessLabel;
194
236
  }
237
+
195
238
  var link = document.getElementById('chrome-link-to-extensions-page');
196
239
  link.href = 'chrome://extensions/?id=' + chrome.runtime.id;
240
+
197
241
  link.onclick = function (e) {
198
242
  e.preventDefault();
199
- ChromeCom.request('openExtensionsPageForFileAccess', { newTab: e.ctrlKey || e.metaKey || e.button === 1 || window !== top });
243
+ ChromeCom.request('openExtensionsPageForFileAccess', {
244
+ newTab: e.ctrlKey || e.metaKey || e.button === 1 || window !== top
245
+ });
200
246
  };
247
+
201
248
  document.getElementById('chrome-url-of-local-file').textContent = fileUrl;
249
+
250
+ document.getElementById('chrome-file-fallback').onchange = function () {
251
+ var file = this.files[0];
252
+
253
+ if (file) {
254
+ var originalFilename = decodeURIComponent(fileUrl.split('/').pop());
255
+ var originalUrl = fileUrl;
256
+
257
+ if (originalFilename !== file.name) {
258
+ var msg = 'The selected file does not match the original file.' + '\nOriginal: ' + originalFilename + '\nSelected: ' + file.name + '\nDo you want to open the selected file?';
259
+
260
+ if (!confirm(msg)) {
261
+ this.value = '';
262
+ return;
263
+ }
264
+
265
+ originalUrl = 'file:///fakepath/to/' + encodeURIComponent(file.name);
266
+ }
267
+
268
+ callback(_pdf.URL.createObjectURL(file), file.size, originalUrl);
269
+ overlayManager.close('chromeFileAccessOverlay');
270
+ }
271
+ };
272
+
202
273
  overlayManager.open('chromeFileAccessOverlay');
203
274
  });
204
275
  }
276
+
205
277
  if (window === top) {
206
278
  addEventListener('unload', function () {
207
279
  if (!isRuntimeAvailable()) {
@@ -209,127 +281,199 @@ if (window === top) {
209
281
  }
210
282
  });
211
283
  }
212
- var port = void 0;
284
+
285
+ var port;
286
+
213
287
  function setReferer(url, callback) {
214
288
  if (!port) {
215
- port = chrome.runtime.connect({ name: 'chromecom-referrer' });
289
+ port = chrome.runtime.connect({
290
+ name: 'chromecom-referrer'
291
+ });
216
292
  }
293
+
217
294
  port.onDisconnect.addListener(onDisconnect);
218
295
  port.onMessage.addListener(onMessage);
219
296
  port.postMessage({
220
297
  referer: window.history.state && window.history.state.chromecomState,
221
298
  requestUrl: url
222
299
  });
300
+
223
301
  function onMessage(referer) {
224
302
  if (referer) {
225
303
  var state = window.history.state || {};
226
304
  state.chromecomState = referer;
227
305
  window.history.replaceState(state, '');
228
306
  }
307
+
229
308
  onCompleted();
230
309
  }
310
+
231
311
  function onDisconnect() {
232
312
  port = null;
233
313
  callback();
234
314
  }
315
+
235
316
  function onCompleted() {
236
317
  port.onDisconnect.removeListener(onDisconnect);
237
318
  port.onMessage.removeListener(onMessage);
238
319
  callback();
239
320
  }
240
321
  }
322
+
241
323
  var storageArea = chrome.storage.sync || chrome.storage.local;
242
324
 
243
- var ChromePreferences = function (_BasePreferences) {
325
+ var ChromePreferences =
326
+ /*#__PURE__*/
327
+ function (_BasePreferences) {
244
328
  _inherits(ChromePreferences, _BasePreferences);
245
329
 
246
330
  function ChromePreferences() {
247
331
  _classCallCheck(this, ChromePreferences);
248
332
 
249
- return _possibleConstructorReturn(this, (ChromePreferences.__proto__ || Object.getPrototypeOf(ChromePreferences)).apply(this, arguments));
333
+ return _possibleConstructorReturn(this, _getPrototypeOf(ChromePreferences).apply(this, arguments));
250
334
  }
251
335
 
252
336
  _createClass(ChromePreferences, [{
253
- key: '_writeToStorage',
254
- value: function _writeToStorage(prefObj) {
255
- var _this2 = this;
256
-
257
- return new Promise(function (resolve) {
258
- if (prefObj === _this2.defaults) {
259
- var keysToRemove = Object.keys(_this2.defaults);
260
- storageArea.remove(keysToRemove, function () {
261
- resolve();
262
- });
263
- } else {
264
- storageArea.set(prefObj, function () {
265
- resolve();
266
- });
267
- }
268
- });
269
- }
270
- }, {
271
- key: '_readFromStorage',
272
- value: function _readFromStorage(prefObj) {
273
- var _this3 = this;
274
-
275
- return new Promise(function (resolve) {
276
- var getPreferences = function getPreferences(defaultPrefs) {
277
- if (chrome.runtime.lastError) {
278
- defaultPrefs = _this3.defaults;
279
- }
280
- storageArea.get(defaultPrefs, function (readPrefs) {
281
- resolve(readPrefs);
282
- });
283
- };
284
- if (chrome.storage.managed) {
285
- var defaultManagedPrefs = Object.assign({
286
- enableHandToolOnLoad: false,
287
- disableTextLayer: false,
288
- enhanceTextSelection: false
289
- }, _this3.defaults);
290
- chrome.storage.managed.get(defaultManagedPrefs, function (items) {
291
- items = items || defaultManagedPrefs;
292
- if (items.enableHandToolOnLoad && !items.cursorToolOnLoad) {
293
- items.cursorToolOnLoad = 1;
337
+ key: "_writeToStorage",
338
+ value: function () {
339
+ var _writeToStorage2 = _asyncToGenerator(
340
+ /*#__PURE__*/
341
+ _regenerator["default"].mark(function _callee(prefObj) {
342
+ var _this = this;
343
+
344
+ return _regenerator["default"].wrap(function _callee$(_context) {
345
+ while (1) {
346
+ switch (_context.prev = _context.next) {
347
+ case 0:
348
+ return _context.abrupt("return", new Promise(function (resolve) {
349
+ if (prefObj === _this.defaults) {
350
+ var keysToRemove = Object.keys(_this.defaults);
351
+ storageArea.remove(keysToRemove, function () {
352
+ resolve();
353
+ });
354
+ } else {
355
+ storageArea.set(prefObj, function () {
356
+ resolve();
357
+ });
358
+ }
359
+ }));
360
+
361
+ case 1:
362
+ case "end":
363
+ return _context.stop();
294
364
  }
295
- delete items.enableHandToolOnLoad;
296
- if (items.textLayerMode !== 1) {
297
- if (items.disableTextLayer) {
298
- items.textLayerMode = 0;
299
- } else if (items.enhanceTextSelection) {
300
- items.textLayerMode = 2;
301
- }
365
+ }
366
+ }, _callee);
367
+ }));
368
+
369
+ function _writeToStorage(_x) {
370
+ return _writeToStorage2.apply(this, arguments);
371
+ }
372
+
373
+ return _writeToStorage;
374
+ }()
375
+ }, {
376
+ key: "_readFromStorage",
377
+ value: function () {
378
+ var _readFromStorage2 = _asyncToGenerator(
379
+ /*#__PURE__*/
380
+ _regenerator["default"].mark(function _callee2(prefObj) {
381
+ var _this2 = this;
382
+
383
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
384
+ while (1) {
385
+ switch (_context2.prev = _context2.next) {
386
+ case 0:
387
+ return _context2.abrupt("return", new Promise(function (resolve) {
388
+ var getPreferences = function getPreferences(defaultPrefs) {
389
+ if (chrome.runtime.lastError) {
390
+ defaultPrefs = _this2.defaults;
391
+ }
392
+
393
+ storageArea.get(defaultPrefs, function (readPrefs) {
394
+ resolve(readPrefs);
395
+ });
396
+ };
397
+
398
+ if (chrome.storage.managed) {
399
+ var defaultManagedPrefs = Object.assign({
400
+ enableHandToolOnLoad: false,
401
+ disableTextLayer: false,
402
+ enhanceTextSelection: false,
403
+ showPreviousViewOnLoad: true,
404
+ disablePageMode: false
405
+ }, _this2.defaults);
406
+ chrome.storage.managed.get(defaultManagedPrefs, function (items) {
407
+ items = items || defaultManagedPrefs;
408
+
409
+ if (items.enableHandToolOnLoad && !items.cursorToolOnLoad) {
410
+ items.cursorToolOnLoad = 1;
411
+ }
412
+
413
+ delete items.enableHandToolOnLoad;
414
+
415
+ if (items.textLayerMode !== 1) {
416
+ if (items.disableTextLayer) {
417
+ items.textLayerMode = 0;
418
+ } else if (items.enhanceTextSelection) {
419
+ items.textLayerMode = 2;
420
+ }
421
+ }
422
+
423
+ delete items.disableTextLayer;
424
+ delete items.enhanceTextSelection;
425
+
426
+ if (!items.showPreviousViewOnLoad && !items.viewOnLoad) {
427
+ items.viewOnLoad = 1;
428
+ }
429
+
430
+ delete items.showPreviousViewOnLoad;
431
+ delete items.disablePageMode;
432
+ getPreferences(items);
433
+ });
434
+ } else {
435
+ getPreferences(_this2.defaults);
436
+ }
437
+ }));
438
+
439
+ case 1:
440
+ case "end":
441
+ return _context2.stop();
302
442
  }
303
- delete items.disableTextLayer;
304
- delete items.enhanceTextSelection;
305
- getPreferences(items);
306
- });
307
- } else {
308
- getPreferences(_this3.defaults);
309
- }
310
- });
311
- }
443
+ }
444
+ }, _callee2);
445
+ }));
446
+
447
+ function _readFromStorage(_x2) {
448
+ return _readFromStorage2.apply(this, arguments);
449
+ }
450
+
451
+ return _readFromStorage;
452
+ }()
312
453
  }]);
313
454
 
314
455
  return ChromePreferences;
315
456
  }(_preferences.BasePreferences);
316
457
 
317
458
  var ChromeExternalServices = Object.create(_app.DefaultExternalServices);
459
+
318
460
  ChromeExternalServices.initPassiveLoading = function (callbacks) {
319
461
  var overlayManager = _app.PDFViewerApplication.overlayManager;
320
-
321
- ChromeCom.resolvePDFFile(_app_options.AppOptions.get('defaultUrl'), overlayManager, function (url, length, originalURL) {
322
- callbacks.onOpenWithURL(url, length, originalURL);
462
+ ChromeCom.resolvePDFFile(_app_options.AppOptions.get('defaultUrl'), overlayManager, function (url, length, originalUrl) {
463
+ callbacks.onOpenWithURL(url, length, originalUrl);
323
464
  });
324
465
  };
466
+
325
467
  ChromeExternalServices.createDownloadManager = function (options) {
326
468
  return new _download_manager.DownloadManager(options);
327
469
  };
470
+
328
471
  ChromeExternalServices.createPreferences = function () {
329
472
  return new ChromePreferences();
330
473
  };
474
+
331
475
  ChromeExternalServices.createL10n = function (options) {
332
476
  return new _genericl10n.GenericL10n(navigator.language);
333
477
  };
334
- _app.PDFViewerApplication.externalServices = ChromeExternalServices;
335
- exports.ChromeCom = ChromeCom;
478
+
479
+ _app.PDFViewerApplication.externalServices = ChromeExternalServices;