83b780af81
Before commit: chrome-extension://EXTENSIONID/content/web/viewer.html?file=http%3A%2F%2Fexample.com%2Ffile.pdf After commit: chrome-extension://EXTENSIONID/http://example/file.pdf Technical details: - The extension's background page uses the webRequest API to intercept requests for <extension host>/<real path to pdf>, and redirect it to the viewer's URL. - viewer.js uses history.replaceState to rewrite the URL, so that it's easier for users to recognize and copy-paste URLs. - The fake paths /http:, /https:, /file:, etc. have been added to the web_accessible_resources section of the manifest file, in order to avoid seeing chrome-extension://invalid/ instead of the actual URL when using history back/forward to navigate from/to the PDF viewer. - Since the relative path resolving doesn't work because relative URLs are inaccurate, a <base> tag has been added. This method has already been proven to work in the Firefox add-on. Notes: - This commit has been cherry-picked from crx-using-streams-api. - Need to merge https://github.com/mozilla/pdf.js/pull/3582 to deal with a bug in Chrome <=30 - In Chrome, getting the contents of a FTP file is not possible, so there's no support for FTP files, even though the extension router recognizes the ftp: scheme.
35 lines
705 B
JSON
35 lines
705 B
JSON
{
|
|
"manifest_version": 2,
|
|
"name": "PDF Viewer",
|
|
"version": "PDFJSSCRIPT_VERSION",
|
|
"description": "Uses HTML5 to display PDF files directly in the browser.",
|
|
"icons": {
|
|
"128": "icon128.png",
|
|
"48": "icon48.png",
|
|
"16": "icon16.png"
|
|
},
|
|
"permissions": [
|
|
"webRequest", "webRequestBlocking",
|
|
"<all_urls>",
|
|
"tabs",
|
|
"webNavigation"
|
|
],
|
|
"content_scripts": [{
|
|
"matches": ["file://*/*"],
|
|
"js": ["nothing.js"]
|
|
}],
|
|
"background": {
|
|
"page": "pdfHandler.html"
|
|
},
|
|
"incognito": "split",
|
|
"web_accessible_resources": [
|
|
"getFrameId",
|
|
"content/web/viewer.html",
|
|
"http:/*",
|
|
"https:/*",
|
|
"ftp:/*",
|
|
"file:/*",
|
|
"chrome-extension:/*"
|
|
]
|
|
}
|