Removing unused code
Enforcing JSHint's undef option
Enforcing JSHint's noarg and nonbsp options
Feature detection after downgrading the browser.

If a user downgrades from Chromium 35+ to 34, then the PDF Viewer
extension will not work any more because the extension assumes
that certain features were available based on the cached feature
detection results.

To resolve this problem, all feature detection scripts run again
if the browser was downgraded.
Re-factor parsing of the Linearization dictionary
Avoid creating intermediate strings in the PostScriptLexer
Merge pull request #5023 from Snuffleupagus/linearization-refactor

Re-factor parsing of the Linearization dictionary
Merge pull request #5063 from Snuffleupagus/ps-parser-avoid-intermediate-string-creation

Avoid creating intermediate strings in the PostScriptLexer
Right-size |chars.length| and |type.length| in bidi().

This lets the JS engine resize the array elements buffer immediately,
thus avoiding some intermediate resizings. This can save multiple MiBs
of reallocation in text-heavy files.
Merge pull request #5096 from nnethercote/bidi-length

Right-size |chars.length| and |type.length| in bidi().
Add a reduced test-case for bug 1027533
Merge pull request #5099 from Snuffleupagus/bug-1027533-test

Add a reduced test-case for bug 1027533
Merge pull request #5059 from timvandermeij/unused-code

Removing unused code and enforcing additional JSHint options
Make CMap.map quasi-private.

This makes it easier for the representation to be improved.
Optimize CMap.prototype.forEach().

This change avoids the element stringification caused by for..in for the
vast majority of CMaps.

When loading the PDF from issue #4580, this change reduces peak RSS from ~650
to ~600 MiB, and improves overall speed by ~20%, from 902 ms to 713 ms.  Other
CMap-heavy documents will also see improvements.
Merge pull request #5090 from Rob--W/crx-feature-detect-downgrade

Re-run feature detection after downgrading the Chromium browser.
Add a reduced test-case for issue 4800
Managed preferences for Chrome administrators

Implement support for managed preferences. This feature allows users
(administrators) to easily change the default settings of the PDF Viewer for
all Chrome or Chromium browsers within their organization.

External resources for end users (administrators)

- http://www.chromium.org/administrators/
- http://www.chromium.org/administrators/configuring-policy-for-extensions
- http://www.chromium.org/administrators/windows-quick-start
- http://www.chromium.org/administrators/mac-quick-start
- http://www.chromium.org/administrators/linux-quick-start
- http://www.chromium.org/administrators/policy-templates

Administrators can read one of the previous links to learn more about creating
policies. We want to auto-generate these templates, but there are no public
tools for doing that. It will be added in the future, see:
https://code.google.com/p/chromium/issues/detail?id=389061

Resources for PDF.js/extension developers

- http://cs.chromium.org/file:policy_templates.json
- https://developer.chrome.com/extensions/manifest/storage
Use CSS.supports instead of '..' in ....style

document.documentElement.style is null in some XML documents.
The previous snippet caused the following error:

Uncaught TypeError: Cannot use 'in' operator to search for 'animation' in null

To fix this bug, `'animation' in document.documentElement.style` has been
replaced with `CSS.supports('animation', '9s')`. This method was introduced
in Chromium 28, but it is not necessary to detect whether this method is
supported because the required createShadowRoot method for embeds is not
available in Chromium 32 and earlier.
Merge pull request #5103 from Snuffleupagus/issue-4800-test

Add a reduced test-case for issue 4800