Commit Graph

5751 Commits

Author SHA1 Message Date
Rob Wu
d5e16ab85c Viewer: Remove inline events; set height on error
Move inline event handlers to viewer.js to comply with a
Content-Security-Policy where directive "unsafe-inline" is not set.

Change textarea.rows = <number of newlines> to
textarea.style.height = textarea.scrollHeight.
(The former is extremely unreliable; consider long lines...)
2013-07-18 10:38:44 +02:00
Brendan Dahl
5fa609584e Merge pull request #3449 from Snuffleupagus/history-remove-beforeunload
[Browsing history] Remove 'beforeunload' to enable caching and prevent duplicate entries
2013-07-17 16:03:12 -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
fde86cde54 Merge pull request #3473 from Rob--W/chrome-printing
Fix printing behaviour in Chrome
2013-07-17 11:04:49 -07: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
Brendan Dahl
e9f5336cc9 Add atob polyfill. Remove uneeded data uri polyfill. 2013-07-17 10:26:12 -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
Brendan Dahl
7a1049216c Merge pull request #3440 from peerlibrary/syncing-order
Syncing order of JS files in viewer.html and make.js. See #3414
2013-07-16 16:10:25 -07:00
Brendan Dahl
6b9c272590 Merge pull request #3457 from yurydelendik/remove-prefixes
Removes foreign for Firefox CSS prefixes
2013-07-16 16:08:05 -07:00
Brendan Dahl
a5cc8d1ec3 Merge pull request #3464 from yurydelendik/bug889327
Fixes ASCIIHex decoding
2013-07-16 10:32:35 -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
330f6212ba Merge pull request #3341 from Snuffleupagus/navigateTo-fix
Tweak the behaviour of navigateTo during document load
2013-07-15 16:16:46 -07:00
Brendan Dahl
f04dbcaf2e Use dummy font for testing when pdf fonts are loaded. 2013-07-15 15:37:03 -07:00
Rob Wu
97efe7886e Disable Google Translate on viewer in Chrome.
test/pdfs/yo01.pdf triggered "This page is in Japanese. Would you like
to translate it?" info bar in Chrome.
2013-07-16 00:13:05 +02:00
Rob Wu
066dffde3c Fix printing behaviour in Chrome
Two major issues:
1. Border/shadow around every page. Removed by adding "border:none".
2. Added "overflow:visible" (overrides "overflow:auto") in #viewContainer.
   This solves two problems:
   - It prevents scrollbars from appearing.
   - Every "page" is automatically resized to fit on a printed page,
     just like the Firefox.
To see what's wrong, here's a picture of how PDF.js rendered the pdf in
 Chrome (using "Print to PDF" feature of Chrome):
 https://robwu.nl/pdfjs/pdfjs-print-with-chromium-28.pdf

Successfully tested with Chrome 28 and Firefox 22.

Solves #3445
2013-07-15 16:23:43 +02:00
Brendan Dahl
6c6719efeb Merge pull request #3436 from yurydelendik/jpeg-cmyk
Removes browser decoding optimization for JPEG CMYK
2013-07-12 17:54:12 -07:00
Yury Delendik
b617f74be6 Merge pull request #3469 from brendandahl/enable-rr-in-master
Enable range requests in master mode.
2013-07-12 17:11:53 -07:00
Brendan Dahl
e697c598c2 Enable range requests in master mode. 2013-07-12 16:40:19 -07:00
Yury Delendik
dfaf22f564 Merge pull request #3468 from yurydelendik/download-refactor
Restoring PR 3455 functionality
2013-07-12 15:04:26 -07:00
Yury Delendik
81c8730e4b Restoring PR 3455 functionality 2013-07-12 17:00:43 -05:00
Brendan Dahl
4982290170 Merge pull request #3467 from yurydelendik/download-refactor
Refactor download logic
2013-07-12 14:42:24 -07:00
Yury Delendik
28778e6c1b Rejects incorrect url in download manager 2013-07-12 13:38:49 -05:00
Yury Delendik
ef658bf5f1 Refactoring download button logic 2013-07-12 13:14:13 -05: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
Yury Delendik
8ee9db45ef Fixes ASCIIHex decoding 2013-07-11 13:33:29 -05:00
Brendan Dahl
5dcc4cd1b4 Merge pull request #3424 from yurydelendik/lookChar
lookChar refactoring
2013-07-11 09:08:59 -07:00
Yury Delendik
a50501c43a Merge pull request #3459 from Rob--W/define-URL
Always declare window.URL even if undefined
2013-07-10 17:37:26 -07:00
Rob Wu
b076cd1d6a Always declare window.URL even if undefined
Otherwise it breaks feature detection,
"ReferenceError: Can't find variabl: URL" in Safari 5.1
2013-07-10 23:34:10 +02:00
Yury Delendik
9ac2584852 Merge pull request #3437 from Rob--W/download-from-cache
Download PDF from cache for non-Firefox add-on
2013-07-10 14:20:20 -07:00
Rob Wu
e583070deb Download PDF from cache for IE10 / IE11
IE9 falls back to downloading from the original URL.
2013-07-10 22:07:23 +02: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
2ab481a1da Removes foreign for Firefox CSS prefixes 2013-07-09 17:23:20 -05:00
Rob Wu
69a64d45bc Put URL = URL || webkitURL in compatibility.js
Declares the URL variable globally. If the feature is not
supported, the variable will still be declared, but have the
"undefined" value.

Supported by:

- Firefox 4
  Firefox 21 in Web worker

- Chrome 8  (prefixed as webkitURL), 23+ unprefixed
  Chrome 10 (prefixed as webkitURL) in Web Worker, 23+ unprefixed

- Opera 15
  Opera 15 in Web Worker

- Internet Explorer 10
  Internet Explorer 11 in Web Worker

- Safari 6 (prefixed as webkitURL)
  Safari 6 (prefixed as webkitURL) in Web Worker
2013-07-09 22:54:12 +02:00
Rob Wu
4ffc408512 Download PDF from cache for non-Firefox add-on
This feature relies on URL.createObjectURL, which is supported by
- Firefox 4
- Chrome 8
- Opera 15
- Internet Explorer 10

If the feature is missing, it falls back to downloading from the server.

The environment-specific code are put in ifdef's. Two methods are
defined:
- noData
  This function is used as a fallback in case of failure, it triggers
  a download directly from the server.
- triggerSaveAs(String url, optional String blob)
  This function attempts to show a Save As dialog for a given URL.
  It attempts to use the a.download attribute, if available, and
  falls back to window.open(<url>, '_parent') if unavailable.

See also http://caniuse.com/download
2013-07-09 22:54:12 +02:00
Brendan Dahl
d71948038f Merge pull request #3439 from yurydelendik/smask-preblend
Takes SMask's preblending in account
2013-07-09 13:26:44 -07:00
Brendan Dahl
c17f90e1aa Merge pull request #3406 from Snuffleupagus/remove-old-moz-prefixes
Remove old -moz prefixed rules from viewer.css
2013-07-09 13:13:20 -07:00
Yury Delendik
e67b9a7f17 Merge pull request #3441 from brendandahl/less-cache
Remove caching of stream data and fix object loader for streams.
2013-07-09 13:01:54 -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
Yury Delendik
160403197b Merge pull request #3447 from Rob--W/chrome-arrow-keys-3443
Allow scrolling by keyboard in Chrome/Opera
2013-07-09 07:44:01 -07:00
Yury Delendik
940415b32c Merge pull request #3454 from Rob--W/configurable-images-directory
Configurable IMAGE_DIR for annotations to get svg images to show up in Chromium extension
2013-07-09 07:37:58 -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
b0f78609b3 Merge pull request #3386 from yurydelendik/ttf-refactor
Refactoring of TrueType code and implementation of OpenType font repairing
2013-07-08 22:11:31 -07:00
Yury Delendik
19e8f2f059 lookChar refactoring 2013-07-08 21:25:55 -05:00
Yury Delendik
48146745b9 Tests for OpenType fonts 2013-07-08 21:11:07 -05:00
Brendan Dahl
7eae88669a Bug 879161 - Fix pdf.js mimetype check. 2013-07-08 11:09:50 -07:00
Jonas
db1d8cf76e [Browsing history] Remove 'beforeunload' to enable caching and prevent duplicate entries 2013-07-08 16:16:43 +02:00
Rob Wu
4a2eefe1b6 Allow scrolling by keyboard in Chrome/Opera
Set "tabindex" attribute to allow focus;
Added "outline: none" to prevent focus ring from appearing.

Fixes #3443
2013-07-06 15:37:03 +02:00
Brendan Dahl
09aafa830b Remove caching of stream data and fix object loader for streams. 2013-07-03 14:29:38 -07:00