|  | @@ -40,61 +40,62 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    throw new Error('Module "pdfjs-web/chromecom" shall not be used outside ' + 'CHROME build.');
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -var ChromeCom = {};
 | 
	
		
			
				|  |  | -ChromeCom.request = function ChromeCom_request(action, data, callback) {
 | 
	
		
			
				|  |  | -  var message = {
 | 
	
		
			
				|  |  | -    action: action,
 | 
	
		
			
				|  |  | -    data: data
 | 
	
		
			
				|  |  | -  };
 | 
	
		
			
				|  |  | -  if (!chrome.runtime) {
 | 
	
		
			
				|  |  | -    console.error('chrome.runtime is undefined.');
 | 
	
		
			
				|  |  | -    if (callback) {
 | 
	
		
			
				|  |  | -      callback();
 | 
	
		
			
				|  |  | +var ChromeCom = {
 | 
	
		
			
				|  |  | +  request: function request(action, data, callback) {
 | 
	
		
			
				|  |  | +    var message = {
 | 
	
		
			
				|  |  | +      action: action,
 | 
	
		
			
				|  |  | +      data: data
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    if (!chrome.runtime) {
 | 
	
		
			
				|  |  | +      console.error('chrome.runtime is undefined.');
 | 
	
		
			
				|  |  | +      if (callback) {
 | 
	
		
			
				|  |  | +        callback();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    } else if (callback) {
 | 
	
		
			
				|  |  | +      chrome.runtime.sendMessage(message, callback);
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      chrome.runtime.sendMessage(message);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -  } else if (callback) {
 | 
	
		
			
				|  |  | -    chrome.runtime.sendMessage(message, callback);
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    chrome.runtime.sendMessage(message);
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -ChromeCom.resolvePDFFile = function (file, overlayManager, callback) {
 | 
	
		
			
				|  |  | -  file = file.replace(/^drive:/i, 'filesystem:' + location.origin + '/external/');
 | 
	
		
			
				|  |  | -  if (/^filesystem:/.test(file) && !_pdf.PDFJS.disableWorker) {
 | 
	
		
			
				|  |  | -    var resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.webkitResolveLocalFileSystemURL;
 | 
	
		
			
				|  |  | -    resolveLocalFileSystemURL(file, function onResolvedFSURL(fileEntry) {
 | 
	
		
			
				|  |  | -      fileEntry.file(function (fileObject) {
 | 
	
		
			
				|  |  | -        var blobUrl = URL.createObjectURL(fileObject);
 | 
	
		
			
				|  |  | -        callback(blobUrl, fileObject.size);
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  resolvePDFFile: function resolvePDFFile(file, overlayManager, callback) {
 | 
	
		
			
				|  |  | +    file = file.replace(/^drive:/i, 'filesystem:' + location.origin + '/external/');
 | 
	
		
			
				|  |  | +    if (/^filesystem:/.test(file) && !_pdf.PDFJS.disableWorker) {
 | 
	
		
			
				|  |  | +      var resolveLocalFileSystemURL = window.resolveLocalFileSystemURL || window.webkitResolveLocalFileSystemURL;
 | 
	
		
			
				|  |  | +      resolveLocalFileSystemURL(file, function onResolvedFSURL(fileEntry) {
 | 
	
		
			
				|  |  | +        fileEntry.file(function (fileObject) {
 | 
	
		
			
				|  |  | +          var blobUrl = URL.createObjectURL(fileObject);
 | 
	
		
			
				|  |  | +          callback(blobUrl, fileObject.size);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      }, function onFileSystemError(error) {
 | 
	
		
			
				|  |  | +        console.warn('Cannot resolve file ' + file + ', ' + error.name + ' ' + error.message);
 | 
	
		
			
				|  |  | +        callback(file);
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  | -    }, function onFileSystemError(error) {
 | 
	
		
			
				|  |  | -      console.warn('Cannot resolve file ' + file + ', ' + error.name + ' ' + error.message);
 | 
	
		
			
				|  |  | -      callback(file);
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    return;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  if (/^https?:/.test(file)) {
 | 
	
		
			
				|  |  | -    setReferer(file, function () {
 | 
	
		
			
				|  |  | -      callback(file);
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    return;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  if (/^file?:/.test(file)) {
 | 
	
		
			
				|  |  | -    getEmbedderOrigin(function (origin) {
 | 
	
		
			
				|  |  | -      if (origin && !/^file:|^chrome-extension:/.test(origin)) {
 | 
	
		
			
				|  |  | -        _app.PDFViewerApplication.error('Blocked ' + origin + ' from loading ' + file + '. Refused to load a local file in a non-local page ' + 'for security reasons.');
 | 
	
		
			
				|  |  | -        return;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      isAllowedFileSchemeAccess(function (isAllowedAccess) {
 | 
	
		
			
				|  |  | -        if (isAllowedAccess) {
 | 
	
		
			
				|  |  | -          callback(file);
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          requestAccessToLocalFile(file, overlayManager);
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (/^https?:/.test(file)) {
 | 
	
		
			
				|  |  | +      setReferer(file, function () {
 | 
	
		
			
				|  |  | +        callback(file);
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (/^file?:/.test(file)) {
 | 
	
		
			
				|  |  | +      getEmbedderOrigin(function (origin) {
 | 
	
		
			
				|  |  | +        if (origin && !/^file:|^chrome-extension:/.test(origin)) {
 | 
	
		
			
				|  |  | +          _app.PDFViewerApplication.error('Blocked ' + origin + ' from loading ' + file + '. Refused to load a local file in a non-local page ' + 'for security reasons.');
 | 
	
		
			
				|  |  | +          return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        isAllowedFileSchemeAccess(function (isAllowedAccess) {
 | 
	
		
			
				|  |  | +          if (isAllowedAccess) {
 | 
	
		
			
				|  |  | +            callback(file);
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            requestAccessToLocalFile(file, overlayManager);
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    return;
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    callback(file);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  callback(file);
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  function getEmbedderOrigin(callback) {
 | 
	
		
			
				|  |  |    var origin = window === top ? location.origin : location.ancestorOrigins[0];
 | 
	
	
		
			
				|  | @@ -123,7 +124,7 @@ function reloadIfRuntimeIsUnavailable() {
 | 
	
		
			
				|  |  |      location.reload();
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -var chromeFileAccessOverlayPromise;
 | 
	
		
			
				|  |  | +var chromeFileAccessOverlayPromise = void 0;
 | 
	
		
			
				|  |  |  function requestAccessToLocalFile(fileUrl, overlayManager) {
 | 
	
		
			
				|  |  |    var onCloseOverlay = null;
 | 
	
		
			
				|  |  |    if (top !== window) {
 | 
	
	
		
			
				|  | @@ -214,7 +215,7 @@ if (window === top) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -var port;
 | 
	
		
			
				|  |  | +var port = void 0;
 | 
	
		
			
				|  |  |  function setReferer(url, callback) {
 | 
	
		
			
				|  |  |    if (!port) {
 | 
	
		
			
				|  |  |      port = chrome.runtime.connect({ name: 'chromecom-referrer' });
 |