Commit Graph

2918 Commits

Author SHA1 Message Date
Ophir LOJKINE
4a66eccedc Rewrite Lexer_getNumber.
Now, it computes the numbers with only basic arithmetic operations, without first creating a string and then calling parseFloat.
The new function doesn't behave exactly the same as the old one.
In particular, the old behaviour was that when there was a number immediatly followed by an 'E', the 'E' was consumed. Now it's not. It allows for "glued" numbers and operators.
Also, the new function is faster and consumes less memory.
2014-02-01 21:46:09 +01:00
Brendan Dahl
54f6291cc9 Merge pull request #4207 from yurydelendik/function-split
Basic function.js split
2014-01-31 09:37:59 -08:00
Rob Wu
eaf7daf7db [CRX] Pass expected length of stream to viewer
To get a progress bar for POST/FTP requests in Chromium.
2014-01-30 23:03:15 +01:00
Brendan Dahl
1e4d35c3a0 Merge pull request #4192 from yurydelendik/shading-r
Implements shading types 4-7
2014-01-30 13:36:01 -08:00
Yury Delendik
acb33b3e7d Merge pull request #4213 from nnethercote/strings
Create less garbage while parsing
2014-01-30 04:41:53 -08:00
Nicholas Nethercote
164d7a6e15 Don't create a string when lexing all-digit integers. 2014-01-29 18:22:09 -08:00
Nicholas Nethercote
b64cca0bef When lexing numbers, look for digits first. 2014-01-29 18:20:53 -08:00
Nicholas Nethercote
c1ef7e4d63 Use Array.join instead of += to build up strings in the Lexer. 2014-01-29 18:19:58 -08:00
Brendan Dahl
cda181f061 Merge pull request #4187 from Rob--W/issue-4183
Use forEach instead of for-in (was: Replace [] with {} in core/cmap)
2014-01-29 10:54:49 -08:00
Yury Delendik
561683d2e9 Dynamically determines how to split patch into triangles 2014-01-29 10:39:06 -06:00
Yury Delendik
c5a804c43a Merge pull request #4181 from nnethercote/compact-images
Reduce memory consumption of simple black and white images.
2014-01-28 15:53:46 -08:00
Nicholas Nethercote
a966909754 Reduce memory consumption of simple black and white images. 2014-01-28 14:36:47 -08:00
Brendan Dahl
c2e31cd1ef Merge pull request #4205 from yurydelendik/blob-open-file
Using blob URL for open file
2014-01-28 14:15:35 -08:00
Brendan Dahl
0e000392ae Merge pull request #4179 from yurydelendik/dataLoaded
Fixes PDFDocumentProxy.getDataLoaded API name (and refactoring)
2014-01-28 13:56:01 -08:00
Yury Delendik
e5e9c6e243 Fixes PDFDocumentProxy.getDownloadInfo API name (and refactoring) 2014-01-28 15:13:47 -06:00
Yury Delendik
a583c319a1 Implements shading types 4-7 2014-01-27 20:35:51 -06:00
Yury Delendik
e9327050c3 Basic function.js split 2014-01-27 20:29:47 -06:00
Yury Delendik
18515b8668 Using blob URL for open file 2014-01-27 13:11:02 -06:00
Yury Delendik
bf432a37bb Refactors shared/pattern.js into core/ and display/ 2014-01-25 12:18:22 -06:00
Rob Wu
2779bab03e Use [].forEach instead of for-..-in in evaluator
To prevent errors whenever the array's prototype is extended.
 (cmap is an array)
2014-01-25 18:04:33 +01:00
Tim van der Meij
3c6ac0dad5 Merge pull request #4161 from yurydelendik/smask
SMask emulation
2014-01-23 11:49:19 -08:00
Yury Delendik
4054b0c385 SMask emulation 2014-01-23 11:13:32 -06:00
Brendan Dahl
f18e3e9e0f Merge pull request #4144 from yurydelendik/api-doc
Misc fixes for the API docs
2014-01-21 11:31:16 -08:00
Brendan Dahl
f7e354dfe5 Merge pull request #4139 from nnethercote/RGBA
Write color and opacity values directly to the final RGBA array when possible, so as to avoid allocating unnecessary memory.
2014-01-21 11:28:52 -08:00
Jonas Jenwald
575bdd8863 Fix loading of fonts with invalid encoding name entry (bug 859204 and 878112) 2014-01-21 02:03:28 +01:00
Nicholas Nethercote
0685214a77 Don't create the RGB buffer for images that don't need resizing. 2014-01-19 14:21:36 -08:00
Yury Delendik
96fff4cc74 Refactors getTextContent return value 2014-01-17 13:26:00 -06:00
Yury Delendik
09f8f951c8 Extracts evaluator preprocessor and refactor text extraction 2014-01-17 07:16:52 -06:00
Nicholas Nethercote
c044652320 Remove unneeded srcOffset arguments from createRgbBuffer. 2014-01-16 20:15:37 -08:00
Nicholas Nethercote
3de5d6ad0c Don't create the opacity buffer for images that lack a mask. 2014-01-16 20:15:37 -08:00
Brendan Dahl
455265474a Merge pull request #4093 from yurydelendik/issue4068
Fixes fips regression from #4068
2014-01-16 13:45:10 -08:00
Brendan Dahl
ff66c23e6e Merge pull request #4089 from yurydelendik/issue3725
Takes ascent/descent in account in the text layer
2014-01-16 13:12:04 -08:00
Brendan Dahl
c57fdcceed Merge pull request #4125 from yurydelendik/issue4111
Fixes and refactors log functionality
2014-01-16 10:54:09 -08:00
Brendan Dahl
3b829f4a45 Merge pull request #4103 from yurydelendik/issue3977
Introduces disableObjectCreateURL
2014-01-16 10:51:22 -08:00
Yury Delendik
754e000907 Fixes and refactors log functionality 2014-01-15 15:28:31 -06:00
Yury Delendik
ab4f27b272 Merge pull request #4124 from tkristiansen/with-credentials
Allow setting xhr.withCredentials
2014-01-15 11:42:41 -08:00
terje.kristiansen
08737375f8 Added withCredentials parameter and passing it to xhr requests 2014-01-15 10:12:40 +01:00
Nicholas Nethercote
3f533a1cb0 Use a more compact typed array to pass the image mask from the worker to the main thread. 2014-01-13 20:09:05 -06:00
Yury Delendik
a8c11ad1e5 Introduces disableObjectCreateURL 2014-01-10 16:30:41 -06:00
Yury Delendik
96eaa15578 Fixes fips regression from #4068 2014-01-08 16:33:22 -06:00
Brendan Dahl
508b00a34f Merge pull request #4071 from yurydelendik/bug921760
Adds glyph mapping for standard fonts
2014-01-08 12:36:54 -08:00
Yury Delendik
0131101275 Takes ascent/descent in account in the text layer 2014-01-08 13:50:52 -06:00
Brendan Dahl
bac4133f21 Merge pull request #4068 from yurydelendik/bug864847
Adjusts heuristic for disabling Symbol encoding
2014-01-08 10:48:18 -08:00
Brendan Dahl
2e7c71c75e Merge pull request #4011 from Rob--W/issue-3885
Set eof to true at the end of a FlateStream
2014-01-07 10:52:37 -08:00
Yury Delendik
5bf3e44e30 Introduces LegacyPromise; polyfills DOM Promise 2014-01-03 18:17:05 -06:00
Yury Delendik
51b958dc2b Adds glyph mapping for standard fonts 2014-01-03 14:17:50 -06:00
Brendan Dahl
2228343f77 Only trigger warning bar on certain unsupported features. 2014-01-03 09:34:13 -08:00
Yury Delendik
5973d40afe Adjusts heuristic for disabling Symbol encoding 2014-01-02 18:44:11 -06:00
Yury Delendik
c389451a5b Merge pull request #4045 from brendandahl/verbosity
Add verbosity as an api setting.
2014-01-02 12:25:00 -08:00
Jonas Jenwald
e6c805490b [JBIG2] Fix getting decodeParms when it's an array 2013-12-19 20:23:58 +01:00
Rob Wu
43847d7ff8 Set eof to true at the end of a FlateStream
At the initialization of `Lexer_getObj` (in `parser.js`), there's a loop
that skips whitespace and breaks out whenever EOF is encountered.
(https://github.com/mozilla/pdf.js/blob/88ec2bd1a/src/core/parser.js#L586-L599)

Whenever the current character is not a whitespace character,
`ch = this.nextChar();` is used to find the next character
(using `return this.currentChar = this.stream.getByte())`).

The aforementioned `getByte` method retrieves the next byte using
(https://github.com/mozilla/pdf.js/blob/88ec2bd1a/src/core/stream.js#L122-L128)

      var pos = this.pos;
      while (this.bufferLength <= pos) {
        if (this.eof)
          return -1;
        this.readBlock();
      }
      return this.buffer[this.pos++];

This piece of code relies on this.eof to detect whether the last character
has been read. When the stream is a `FlateStream`, and the end of the stream
has been reached, then **`this.eof` is not set to `true`**, because this check
is done inside a loop that does not occur when the read block size is zero:
(https://github.com/mozilla/pdf.js/blob/88ec2bd1ac/src/core/stream.js#L511-L517)

      for (var n = bufferLength; n < end; ++n) {
        if (typeof (b = bytes[bytesPos++]) == 'undefined') {
          this.eof = true;
          break;
        }
        buffer[n] = b;
      }

This commit fixes the issue by setting this.eof to true whenever the loop is not
going to run (i.e. when bufferLength === end, i.e. blockLen === 0).
2013-12-19 18:37:39 +01:00
Brendan Dahl
53549411b4 Add verbosity as an api setting. 2013-12-18 13:39:03 -08:00
Jonas Jenwald
b1c5ef9ccc Fix loading of fonts that are not referenced by an object identifier 2013-12-17 00:19:31 +01:00
Brendan Dahl
2af3e25651 Merge pull request #3954 from yurydelendik/invalid-start
Index objects if Prev xref was not found
2013-11-25 10:12:43 -08:00
Brendan Dahl
1c0ed17d8f Merge pull request #3964 from yurydelendik/issue-3962
Fixes chunks grouping
2013-11-25 09:28:25 -08:00
Yury Delendik
90956ce3e0 Takes chunk id == 0 into account during grouping 2013-11-23 12:04:22 -06:00
Yury Delendik
98ebf57144 Index objects if Prev xref was not found 2013-11-22 08:49:36 -06:00
Yury Delendik
419e2e15e5 Merge pull request #3940 from brendandahl/operator-cleanup
Combine if/else block with switch for getOperatorList.
2013-11-22 06:14:57 -08:00
Yury Delendik
4966bf3fc8 Limits U and O entries size 2013-11-21 14:49:39 -06: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
Brendan Dahl
a4f329aa38 Combine if/else block with switch for getOperatorList. 2013-11-18 16:50:58 -08:00
Brendan Dahl
29ee96cc67 Merge pull request #3927 from Snuffleupagus/issue-3925
Prevent updating the current transformation matrix when the stateStack is empty
2013-11-18 14:04:56 -08:00
Brendan Dahl
ff64b50582 Merge pull request #3931 from yurydelendik/bug900822
Allocates bigger hashData buffer
2013-11-18 13:09:40 -08:00
Brendan Dahl
3132c9e7e9 Merge pull request #3911 from yurydelendik/mem-redux2
Cleaning up fonts when viewer is idle for some time
2013-11-18 13:01:23 -08: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
Yury Delendik
e712c4136a Cleaning up fonts when viewer is idle for some time 2013-11-18 13:01:54 -06:00
Yury Delendik
2b63cd7e62 Allocates bigger hashData buffer 2013-11-18 07:48:06 -06:00
Jonas Jenwald
564ae6e4f7 Prevent updating the current transformation matrix when the stateStack is empty 2013-11-17 01:54:14 +01:00
Yury Delendik
c8af2565f1 Uses blob URL instead of data when possible 2013-11-14 15:21:42 -08:00
Yury Delendik
4ce6cb8b0f Uses postMessage transfers 2013-11-14 15:21:42 -08:00
Yury Delendik
011ed72383 Merge pull request #3917 from yurydelendik/issue-3857
Fixes gidStart for CID fonts
2013-11-14 10:45:32 -08:00
Brendan Dahl
7bdee4069c Merge pull request #3848 from brendandahl/page-refs
Don't traverse all pages to get a single page.
2013-11-13 17:02:11 -08:00
Yury Delendik
9a633f26a0 Fixes gidStart for CID fonts 2013-11-13 18:27:52 -06:00
Brendan Dahl
c2d65fc4ab Don't traverse all pages to get a single page. 2013-11-13 15:27:46 -08:00
Tim van der Meij
c320a0c2a5 Merge pull request #3887 from yurydelendik/bug903856
Fixing glyphs with invalid flags
2013-11-13 14:11:24 -08:00
Yury Delendik
82a9a13e5f Fixes glyphs with invalid flags 2013-11-13 13:45:59 -06:00
Brendan Dahl
f4942b11f8 Reduce the memory usage of the operator list. 2013-11-13 11:43:38 -08:00
Brendan Dahl
bd6871a1cd Merge pull request #3884 from yurydelendik/bug868745
Resizes loca table when needed
2013-11-11 14:59:18 -08:00
Brendan Dahl
558b722757 Merge pull request #3883 from yurydelendik/bug904941
Fixes invalid maxZones value
2013-11-11 09:57:38 -08:00
Tim van der Meij
6be8a2bd83 Merge pull request #3882 from yurydelendik/issue3438
Ignoring glyphs without points
2013-11-08 14:21:17 -08:00
Yury Delendik
57e2a667ee Fixes cvt table length; removes cvt when hints invalid 2013-11-08 11:38:36 -06:00
Yury Delendik
d4167b62c8 Merge pull request #3890 from sriram-dev/3205-word-spacing
correct word spacing
2013-11-08 09:18:00 -08:00
Brendan Dahl
e076eeb5bd Merge pull request #3877 from yurydelendik/issue1171
Skipping empty font tables
2013-11-08 09:12:04 -08:00
Sriram
8dad6d6e8a Fix word spacing in Type 0 fonts
Fix word spacing in Type 0 font

correct word spacing

correct word spacing in type 0 font

fix word spacing
2013-11-08 20:48:30 +05:30
Brendan Dahl
18d8557abd Merge pull request #3875 from yurydelendik/issue3025
Removes duplicate entries after reading cmap table
2013-11-07 12:29:25 -08:00
Brendan Dahl
90fb92d1fc Merge pull request #3869 from yurydelendik/symbolenc
Renames Symbol encoding name.
2013-11-06 11:15:08 -08:00
Brendan Dahl
c8e021dfa6 Merge pull request #3867 from yurydelendik/pfb
Workaround for some bad Type1 data
2013-11-06 11:14:42 -08:00
Yury Delendik
175341cb0d Resizes loca table when needed 2013-11-03 07:29:29 -06:00
Yury Delendik
cf55d69c38 Fixes invalid maxZones value 2013-11-02 18:16:24 -05:00
Yury Delendik
93076ced03 Ignoring glyphs without points 2013-11-02 17:07:13 -05:00
Yury Delendik
bbda42110b Skipping empty font tables 2013-11-01 19:05:17 -05:00
Yury Delendik
bb2570c9c1 Removes duplicate entries after reading cmap table 2013-11-01 16:30:28 -05:00
Yury Delendik
cd44093891 Workaround for some bad Type1 data 2013-11-01 13:58:33 -05:00
Yury Delendik
95d9107d8b Fixes reading Type1 FontBBox data for usWin values 2013-11-01 11:33:30 -05:00
Yury Delendik
104d89856d Renames Symbol encoding name. 2013-10-31 10:33:23 -05:00
Yury Delendik
83e17c2953 Avoiding 'pc is undefined' failures 2013-10-30 11:14:13 -05:00
fkaelberer
f6841d1720 extract code to own method for faster JPX decoding 2013-10-16 09:47:03 +02:00
Jakob Miland
c341dd57e5 Simplify get fingerprint() method 2013-10-03 10:09:06 +02:00
Yury Delendik
e97e0032df Merge pull request #3750 from brendandahl/cidfonttype0c
Proper glyph selection for CIDFontType0C fonts.
2013-10-02 15:49:52 -07:00
Brendan Dahl
f79c182314 Proper glyph selection for CIDFontType0C fonts. 2013-09-30 21:40:28 -07:00
Sriram
f6eee819e2 Transposed feature for text decoding in jbig2 2013-09-26 20:49:02 +02:00
Yury Delendik
1c7f1cee00 Merge pull request #3674 from brendandahl/cmap-squash
Read multi-byte character codes based on codespace ranges.
2013-09-25 18:04:49 -07:00
biggert
fb957f5c6e Prevent undefined error on null object when calling .destroy on a
document initialized with LocalPdfManager.

Per @brendandahl's recommendation, moved the terminate function out of worker
and into the PdfManager
2013-09-25 16:25:41 -05:00
Brendan Dahl
f32e65b19f Read multi-byte character codes based on codespace ranges. 2013-09-25 10:32:04 -07:00
Manas
de179e3d9b Trying to fix #3611 2013-09-24 22:54:27 +05:30
Srishti
3808d02a53 implementing transform matrix to getTextContent 2013-09-20 06:37:08 +05:30
Yury Delendik
0fc8bac7c0 Merge pull request #3570 from brendandahl/encoding-wip
Fix handling of multiply-encoded glyphs.
2013-08-28 13:51:39 -07:00
biggert
88f1506ef8 Added support for JBIG2 extension segment 2013-08-26 15:39:30 -05:00
Brendan Dahl
547a7aa862 Merge pull request #3615 from yurydelendik/stopindexing
Stops objects indexing at the end
2013-08-26 10:33:54 -07:00
Yury Delendik
1de48f1805 Merge pull request #3595 from brendandahl/fix-clip
Move the creation of canvas path fonts to the worker.
2013-08-26 06:48:05 -07:00
Yury Delendik
1f232ded90 Stops objects indexing at the end 2013-08-23 13:03:30 -05:00
Brendan Dahl
60586e3101 Ensure there's data to build path. 2013-08-22 12:55:43 -07:00
Brendan Dahl
db591769a4 Fix handling of multiply-encoded glyphs. 2013-08-22 10:12:16 -07:00
Brendan Dahl
bb2529de03 Move the creation of canvas path fonts to the worker. 2013-08-19 16:33:20 -07:00
Brendan Dahl
695e92cc00 Merge pull request #3532 from yurydelendik/telem-1
Adds initial telemetry probes
2013-08-19 12:34:27 -07:00
Yury Delendik
ba23a9e8f9 Adds initial telemetry probes 2013-08-16 09:53:05 -05:00
Jonas
628f4aaf81 Enable loading of PDFs with undefined or missing stream lengths 2013-08-16 16:32:40 +02:00
Brendan Dahl
5ecce4996b Split files into worker and main thread pieces. 2013-08-12 10:48:06 -07:00