Get rid of willBeCompositedOrSquashed setting for the root layer.

As best I can tell, this doesn't have any effect when we're
processing the root layer. In order to make that more clear,
I moved a bunch of code into an rootLayer and a !rootLayer
block.

Since we always process the root layer at the top of the
recursion, we don't need to do any of the updating of the
bits for the RecursionData. Also, there's a bunch of
properties that are never set for the root layer (e.g.
blending or reflections).

Finally, we never add the root layer to the overlap map
now, so we can assert that in OverlapMap::add.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172104 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove dead code from childIndex optimization

We used to use the childIndex in the DOMSiblingTraversalStrategy but
leviw@ removed it to fix a bug after he reversed the direction we did
recalcStyle in r160288 and r158839. We're going to need something like
this eventually, but I think we want something even better than this
old optimization since it didn't help querySelector at all.

Lets just delete this code for now while we figure out the right way
to optimize nth-child selectors.

BUG=364081

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172105 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Let Selection.collapse definition follow the current spec.

The Selection interface definition is following:
https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#selection

Selection.collpase is defined as:
collapse(Node node, unsigned long offset);

The spec says that the two arguments are not optional and |node| must be not null.
Both IE and FireFox implementations follow that spec in my short experiment.

This CL changes the Selection.collapse and setPosition behavior to throw exception when the function is called with a null node or less arguments so we need refine some tests.

BUG=346613,249598,361956

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

git-svn-id: svn://svn.chromium.org/blink/trunk@172106 bbb929c8-8fbe-4397-9dbb-9b2b20218538
SimpleFontData::fillGlyphPage should not set zero for missing glyphs

From r171835, we call fillGlyphPage() multiple times on a glyph page
when initializing a page for SegmentedFontData. It introduced a bug
where glyph fallback for overlapping unicode ranges does not work
correctly, because fillGlyphPage() may overwrite zero for missing glyphs.

Since GlyphPage's constructor does zero-clear, there is no need to
set zero for missing glyphs.

BUG=none
TEST=fast/css/font-face-unicode-range.html,svg/custom/svg-fonts-segmented.xhtml

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

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