Don't recurse for calling FrameLoaderClient::dispatchWillClose().

It's uses are virtually identical to frameDetached(), which will get called for
all the child frames shortly after.

BUG=none

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164520 bbb929c8-8fbe-4397-9dbb-9b2b20218538
isSelfCollapsingBlock() is O(n + (n - 1) + (n - 2) + .. + (n-n)) in nested self-collapsing blocks

Rather than grovel through the descendants from every descendant in a tree of nested self-collapsing blocks use the result from the first grovel performed when laying out from ancestor of the self-collapsing blocks.

A block decides if it's self-collapsing after it has been laid out, and a nest of self-collapsing blocks gets laid out from the bottom up; so we reset the flag that tells us if a block has nothing but self-collapsing children directly after layout. That way the first grovel will tell us if a block has nothing but self-collapsing children. That allows subsequent calls to isSelfCollapsingBlock() to avoid the same journey through descendants, and more importantly when we layout a self-collapsing parent it does not have to descend below its children to learn if all of its descendants are self-collapsing. 

BUG=328440

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164521 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[CSS Shapes] Add support for the computing the included intervals for a BoxShape

Setting shape-inside to content-box now works. 

Corrected a mistake in BoxShape::getExcludedIntervals() that was exposed by the BoxShapeTest updates. 

BUG=329918

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

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