Map width/height to style for foreignObject

As we move towards using the style system to resolve percentages for
svg, start small by promoting width and height for foreignObject to
presentation attributes.

This is a preparation for issue 308992 where we plan to make
height="100%" for svg elements behave as style="height:100%". Unless
height is mapped to style for foreignObject, percentage style values
for svg inside foreignObject cannot be resolved.

This has been resolved in the SVG WG, see minutes
http://www.w3.org/2014/04/08-svg-minutes.html#item04

BUG=308992,358206

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171306 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Extend srcset's syntax to include 'w' descriptors

This CL extends srcset syntax to match the picture specification.
It also adds unit tests to the srcset parser.

BUG=357386

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171307 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[FastTextAutosizer] Create a temporary cluster stack for list items

The fast text autosizer maintains a stack of clusters that's normally
kept up-to-date in beginLayout (including synthesizing previous
clusters during a subtree layout). This patch fixes an edge-case we
missed: inflateListItem can also be called without a cluster stack.
This patch creates a temporary cluster stack in inflateListItem if
needed. A similar case does not exist in inflateTable because table
inflation goes through beginLayout.

This patch also contains a minor rename for clarity:
m_firstBlock -> m_firstBlockToBeginLayout

BUG=360171

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171308 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Do not squash layers with inherited opacity, transform, or filters.

These are all properties that require that the descendant paints into
the same composited layer as the ancestor, so squashing breaks rendering.
Most of the included layout tests, plus
compositing/geometry/video-opacity-overlay.html, fail before this patch
when squashing is turned on.

Note that reflection, blending, and mask, despite being reasons to promote
the ancestor, appear to already work the same way with or without squashing.
As such, I haven't added in any code to handle those properties, but I did
add some extra layout tests to make sure they remain correct.

BUG=361218

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

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