Add pdfBugEnabled to the default preferences
Disable the developer hash parameters by default in PRODUCTION builds of PDF.js
Apply the GRAYSCALE_1BPP optimization when `needsDecode` is set.

The scanned, black-and-white document at
https://bugzilla.mozilla.org/show_bug.cgi?id=835380 doesn't benefit from
the critical GRAYSCALE_1BPP optimization because the optimization is
skipped if `needsDecode` is set.

This change addresses that, and reduces both rendering time and memory
usage for that document by almost 10x.
Merge pull request #5204 from nnethercote/needsDecode

Apply the GRAYSCALE_1BPP optimization when `needsDecode` is set.
Set transformOrigin for text layer in css.

transformOrigin is set to 0% 0% in all cases. This adds extra memory
impact into the dom tree. It also involves the CustomStyles workaround
to determine the correct css rule for the browser.
By setting all vendor and standard variants in css, the rule is applied
without the dom memory overhead and without the minor computation
overhead to set the value.
no need to set textlayer properties which are overwritten in individual styles.
Merge pull request #5209 from CodingFabian/text-layer-transform-origin

Set transformOrigin for text layer in css.
Avoid creating intermediate strings in sanitizeMetrics

This patch avoids creating many intermediate strings, when adding dummy width/lsb entries for glyphs where those are missing.
For the relevant PDF files in our test suite, the average number of intermediate strings are well over 1000.
Don't scale single-char text divs.

This change makes scrolling noticeably smoother on files with many
single-char text divs, such as the one in #1045. The trade-off is that
the visual appearance of text selection in such documents is slightly
worse, because more text divs overlap.

This change also uses `scaleX(N)` instead of `scale(N, 1)`. This might
be marginally more efficient in terms of JS string concatenation.
Merge pull request #5219 from Snuffleupagus/sanitizeMetrics-avoid-intermediate-strings

Avoid creating intermediate strings in sanitizeMetrics
Fix Zoom box resizing when it's hidden when the viewer loads (issue 5224)
Chrome extension: Isolate pageAction logic

Remove pageAction logic from extension router, and put it in a
separate file. The pageAction URL parsing logic has been simplified,
and all pageAction-related files have been moved to a separate directory.
Auto zoom landscape documents to fit their height
Replace magic scale value 0 with UNKNOWN_SCALE
Workaround for TrueType fonts with exotic cmap tables (bug 1057544)
Remove a duplicate PDF file from the test suite

The files issue3115.pdf and issue2337.pdf are identical, the only difference being that the first one is an `eq` test and the second one a `load` test. Hence there is no reason to keep the `load` test, since it's just a subset of the `eq` test.
Fix the placement of the findInput loading indicator in RTL locales

Currently in RTL locales, the loading indicator is placed such that it is in the way when entring a search term. Hence this patch moves it to the other side of the input field to fix this.
Merge pull request #5232 from Rob--W/crx-isolate-pageAction-logic

Chrome extension: Isolate pageAction logic
In src/display/api.js, add documentation for the |progressCallback| parameter in |PDFJS.getDocument|
Merge pull request #5240 from Snuffleupagus/api-progressCallback-doc

In src/display/api.js, add documentation for the |progressCallback| parameter in |PDFJS.getDocument|