Enable layer squashing

This is a second attempt to enable layer squashing. Rather than enabling this
from the Chromium side, this CL enables it on the Blink side. Once this lands,
we can switch over to controlling this from the Chromium side so that
--disable-layer-squashing works.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171962 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix uninitialized field in WindowFeatures

Initialize x, y, width, and height in WindowFeatures constructor to prevent
warnings about using uninitialized memory.

R=dcheng@chromium.org
BUG=342591
TEST=manual

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171963 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make window.showModalDialog configurable at runtime

This CL makes it possible to enable and disable showModalDialog with a runtime
flag. Currently, the flag is enabled in stable, but we'll likely change that at
some point soon.

BUG=345831

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171964 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Allow posting a Task to Microtasks

...not just a static callback. This will be used for
<img> loading and potential other future users.

R=rafaelw@chromium.org
BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@171965 bbb929c8-8fbe-4397-9dbb-9b2b20218538
HTML Imports: No more BlockingDocumentCreation.

This change gets rid of HTMLImportState::BlockingDocumentCreation.
This is a perf improvement as Blink no longer delay parsing of imports
which leads earlier fetch requests.

To make it work, the change:

 * Gets rid of the notion of "owning loader".
   Now fewer places depends on the import tree ordering.

 * HTMLImportLoader::addImport() is one of such place.
   It does ensure that:

   * The firstImport() is the first import of the same URL in
     tree order of the import tree.
   * The firstImport() has all children that is loaded by the document.

   HTMLImport::recalcTreeState() and HTMLImportLoader::shouldBlockScriptExecution()
   relies on these invariants.

 * The microtask queue of CustomElementMicrotaskImportSteps is got owned by
   HTMLImportLoader. Also, now each HTMLImportChild can have the step
   regardless of its tree order. This ensures that each imported document blocks
   microtask queue consumption of all referring documents.

 * HTMLImportResolver::shouldBlockDocumentCreation() is merged into
   shouldBlockScriptExecution()

The change on import-nested-dup.html is to cover the observable invariant of
script execution order more precisely.

TEST=import-dup-custom-element.html,import-nested-dup.html,import-nested-dup-2.html
R=dominicc@chromium.org
BUG=none

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

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