RenderBlock::isSelfCollapsingBlock() should only be used when an object does not require layout.

|isSelfCollapsingBlock| should only be called on an object after it has had layout. In order to enforce this with an ASSERT I had to account for a couple of things I hadn't previously considered:

- In a couple of places we look at the previous child sibling and check whether it's selfCollapsing. When we do that we need to be sure that it's a normal flow block we're looking at.

- Placeholder elements are not laid out until the dimensions of their parent text control are known, so they don't get layout until their parent has had layout - this is unique in the layout tree and unfortunately when we call isSelfCollapsingBlock on them we find that they still need layout. Since placeholder elements only exist when they have content we can enforce the rule that they are never self-collapsing.

- When we are in partial layout and have entered layoutBlockChildren to layout one or more children we should return early when we are done. The current behaviour, which ignores the rest of the children and then adjusts the height of the parent block with the current margin information, is unnecessary and likely to be wrong.


BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@165099 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add PARSING_MEDIA_SEGMENT layout test for SourceBuffer mode

Adds layout test to verify that attempt to set
SourceBuffer's append mode fails when enough data has been
appended for the buffer to be in the middle of parsing a
media segment.
Also, removes default WebSourceBuffer::setMode()
implementation now that Chromium WSBI::setMode() has landed.

R=acolwell@chromium.org,jamesr@chromium.org
BUG=249422
TEST=All mediasource layout tests pass locally on Linux

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

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