<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[190845] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/190845">190845</a></dd>
<dt>Author</dt> <dd>antti@apple.com</dd>
<dt>Date</dt> <dd>2015-10-11 00:18:58 -0700 (Sun, 11 Oct 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove InsertionPoint and ContentDistributor
https://bugs.webkit.org/show_bug.cgi?id=150004

Rubber-stamped by Sam Weinig.

Now that &lt;details&gt; is on top of the modern Shadow DOM remove the last vestiges of the V0 Shadow DOM API.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* css/SelectorChecker.cpp:
* css/StyleResolver.cpp:
* dom/ContainerNode.cpp:
* dom/Element.cpp:
(WebCore::shouldUseNodeRenderingTraversalSlowPath):
(WebCore::Element::resetNeedsNodeRenderingTraversalSlowPath):
* dom/Node.cpp:
(WebCore::Node::parentOrShadowHostElement):
(WebCore::Node::insertedInto):
(WebCore::Node::insertionParentForBinding): Deleted.
* dom/Node.h:
(WebCore::Node::isCharacterDataNode):
(WebCore::Node::isFrameOwnerElement):
(WebCore::Node::isPluginElement):
(WebCore::Node::isImageControlsRootElement):
(WebCore::Node::isImageControlsButtonElement):
(WebCore::Node::isDocumentFragment):
(WebCore::Node::isShadowRoot):
(WebCore::Node::isInsertionPointNode): Deleted.
(WebCore::Node::isInsertionPoint): Deleted.
* dom/NodeRenderingTraversal.cpp:
(WebCore::NodeRenderingTraversal::traverseParent):
(WebCore::NodeRenderingTraversal::traverseFirstChild):
(WebCore::NodeRenderingTraversal::traverseLastChild):
(WebCore::NodeRenderingTraversal::traverseNextSibling):
(WebCore::NodeRenderingTraversal::traversePreviousSibling):
(WebCore::NodeRenderingTraversal::parentSlow):
(WebCore::NodeRenderingTraversal::nextInScope):
(WebCore::NodeRenderingTraversal::previousInScope):
(WebCore::NodeRenderingTraversal::parentInScope):
(WebCore::NodeRenderingTraversal::lastChildInScope):
(WebCore::NodeRenderingTraversal::nodeCanBeDistributed): Deleted.
(WebCore::NodeRenderingTraversal::findFirstSiblingEnteringInsertionPoints): Deleted.
(WebCore::NodeRenderingTraversal::findFirstEnteringInsertionPoints): Deleted.
(WebCore::NodeRenderingTraversal::findFirstFromDistributedNode): Deleted.
(WebCore::NodeRenderingTraversal::findLastSiblingEnteringInsertionPoints): Deleted.
(WebCore::NodeRenderingTraversal::findLastEnteringInsertionPoints): Deleted.
(WebCore::NodeRenderingTraversal::findLastFromDistributedNode): Deleted.
* dom/ShadowRoot.h:
(WebCore::ShadowRoot::distributor): Deleted.
* html/HTMLInputElement.cpp:
* html/HTMLSlotElement.cpp:
* html/HTMLSlotElement.h:
* html/shadow/ContentDistributor.cpp: Removed.
* html/shadow/ContentDistributor.h: Removed.
* html/shadow/InsertionPoint.cpp: Removed.
* html/shadow/InsertionPoint.h: Removed.
* page/FocusController.cpp:
(WebCore::FocusController::previousFocusableElement):
* testing/Internals.cpp:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssSelectorCheckercpp">trunk/Source/WebCore/css/SelectorChecker.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeRenderingTraversalcpp">trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp</a></li>
<li><a href="#trunkSourceWebCoredomShadowRooth">trunk/Source/WebCore/dom/ShadowRoot.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSlotElementcpp">trunk/Source/WebCore/html/HTMLSlotElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSlotElementh">trunk/Source/WebCore/html/HTMLSlotElement.h</a></li>
<li><a href="#trunkSourceWebCorepageFocusControllercpp">trunk/Source/WebCore/page/FocusController.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorehtmlshadowContentDistributorcpp">trunk/Source/WebCore/html/shadow/ContentDistributor.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowContentDistributorh">trunk/Source/WebCore/html/shadow/ContentDistributor.h</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowInsertionPointcpp">trunk/Source/WebCore/html/shadow/InsertionPoint.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowInsertionPointh">trunk/Source/WebCore/html/shadow/InsertionPoint.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1843,9 +1843,7 @@
</span><span class="cx">     html/parser/XSSAuditorDelegate.cpp
</span><span class="cx"> 
</span><span class="cx">     html/shadow/AutoFillButtonElement.cpp
</span><del>-    html/shadow/ContentDistributor.cpp
</del><span class="cx">     html/shadow/DetailsMarkerControl.cpp
</span><del>-    html/shadow/InsertionPoint.cpp
</del><span class="cx">     html/shadow/MediaControlElementTypes.cpp
</span><span class="cx">     html/shadow/MediaControlElements.cpp
</span><span class="cx">     html/shadow/MediaControls.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/ChangeLog        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1,3 +1,66 @@
</span><ins>+2015-10-10  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Remove InsertionPoint and ContentDistributor
+        https://bugs.webkit.org/show_bug.cgi?id=150004
+
+        Rubber-stamped by Sam Weinig.
+
+        Now that &lt;details&gt; is on top of the modern Shadow DOM remove the last vestiges of the V0 Shadow DOM API.
+
+        * CMakeLists.txt:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/SelectorChecker.cpp:
+        * css/StyleResolver.cpp:
+        * dom/ContainerNode.cpp:
+        * dom/Element.cpp:
+        (WebCore::shouldUseNodeRenderingTraversalSlowPath):
+        (WebCore::Element::resetNeedsNodeRenderingTraversalSlowPath):
+        * dom/Node.cpp:
+        (WebCore::Node::parentOrShadowHostElement):
+        (WebCore::Node::insertedInto):
+        (WebCore::Node::insertionParentForBinding): Deleted.
+        * dom/Node.h:
+        (WebCore::Node::isCharacterDataNode):
+        (WebCore::Node::isFrameOwnerElement):
+        (WebCore::Node::isPluginElement):
+        (WebCore::Node::isImageControlsRootElement):
+        (WebCore::Node::isImageControlsButtonElement):
+        (WebCore::Node::isDocumentFragment):
+        (WebCore::Node::isShadowRoot):
+        (WebCore::Node::isInsertionPointNode): Deleted.
+        (WebCore::Node::isInsertionPoint): Deleted.
+        * dom/NodeRenderingTraversal.cpp:
+        (WebCore::NodeRenderingTraversal::traverseParent):
+        (WebCore::NodeRenderingTraversal::traverseFirstChild):
+        (WebCore::NodeRenderingTraversal::traverseLastChild):
+        (WebCore::NodeRenderingTraversal::traverseNextSibling):
+        (WebCore::NodeRenderingTraversal::traversePreviousSibling):
+        (WebCore::NodeRenderingTraversal::parentSlow):
+        (WebCore::NodeRenderingTraversal::nextInScope):
+        (WebCore::NodeRenderingTraversal::previousInScope):
+        (WebCore::NodeRenderingTraversal::parentInScope):
+        (WebCore::NodeRenderingTraversal::lastChildInScope):
+        (WebCore::NodeRenderingTraversal::nodeCanBeDistributed): Deleted.
+        (WebCore::NodeRenderingTraversal::findFirstSiblingEnteringInsertionPoints): Deleted.
+        (WebCore::NodeRenderingTraversal::findFirstEnteringInsertionPoints): Deleted.
+        (WebCore::NodeRenderingTraversal::findFirstFromDistributedNode): Deleted.
+        (WebCore::NodeRenderingTraversal::findLastSiblingEnteringInsertionPoints): Deleted.
+        (WebCore::NodeRenderingTraversal::findLastEnteringInsertionPoints): Deleted.
+        (WebCore::NodeRenderingTraversal::findLastFromDistributedNode): Deleted.
+        * dom/ShadowRoot.h:
+        (WebCore::ShadowRoot::distributor): Deleted.
+        * html/HTMLInputElement.cpp:
+        * html/HTMLSlotElement.cpp:
+        * html/HTMLSlotElement.h:
+        * html/shadow/ContentDistributor.cpp: Removed.
+        * html/shadow/ContentDistributor.h: Removed.
+        * html/shadow/InsertionPoint.cpp: Removed.
+        * html/shadow/InsertionPoint.h: Removed.
+        * page/FocusController.cpp:
+        (WebCore::FocusController::previousFocusableElement):
+        * testing/Internals.cpp:
+
</ins><span class="cx"> 2015-10-10  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use references and more const in SVGPathUtilities
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -17315,9 +17315,7 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;..\html\parser\XSSAuditor.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\html\parser\XSSAuditorDelegate.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\html\shadow\AutoFillButtonElement.cpp&quot; /&gt;
</span><del>-    &lt;ClCompile Include=&quot;..\html\shadow\ContentDistributor.cpp&quot; /&gt;
</del><span class="cx">     &lt;ClCompile Include=&quot;..\html\shadow\DetailsMarkerControl.cpp&quot; /&gt;
</span><del>-    &lt;ClCompile Include=&quot;..\html\shadow\InsertionPoint.cpp&quot; /&gt;
</del><span class="cx">     &lt;ClCompile Include=&quot;..\html\shadow\MediaControlElements.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\html\shadow\MediaControlElementTypes.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\html\shadow\MediaControls.cpp&quot; /&gt;
</span><span class="lines">@@ -22372,9 +22370,7 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\html\parser\XSSAuditor.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\html\parser\XSSAuditorDelegate.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\html\shadow\AutoFillButtonElement.h&quot; /&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\html\shadow\ContentDistributor.h&quot; /&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\html\shadow\DetailsMarkerControl.h&quot; /&gt;
</span><del>-    &lt;ClInclude Include=&quot;..\html\shadow\InsertionPoint.h&quot; /&gt;
</del><span class="cx">     &lt;ClInclude Include=&quot;..\html\shadow\MediaControlElements.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\html\shadow\MediaControlElementTypes.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\html\shadow\MediaControls.h&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -2230,10 +2230,6 @@
</span><span class="cx">                 53EF766C16531994004CBE49 /* SettingsMacros.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 53EF766A16530A61004CBE49 /* SettingsMacros.h */; };
</span><span class="cx">                 550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
</span><span class="cx">                 550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                57B791A314C6A62900F202D1 /* ContentDistributor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57B7919F14C6A62900F202D1 /* ContentDistributor.cpp */; };
-                57B791A414C6A62900F202D1 /* ContentDistributor.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B791A014C6A62900F202D1 /* ContentDistributor.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                57CF497414EE36D700ECFF14 /* InsertionPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57CF497214EE36D700ECFF14 /* InsertionPoint.cpp */; };
-                57CF497514EE36D700ECFF14 /* InsertionPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 57CF497314EE36D700ECFF14 /* InsertionPoint.h */; };
</del><span class="cx">                 580371611A66F00A00BAF519 /* ClipRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5803715F1A66F00A00BAF519 /* ClipRect.cpp */; };
</span><span class="cx">                 580371621A66F00A00BAF519 /* ClipRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 580371601A66F00A00BAF519 /* ClipRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 580371641A66F1D300BAF519 /* LayerFragment.h in Headers */ = {isa = PBXBuildFile; fileRef = 580371631A66F1D300BAF519 /* LayerFragment.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -9599,10 +9595,6 @@
</span><span class="cx">                 550A0BC7085F6039007353D6 /* QualifiedName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QualifiedName.cpp; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</span><span class="cx">                 550A0BC8085F6039007353D6 /* QualifiedName.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = QualifiedName.h; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</span><span class="cx">                 55D408F71A7C631800C78450 /* SVGImageClients.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageClients.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                57B7919F14C6A62900F202D1 /* ContentDistributor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContentDistributor.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                57B791A014C6A62900F202D1 /* ContentDistributor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentDistributor.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                57CF497214EE36D700ECFF14 /* InsertionPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InsertionPoint.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                57CF497314EE36D700ECFF14 /* InsertionPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InsertionPoint.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 5803715F1A66F00A00BAF519 /* ClipRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClipRect.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 580371601A66F00A00BAF519 /* ClipRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClipRect.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 580371631A66F1D300BAF519 /* LayerFragment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayerFragment.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16173,14 +16165,10 @@
</span><span class="cx">                                 51C4AA5118B28357007BFE9B /* mac */,
</span><span class="cx">                                 7C1E97251A9F9834007BF0FB /* AutoFillButtonElement.cpp */,
</span><span class="cx">                                 7C1E97261A9F9834007BF0FB /* AutoFillButtonElement.h */,
</span><del>-                                57B7919F14C6A62900F202D1 /* ContentDistributor.cpp */,
-                                57B791A014C6A62900F202D1 /* ContentDistributor.h */,
</del><span class="cx">                                 A7C9ABF61357A3BF00F5503F /* DetailsMarkerControl.cpp */,
</span><span class="cx">                                 A7C9ABF71357A3BF00F5503F /* DetailsMarkerControl.h */,
</span><span class="cx">                                 510192D318B6B9B7007FC7A1 /* ImageControlsRootElement.cpp */,
</span><span class="cx">                                 510192D418B6B9B7007FC7A1 /* ImageControlsRootElement.h */,
</span><del>-                                57CF497214EE36D700ECFF14 /* InsertionPoint.cpp */,
-                                57CF497314EE36D700ECFF14 /* InsertionPoint.h */,
</del><span class="cx">                                 417253A81354BBBC00360F2A /* MediaControlElements.cpp */,
</span><span class="cx">                                 417253A91354BBBC00360F2A /* MediaControlElements.h */,
</span><span class="cx">                                 DE49B2FF165F2FC60010338D /* MediaControlElementTypes.cpp */,
</span><span class="lines">@@ -24500,7 +24488,6 @@
</span><span class="cx">                                 A818721C0977D3C0005826D9 /* ContainerNode.h in Headers */,
</span><span class="cx">                                 E1A1470811102B1500EEC0F3 /* ContainerNodeAlgorithms.h in Headers */,
</span><span class="cx">                                 BC5EB9810E82072500B25965 /* ContentData.h in Headers */,
</span><del>-                                57B791A414C6A62900F202D1 /* ContentDistributor.h in Headers */,
</del><span class="cx">                                 51B45D211AB8D1E200117CD2 /* ContentExtension.h in Headers */,
</span><span class="cx">                                 5CDFA6C81AA4F2DA00EA8746 /* ContentExtensionActions.h in Headers */,
</span><span class="cx">                                 7C93F34E1AA6BF0700A98BAB /* ContentExtensionCompiler.h in Headers */,
</span><span class="lines">@@ -25566,7 +25553,6 @@
</span><span class="cx">                                 37E3524D12450C6600BAF5D9 /* InputType.h in Headers */,
</span><span class="cx">                                 C348612415FDE21E007A1CC9 /* InputTypeNames.h in Headers */,
</span><span class="cx">                                 93309DEA099E64920056E581 /* InsertIntoTextNodeCommand.h in Headers */,
</span><del>-                                57CF497514EE36D700ECFF14 /* InsertionPoint.h in Headers */,
</del><span class="cx">                                 93309DEC099E64920056E581 /* InsertLineBreakCommand.h in Headers */,
</span><span class="cx">                                 D07DEABA0A36554A00CA30F8 /* InsertListCommand.h in Headers */,
</span><span class="cx">                                 93309DEE099E64920056E581 /* InsertNodeBeforeCommand.h in Headers */,
</span><span class="lines">@@ -28338,7 +28324,6 @@
</span><span class="cx">                                 A818721F0977D3C0005826D9 /* ContainerNode.cpp in Sources */,
</span><span class="cx">                                 A7A78CD51532BA62006C21E4 /* ContainerNodeAlgorithms.cpp in Sources */,
</span><span class="cx">                                 BC5EB9800E82072500B25965 /* ContentData.cpp in Sources */,
</span><del>-                                57B791A314C6A62900F202D1 /* ContentDistributor.cpp in Sources */,
</del><span class="cx">                                 51B45D201AB8D1E200117CD2 /* ContentExtension.cpp in Sources */,
</span><span class="cx">                                 7C93F34D1AA6BF0700A98BAB /* ContentExtensionCompiler.cpp in Sources */,
</span><span class="cx">                                 7CFDC57C1AC1D80500E24A57 /* ContentExtensionError.cpp in Sources */,
</span><span class="lines">@@ -29138,7 +29123,6 @@
</span><span class="cx">                                 37E3524B12450C5200BAF5D9 /* InputType.cpp in Sources */,
</span><span class="cx">                                 C348612315FDE21E007A1CC9 /* InputTypeNames.cpp in Sources */,
</span><span class="cx">                                 93309DE9099E64920056E581 /* InsertIntoTextNodeCommand.cpp in Sources */,
</span><del>-                                57CF497414EE36D700ECFF14 /* InsertionPoint.cpp in Sources */,
</del><span class="cx">                                 93309DEB099E64920056E581 /* InsertLineBreakCommand.cpp in Sources */,
</span><span class="cx">                                 D07DEAB90A36554A00CA30F8 /* InsertListCommand.cpp in Sources */,
</span><span class="cx">                                 93309DED099E64920056E581 /* InsertNodeBeforeCommand.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorCheckercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorChecker.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -45,7 +45,6 @@
</span><span class="cx"> #include &quot;HTMLParserIdioms.h&quot;
</span><span class="cx"> #include &quot;HTMLProgressElement.h&quot;
</span><span class="cx"> #include &quot;HTMLStyleElement.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;InspectorInstrumentation.h&quot;
</span><span class="cx"> #include &quot;NodeRenderStyle.h&quot;
</span><span class="cx"> #include &quot;Page.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -80,7 +80,6 @@
</span><span class="cx"> #include &quot;HTMLStyleElement.h&quot;
</span><span class="cx"> #include &quot;HTMLTableElement.h&quot;
</span><span class="cx"> #include &quot;HTMLTextAreaElement.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;InspectorInstrumentation.h&quot;
</span><span class="cx"> #include &quot;KeyframeList.h&quot;
</span><span class="cx"> #include &quot;LinkHash.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> #include &quot;HTMLOptionsCollection.h&quot;
</span><span class="cx"> #include &quot;HTMLTableRowsCollection.h&quot;
</span><span class="cx"> #include &quot;InlineTextBox.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;JSLazyEventListener.h&quot;
</span><span class="cx"> #include &quot;JSNode.h&quot;
</span><span class="cx"> #include &quot;LabelsNodeList.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/Element.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -55,7 +55,6 @@
</span><span class="cx"> #include &quot;HTMLSelectElement.h&quot;
</span><span class="cx"> #include &quot;HTMLTemplateElement.h&quot;
</span><span class="cx"> #include &quot;IdTargetObserverRegistry.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;KeyboardEvent.h&quot;
</span><span class="cx"> #include &quot;MainFrame.h&quot;
</span><span class="cx"> #include &quot;MutationObserverInterestGroup.h&quot;
</span><span class="lines">@@ -1622,9 +1621,7 @@
</span><span class="cx"> 
</span><span class="cx"> static bool shouldUseNodeRenderingTraversalSlowPath(const Element&amp; element)
</span><span class="cx"> {
</span><del>-    if (element.isShadowRoot())
-        return true;
-    return element.isInsertionPoint() || element.shadowRoot();
</del><ins>+    return element.isShadowRoot() || element.shadowRoot();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Element::resetNeedsNodeRenderingTraversalSlowPath()
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/Node.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #include &quot;HTMLImageElement.h&quot;
</span><span class="cx"> #include &quot;HTMLSlotElement.h&quot;
</span><span class="cx"> #include &quot;HTMLStyleElement.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;InspectorController.h&quot;
</span><span class="cx"> #include &quot;KeyboardEvent.h&quot;
</span><span class="cx"> #include &quot;Logging.h&quot;
</span><span class="lines">@@ -1133,11 +1132,6 @@
</span><span class="cx">     return downcast&lt;Element&gt;(parent);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node* Node::insertionParentForBinding() const
-{
-    return findInsertionPointOf(this);
-}
-
</del><span class="cx"> Node::InsertionNotificationRequest Node::insertedInto(ContainerNode&amp; insertionPoint)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(insertionPoint.inDocument() || isContainerNode());
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/Node.h        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -257,7 +257,6 @@
</span><span class="cx">     virtual bool isCharacterDataNode() const { return false; }
</span><span class="cx">     virtual bool isFrameOwnerElement() const { return false; }
</span><span class="cx">     virtual bool isPluginElement() const { return false; }
</span><del>-    virtual bool isInsertionPointNode() const { return false; }
</del><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><span class="cx">     virtual bool isImageControlsRootElement() const { return false; }
</span><span class="cx">     virtual bool isImageControlsButtonElement() const { return false; }
</span><span class="lines">@@ -267,9 +266,6 @@
</span><span class="cx">     bool isTreeScope() const;
</span><span class="cx">     bool isDocumentFragment() const { return getFlag(IsDocumentFragmentFlag); }
</span><span class="cx">     bool isShadowRoot() const { return isDocumentFragment() &amp;&amp; isTreeScope(); }
</span><del>-    bool isInsertionPoint() const { return getFlag(NeedsNodeRenderingTraversalSlowPathFlag) &amp;&amp; isInsertionPointNode(); }
-    // Returns Node rather than InsertionPoint. Should be used only for language bindings.
-    Node* insertionParentForBinding() const;
</del><span class="cx"> 
</span><span class="cx">     bool needsNodeRenderingTraversalSlowPath() const;
</span><span class="cx"> 
</span><span class="lines">@@ -655,7 +651,6 @@
</span><span class="cx">         CreateHTMLElement = CreateStyledElement | IsHTMLFlag,
</span><span class="cx">         CreateSVGElement = CreateStyledElement | IsSVGFlag | HasCustomStyleResolveCallbacksFlag,
</span><span class="cx">         CreateDocument = CreateContainer | InDocumentFlag,
</span><del>-        CreateInsertionPoint = CreateHTMLElement | NeedsNodeRenderingTraversalSlowPathFlag,
</del><span class="cx">         CreateEditingText = CreateText | IsEditingTextFlag,
</span><span class="cx">         CreateMathMLElement = CreateStyledElement | IsMathMLFlag
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeRenderingTraversalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/NodeRenderingTraversal.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -28,94 +28,12 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;NodeRenderingTraversal.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> namespace NodeRenderingTraversal {
</span><span class="cx"> 
</span><del>-static Node* findFirstSiblingEnteringInsertionPoints(const Node*);
-static Node* findFirstEnteringInsertionPoints(const Node*);
-static Node* findFirstFromDistributedNode(const Node*, const InsertionPoint*);
-static Node* findLastSiblingEnteringInsertionPoints(const Node*);
-static Node* findLastEnteringInsertionPoints(const Node*);
-static Node* findLastFromDistributedNode(const Node*, const InsertionPoint*);
-
-static inline bool nodeCanBeDistributed(const Node* node)
-{
-    ASSERT(node);
-    Node* parent = parentNodeForDistribution(node);
-    if (!parent)
-        return false;
-
-    if (parent-&gt;isShadowRoot())
-        return false;
-
-    if (is&lt;Element&gt;(*parent) &amp;&amp; downcast&lt;Element&gt;(*parent).shadowRoot())
-        return true;
-    
-    return false;
-}
-
-static Node* findFirstSiblingEnteringInsertionPoints(const Node* node)
-{
-    for (const Node* sibling = node; sibling; sibling = sibling-&gt;nextSibling()) {
-        if (Node* found = findFirstEnteringInsertionPoints(sibling))
-            return found;
-    }
-    return nullptr;
-}
-
-static Node* findFirstEnteringInsertionPoints(const Node* node)
-{
-    ASSERT(node);
-    if (!isActiveInsertionPoint(node))
-        return const_cast&lt;Node*&gt;(node);
-    const InsertionPoint&amp; insertionPoint = downcast&lt;InsertionPoint&gt;(*node);
-    if (Node* found = findFirstFromDistributedNode(insertionPoint.firstDistributed(), &amp;insertionPoint))
-        return found;
-    return findFirstSiblingEnteringInsertionPoints(node-&gt;firstChild());
-}
-
-static Node* findFirstFromDistributedNode(const Node* node, const InsertionPoint* insertionPoint)
-{
-    for (const Node* next = node; next; next = insertionPoint-&gt;nextDistributedTo(next)) {
-        if (Node* found = findFirstEnteringInsertionPoints(next))
-            return found;
-    }
-    return nullptr;
-}
-
-static Node* findLastSiblingEnteringInsertionPoints(const Node* node)
-{
-    for (const Node* sibling = node; sibling; sibling = sibling-&gt;previousSibling()) {
-        if (Node* found = findLastEnteringInsertionPoints(sibling))
-            return found;
-    }
-    return nullptr;
-}
-
-static Node* findLastEnteringInsertionPoints(const Node* node)
-{
-    ASSERT(node);
-    if (!isActiveInsertionPoint(node))
-        return const_cast&lt;Node*&gt;(node);
-    const InsertionPoint&amp; insertionPoint = downcast&lt;InsertionPoint&gt;(*node);
-    if (Node* found = findLastFromDistributedNode(insertionPoint.lastDistributed(), &amp;insertionPoint))
-        return found;
-    return findLastSiblingEnteringInsertionPoints(node-&gt;lastChild());
-}
-
-static Node* findLastFromDistributedNode(const Node* node, const InsertionPoint* insertionPoint)
-{
-    for (const Node* next = node; next; next = insertionPoint-&gt;previousDistributedTo(next)) {
-        if (Node* found = findLastEnteringInsertionPoints(next))
-            return found;
-    }
-    return nullptr;
-}
-
</del><span class="cx"> enum ShadowRootCrossing { CrossShadowRoot, DontCrossShadowRoot };
</span><span class="cx"> 
</span><span class="cx"> static ContainerNode* traverseParent(const Node* node, ShadowRootCrossing shadowRootCrossing)
</span><span class="lines">@@ -123,25 +41,16 @@
</span><span class="cx">     if (shadowRootCrossing == DontCrossShadowRoot  &amp;&amp; node-&gt;isShadowRoot())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    if (nodeCanBeDistributed(node)) {
-        if (InsertionPoint* insertionPoint = findInsertionPointOf(node))
-            return traverseParent(insertionPoint, shadowRootCrossing);
-        return nullptr;
-    }
</del><span class="cx">     ContainerNode* parent = node-&gt;parentNode();
</span><ins>+    if (parent &amp;&amp; parent-&gt;shadowRoot())
+        return nullptr;
+
</ins><span class="cx">     if (!parent)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (is&lt;ShadowRoot&gt;(*parent))
</span><span class="cx">         return shadowRootCrossing == CrossShadowRoot ? downcast&lt;ShadowRoot&gt;(parent)-&gt;host() : parent;
</span><span class="cx"> 
</span><del>-    if (is&lt;InsertionPoint&gt;(*parent)) {
-        const InsertionPoint&amp; insertionPoint = downcast&lt;InsertionPoint&gt;(*parent);
-        if (insertionPoint.hasDistribution())
-            return nullptr;
-        if (insertionPoint.isActive())
-            return traverseParent(parent, shadowRootCrossing);
-    }
</del><span class="cx">     return parent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -153,7 +62,7 @@
</span><span class="cx">             return nullptr;
</span><span class="cx">         node = node-&gt;shadowRoot();
</span><span class="cx">     }
</span><del>-    return findFirstSiblingEnteringInsertionPoints(node-&gt;firstChild());
</del><ins>+    return node-&gt;firstChild();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Node* traverseLastChild(const Node* node, ShadowRootCrossing shadowRootCrossing)
</span><span class="lines">@@ -164,51 +73,19 @@
</span><span class="cx">             return nullptr;
</span><span class="cx">         node = node-&gt;shadowRoot();
</span><span class="cx">     }
</span><del>-    return findLastSiblingEnteringInsertionPoints(node-&gt;lastChild());
</del><ins>+    return node-&gt;lastChild();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Node* traverseNextSibling(const Node* node)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(node);
</span><del>-
-    InsertionPoint* insertionPoint;
-    if (nodeCanBeDistributed(node) &amp;&amp; (insertionPoint = findInsertionPointOf(node))) {
-        Node* found = findFirstFromDistributedNode(insertionPoint-&gt;nextDistributedTo(node), insertionPoint);
-        if (found)
-            return found;
-        return traverseNextSibling(insertionPoint);
-    }
-
-    for (const Node* sibling = node-&gt;nextSibling(); sibling; sibling = sibling-&gt;nextSibling()) {
-        if (Node* found = findFirstEnteringInsertionPoints(sibling))
-            return found;
-    }
-    if (node-&gt;parentNode() &amp;&amp; isActiveInsertionPoint(node-&gt;parentNode()))
-        return traverseNextSibling(node-&gt;parentNode());
-
-    return nullptr;
</del><ins>+    return node-&gt;nextSibling();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Node* traversePreviousSibling(const Node* node)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(node);
</span><del>-
-    InsertionPoint* insertionPoint;
-    if (nodeCanBeDistributed(node) &amp;&amp; (insertionPoint = findInsertionPointOf(node))) {
-        Node* found = findLastFromDistributedNode(insertionPoint-&gt;previousDistributedTo(node), insertionPoint);
-        if (found)
-            return found;
-        return traversePreviousSibling(insertionPoint);
-    }
-
-    for (const Node* sibling = node-&gt;previousSibling(); sibling; sibling = sibling-&gt;previousSibling()) {
-        if (Node* found = findLastEnteringInsertionPoints(sibling))
-            return found;
-    }
-    if (node-&gt;parentNode() &amp;&amp; isActiveInsertionPoint(node-&gt;parentNode()))
-        return traversePreviousSibling(node-&gt;parentNode());
-
-    return nullptr;
</del><ins>+    return node-&gt;previousSibling();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ContainerNode* parentSlow(const Node* node)
</span><span class="lines">@@ -241,8 +118,6 @@
</span><span class="cx"> 
</span><span class="cx"> Node* nextInScope(const Node* node)
</span><span class="cx"> {
</span><del>-    ASSERT(!isActiveInsertionPoint(node));
-
</del><span class="cx">     if (Node* next = traverseFirstChild(node, DontCrossShadowRoot))
</span><span class="cx">         return next;
</span><span class="cx">     if (Node* next = traverseNextSibling(node))
</span><span class="lines">@@ -255,8 +130,6 @@
</span><span class="cx"> 
</span><span class="cx"> Node* previousInScope(const Node* node)
</span><span class="cx"> {
</span><del>-    ASSERT(!isActiveInsertionPoint(node));
-
</del><span class="cx">     if (Node* current = traversePreviousSibling(node)) {
</span><span class="cx">         while (Node* child = traverseLastChild(current, DontCrossShadowRoot))
</span><span class="cx">             current = child;
</span><span class="lines">@@ -267,15 +140,11 @@
</span><span class="cx"> 
</span><span class="cx"> Node* parentInScope(const Node* node)
</span><span class="cx"> {
</span><del>-    ASSERT(!isActiveInsertionPoint(node));
-
</del><span class="cx">     return traverseParent(node, DontCrossShadowRoot);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* lastChildInScope(const Node* node)
</span><span class="cx"> {
</span><del>-    ASSERT(!isActiveInsertionPoint(node));
-
</del><span class="cx">     return traverseLastChild(node, DontCrossShadowRoot);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRooth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.h (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.h        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/dom/ShadowRoot.h        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -37,11 +37,10 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AuthorStyleSheets;
</span><del>-class ContentDistributor;
</del><span class="cx"> class HTMLSlotElement;
</span><span class="cx"> class SlotAssignment;
</span><span class="cx"> 
</span><del>-class ShadowRoot : public DocumentFragment, public TreeScope {
</del><ins>+class ShadowRoot final : public DocumentFragment, public TreeScope {
</ins><span class="cx"> public:
</span><span class="cx">     enum class Type : uint8_t {
</span><span class="cx">         UserAgent = 0,
</span><span class="lines">@@ -86,8 +85,6 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void removeAllEventListeners() override;
</span><span class="cx"> 
</span><del>-    virtual ContentDistributor* distributor() { return nullptr; }
-
</del><span class="cx"> #if ENABLE(SHADOW_DOM) || ENABLE(DETAILS_ELEMENT)
</span><span class="cx">     HTMLSlotElement* findAssignedSlot(const Node&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -49,7 +49,6 @@
</span><span class="cx"> #include &quot;HTMLOptionElement.h&quot;
</span><span class="cx"> #include &quot;HTMLParserIdioms.h&quot;
</span><span class="cx"> #include &quot;IdTargetObserver.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;KeyboardEvent.h&quot;
</span><span class="cx"> #include &quot;Language.h&quot;
</span><span class="cx"> #include &quot;LocalizedStrings.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSlotElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSlotElement.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSlotElement.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/HTMLSlotElement.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ElementChildIterator.h&quot;
</span><span class="cx"> #include &quot;HTMLNames.h&quot;
</span><ins>+#include &quot;ShadowRoot.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSlotElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSlotElement.h (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSlotElement.h        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/HTMLSlotElement.h        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(SHADOW_DOM) || ENABLE(DETAILS_ELEMENT)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;HTMLElement.h&quot;
</span><del>-#include &quot;InsertionPoint.h&quot;
</del><span class="cx"> #include &quot;Range.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowContentDistributorcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/html/shadow/ContentDistributor.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/ContentDistributor.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/shadow/ContentDistributor.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1,159 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;ContentDistributor.h&quot;
-
-#include &quot;ElementIterator.h&quot;
-#include &quot;InsertionPoint.h&quot;
-
-namespace WebCore {
-
-ContentDistributor::ContentDistributor()
-    : m_insertionPointListIsValid(true)
-    , m_validity(Undetermined)
-{
-}
-
-ContentDistributor::~ContentDistributor()
-{
-}
-
-void ContentDistributor::invalidateInsertionPointList()
-{
-    m_insertionPointListIsValid = false;
-    m_insertionPointList.clear();
-}
-
-const Vector&lt;RefPtr&lt;InsertionPoint&gt;&gt;&amp; ContentDistributor::ensureInsertionPointList(ShadowRoot* shadowRoot)
-{
-    if (m_insertionPointListIsValid)
-        return m_insertionPointList;
-
-    m_insertionPointListIsValid = true;
-    ASSERT(m_insertionPointList.isEmpty());
-
-    for (auto&amp; element : descendantsOfType&lt;InsertionPoint&gt;(*shadowRoot))
-        m_insertionPointList.append(&amp;element);
-
-    return m_insertionPointList;
-}
-
-InsertionPoint* ContentDistributor::findInsertionPointFor(const Node* key) const
-{
-    return m_nodeToInsertionPoint.get(key);
-}
-
-void ContentDistributor::distribute(Element* host)
-{
-    ASSERT(needsDistribution());
-    ASSERT(m_nodeToInsertionPoint.isEmpty());
-    ASSERT(!host-&gt;containingShadowRoot()
-        || !host-&gt;containingShadowRoot()-&gt;distributor()
-        || host-&gt;containingShadowRoot()-&gt;distributor()-&gt;isValid());
-
-    m_validity = Valid;
-
-    if (ShadowRoot* root = host-&gt;shadowRoot()) {
-        for (auto&amp; point : ensureInsertionPointList(root)) {
-            if (!point-&gt;isActive())
-                continue;
-
-            distributeSelectionsTo(point.get(), host);
-        }
-    }
-}
-
-bool ContentDistributor::invalidate(Element* host)
-{
-    ASSERT(needsInvalidation());
-    bool needsReattach = (m_validity == Undetermined) || !m_nodeToInsertionPoint.isEmpty();
-
-    if (ShadowRoot* root = host-&gt;shadowRoot()) {
-        for (auto&amp; point : ensureInsertionPointList(root)) {
-            needsReattach = true;
-            point-&gt;clearDistribution();
-        }
-    }
-
-    m_validity = Invalidating;
-    m_nodeToInsertionPoint.clear();
-    return needsReattach;
-}
-
-void ContentDistributor::distributeSelectionsTo(InsertionPoint* insertionPoint, Element* host)
-{
-    for (Node* child = host-&gt;firstChild(); child; child = child-&gt;nextSibling()) {
-        ASSERT(!child-&gt;isInsertionPoint());
-
-        if (insertionPoint-&gt;matchTypeFor(child) != InsertionPoint::AlwaysMatches)
-            continue;
-
-        m_nodeToInsertionPoint.add(child, insertionPoint);
-    }
-
-    if (m_nodeToInsertionPoint.isEmpty())
-        return;
-    insertionPoint-&gt;setHasDistribution();
-}
-
-void ContentDistributor::ensureDistribution(ShadowRoot* shadowRoot)
-{
-    ASSERT(shadowRoot);
-
-    Vector&lt;ShadowRoot*, 8&gt; shadowRoots;
-    for (Element* current = shadowRoot-&gt;host(); current; current = current-&gt;shadowHost()) {
-        ShadowRoot* currentRoot = current-&gt;shadowRoot();
-        if (!currentRoot-&gt;distributor() || !currentRoot-&gt;distributor()-&gt;needsDistribution())
-            break;
-        shadowRoots.append(currentRoot);
-    }
-
-    for (size_t i = shadowRoots.size(); i &gt; 0; --i)
-        shadowRoots[i - 1]-&gt;distributor()-&gt;distribute(shadowRoots[i - 1]-&gt;host());
-}
-
-void ContentDistributor::invalidateDistribution(Element* host)
-{
-    bool didNeedInvalidation = needsInvalidation();
-    bool needsReattach = didNeedInvalidation ? invalidate(host) : false;
-
-    if (needsReattach)
-        host-&gt;setNeedsStyleRecalc(ReconstructRenderTree);
-
-    if (didNeedInvalidation) {
-        ASSERT(m_validity == Invalidating);
-        m_validity = Invalidated;
-    }
-}
-
-void ContentDistributor::didShadowBoundaryChange(Element* host)
-{
-    setValidity(Undetermined);
-    invalidateDistribution(host);
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowContentDistributorh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/html/shadow/ContentDistributor.h (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/ContentDistributor.h        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/shadow/ContentDistributor.h        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1,96 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef ContentDistributor_h
-#define ContentDistributor_h
-
-#include &lt;wtf/Forward.h&gt;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/Vector.h&gt;
-
-namespace WebCore {
-
-class ContainerNode;
-class Element;
-class InsertionPoint;
-class Node;
-class ShadowRoot;
-
-class ContentDistributor {
-    WTF_MAKE_NONCOPYABLE(ContentDistributor);
-public:
-    enum Validity {
-        Valid = 0,
-        Invalidated = 1,
-        Invalidating = 2,
-        Undetermined = 3
-    };
-
-    ContentDistributor();
-    ~ContentDistributor();
-
-    void invalidateInsertionPointList();
-    
-    InsertionPoint* findInsertionPointFor(const Node* key) const;
-
-    void distributeSelectionsTo(InsertionPoint*, Element* host);
-
-    void invalidateDistribution(Element* host);
-    void didShadowBoundaryChange(Element* host);
-
-    static void ensureDistribution(ShadowRoot*);
-    void distribute(Element* host);
-    bool needsDistribution() const;
-
-private:
-    const Vector&lt;RefPtr&lt;InsertionPoint&gt;&gt;&amp; ensureInsertionPointList(ShadowRoot*);
-
-    bool invalidate(Element* host);
-
-    void setValidity(Validity validity) { m_validity = validity; }
-    bool isValid() const { return m_validity == Valid; }
-    bool needsInvalidation() const { return m_validity != Invalidated; }
-
-    Vector&lt;RefPtr&lt;InsertionPoint&gt;&gt; m_insertionPointList;
-    HashMap&lt;const Node*, RefPtr&lt;InsertionPoint&gt;&gt; m_nodeToInsertionPoint;
-    bool m_insertionPointListIsValid;
-    unsigned m_validity : 2;
-};
-
-inline bool ContentDistributor::needsDistribution() const
-{
-    // During the invalidation, re-distribution should be suppressed.
-    return m_validity != Valid &amp;&amp; m_validity != Invalidating;
-}
-
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowInsertionPointcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/html/shadow/InsertionPoint.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/InsertionPoint.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/shadow/InsertionPoint.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1,175 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;InsertionPoint.h&quot;
-
-#include &quot;QualifiedName.h&quot;
-#include &quot;StaticNodeList.h&quot;
-#include &quot;Text.h&quot;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-InsertionPoint::InsertionPoint(const QualifiedName&amp; tagName, Document&amp; document)
-    : HTMLElement(tagName, document, CreateInsertionPoint)
-    , m_hasDistribution(false)
-{
-}
-
-InsertionPoint::~InsertionPoint()
-{
-}
-
-bool InsertionPoint::shouldUseFallbackElements() const
-{
-    return isActive() &amp;&amp; !hasDistribution();
-}
-
-bool InsertionPoint::isActive() const
-{
-    if (!containingShadowRoot())
-        return false;
-    const Node* node = parentNode();
-    while (node) {
-        if (node-&gt;isInsertionPoint())
-            return false;
-
-        node = node-&gt;parentNode();
-    }
-    return true;
-}
-
-bool InsertionPoint::rendererIsNeeded(const RenderStyle&amp; style)
-{
-    return !isActive() &amp;&amp; HTMLElement::rendererIsNeeded(style);
-}
-
-void InsertionPoint::childrenChanged(const ChildChange&amp; change)
-{
-    HTMLElement::childrenChanged(change);
-    if (ShadowRoot* root = containingShadowRoot()) {
-        RELEASE_ASSERT(root-&gt;distributor());
-        root-&gt;distributor()-&gt;invalidateDistribution(root-&gt;host());
-    }
-}
-
-Node::InsertionNotificationRequest InsertionPoint::insertedInto(ContainerNode&amp; insertionPoint)
-{
-    HTMLElement::insertedInto(insertionPoint);
-
-    if (ShadowRoot* root = containingShadowRoot()) {
-        RELEASE_ASSERT(root-&gt;distributor());
-        root-&gt;distributor()-&gt;didShadowBoundaryChange(root-&gt;host());
-        root-&gt;distributor()-&gt;invalidateInsertionPointList();
-    }
-
-    return InsertionDone;
-}
-
-void InsertionPoint::removedFrom(ContainerNode&amp; insertionPoint)
-{
-    ShadowRoot* root = containingShadowRoot();
-    if (!root)
-        root = insertionPoint.containingShadowRoot();
-
-    if (root &amp;&amp; root-&gt;host()) {
-        RELEASE_ASSERT(root-&gt;distributor());
-        root-&gt;distributor()-&gt;invalidateDistribution(root-&gt;host());
-        root-&gt;distributor()-&gt;invalidateInsertionPointList();
-    }
-
-    // Since this insertion point is no longer visible from the shadow subtree, it need to clean itself up.
-    clearDistribution();
-
-    HTMLElement::removedFrom(insertionPoint);
-}
-    
-Node* InsertionPoint::firstDistributed() const
-{
-    if (!m_hasDistribution)
-        return 0;
-    for (Node* current = shadowHost()-&gt;firstChild(); current; current = current-&gt;nextSibling()) {
-        if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
-            return current;
-    }
-    return 0;
-}
-
-Node* InsertionPoint::lastDistributed() const
-{
-    if (!m_hasDistribution)
-        return 0;
-    for (Node* current = shadowHost()-&gt;lastChild(); current; current = current-&gt;previousSibling()) {
-        if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
-            return current;
-    }
-    return 0;
-}
-
-Node* InsertionPoint::nextDistributedTo(const Node* node) const
-{
-    for (Node* current = node-&gt;nextSibling(); current; current = current-&gt;nextSibling()) {
-        if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
-            return current;
-    }
-    return 0;
-}
-
-Node* InsertionPoint::previousDistributedTo(const Node* node) const
-{
-    for (Node* current = node-&gt;previousSibling(); current; current = current-&gt;previousSibling()) {
-        if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
-            return current;
-    }
-    return 0;
-}
-
-InsertionPoint* findInsertionPointOf(const Node* projectedNode)
-{
-    if (ShadowRoot* shadowRoot = shadowRootOfParentForDistribution(projectedNode)) {
-        if (ShadowRoot* root = projectedNode-&gt;containingShadowRoot())
-            ContentDistributor::ensureDistribution(root);
-        if (auto* distributor = shadowRoot-&gt;distributor())
-            return distributor-&gt;findInsertionPointFor(projectedNode);
-    }
-    return 0;
-}
-
-void ShadowRootWithInsertionPoints::childrenChanged(const ChildChange&amp; change)
-{
-    ContainerNode::childrenChanged(change);
-    
-    if (!isOrphan())
-        m_distributor.invalidateDistribution(host());
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowInsertionPointh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/html/shadow/InsertionPoint.h (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/InsertionPoint.h        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/html/shadow/InsertionPoint.h        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -1,150 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef InsertionPoint_h
-#define InsertionPoint_h
-
-#include &quot;ContentDistributor.h&quot;
-#include &quot;HTMLElement.h&quot;
-#include &quot;HTMLNames.h&quot;
-#include &quot;ShadowRoot.h&quot;
-#include &lt;wtf/Forward.h&gt;
-
-namespace WebCore {
-
-class InsertionPoint : public HTMLElement {
-public:
-    enum MatchType {
-        AlwaysMatches,
-        NeverMatches,
-    };
-
-    virtual ~InsertionPoint();
-
-    bool hasDistribution() const { return m_hasDistribution; }
-    void setHasDistribution() { m_hasDistribution = true; }
-    void clearDistribution() { m_hasDistribution = false; }
-    WEBCORE_EXPORT bool isActive() const;
-
-    virtual MatchType matchTypeFor(Node*) const { return AlwaysMatches; }
-
-    bool shouldUseFallbackElements() const;
-
-    Node* firstDistributed() const;
-    Node* lastDistributed() const;
-    Node* nextDistributedTo(const Node*) const;
-    Node* previousDistributedTo(const Node*) const;
-
-protected:
-    InsertionPoint(const QualifiedName&amp;, Document&amp;);
-    virtual bool rendererIsNeeded(const RenderStyle&amp;) override;
-    virtual void childrenChanged(const ChildChange&amp;) override;
-    virtual InsertionNotificationRequest insertedInto(ContainerNode&amp;) override;
-    virtual void removedFrom(ContainerNode&amp;) override;
-
-private:
-    virtual bool isInsertionPointNode() const override final { return true; }
-
-    bool m_hasDistribution;
-};
-
-class ShadowRootWithInsertionPoints : public ShadowRoot {
-public:
-    
-    static Ref&lt;ShadowRootWithInsertionPoints&gt; create(Document&amp; document)
-    {
-        return adoptRef(*new ShadowRootWithInsertionPoints(document));
-    }
-    
-    virtual ContentDistributor* distributor() override { return &amp;m_distributor; }
-    
-private:
-    ShadowRootWithInsertionPoints(Document&amp; document)
-        : ShadowRoot(document, Type::UserAgent)
-    { }
-
-    virtual void childrenChanged(const ChildChange&amp;) override;
-
-    ContentDistributor m_distributor;
-};
-
-inline bool isActiveInsertionPoint(const Node* node)
-{
-    return is&lt;InsertionPoint&gt;(node) &amp;&amp; downcast&lt;InsertionPoint&gt;(*node).isActive();
-}
-
-inline Node* parentNodeForDistribution(const Node* node)
-{
-    ASSERT(node);
-
-    if (Node* parent = node-&gt;parentNode()) {
-        if (is&lt;InsertionPoint&gt;(*parent) &amp;&amp; downcast&lt;InsertionPoint&gt;(*parent).shouldUseFallbackElements())
-            return parent-&gt;parentNode();
-        return parent;
-    }
-
-    return nullptr;
-}
-
-inline Element* parentElementForDistribution(const Node* node)
-{
-    if (Node* parent = parentNodeForDistribution(node)) {
-        if (is&lt;Element&gt;(*parent))
-            return downcast&lt;Element&gt;(parent);
-    }
-
-    return nullptr;
-}
-
-inline ShadowRoot* shadowRootOfParentForDistribution(const Node* node)
-{
-    ASSERT(node);
-    if (Element* parent = parentElementForDistribution(node))
-        return parent-&gt;shadowRoot();
-
-    return nullptr;
-}
-
-InsertionPoint* findInsertionPointOf(const Node*);
-
-inline bool hasShadowRootOrActiveInsertionPointParent(const Node&amp; node)
-{
-    return hasShadowRootParent(node)
-        || isActiveInsertionPoint(findInsertionPointOf(&amp;node))
-        || isActiveInsertionPoint(node.parentNode());
-}
-
-} // namespace WebCore
-
-SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::InsertionPoint)
-    static bool isType(const WebCore::Node&amp; node) { return node.isInsertionPoint(); }
-SPECIALIZE_TYPE_TRAITS_END()
-
-#endif // InsertionPoint_h
</del></span></pre></div>
<a id="trunkSourceWebCorepageFocusControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FocusController.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FocusController.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/page/FocusController.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -496,10 +496,8 @@
</span><span class="cx"> 
</span><span class="cx"> Element* FocusController::previousFocusableElement(FocusNavigationScope scope, Node* start, KeyboardEvent* event)
</span><span class="cx"> {
</span><del>-    using namespace NodeRenderingTraversal;
-
</del><span class="cx">     Node* last = nullptr;
</span><del>-    for (Node* node = scope.rootNode(); node; node = lastChildInScope(node))
</del><ins>+    for (Node* node = scope.rootNode(); node; node = NodeRenderingTraversal::lastChildInScope(node))
</ins><span class="cx">         last = node;
</span><span class="cx">     ASSERT(last);
</span><span class="cx"> 
</span><span class="lines">@@ -508,7 +506,7 @@
</span><span class="cx">     Node* startingNode;
</span><span class="cx">     int startingTabIndex;
</span><span class="cx">     if (start) {
</span><del>-        startingNode = previousInScope(start);
</del><ins>+        startingNode = NodeRenderingTraversal::previousInScope(start);
</ins><span class="cx">         startingTabIndex = adjustedTabIndex(*start, *event);
</span><span class="cx">     } else {
</span><span class="cx">         startingNode = last;
</span><span class="lines">@@ -517,7 +515,7 @@
</span><span class="cx"> 
</span><span class="cx">     // However, if a node is excluded from the normal tabbing cycle, the previous focusable node is determined by tree order
</span><span class="cx">     if (startingTabIndex &lt; 0) {
</span><del>-        for (Node* node = startingNode; node; node = previousInScope(node)) {
</del><ins>+        for (Node* node = startingNode; node; node = NodeRenderingTraversal::previousInScope(node)) {
</ins><span class="cx">             if (!is&lt;Element&gt;(*node))
</span><span class="cx">                 continue;
</span><span class="cx">             Element&amp; element = downcast&lt;Element&gt;(*node);
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (190844 => 190845)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2015-10-11 06:16:18 UTC (rev 190844)
+++ trunk/Source/WebCore/testing/Internals.cpp        2015-10-11 07:18:58 UTC (rev 190845)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> #include &quot;ChromeClient.h&quot;
</span><span class="cx"> #include &quot;ClientRect.h&quot;
</span><span class="cx"> #include &quot;ClientRectList.h&quot;
</span><del>-#include &quot;ContentDistributor.h&quot;
</del><span class="cx"> #include &quot;Cursor.h&quot;
</span><span class="cx"> #include &quot;DOMPath.h&quot;
</span><span class="cx"> #include &quot;DOMStringList.h&quot;
</span></span></pre>
</div>
</div>

</body>
</html>