location.replace() breaks same-document back/forward navigations.

For navigations that don't create a new entry in the back/forward list (like
location.replace), we don't create a new HistoryItem, we just update the
existing one. If the url changes, we currently update some id numbers as well:
the item sequence number (which uniquely identifies the item), and the
document sequence number (which is common among history items that can be
navigated between without creating a new document). For a location.replace()
within the same document, we still need to change the item sequence number
(so that a back navigation is guaranteed to do something), but the document
sequence number should *not* update, so that a same-document navigation is
still possible.

BUG=363724
TEST=fast/loader/back-after-same-document-location-replace.html

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173045 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Auto-rebaseline for r173030

http://src.chromium.org/viewvc/blink?view=revision&revision=173030

TBR=chrishtr@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173046 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Convert Encoding API tests to W3C testharness.js

These tests should be upstreamed to W3C web-platform-tests.

BUG=368310,368904

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173047 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Auto-rebaseline for r172846

http://src.chromium.org/viewvc/blink?view=revision&revision=172846

BUG=365911
TBR=pdr@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173048 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Teach CompositingUpdateOnCompositedScroll about partial compositing updates

This CL teaches the codepath that updates the compositing tree after a
composited scroll how to do a partial update rather than spamming all the
CompositedLayerMappings.

R=vollick@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173050 bbb929c8-8fbe-4397-9dbb-9b2b20218538
HTML Imports: Let @async import not block its sibling.

An import with @async attribute did block its following sibling,
even though it doesn't block its parent. This is not what it should behave.
This change removes that unwanted blocking.

Also, the change adds a set of test for @async behavior: The original coverage
was too poor.

TBR=dglazkov@chromium.org,dominicc@chromium.org
TEST=ipmort-async-grandchild.html, import-async-grandchild-not-child.html
     import-async-previous.html, import-async-previous-async.html
     import-async-sync-grandchild.html
BUG=367371

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173051 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Avoid unnecessary work when initializing a LifecycleObserver<>.

When m_lifecycleContext is not 0, the subsequent call to observeContent() will try to unregister "this" from m_lifecycleContext, which is unnecessary.

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

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