Use supplied reference box for layout using CSS Shapes

When the shape-inside or shape-outside properties have a <shape> <box> pair,
use the <box> to size and position the shape. When no box is supplied, use
the margin box for shape-outside and the content box for shape-inside. The
new behavior no longer relies on the box-sizing property, and changes the
default reference box for shape-outside, so some test corrections are also
included.

BUG=322165

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164811 bbb929c8-8fbe-4397-9dbb-9b2b20218538
position:sticky should stick for the enclosing overflow ancestor

Make position: -webkit-sticky be constrained by an enclosing ancestor
with non-visible overflow if there is one, rather than being constained
always by the viewport.

Port of changeset from webkit: http://trac.webkit.org/changeset/150395

BUG=322972, 231753

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164812 bbb929c8-8fbe-4397-9dbb-9b2b20218538
PartitionAlloc: simplify extent handling a little.

This tidy up is another piece broken out from:
https://codereview.chromium.org/105503009/
(Which is reviewed but reverted.)

TBR=tsepez@chromium.org
BUG=327095

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164813 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Include compositing reasons in GraphicsLayerDebugInfo

Previously, this included only layout rects. We should now be able to stuff
arbitrary debug info in there, and with this CL we add the compositing reasons.

There are 3 copies of the CompositingReasons enum. We have CompositingReasons.h
WebCompositingReasons.h and compositing_reasons.h (in cc). The only reason for
the duplication is that we plumbed the reasons all the way from blink into cc
so that they could be converted to strings for tracing. Now that we include
the compositing reasons in the debug info this is unnecessary. I've tried to
get all blink code using CompositingReasons.h, but to avoid layering violations
this required putting the file in platform/graphics. Admittedly this is a bit
of a bummer and I'm open to suggestions for a better home.

Note, this change depends on https://codereview.chromium.org/128303003/
BUG=None

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164814 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix overhang computation for Mac overscroll bounce

Compute the overscroll amount computation using the
minimum/maximumScrollPosition function, instead of
replicating that code. Note that the difference is that
new functions' maximum scroll positions are clamped
to zero (which fixes the shuddering on bounce bug).

Note that there is still a bug where the contents rectangle will
be inappropriately smaller than the view. Add comments to
FrameView to indicate this, and refactor the scrollbar creation
code to provide a function that can be used to determine when
an extra layout should be performed.

BUG=269692

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164815 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove spurious layouts for inline children with relative widths

RenderBlockFlow::layoutInlineChildren explicitly marked all inline
children with relative width for layout on every pass. These children
are only actually effected when the block flow's width changes, in
which case we already force layout of our children by setting
relayoutChildren to true.

It turns out there was nearly identical logic in layoutBlockChildren,
except it didn't make the mistake of forcing layout of relative width
children. Changing the code to re-use the logic.

This bug was caught while analyzing Microsoft's Holiday Lites
performance benchmark:
http://ie.microsoft.com/testdrive/Performance/HolidayLites/

BUG=333005

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164816 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Broaden justify-self's parsing name

This is in preparation of migrating align-self, align-items
and justify-items to the CSS 3 Alignment syntax.

The current naming was too tied to justify-self and needs to
be broadened. This will reduce the follow-up implementations'
patches.

BUG=249451

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

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