diff --git a/extensions/chromium/pdfHandler-vcros.js b/extensions/chromium/pdfHandler-vcros.js index 4fb7b3614..839ecb1bc 100644 --- a/extensions/chromium/pdfHandler-vcros.js +++ b/extensions/chromium/pdfHandler-vcros.js @@ -18,78 +18,77 @@ limitations under the License. /* globals chrome, getViewerURL */ (function() { -'use strict'; + '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') { + if (!chrome.fileBrowserHandler) { + // Not on Chromium OS, bail out 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); - }); - } -} + chrome.fileBrowserHandler.onExecute.addListener(onExecuteFileBrowserHandler); -/** - * 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; + /** + * 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); + }); + } } - 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: windowId, - active: true, - url: url - }, function() { - openViewer(windowId, fileEntries); - }); - } else { - chrome.windows.create({ - type: 'normal', - focused: true, - url: url - }, function(chromeWindow) { - openViewer(chromeWindow.id, 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: windowId, + active: true, + url: url + }, function() { + openViewer(windowId, fileEntries); + }); + } else { + chrome.windows.create({ + type: 'normal', + focused: true, + url: url + }, function(chromeWindow) { + openViewer(chromeWindow.id, fileEntries); + }); + } } -} - })();