| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- /*
 
- Copyright 2014 Mozilla Foundation
 
- Licensed under the Apache License, Version 2.0 (the "License");
 
- you may not use this file except in compliance with the License.
 
- You may obtain a copy of the License at
 
-     http://www.apache.org/licenses/LICENSE-2.0
 
- Unless required by applicable law or agreed to in writing, software
 
- distributed under the License is distributed on an "AS IS" BASIS,
 
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
- See the License for the specific language governing permissions and
 
- limitations under the License.
 
- */
 
- /* eslint strict: ["error", "function"] */
 
- /* import-globals-from pdfHandler.js */
 
- (function () {
 
-   "use strict";
 
-   if (!chrome.fileBrowserHandler) {
 
-     // Not on Chromium OS, bail out
 
-     return;
 
-   }
 
-   chrome.fileBrowserHandler.onExecute.addListener(onExecuteFileBrowserHandler);
 
-   /**
 
-    * Invoked when "Open with PDF Viewer" is chosen in the File browser.
 
-    *
 
-    * @param {string} id      File browser action ID as specified in
 
-    *                         manifest.json
 
-    * @param {Object} details Object of type FileHandlerExecuteEventDetails
 
-    */
 
-   function onExecuteFileBrowserHandler(id, details) {
 
-     if (id !== "open-as-pdf") {
 
-       return;
 
-     }
 
-     var fileEntries = details.entries;
 
-     // "tab_id" is the currently documented format, but it is inconsistent with
 
-     // the other Chrome APIs that use "tabId" (http://crbug.com/179767)
 
-     var tabId = details.tab_id || details.tabId;
 
-     if (tabId > 0) {
 
-       chrome.tabs.get(tabId, function (tab) {
 
-         openViewer(tab && tab.windowId, fileEntries);
 
-       });
 
-     } else {
 
-       // Re-use existing window, if available.
 
-       chrome.windows.getLastFocused(function (chromeWindow) {
 
-         var windowId = chromeWindow && chromeWindow.id;
 
-         if (windowId) {
 
-           chrome.windows.update(windowId, { focused: true });
 
-         }
 
-         openViewer(windowId, fileEntries);
 
-       });
 
-     }
 
-   }
 
-   /**
 
-    * Open the PDF Viewer for the given list of PDF files.
 
-    *
 
-    * @param {number} windowId
 
-    * @param {Array} fileEntries List of Entry objects (HTML5 FileSystem API)
 
-    */
 
-   function openViewer(windowId, fileEntries) {
 
-     if (!fileEntries.length) {
 
-       return;
 
-     }
 
-     var fileEntry = fileEntries.shift();
 
-     var url = fileEntry.toURL();
 
-     // Use drive: alias to get shorter (more human-readable) URLs.
 
-     url = url.replace(
 
-       /^filesystem:chrome-extension:\/\/[a-p]{32}\/external\//,
 
-       "drive:"
 
-     );
 
-     url = getViewerURL(url);
 
-     if (windowId) {
 
-       chrome.tabs.create(
 
-         {
 
-           windowId,
 
-           active: true,
 
-           url,
 
-         },
 
-         function () {
 
-           openViewer(windowId, fileEntries);
 
-         }
 
-       );
 
-     } else {
 
-       chrome.windows.create(
 
-         {
 
-           type: "normal",
 
-           focused: true,
 
-           url,
 
-         },
 
-         function (chromeWindow) {
 
-           openViewer(chromeWindow.id, fileEntries);
 
-         }
 
-       );
 
-     }
 
-   }
 
- })();
 
 
  |