Update compositor hit testing tests to read rects back from WebLayer

This enables testing a few additional scenarios by covering the code path that stores an SkRegion into the compositor.

SkRegion internally will split rects up into smaller adjacent rects in order to maintain it's sort invariant for performance.  This change merges such rects back together in the Internals API to simplify the test output (and make manual verification easier).

This change also removes the ability to track rect update counts, but this was really a perf concern not a correctness one, and so is better handled by the perf testing I'm doing.

The test output now exposes a pre-existing bug where rects from layers that have had all handlers removed are left behind.  http://crbug.com/271747 tracks fixing this.

BUG=270922

Review URL: https://chromiumcodereview.appspot.com/22260005

git-svn-id: svn://svn.chromium.org/blink/trunk@156053 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Auto-rebaseline for r156044

http://src.chromium.org/viewvc/blink?view=revision&revision=156044

TBR=ojan@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156054 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactored WebGL extension registration for clarity.

Made most parameters optional to fit the most common future use cases. Draft
extension registration is now a separate function.

BUG=271539

Review URL: https://chromiumcodereview.appspot.com/22824004

git-svn-id: svn://svn.chromium.org/blink/trunk@156056 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[CSS Exclusions] Minimal support for using an image to define a shape

This is a first small step towards supporting CSS shapes defined by an image URL and a alpha channel threshold. To keep the patch as small as possible, there are many limitations and remaining work items. See https://code.google.com/p/chromium/issues/detail?id=252737 for the current list.

BUG=252752

Review URL: https://chromiumcodereview.appspot.com/17379023

git-svn-id: svn://svn.chromium.org/blink/trunk@156057 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Direct adjacent rules should not recalcStyle on all siblings

When I merged the whitespace loop into Element::recalcStyle I refactored the
loop but got the order of some of the operations wrong and now we check for
childRulesChanged after doing setNeedsStyleRecalc() which meant that
forceCheckOfNextElementSibling became "force check of all following elements".

While this made us more correct since things like :hover + foo + bar started
working (contrary to the comment above the loop), it means we recalc style
many more elements than we would have before.

This patch moves the line back to the correct location to avoid doing so much
extra recalc.

Review URL: https://chromiumcodereview.appspot.com/23035003

git-svn-id: svn://svn.chromium.org/blink/trunk@156058 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Unshard WebKit Win7 dbg bots.

With the recent speed increases in debug builds of content_shell,
and the move to a new VM on the 720xd's, there's not really a good
reason to run the debug bots sharded any more. In the future,
if we need to shard tests across multiple machines, we'll want to
use swarming and isolates anyway.

TBR=ojan@chromium.org
BUG=270323

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156059 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add toSVGTextPathElement(), and use it

As a step to clean-up static_cast<SVGXXX>, static_cast<SVGTextPathElement*> can
be changed with toSVGTextPathElement().

BUG=

Review URL: https://chromiumcodereview.appspot.com/23023002

git-svn-id: svn://svn.chromium.org/blink/trunk@156060 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove unneeded --retry-crashes flag from run-webkit-tests.

We now always retry crashes; the flag was still there only for compatibility
with bots that no longer need it.

R=ojan@chromium.org
BUG=269204

Review URL: https://chromiumcodereview.appspot.com/22907005

git-svn-id: svn://svn.chromium.org/blink/trunk@156061 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix creating InjectedScript too early causing extension bindings not to work.

BUG=263162
TEST=manual

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=155947

Review URL: https://chromiumcodereview.appspot.com/22884002

git-svn-id: svn://svn.chromium.org/blink/trunk@156062 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rename CustomElementUpgradeCandidateMap::DestructionObserverMap.

While they observe destruction, they more specifically observe
*element* destruction, so rename this ElementObserverMap. This is both
more specific and more flexible if this needs to observe other parts
of the element lifecycle in future.

BUG=234509

Review URL: https://chromiumcodereview.appspot.com/22847004

git-svn-id: svn://svn.chromium.org/blink/trunk@156063 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Inline ComputeFloatOffsetAdapter::updateOffsetIfNeeded and rangesIntersect. 

Both functions are only called from ComputeFloatOffsetAdapter::collectIfNeeded, so shouldn't add much to binary size, in fact when I checked it seemed to actually result in a (slightly) smaller binary.

Gives roughly 400ms gain on my z620 for bookish from tough_layout_cases, and roughly 7.5% gain on floats_50_100 from blink_perf on linux.


No Patch:
Binary Size: 138797688

*RESULT times: page_load_time= [3006,2902,2860,2791,2826,2946,2888,2797,2805,3250,2918,2845,2800,2825,2814,2922,3275,2817,3172] ms
Avg times: 2918.894737ms
Sd  times: 152.052584ms

Pages: [floats_50_100.html]
*RESULT floats_50_100: floats_50_100= [249.058999936,248.852000106,249.21899999,249.039000017,249.643999967] ms
Avg floats_50_100: 249.162600ms
Sd  floats_50_100: 0.298919ms


With Patch:
Binary Size: 138797176

*RESULT times: page_load_time= [2660,2417,2517,2488,2427,2479,2486,2480,2462,2476,2531,2465,2486,2476,2535,2504,2462,2586,2489] ms
Avg times: 2496.105263ms
Sd  times: 54.863360ms

Pages: [floats_50_100.html]
*RESULT floats_50_100: floats_50_100= [231.318000006,229.234999977,229.611000046,229.673999944,229.234000086] ms
Avg floats_50_100: 229.814400ms
Sd  floats_50_100: 0.865226ms

BUG=260903

Review URL: https://chromiumcodereview.appspot.com/23143002

git-svn-id: svn://svn.chromium.org/blink/trunk@156064 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use doubles for keyframe offsets throughout the animation stack for improved precision

The CSS Animations spec does not specify whether offsets should be handled as
floats or doubles.

Floats provide 24 bits of precision and the range of these offsets is [0, 100].
This means that it's possible to see rendering errors in animations where the
duration exceeds 2^24 / 100 * 1/60 = 2796s = 47mins.

Doubles provide exact rendering for animations up to 95,140 years in duration.

R=shans

Review URL: https://chromiumcodereview.appspot.com/22389003

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