Improve the performance of drawImage from WebGL to 2D canvas by adding a TextureBacked RenderingMode for ImageBuffer.

Instead of drawing a normal SkBitmap which was readback from WebGL, it would be much faster to draw a texture based SkBitmap to HW accelerated 2D canvas. This patch adds backing texture to ImageBuffer for WebGL to hold the rendering results and passes the texture based SkBitmap for drawing. 

For third_party/WebKit/PerformanceTests/Canvas/draw-dynamic-webgl-to-hw-accelerated-canvas-2d.html, this CL can have about 10x ~ 20x performance speedup for Windows, Mac, Linux and Android.

It is verified using Blink Layout tests, WebGL conformance test and some performance tests under third_party/WebKit/Performance/Canvas.

BUG=233205

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: Overloaded method arguments: [StrictTypeChecking] DOMString

Adds support for [StrictTypeChecking] DOMString arguments on overloaded
methods.
Also refactors the existing [StrictTypeChecking] code to clearly
distinguish [StrictTypeChecking] on method vs. on argument.
(Previously conflated b/c only used in one context.)

Also removes nesting of the individual argument check,
which makes the flow more linear
(each level of nesting in the expression gets a separate function).

BUG=239771
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Handle min-height / max-height on the grid element

This was already working so removed a FIXME
about it and added some testing.

BUG=79180

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161876 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Process host rules in a post-processing step.

This is another step in making it so that RuleSets
don't need to know about scoping nodes or StyleResolvers.

BUG=311669

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Web Animations CSS: Retire AnimatableLength's UnitTypeInvalid

BUG=257591

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161878 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove crash expectations for line-height animation

These tests are no longer crashing in debug:
animations/interpolation/line-height-interpolation.html
virtual/threaded/animations/interpolation/line-height-interpolation.html

Flakiness dashboard:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=line-height-interpolation.html

BUG=303430

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Update the accessibility tree when a modal dialog is opened/closed.

This patch is an improved approach from r161595. It turns out it's not
sufficient to traverse the new AT tree calling
notifyIfIgnoreValueChanged on each node, since the browser-side can hold
on to descendents that have been pruned out of the tree and never get a
child changed notification for them.

This patch blows away the entire tree and forces it to rebuild when a
modal dialog is opened/closed. It's a big hammer but seems to be the
most foolproof approach. We considered approaches like traversing
m_objects calling notifyIfIgnoreValueChanged on each, but it's
conceivable that m_objects isn't up-to-date. Since a modal dialog likely
causes a massive change to the tree, starting over entirely isn't so
inefficient.

The test for this patch is Chrome-side:
https://codereview.chromium.org/64273003/

This patch causes inert-node-is-hidden.html to fail, because
AccessibilityController doesn't expect the AX cache to get destroyed
and recreated. Since the DumpAccessibilityTree tests on Chrome-side
cover the behavior and the plan is to have only DumpAccessibilityTree
tests in the future, I'm removing inert-node-is-hidden.html.

BUG=304779

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove CSSParserMode::needsSiteSpecificQuirks

The boolean is unused after https://codereview.chromium.org/63383003
but this removal was forgotten in the original change.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161881 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove superfluous expected text results for keyframe-multiple-timing-functions-transform.html

R=dstockwell

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: Overloaded methods: nullable interface types

This adds the minor existing type-checking for nullable interface type
to overloaded methods.
Turns out there are no nullable arrays in actual IDLs,
so I haven't implemented those, and I've removed the test case.

It also does:
* some other cleaning up of overloading test cases;
* adds a FIXME comment to the Python parser about nullable arrays
  and arrays of nullables (Foo[]? and Foo?[]).
  (Noticed when trying tests.)
  Neither is used, but we don't handle these or other complex types
  correctly (sequence of arrays etc.), as they make the code much
  more complicated and are not used, but are legal Web IDL.

BUG=239771
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make ActiveDOMObject::setPendingActivity() and unsetPendingActivity() protected.

With this, we can safely override hasPendingActivity() without worrying about
other code calling setPendingActivity() and unsetPendingActivity() expecting
control of hasPendingActivity()'s return value.

BUG=none

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161885 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move bindings/scripts/IDLAttributes.txt => bindings/IDLExtendedAttributes.txt

IDLAttributes.txt is not a script (it's a configuration file), so it doesn't
belong in scripts. Also renamed to IDL*Extended*Attributes.txt, as we're
using standard terms from spec.
Some fixes to message as well to make it more legible + cut-and-pasteable.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161886 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rework pseudoStyleCacheIsInvalid to be simpler and more efficient

Simplify this function using iterators and passing the cache instead of
the style (which required sanity ASSERTs). Passing the cache also makes
the call site more clear.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Developers tools unusable with dark theme.

BUG=317873
TBR=vsevik

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161888 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move InputType::createShadowSubtree and destroyShadowSubtree to InputTypeView.

UA shadow DOM should belong to views.
We remove unnecessary UA shadow DOM when an input element gets an author
ShadowRoot.

BUG=306257
TEST=none; no visible behavior changes.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161889 bbb929c8-8fbe-4397-9dbb-9b2b20218538
InlineBidiResolver::appendRun should notify BidiResolver that it reached the end of the line.

BUG=317423

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: [PerWorldBindings] for overloaded methods & simplify loops

Adds [PerWorldBindings] for overloaded methods, and simplifies the
[PerWorldBindings] loop handling, eliminating a loop in the Python template
and replacing 5 redundant branches in the Perl CG with 1 branch and 1 loop.

BUG=239771

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Web Animations: Move servicing logic from FrameView to Document

When running animations on the compositor we won't be receiving regular
frame callbacks and will need to trigger servicing separately, for
example to satisfy getComputedStyle.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161892 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Prepare for color input datalist support on Android

We are passing datalist suggestions when opening the color chooser.
Also adding color to input types that support datalist on Android.

BUG=242455

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161893 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revamp style resolver stats

Instead of the stats being behind a bunch of macros and needing to be enabled
at compile time we make them runtime enabled and expose them through
Internals.

With this new infrastructure you can do internals.setStyleResolverStatsEnabled(true) 
in a test and then trigger a recalc and finally call internals.styleResolverStatsTotalsReport()
to get a text dump of lots of interesting statistics. We can then land tests that dump
these statistics to track improvements or regressions in the matched property cache
or style sharing logic.

We might also consider adding a runtime flag to print out this information, or even making
it so that the web inspector could expose how much style sharing vs actual rule matching
a given page is doing.

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

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