Use bilinear filtering for animated images

Animated images are eating up a lot of CPU cycles particularly on a
device with device scale > 1. One example is the Chromebook pixel.
This change forces low interpolation quality (aka bilinear) for images that are potentially animated.

One change is made to GIFImageDecoder to detect if an image is
non-animated. It checks for all data received, image fully parsed and
only contains one frame. This test is extra strict so as not to break
existing content.

WEBPImageDecoder now also reports cAnimationNone if it is not
animated.

This change does not affect JPEG, PNG and BMP. The rendering quality of
progressively decoded images is unchanged.

BUG=347767

Review URL: https://codereview.chromium.org/178193029

git-svn-id: svn://svn.chromium.org/blink/trunk@168759 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Should not repaint if a CSS property change can be composited

This patch fixes a case that when a RenderObject has StyleDiffLayout,
its composited descendants shouldn't repaint if the style changes can be
composited (and don't change the layout of them).

The optimized CSS properties are clip, position, z-index,
opacity, transform, and filter.

BUG=338926

Review URL: https://codereview.chromium.org/182383019

git-svn-id: svn://svn.chromium.org/blink/trunk@168760 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Changing transform of a layer should update its container's layout overflow

Transformed elements are very much like a relative positioned element.
When transform changes, it should request a positioned movement layout
just like StyleDifferenceLayoutPositionedMovementOnly does.

BUG=338698
R=jchaffraix@chromium.org

Review URL: https://codereview.chromium.org/171023005

git-svn-id: svn://svn.chromium.org/blink/trunk@168761 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix MediaSource LayoutTests so they can be used with implementations that don't support WebM.

This patch removes the WebM bias of many of the MediaSource tests. Now
the tests should be able to pass on implementations that only support
MP4. This is to facilitate submitting the MediaSource test suite to the
W3C web-platform-test project.

BUG=350209

Review URL: https://codereview.chromium.org/189673002

git-svn-id: svn://svn.chromium.org/blink/trunk@168762 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Handle odd data lengths in UTF-16 decoder

The UTF-16 decoder was silently dropping ignoring odd byte lengths.
Per the Encoding standard, it should emit U+FFFD (replacement char),
and set the error flag for interested callers.

This makes TextDecoder match the behavior in Firefox.

BUG=277035

Review URL: https://codereview.chromium.org/23532016

git-svn-id: svn://svn.chromium.org/blink/trunk@168763 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Support font-variant-ligatures: (no-)contextual.

BUG=348659

Review URL: https://codereview.chromium.org/189163004

git-svn-id: svn://svn.chromium.org/blink/trunk@168764 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Extract font weight to traits mask conversion into utility functions

Extract the logic for converting between a font weight and a traits
mask into utility functions and use those instead of manipulating the
masks directly. This is the first step towards changing how we store
weights in the mask.

R=eseidel@chromium.org
BUG=

Review URL: https://codereview.chromium.org/189713003

git-svn-id: svn://svn.chromium.org/blink/trunk@168765 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Moved PinchViewport from Source/web to Souce/core/frame.

BUG=349941

Review URL: https://codereview.chromium.org/189823002

git-svn-id: svn://svn.chromium.org/blink/trunk@168766 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Measure DOMStringList::contains() usage

There's a desire to remove DOMStringList from the platform, in favor
of just returning JS Array objects, but Array doesn't have a
contains() method. Measure the usage, to see if this is feasible.

BUG=350146
R=abarth

Review URL: https://codereview.chromium.org/189473002

git-svn-id: svn://svn.chromium.org/blink/trunk@168768 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Turn SVGTextMetricsBuilder into a namespace

Said class does not carry any state, so turn it into a namespace, marking
previous methods static as appropriate and modify callers.

Review URL: https://codereview.chromium.org/191053002

git-svn-id: svn://svn.chromium.org/blink/trunk@168769 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Split out non-loader related callbacks into FrameClient.

When the frame tree was moved into Source/web, the bridge functions were
placed on FrameLoaderClient since that was the simplest thing to do at
the time. It no longer makes sense to keep them there, since
RemoteFrames will not have a FrameLoaderClient but they still need to be
able to access this information.

BUG=346764

Review URL: https://codereview.chromium.org/189633002

git-svn-id: svn://svn.chromium.org/blink/trunk@168770 bbb929c8-8fbe-4397-9dbb-9b2b20218538
WebGL TexParameterf and GetTexParameterf needs to handle float param correctly

Right now the param is always cast to int.

BUG=348810
TEST=ToT webgl conformance conformance/extensions/ext-texture-filter-anisotropic.html
R=kbr@chromium.org,bajones@chromium.org

Review URL: https://codereview.chromium.org/186733013

git-svn-id: svn://svn.chromium.org/blink/trunk@168771 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use isHTML*Element() helpers more in the accessibility code

Use isHTML*Element() helpers more in the accessibility code for clarity.

This CL also updates the isHTML*Element() helpers to accept a null pointer
argument instead of asserting. This seems a bit more convenient.

R=esprehn, adamk
BUG=346095

Review URL: https://codereview.chromium.org/189963007

git-svn-id: svn://svn.chromium.org/blink/trunk@168772 bbb929c8-8fbe-4397-9dbb-9b2b20218538