Promote extra layers to remove corner cases from overflow:scroll fast path.

Adds 2 new compositing reasons (both only active behind the
compositorDrivenAcceleratedScrollingEnabled Internals setting).
These handle compositing layers when they are the direct
child of a non-stacking context overflow-scroll div, and also
layers that are unclipped descendants of any overflow-scroll div.

This is blink-side patch 2 of https://docs.google.com/a/chromium.org/document/d/1Ln57_v6_4RmuuvtWnpsfBOUeDFrPsYNFW13dwuQ8UD8.

BUG=249357,249349

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156486 bbb929c8-8fbe-4397-9dbb-9b2b20218538
WebCrypto: the refactor layout tests.

Cleans up the layout tests to use a more idiomatic pattern for Promises. Before it was using a wrapper to serialize a set of async tests, whereas now it is creating a chain of Promises.

This change also adds some additional tests for algorithm normalization.

BUG=245025
R=abarth@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156487 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make fast/canvas/draw-custom-focus-ring.html not crash when we turn lazyAttach on for the parser.

This does not appear to change behavior of any test.
I'm not sure what triggers this exactly, but clearly the test
did not depend on focus rings doing anything when the canvas has no renderer.

BUG=276687
R=esprehn

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156488 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Mark fast/dom/adopt-node-crash-2.html as flaky on Mac

BUG=277043
TEST=none
TBR=dominicc@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@156489 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Implement support for unprefixed keyframes rules resolution.

This commit implements the support for parsing and resolving unprefixed
@keyframes. The behavior is as followed :
- For a given animation name if only a @-webkit-keyframe or @keyframe
is defined then we resolve it.
- For a given animation name if both @-webkit-keyframes and @keyframes
are defined, the unprefixed version is always taken.
- As before if you define multiple time a @keyframes for the same animation
name (prefixed or not) the last declaration is resolved (as before).

This commit doesn't implement yet the CSSOM part of the @keyframes, it
will be done in a separate patch.

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

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