Connect previous point when drawing ellipse

In optimized path to add ellipse to path, it forgets to connect to
previous point. The condition to enable this fast path is a bit too
strict, and a later function addArc would handle some more generic cases
(sweepDegrees > 360). So this patch suggests to leave out this fast
path.

BUG=288574

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

git-svn-id: svn://svn.chromium.org/blink/trunk@159994 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fixes various problems with the widows implementation

It blocks the landing of the patch for the issue 302458.

1. Rework the way widows relayout is timed. Currently, the widows relayout
is the last one triggered on the box child after it internally finished the
layout. This can cause problems if the box needs repositioning (e.g. because
of floats) and the widows layout overlaps the positioning layout. This can
trigger a new widows condition which is not taken into account (also leaving
a stale pointer behind). The patch changes the widows implementation to use
the line index instead of the line pointer to mark the break point inside the
block and moves the widows relayout inside the block.

2. Add a new function updateRegionForLine that updates the containing region
for a line and the flag used to determine if it's the first line in that region.
This is necessary because the code in adjustLinePositionForPagination is not
sufficient to determine when an unforced break occurs and the line being
positioned is the first one in the fragmentation container or not.

BUG=302458

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

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