Commit Graph

296 Commits

Author SHA1 Message Date
Rob Wu
ac8b8079a4 Added missing <html> tag to page action 2014-01-02 18:44:38 +01:00
Rob Wu
e20bc529c8 Remove superfluos <!DOCTYPE html> from page action
Fixes #4064
2014-01-02 18:04:47 +01:00
Ethan Glasser-Camp
9b887f5bf3 add support for Conkeror 2013-12-29 16:06:55 -05:00
Rob Wu
8526d3c600 [CRX] Add a pageAction to omnibox showing PDF URL
In Chromium extensions, the viewer's URL looks like this:
chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://example.com/file.pdf

Furthermore, the PDF Viewer itself can also add something to the reference fragment:
chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://example.com/file.pdf#page=2

Consequently, it is difficult to copy a clean URL (e.g. for sharing over mail)
without having to tidy-up the URL manually.

This commit solves this issue by adding a button to the omnibox,
which shows the clean PDF URL on click.
2013-12-16 19:00:32 +01:00
Rob Wu
91dd664732 [CRX] Reload extension tab after session restore 2013-11-22 11:44:43 +01:00
Yury Delendik
124eb30e8d Merge pull request #3936 from brendandahl/initial-data
Leave initial request open until the viewer is ready to switch to range requests.
2013-11-21 06:22:24 -08:00
Jonas Jenwald
ba67158c94 Fix error in 'PdfStreamConverter.js' that prevents the user from setting a boolean preference to false 2013-11-19 01:33:48 +01:00
Jonas Jenwald
60610cd625 Implement default preferences 2013-11-18 23:51:06 +01:00
Brendan Dahl
0385131a9a Leave initial request open until the viewer is ready to switch to range requests. 2013-11-18 11:17:26 -08:00
Brendan Dahl
ca1806025c Merge pull request #3794 from brendandahl/b2g-fix
Fix the B2G viewer and enable bot preview.
2013-10-17 14:14:17 -07:00
Rob Wu
83b780af81 [CRX] Show nicely formatted URL in omnibox
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.
2013-10-16 23:14:46 +02:00
Rob Wu
e9cb91de39 [CRX] split:incognito is used, so update file:-handler
The current stable Chromium version is 29. Since the critical
bug that prevented use of incognito:split has been fixed, and
incognito:split is actually used, it's safe to drop the code
that disables the extension in incognito mode.

( fixed bug = http:/crbug.com/224094 )
2013-10-16 23:14:43 +02:00
Rob Wu
edd4bae903 [CRX] Change Viewer insertion method
And use split incognito mode

Previous method:
- Rewrite content type to XHTML, followed by a content script
  to cancel and replace the document with the viewer.
  ( https://github.com/mozilla/pdf.js/pull/3017 )

New method:
- Cancel loading of the document, followed by a redirect to the viewer

Disadvantage of new method:
- URLs are no longer "nice". This will be addressed by cherry-picking
  a commit from the crx-using-streams-api branch.

Advantages of new method:
- Idle time is minimal. In some cases (with large documents),
  it took too much time before the content script was activated.
  During this period, the page looked blank, and the contents of
  the PDF file were still retrieved and **discarded**.
  With the new method, the idle time is minimal, because the request
  is immediately cancelled.
- No FOUXEP (Flash of unhidden XML error page), because the XHTML
  Content-Type hack is no longer used.
2013-10-16 23:14:16 +02:00
Rob Wu
820b95416b chrome.runtime -> chrome.extension when needed
Some Ubuntu users are still stuck at Chromium 25.
2013-10-14 17:52:49 +02:00
Rob Wu
6070a37788 chrome.extension -> chrome.runtime for Ubuntu
Addresses issue #3800, where a bug specific to Ubuntu builds of Chromium
break PDF.js
https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1232575
2013-10-13 12:23:31 +02:00
Brendan Dahl
c79acf5861 Fix the B2G viewer and enable bot preview. 2013-10-09 15:04:58 -07:00
Brendan Dahl
6f61a9c83e Merge pull request #3727 from brendandahl/css-zoom2
Use css to initially scale on zoom.
2013-10-08 20:34:22 -07:00
Brendan Dahl
df249da923 Use css to initially scale on zoom. 2013-10-02 09:05:46 -07:00
Jonas Jenwald
8ae2205783 [B2G] Remove the remaining occurrences of -webkit prefixes from the CSS 2013-09-29 20:45:11 +02:00
Yury Delendik
71012c6c6c Properly resolves relative src for the embed tags 2013-09-25 15:18:38 -05:00
Brendan Dahl
d00157d3ab Merge pull request #3587 from debloper/master
Stripping down some CSS prefixes [#868160]
2013-08-26 12:59:32 -07:00
Andreas Bovens
f2ad0f73d7 Renaming of extensions/chrome folder to extensions/chromium, and small tweak to manifest.json description as per #3600 2013-08-21 18:11:35 +02:00
Yury Delendik
0d1c5ece40 Merge pull request #3601 from jmozmoz/unregister
Really call unregister for _pdfRedirectorFactory (fixing issue #3598)
2013-08-21 08:57:49 -07:00
jmozmoz
4cd33bf460 Really call unregister for _pdfRedirectorFactory (fixing issue #3598) 2013-08-21 17:35:50 +02:00
Yury Delendik
bde863a8ac Merge pull request #3573 from Rob--W/crx-view-local-files
[CRX] Fixes to view local files again
2013-08-21 07:37:32 -07:00
Yury Delendik
ba23a9e8f9 Adds initial telemetry probes 2013-08-16 09:53:05 -05:00
Soumya Deb
de52e711f8 Unprefixing CSS as current browsers support 2013-08-16 14:18:37 +05:30
Rob Wu
a4dd4b1789 [CRX] Fixes to view local files again
pdfHandler-local.js references the isPdfDownloadable function from
pdfHandler.js, but the function didn't expect that the responseHeaders
property was absent. Added a check to prevent a runtime error when a
local file is displayed in a frame, and show local PDF files again.

Local files are rendered on the chrome-extension:-protocol. The previous
method of getting the PDF URL was incorrect, this has been fixed as well.
2013-08-14 23:50:51 +02:00
Brendan Dahl
820145da05 Merge pull request #3523 from yurydelendik/csp
Bug 889320 - [CSP] removes inlined styles and scripts, also HTTP headers
2013-08-06 13:10:33 -07:00
Alive Kuo
334c7d4d8f Remove MozTT reference 2013-08-05 10:55:37 +08:00
Yury Delendik
7a43492e5f [CSP] remove HTTP CSP Headers 2013-07-30 21:00:47 -05:00
Brendan Dahl
592a498dd7 Merge pull request #3515 from Rob--W/crx-webnav-strip-hash
[CRX] Strip location fragment from URL in the UrlFilter of the webNavigation API
2013-07-29 10:07:59 -07:00
Rob Wu
4f5e15695a [CRX] Strip #... from URL in filter
Otherwise the PDF Viewer is not rendered for URLs that contain a #-character.
2013-07-27 12:05:03 +02:00
Rob Wu
f67a66c108 Disable Chrome extension for non-GET requests 2013-07-27 11:26:55 +02:00
Brendan Dahl
e015ab0d81 Lower the priority of the notification bar to INFO. 2013-07-22 11:50:03 -07:00
Yury Delendik
e6be2666de Merge pull request #3484 from Rob--W/crx-improved-navigation-detection
[Chrome extension] Improved navigation detection by using webNavigation instead of tabs API.
2013-07-18 06:32:22 -07:00
Rob Wu
ec956d97c9 [CRX] Delay render of viewer if needed...
Sometimes, the viewer did not render for PDF files in an iframe,
because document.readyState not reaching "complete".

Deferring window.stop() until the root element is placed in the
document fixes the problem (typically a few ten milliseconds).
2013-07-17 23:25:31 +02:00
Brendan Dahl
31dab67a34 Merge pull request #3479 from RudyLu/mutlires_1.5
Bug 881152 - hdpi/xhdpi resolution assets and layout for PDF Viewer app
2013-07-17 10:56:34 -07:00
Rob Wu
ec5ef58b84 [CRX] Improved navigation detection.
A user reported that the PDF Viewer is not rendered on Dropbox,
(Chrome on Mac OS X). This is apparently caused by the fact that the
PDF file is loaded in an iframe in such a way that the tabs.onUpdated
event is not triggered.

This patch switches to the webNavigation event API, which improves the
reliability of the navigation detection.

Unfortunately Opera 15 does not support the webNavigation API, so the
old (tabs.onUpdated) method is used (feature-detection is used, so
whenever Opera decides to implement this API, it will profit from it).
2013-07-17 19:04:10 +02:00
Brendan Dahl
78d3b600d4 Merge pull request #3430 from Rob--W/crx-download-pdf
Chrome extension: Do not intercept PDF downloads if it's target is a frame
2013-07-16 16:13:30 -07:00
Rudy Lu
f9706b345b Bug 881152 - hdpi/xhdpi resolution assets and layout for PDF Viewer app
1. Add 1.5x assets
 2. specify the background size of page number section
2013-07-16 20:44:06 +08:00
Brendan Dahl
077f08fa6d Merge pull request #3456 from brendandahl/cap-image-size
Limit image size to 1024*1024 for b2g.
2013-07-11 11:44:51 -07:00
Rob Wu
84ae29c21d Improve suggested filename on download
For all of the following URLs, "file.pdf" will be suggested:
http://.../file.pdf
http://.../download.aspx?file=file.pdf&whatever
http://.../get.pdf?name=file.pdf&whatever
http://.../single-page-app#view=file.pdf
http://.../download.aspx?file=%2Fpath%2Fto%2Ffile.pdf&whatever

Fixes #3161
2013-07-10 21:50:56 +02:00
Brendan Dahl
bcc085ec52 Limit image size to 1024*1024 for b2g. 2013-07-10 09:52:37 -07:00
Yury Delendik
666da95b37 Merge pull request #3450 from brendandahl/fix-mimetype-check
Bug 879161 - Fix pdf.js mimetype check.
2013-07-09 10:01:18 -07:00
Rob Wu
cc04cf5d1f Configurable IMAGE_DIR for annotations
The Chrome extension activates PDF.js by inserting the script tags
in a document whose URL and location origin is identical to the PDF
file.
Because of this, the path './images/' was resolved relatively to the
location of the PDF file instead of the extension.

To fix this, the IMAGE_DIR constant is moved outside the local scope,
to allow extensions/chrome/insertviewer.js to override the value.

Originally, the IMAGE_DIR variable was a global variable, but commit
f8f4b3f45d moved the global variable
to the local scope, causing the extension to malfunction.

Impact: low, the only consequence is that some rarely used images
were not visible.

Trivial test:
At the center of page 2, the annotation icon
(images/annotation-comment.svg) should be visible:
http://linorg.usp.br/CTAN/macros/latex/contrib/pdfcomment/doc/pdfcomment.pdf
2013-07-09 16:24:25 +02:00
Brendan Dahl
7eae88669a Bug 879161 - Fix pdf.js mimetype check. 2013-07-08 11:09:50 -07:00
Rob Wu
be012ed1df [CRX] Don't intercept download of PDF attachment
Fixes #3426
2013-07-01 19:17:05 +02:00
Rob Wu
efcf2aed6e [Chrome extension] Added JSDocs to pdfHandler.js
And a small refactor to reduce the LOC in the onHeadersReceived
callback, to improve the readability of the code.
2013-07-01 19:16:45 +02:00
Yury Delendik
3461d02d05 Enforces trailing spaces 2013-07-01 11:25:46 -05:00
Brendan Dahl
4e831233a4 Merge pull request #3408 from brendandahl/fix-multiresolution
[B2G] UI tweak for multi-resolution devices support on B2G
2013-06-28 10:11:18 -07:00
Brendan Dahl
aafb5d44ae Make the progress bar small and on the top. 2013-06-28 09:59:47 -07:00
Vladan Djeric
0fae231526 Avoid triggering plugin list initialization on startup (Bugzilla 881575) 2013-06-14 19:09:23 -04:00
Brendan Dahl
c2bdd7b295 Simplify getting the pdf url. 2013-06-03 11:40:07 -07:00
Brendan Dahl
24204cc153 Merge pull request #2498 from ehsan/pbcleanup
Simplify ChromeActions.isInPrivateBrowsing to not rely on the global PB service
2013-05-30 13:26:11 -07:00
Rex Lee
3e480f84a6 [B2G] UI tweak for multi-resolution devices support on B2G 2013-05-17 17:52:04 +08:00
Mack Duan
f8f4b3f45d Refactor code for annotations 2013-05-07 14:22:13 -04:00
Yury Delendik
a081c2d0f1 Merge pull request #3124 from mduan/issue3118-1
Update loading bar during onprogress of range requests
2013-05-03 16:51:32 -07:00
Ehsan Akhgari
926c783ee0 Simplify ChromeActions.isInPrivateBrowsing to not rely on the global PB service 2013-04-27 12:25:27 -04:00
Simon Kornblith
f524eaefe2 Remove DOM window URI check
Per discussion in #2937
2013-04-24 21:02:33 -04:00
Mack Duan
1daf9c984e Disable range request if content-length is unknown 2013-04-22 15:49:39 -07:00
Yury Delendik
8ae5d2745c Merge pull request #3131 from mduan/issue3122
Only perform range requests for identity Content-Encoding
2013-04-22 09:20:32 -07:00
Mack Duan
c5084d9e8a Update loading bar during onprogress of range requests 2013-04-22 08:46:58 -07:00
Mack Duan
e0d4b322cf Only perform range requests for identity Content-Encoding 2013-04-22 08:36:54 -07:00
Jakob Miland
d86fe6b301 Save datalistener in memory 2013-04-21 17:14:10 +02:00
Mack Duan
27fe18e8c6 Address brendan's comments 2013-04-18 00:16:53 -07:00
Mack Duan
ef423ef30c Implement progressive loading of PDFs 2013-04-12 16:13:22 -07:00
Rob Wu
57e6238a6e Enable Web Worker again in Chrome extension
Previously, Web Workers were not created because of a security
policy which does not respect relaxed privileges.
2013-04-04 13:40:35 +02:00
Rob Wu
e181a3c902 Highly improved Chrome extension
Full list feature changes in this commit:
- Support for iframes
- Switched to content-type (MIME) detection instead of hard-coding a
  case-sensitive check for the .PDF extension
- The PDF's original URL is visible in the omnibox
- Support for incognito mode

Note: PDF viewer is disabled for the file:// + incognito
combination, because it's currently impossible to get the combination
to work.

See https://github.com/mozilla/pdf.js/pull/3017#issuecomment-15693432
2013-04-04 10:04:13 +02:00
Brendan Dahl
98d5703565 Merge pull request #3036 from yurydelendik/appswitch
Fixes pdf application switching in FF22/23 (redo)
2013-04-03 13:12:53 -07:00
Jonas
ee83df1338 Detect and add fallback if document colors are disabled in Firefox - address comment 2013-04-03 18:49:03 +02:00
Yury Delendik
853e4625bf Fixes pdf application switching in FF22/23 (redo) 2013-04-03 09:23:00 -05:00
Brendan Dahl
0ac55ac879 Merge pull request #3027 from yurydelendik/download-ff17
Workaround for FF17 to be able to download the pdf file
2013-04-02 09:19:05 -07:00
Yury Delendik
c0bb71d2d2 Workaround for FF17 to be able to download the pdf file 2013-04-02 08:07:01 -05:00
Yury Delendik
6e975d431b Fixes PDF application switch in Firefox. 2013-03-29 20:08:08 -05:00
Jonas
f607e89a65 Add another preference check to detect if web fonts are disabled in Firefox 2013-03-28 11:28:00 +01:00
Brendan Dahl
aa2b1f0a24 Merge pull request #2969 from yurydelendik/notificationBox
Fixes notificationBox on Linux
2013-03-19 10:23:59 -07:00
Yury Delendik
8d0494caf3 Fixes notificationBox on Linux 2013-03-19 10:03:00 -05:00
Yury Delendik
dc12d33f4d Adding PlayPreview API support to pdf.js/mozilla-central 2013-03-18 16:12:24 -05:00
Yury Delendik
627d56485e Merge pull request #2724 from yurydelendik/embed-2
Handles embed tags via PlayPreview API
2013-03-16 09:18:10 -07:00
Yury Delendik
61a3b3d035 Handles embed tags via PlayPreview API 2013-03-12 10:16:03 -05:00
Mack Duan
65194afdd4 Fix issue with 'this' binding in PdfStreamConverter 2013-03-11 10:36:25 -07:00
Brendan Dahl
3f4f056665 Add save as support for Firefox. 2013-03-01 09:52:35 -08:00
Aluísio Augusto Silva Gonçalves
d18f8d11bc Add icons to the Chrome extensions 2013-02-16 23:15:01 -03:00
Yury Delendik
e9debac7f9 Adds zoom buttons ids (follow up on #2707) 2013-02-10 12:55:47 -06:00
vyv03354
07491f584f Replace getUserData()/setUserData() with CustomEvents 2013-02-06 23:31:50 +09:00
Yury Delendik
0058d422be Merge pull request #2672 from yurydelendik/lint
Replacing gjslint with jshint; fixing jshint for windows
2013-02-05 12:31:29 -08:00
Yury Delendik
cb68adb80f Replacing gjslint with jshint; fixing jshint for windows 2013-02-05 10:17:49 -06:00
Yury Delendik
f32233eaf9 Merge pull request #2668 from vyv03354/bug834075
Handle the error in case the sender is already unloaded
2013-02-04 16:27:12 -08:00
vyv03354
b605e1e8a9 Handle the error in RequestListener.receive 2013-02-04 22:06:46 +09:00
Yury Delendik
fcc169453b Adds the extensions/* files for jshint 2013-02-02 21:15:43 -06:00
Brendan Dahl
1c4b780176 Use attachment content disposition attachment and filename. 2013-01-30 18:34:22 -05:00
Yury Delendik
dbe633d324 Fix dir attribute for the extension 2013-01-24 17:35:19 -06:00
Brendan Dahl
4b4601d1fb Merge pull request #2481 from yurydelendik/rm-global-pb
Refactors private browsing logic
2012-12-21 09:36:28 -08:00
Yury Delendik
1e7e586da4 Refactors private browsing logic 2012-12-21 11:20:45 -06:00
Brendan Dahl
b42136f8f9 Fix migration for upgraded profiles. 2012-12-19 12:15:55 -08:00
Yury Delendik
5dc87a7fca Detecting if web fonts are disable in Firefox. 2012-11-30 17:08:19 -06:00
Brendan Dahl
fd4e40c82b New GUI for B2G viewer. 2012-11-29 17:01:51 -08:00
Brian R. Bondy
e2baa902c6 Bug 815475 - Fix pfjs when there is no integrated findbar (pdfjs 0.6.39 broke Firefox metro) 2012-11-27 09:46:44 -06:00
Brendan Dahl
babd8df176 Un-inline pdf.js for the extension/mozcentral and remove fetch pdf by content code. 2012-10-29 12:44:18 -07:00