pdfjs-dist 2.0.550 → 2.3.200

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 (168) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +21618 -14369
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +22758 -11399
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/image_decoders/pdf.image_decoders.js +11500 -0
  10. package/image_decoders/pdf.image_decoders.js.map +1 -0
  11. package/image_decoders/pdf.image_decoders.min.js +1 -0
  12. package/lib/core/annotation.js +767 -258
  13. package/lib/core/arithmetic_decoder.js +275 -245
  14. package/lib/core/bidi.js +65 -6
  15. package/lib/core/ccitt.js +173 -18
  16. package/lib/core/ccitt_stream.js +15 -6
  17. package/lib/core/cff_parser.js +433 -61
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +428 -157
  20. package/lib/core/cmap.js +326 -87
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/core_utils.js +173 -0
  23. package/lib/core/crypto.js +290 -45
  24. package/lib/core/document.js +575 -272
  25. package/lib/core/encodings.js +19 -10
  26. package/lib/core/evaluator.js +1032 -351
  27. package/lib/core/font_renderer.js +331 -97
  28. package/lib/core/fonts.js +813 -196
  29. package/lib/core/function.js +253 -27
  30. package/lib/core/glyphlist.js +5 -3
  31. package/lib/core/image.js +169 -62
  32. package/lib/core/image_utils.js +111 -0
  33. package/lib/core/jbig2.js +502 -72
  34. package/lib/core/jbig2_stream.js +19 -8
  35. package/lib/core/jpeg_stream.js +38 -13
  36. package/lib/core/jpg.js +293 -52
  37. package/lib/core/jpx.js +419 -12
  38. package/lib/core/jpx_stream.js +18 -6
  39. package/lib/core/metrics.js +15 -15
  40. package/lib/core/murmurhash3.js +56 -34
  41. package/lib/core/obj.js +1368 -500
  42. package/lib/core/operator_list.js +159 -43
  43. package/lib/core/parser.js +544 -199
  44. package/lib/core/pattern.js +170 -21
  45. package/lib/core/pdf_manager.js +324 -134
  46. package/lib/core/primitives.js +169 -61
  47. package/lib/core/ps_parser.js +134 -45
  48. package/lib/core/standard_fonts.js +17 -17
  49. package/lib/core/stream.js +327 -34
  50. package/lib/core/type1_parser.js +148 -8
  51. package/lib/core/unicode.js +32 -5
  52. package/lib/core/worker.js +215 -229
  53. package/lib/core/worker_stream.js +277 -0
  54. package/lib/display/annotation_layer.js +618 -192
  55. package/lib/display/api.js +1798 -882
  56. package/lib/display/api_compatibility.js +5 -10
  57. package/lib/display/canvas.js +366 -45
  58. package/lib/display/content_disposition.js +71 -24
  59. package/lib/display/display_utils.js +777 -0
  60. package/lib/display/fetch_stream.js +205 -87
  61. package/lib/display/font_loader.js +468 -236
  62. package/lib/display/metadata.js +38 -16
  63. package/lib/display/network.js +635 -428
  64. package/lib/display/network_utils.js +38 -19
  65. package/lib/display/node_stream.js +367 -175
  66. package/lib/display/pattern_helper.js +103 -36
  67. package/lib/display/svg.js +1232 -519
  68. package/lib/display/text_layer.js +208 -75
  69. package/lib/display/transport_stream.js +345 -94
  70. package/lib/display/webgl.js +64 -18
  71. package/lib/display/worker_options.js +5 -4
  72. package/lib/display/xml_parser.js +166 -53
  73. package/lib/examples/node/domstubs.js +60 -4
  74. package/lib/pdf.js +35 -14
  75. package/lib/pdf.worker.js +5 -3
  76. package/lib/shared/compatibility.js +170 -572
  77. package/lib/shared/global_scope.js +2 -2
  78. package/lib/shared/is_node.js +4 -4
  79. package/lib/shared/message_handler.js +216 -163
  80. package/lib/shared/streams_polyfill.js +21 -17
  81. package/lib/shared/util.js +495 -385
  82. package/lib/test/unit/annotation_spec.js +1464 -401
  83. package/lib/test/unit/api_spec.js +718 -361
  84. package/lib/test/unit/bidi_spec.js +7 -7
  85. package/lib/test/unit/cff_parser_spec.js +54 -11
  86. package/lib/test/unit/clitests_helper.js +9 -10
  87. package/lib/test/unit/cmap_spec.js +95 -41
  88. package/lib/test/unit/colorspace_spec.js +115 -63
  89. package/lib/test/unit/core_utils_spec.js +191 -0
  90. package/lib/test/unit/crypto_spec.js +17 -5
  91. package/lib/test/unit/custom_spec.js +43 -55
  92. package/lib/test/unit/display_svg_spec.js +34 -18
  93. package/lib/test/unit/display_utils_spec.js +273 -0
  94. package/lib/test/unit/document_spec.js +8 -13
  95. package/lib/test/unit/encodings_spec.js +25 -45
  96. package/lib/test/unit/evaluator_spec.js +59 -20
  97. package/lib/test/unit/fetch_stream_spec.js +111 -0
  98. package/lib/test/unit/function_spec.js +17 -5
  99. package/lib/test/unit/jasmine-boot.js +33 -20
  100. package/lib/test/unit/message_handler_spec.js +30 -13
  101. package/lib/test/unit/metadata_spec.js +71 -11
  102. package/lib/test/unit/murmurhash3_spec.js +3 -3
  103. package/lib/test/unit/network_spec.js +22 -55
  104. package/lib/test/unit/network_utils_spec.js +105 -14
  105. package/lib/test/unit/node_stream_spec.js +58 -34
  106. package/lib/test/unit/parser_spec.js +162 -71
  107. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  108. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  109. package/lib/test/unit/pdf_history_spec.js +21 -9
  110. package/lib/test/unit/primitives_spec.js +55 -22
  111. package/lib/test/unit/stream_spec.js +12 -4
  112. package/lib/test/unit/test_utils.js +273 -56
  113. package/lib/test/unit/testreporter.js +21 -3
  114. package/lib/test/unit/type1_parser_spec.js +9 -7
  115. package/lib/test/unit/ui_utils_spec.js +236 -36
  116. package/lib/test/unit/unicode_spec.js +18 -15
  117. package/lib/test/unit/util_spec.js +87 -128
  118. package/lib/web/annotation_layer_builder.js +39 -22
  119. package/lib/web/app.js +1252 -609
  120. package/lib/web/app_options.js +103 -65
  121. package/lib/web/base_viewer.js +522 -242
  122. package/lib/web/chromecom.js +259 -117
  123. package/lib/web/debugger.js +166 -22
  124. package/lib/web/download_manager.js +31 -12
  125. package/lib/web/firefox_print_service.js +27 -14
  126. package/lib/web/firefoxcom.js +318 -78
  127. package/lib/web/genericcom.js +89 -30
  128. package/lib/web/genericl10n.js +142 -30
  129. package/lib/web/grab_to_pan.js +28 -4
  130. package/lib/web/interfaces.js +174 -47
  131. package/lib/web/overlay_manager.js +235 -85
  132. package/lib/web/password_prompt.js +22 -14
  133. package/lib/web/pdf_attachment_viewer.js +38 -18
  134. package/lib/web/pdf_cursor_tools.js +39 -16
  135. package/lib/web/pdf_document_properties.js +255 -136
  136. package/lib/web/pdf_find_bar.js +84 -40
  137. package/lib/web/pdf_find_controller.js +495 -184
  138. package/lib/web/pdf_find_utils.js +111 -0
  139. package/lib/web/pdf_history.js +190 -53
  140. package/lib/web/pdf_link_service.js +144 -79
  141. package/lib/web/pdf_outline_viewer.js +124 -47
  142. package/lib/web/pdf_page_view.js +194 -74
  143. package/lib/web/pdf_presentation_mode.js +99 -34
  144. package/lib/web/pdf_print_service.js +59 -13
  145. package/lib/web/pdf_rendering_queue.js +28 -9
  146. package/lib/web/pdf_sidebar.js +144 -81
  147. package/lib/web/pdf_sidebar_resizer.js +42 -16
  148. package/lib/web/pdf_single_page_viewer.js +74 -66
  149. package/lib/web/pdf_thumbnail_view.js +104 -33
  150. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  151. package/lib/web/pdf_viewer.component.js +112 -32
  152. package/lib/web/pdf_viewer.js +82 -87
  153. package/lib/web/preferences.js +284 -91
  154. package/lib/web/secondary_toolbar.js +132 -59
  155. package/lib/web/text_layer_builder.js +134 -59
  156. package/lib/web/toolbar.js +80 -43
  157. package/lib/web/ui_utils.js +400 -134
  158. package/lib/web/view_history.js +215 -67
  159. package/lib/web/viewer_compatibility.js +3 -8
  160. package/package.json +3 -2
  161. package/web/pdf_viewer.css +23 -15
  162. package/web/pdf_viewer.js +3429 -1245
  163. package/web/pdf_viewer.js.map +1 -1
  164. package/external/streams/streams-lib.js +0 -3962
  165. package/lib/display/dom_utils.js +0 -429
  166. package/lib/test/unit/dom_utils_spec.js +0 -89
  167. package/lib/test/unit/fonts_spec.js +0 -81
  168. 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,48 @@
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
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
42
+
43
+ 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); }
44
+
45
+ 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); } }
46
+
47
+ 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
48
 
41
49
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
50
 
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; }
51
+ 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); } }
52
+
53
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
54
+
55
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
58
+
59
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
60
+
61
+ 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); }
62
+
63
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
64
 
47
65
  {
48
66
  throw new Error('Module "pdfjs-web/chromecom" shall not be used outside ' + 'CHROME build.');
@@ -53,8 +71,10 @@ var ChromeCom = {
53
71
  action: action,
54
72
  data: data
55
73
  };
74
+
56
75
  if (!chrome.runtime) {
57
76
  console.error('chrome.runtime is undefined.');
77
+
58
78
  if (callback) {
59
79
  callback();
60
80
  }
@@ -66,142 +86,192 @@ var ChromeCom = {
66
86
  },
67
87
  resolvePDFFile: function resolvePDFFile(file, overlayManager, callback) {
68
88
  file = file.replace(/^drive:/i, 'filesystem:' + location.origin + '/external/');
89
+
69
90
  if (/^https?:/.test(file)) {
70
91
  setReferer(file, function () {
71
92
  callback(file);
72
93
  });
73
94
  return;
74
95
  }
96
+
75
97
  if (/^file?:/.test(file)) {
76
98
  getEmbedderOrigin(function (origin) {
77
99
  if (origin && !/^file:|^chrome-extension:/.test(origin)) {
78
100
  _app.PDFViewerApplication.error('Blocked ' + origin + ' from loading ' + file + '. Refused to load a local file in a non-local page ' + 'for security reasons.');
101
+
79
102
  return;
80
103
  }
104
+
81
105
  isAllowedFileSchemeAccess(function (isAllowedAccess) {
82
106
  if (isAllowedAccess) {
83
107
  callback(file);
84
108
  } else {
85
- requestAccessToLocalFile(file, overlayManager);
109
+ requestAccessToLocalFile(file, overlayManager, callback);
86
110
  }
87
111
  });
88
112
  });
89
113
  return;
90
114
  }
115
+
91
116
  callback(file);
92
117
  }
93
118
  };
119
+ exports.ChromeCom = ChromeCom;
120
+
94
121
  function getEmbedderOrigin(callback) {
95
122
  var origin = window === top ? location.origin : location.ancestorOrigins[0];
123
+
96
124
  if (origin === 'null') {
97
125
  getParentOrigin(callback);
98
126
  } else {
99
127
  callback(origin);
100
128
  }
101
129
  }
130
+
102
131
  function getParentOrigin(callback) {
103
132
  ChromeCom.request('getParentOrigin', null, callback);
104
133
  }
134
+
105
135
  function isAllowedFileSchemeAccess(callback) {
106
136
  ChromeCom.request('isAllowedFileSchemeAccess', null, callback);
107
137
  }
138
+
108
139
  function isRuntimeAvailable() {
109
140
  try {
110
141
  if (chrome.runtime && chrome.runtime.getManifest()) {
111
142
  return true;
112
143
  }
113
144
  } catch (e) {}
145
+
114
146
  return false;
115
147
  }
148
+
116
149
  function reloadIfRuntimeIsUnavailable() {
117
150
  if (!isRuntimeAvailable()) {
118
151
  location.reload();
119
152
  }
120
153
  }
121
- var chromeFileAccessOverlayPromise = void 0;
122
- function requestAccessToLocalFile(fileUrl, overlayManager) {
154
+
155
+ var chromeFileAccessOverlayPromise;
156
+
157
+ function requestAccessToLocalFile(fileUrl, overlayManager, callback) {
123
158
  var onCloseOverlay = null;
159
+
124
160
  if (top !== window) {
125
161
  window.addEventListener('focus', reloadIfRuntimeIsUnavailable);
162
+
126
163
  onCloseOverlay = function onCloseOverlay() {
127
164
  window.removeEventListener('focus', reloadIfRuntimeIsUnavailable);
128
165
  reloadIfRuntimeIsUnavailable();
129
166
  overlayManager.close('chromeFileAccessOverlay');
130
167
  };
131
168
  }
169
+
132
170
  if (!chromeFileAccessOverlayPromise) {
133
171
  chromeFileAccessOverlayPromise = overlayManager.register('chromeFileAccessOverlay', document.getElementById('chromeFileAccessOverlay'), onCloseOverlay, true);
134
172
  }
173
+
135
174
  chromeFileAccessOverlayPromise.then(function () {
136
175
  var iconPath = chrome.runtime.getManifest().icons[48];
137
176
  document.getElementById('chrome-pdfjs-logo-bg').style.backgroundImage = 'url(' + chrome.runtime.getURL(iconPath) + ')';
138
177
  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',
178
+ "am": "\u1208\u134B\u12ED\u120D \u12E9\u12A0\u122D\u12A4\u120D\u12CE\u127D \u1218\u12F3\u1228\u123B \u134D\u1240\u12F5",
179
+ "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",
180
+ "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",
181
+ "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",
182
+ "ca": "Permet l'acc\xE9s als URL de fitxer",
183
+ "cs": "Umo\u017Enit p\u0159\xEDstup k adres\xE1m URL soubor\u016F",
184
+ "da": "Tillad adgang til webadresser p\xE5 filer",
146
185
  "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',
186
+ "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
187
  "en-GB": "Allow access to file URLs",
149
188
  "es": "Permitir acceso a URL de archivo",
150
189
  "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',
190
+ "et": "Luba juurdep\xE4\xE4s failide URL-idele",
191
+ "fa": "\u200F\u0627\u062C\u0627\u0632\u0647\u0654 \u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 URL \u0647\u0627\u06CC \u0641\u0627\u06CC\u0644",
192
+ "fi": "Salli tiedostojen URL-osoitteiden k\xE4ytt\xF6",
154
193
  "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',
194
+ "fr": "Autoriser l'acc\xE8s aux URL de fichier",
195
+ "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",
196
+ "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
197
  "hr": "Dozvoli pristup URL-ovima datoteke",
159
- "hu": 'F\xE1jl URL-ekhez val\xF3 hozz\xE1f\xE9r\xE9s enged\xE9lyez\xE9se',
198
+ "hu": "F\xE1jl URL-ekhez val\xF3 hozz\xE1f\xE9r\xE9s enged\xE9lyez\xE9se",
160
199
  "id": "Izinkan akses ke URL file",
161
200
  "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',
201
+ "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",
202
+ "ja": "\u30D5\u30A1\u30A4\u30EB\u306E URL \u3078\u306E\u30A2\u30AF\u30BB\u30B9\u3092\u8A31\u53EF\u3059\u308B",
203
+ "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",
204
+ "ko": "\uD30C\uC77C URL\uC5D0 \uB300\uD55C \uC561\uC138\uC2A4 \uD5C8\uC6A9",
166
205
  "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',
206
+ "lv": "At\u013Caut piek\u013Cuvi faila vietr\u0101\u017Eiem URL",
207
+ "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",
208
+ "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
209
  "ms": "Membenarkan akses ke URL fail",
171
210
  "nl": "Toegang tot bestand-URL's toestaan",
172
211
  "no": "Tillat tilgang til filnettadresser",
173
- "pl": 'Zezwalaj na dost\u0119p do adres\xF3w URL plik\xF3w',
212
+ "pl": "Zezwalaj na dost\u0119p do adres\xF3w URL plik\xF3w",
174
213
  "pt-BR": "Permitir acesso aos URLs do arquivo",
175
214
  "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',
215
+ "ro": "Permite accesul la adresele URL de fi\u0219iere",
216
+ "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",
217
+ "sk": "Povoli\u0165 pr\xEDstup k webov\xFDm adres\xE1m s\xFAboru",
179
218
  "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',
219
+ "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",
220
+ "sv": "Till\xE5t \xE5tkomst till webbadresser i filen",
182
221
  "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'
222
+ "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",
223
+ "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",
224
+ "th": "\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E43\u0E2B\u0E49\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E44\u0E1F\u0E25\u0E4C URL",
225
+ "tr": "Dosya URL'lerine eri\u015Fime izin ver",
226
+ "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",
227
+ "vi": "Cho ph\xE9p truy c\u1EADp v\xE0o c\xE1c URL c\u1EE7a t\u1EC7p",
228
+ "zh-CN": "\u5141\u8BB8\u8BBF\u95EE\u6587\u4EF6\u7F51\u5740",
229
+ "zh-TW": "\u5141\u8A31\u5B58\u53D6\u6A94\u6848\u7DB2\u5740"
191
230
  }[chrome.i18n.getUILanguage && chrome.i18n.getUILanguage()];
231
+
192
232
  if (i18nFileAccessLabel) {
193
233
  document.getElementById('chrome-file-access-label').textContent = i18nFileAccessLabel;
194
234
  }
235
+
195
236
  var link = document.getElementById('chrome-link-to-extensions-page');
196
237
  link.href = 'chrome://extensions/?id=' + chrome.runtime.id;
238
+
197
239
  link.onclick = function (e) {
198
240
  e.preventDefault();
199
- ChromeCom.request('openExtensionsPageForFileAccess', { newTab: e.ctrlKey || e.metaKey || e.button === 1 || window !== top });
241
+ ChromeCom.request('openExtensionsPageForFileAccess', {
242
+ newTab: e.ctrlKey || e.metaKey || e.button === 1 || window !== top
243
+ });
200
244
  };
245
+
201
246
  document.getElementById('chrome-url-of-local-file').textContent = fileUrl;
247
+
248
+ document.getElementById('chrome-file-fallback').onchange = function () {
249
+ var file = this.files[0];
250
+
251
+ if (file) {
252
+ var originalFilename = decodeURIComponent(fileUrl.split('/').pop());
253
+ var originalUrl = fileUrl;
254
+
255
+ if (originalFilename !== file.name) {
256
+ var msg = 'The selected file does not match the original file.' + '\nOriginal: ' + originalFilename + '\nSelected: ' + file.name + '\nDo you want to open the selected file?';
257
+
258
+ if (!confirm(msg)) {
259
+ this.value = '';
260
+ return;
261
+ }
262
+
263
+ originalUrl = 'file:///fakepath/to/' + encodeURIComponent(file.name);
264
+ }
265
+
266
+ callback(URL.createObjectURL(file), file.size, originalUrl);
267
+ overlayManager.close('chromeFileAccessOverlay');
268
+ }
269
+ };
270
+
202
271
  overlayManager.open('chromeFileAccessOverlay');
203
272
  });
204
273
  }
274
+
205
275
  if (window === top) {
206
276
  addEventListener('unload', function () {
207
277
  if (!isRuntimeAvailable()) {
@@ -209,127 +279,199 @@ if (window === top) {
209
279
  }
210
280
  });
211
281
  }
212
- var port = void 0;
282
+
283
+ var port;
284
+
213
285
  function setReferer(url, callback) {
214
286
  if (!port) {
215
- port = chrome.runtime.connect({ name: 'chromecom-referrer' });
287
+ port = chrome.runtime.connect({
288
+ name: 'chromecom-referrer'
289
+ });
216
290
  }
291
+
217
292
  port.onDisconnect.addListener(onDisconnect);
218
293
  port.onMessage.addListener(onMessage);
219
294
  port.postMessage({
220
295
  referer: window.history.state && window.history.state.chromecomState,
221
296
  requestUrl: url
222
297
  });
298
+
223
299
  function onMessage(referer) {
224
300
  if (referer) {
225
301
  var state = window.history.state || {};
226
302
  state.chromecomState = referer;
227
303
  window.history.replaceState(state, '');
228
304
  }
305
+
229
306
  onCompleted();
230
307
  }
308
+
231
309
  function onDisconnect() {
232
310
  port = null;
233
311
  callback();
234
312
  }
313
+
235
314
  function onCompleted() {
236
315
  port.onDisconnect.removeListener(onDisconnect);
237
316
  port.onMessage.removeListener(onMessage);
238
317
  callback();
239
318
  }
240
319
  }
320
+
241
321
  var storageArea = chrome.storage.sync || chrome.storage.local;
242
322
 
243
- var ChromePreferences = function (_BasePreferences) {
323
+ var ChromePreferences =
324
+ /*#__PURE__*/
325
+ function (_BasePreferences) {
244
326
  _inherits(ChromePreferences, _BasePreferences);
245
327
 
246
328
  function ChromePreferences() {
247
329
  _classCallCheck(this, ChromePreferences);
248
330
 
249
- return _possibleConstructorReturn(this, (ChromePreferences.__proto__ || Object.getPrototypeOf(ChromePreferences)).apply(this, arguments));
331
+ return _possibleConstructorReturn(this, _getPrototypeOf(ChromePreferences).apply(this, arguments));
250
332
  }
251
333
 
252
334
  _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;
335
+ key: "_writeToStorage",
336
+ value: function () {
337
+ var _writeToStorage2 = _asyncToGenerator(
338
+ /*#__PURE__*/
339
+ _regenerator["default"].mark(function _callee(prefObj) {
340
+ var _this = this;
341
+
342
+ return _regenerator["default"].wrap(function _callee$(_context) {
343
+ while (1) {
344
+ switch (_context.prev = _context.next) {
345
+ case 0:
346
+ return _context.abrupt("return", new Promise(function (resolve) {
347
+ if (prefObj === _this.defaults) {
348
+ var keysToRemove = Object.keys(_this.defaults);
349
+ storageArea.remove(keysToRemove, function () {
350
+ resolve();
351
+ });
352
+ } else {
353
+ storageArea.set(prefObj, function () {
354
+ resolve();
355
+ });
356
+ }
357
+ }));
358
+
359
+ case 1:
360
+ case "end":
361
+ return _context.stop();
294
362
  }
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
- }
363
+ }
364
+ }, _callee);
365
+ }));
366
+
367
+ function _writeToStorage(_x) {
368
+ return _writeToStorage2.apply(this, arguments);
369
+ }
370
+
371
+ return _writeToStorage;
372
+ }()
373
+ }, {
374
+ key: "_readFromStorage",
375
+ value: function () {
376
+ var _readFromStorage2 = _asyncToGenerator(
377
+ /*#__PURE__*/
378
+ _regenerator["default"].mark(function _callee2(prefObj) {
379
+ var _this2 = this;
380
+
381
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
382
+ while (1) {
383
+ switch (_context2.prev = _context2.next) {
384
+ case 0:
385
+ return _context2.abrupt("return", new Promise(function (resolve) {
386
+ var getPreferences = function getPreferences(defaultPrefs) {
387
+ if (chrome.runtime.lastError) {
388
+ defaultPrefs = _this2.defaults;
389
+ }
390
+
391
+ storageArea.get(defaultPrefs, function (readPrefs) {
392
+ resolve(readPrefs);
393
+ });
394
+ };
395
+
396
+ if (chrome.storage.managed) {
397
+ var defaultManagedPrefs = Object.assign({
398
+ enableHandToolOnLoad: false,
399
+ disableTextLayer: false,
400
+ enhanceTextSelection: false,
401
+ showPreviousViewOnLoad: true,
402
+ disablePageMode: false
403
+ }, _this2.defaults);
404
+ chrome.storage.managed.get(defaultManagedPrefs, function (items) {
405
+ items = items || defaultManagedPrefs;
406
+
407
+ if (items.enableHandToolOnLoad && !items.cursorToolOnLoad) {
408
+ items.cursorToolOnLoad = 1;
409
+ }
410
+
411
+ delete items.enableHandToolOnLoad;
412
+
413
+ if (items.textLayerMode !== 1) {
414
+ if (items.disableTextLayer) {
415
+ items.textLayerMode = 0;
416
+ } else if (items.enhanceTextSelection) {
417
+ items.textLayerMode = 2;
418
+ }
419
+ }
420
+
421
+ delete items.disableTextLayer;
422
+ delete items.enhanceTextSelection;
423
+
424
+ if (!items.showPreviousViewOnLoad && !items.viewOnLoad) {
425
+ items.viewOnLoad = 1;
426
+ }
427
+
428
+ delete items.showPreviousViewOnLoad;
429
+ delete items.disablePageMode;
430
+ getPreferences(items);
431
+ });
432
+ } else {
433
+ getPreferences(_this2.defaults);
434
+ }
435
+ }));
436
+
437
+ case 1:
438
+ case "end":
439
+ return _context2.stop();
302
440
  }
303
- delete items.disableTextLayer;
304
- delete items.enhanceTextSelection;
305
- getPreferences(items);
306
- });
307
- } else {
308
- getPreferences(_this3.defaults);
309
- }
310
- });
311
- }
441
+ }
442
+ }, _callee2);
443
+ }));
444
+
445
+ function _readFromStorage(_x2) {
446
+ return _readFromStorage2.apply(this, arguments);
447
+ }
448
+
449
+ return _readFromStorage;
450
+ }()
312
451
  }]);
313
452
 
314
453
  return ChromePreferences;
315
454
  }(_preferences.BasePreferences);
316
455
 
317
456
  var ChromeExternalServices = Object.create(_app.DefaultExternalServices);
457
+
318
458
  ChromeExternalServices.initPassiveLoading = function (callbacks) {
319
459
  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);
460
+ ChromeCom.resolvePDFFile(_app_options.AppOptions.get('defaultUrl'), overlayManager, function (url, length, originalUrl) {
461
+ callbacks.onOpenWithURL(url, length, originalUrl);
323
462
  });
324
463
  };
464
+
325
465
  ChromeExternalServices.createDownloadManager = function (options) {
326
466
  return new _download_manager.DownloadManager(options);
327
467
  };
468
+
328
469
  ChromeExternalServices.createPreferences = function () {
329
470
  return new ChromePreferences();
330
471
  };
472
+
331
473
  ChromeExternalServices.createL10n = function (options) {
332
474
  return new _genericl10n.GenericL10n(navigator.language);
333
475
  };
334
- _app.PDFViewerApplication.externalServices = ChromeExternalServices;
335
- exports.ChromeCom = ChromeCom;
476
+
477
+ _app.PDFViewerApplication.externalServices = ChromeExternalServices;