Implements new distribution algorithms for Shadow DOM, which was newly designed.

Shadow insertion points now behave like a constructor call for a super class. See the followings for details:

- The spec: https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#distributions
- The spec issue: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22344

This change affects not a few other features, such as event.path, InsertionPoint.getDestirubtedNodes() and Node.getDestinationInsertionPoints(). They all depend on the result of distributions.

This change is a feature enhancement. At the same time, this change is backward *incompatible*. I've updated several existing layout tests so that they adapt the new feature and keep their behaviours as well.

I've also updated some performance tests so that they adapt the new feature. I expect there will be a performance regression in the following performance in theory:

- /ShadowDOM/ContentReprojection
- /ShadowDOM/DistributionWithMultipleShadowRoots
- /ShadowDOM/LargeDistributionWithoutLayout
- /ShadowDOM/ShadowReprojection

I've not renamed those tests so that we can compare the results in the official bots. If we find any other regressions other than ShadowDOM/*.html performance tests, please feel free to file a bug.


BUG=263701

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161137 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Surface dataLossMessage to script

BUG=311874

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161138 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Delivery code for candidatewindow events

This is Blink-side code for delivering candidatewindow{show,update,hide}
events from browser to renderer.

The event implementation was committed at r159783.
https://src.chromium.org/viewvc/blink?view=revision&revision=159783

BUG=238585
TEST=not breaking existing tests

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161139 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert "RenderTableCol should inherit from RenderObject instead of RenderBox" and "Auto-rebaseline for r161123"

This reverts commits r161133 and r161123.

r161123 made fast/events/tabindex-focus-blur-all.html crash in debug mode on all platforms: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&showExpectations=true&tests=fast%2Fevents%2Ftabindex-focus-blur-all.html

BUG=None
TBR=antonm@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161140 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rename HitTestRequest::DisallowShadowContent, which is confusing and often misused, to a more dangerous name.

HitTestRequest::DisallowShadowContent is confusing since every hittest doesn't honor this parameter.
Some hittests return a node in shadow trees even HitTestRequest::DisallowShadowContent is specifed.

To prevent this confusing and discouraged parameter from being used further, rename it to a more dangerous name.
Instead of this, callers should call HitTestResult::setToNodesInDocumentTreeScope() explicitly after a hittest if the caller really doesn't want a node in shadow trees.

BUG=313101
TEST=None; No behaviour change;

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

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