<!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 <details> 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 <antti@apple.com>
+
+ Remove InsertionPoint and ContentDistributor
+ https://bugs.webkit.org/show_bug.cgi?id=150004
+
+ Rubber-stamped by Sam Weinig.
+
+ Now that <details> 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 <simon.fraser@apple.com>
</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"> <ClCompile Include="..\html\parser\XSSAuditor.cpp" />
</span><span class="cx"> <ClCompile Include="..\html\parser\XSSAuditorDelegate.cpp" />
</span><span class="cx"> <ClCompile Include="..\html\shadow\AutoFillButtonElement.cpp" />
</span><del>- <ClCompile Include="..\html\shadow\ContentDistributor.cpp" />
</del><span class="cx"> <ClCompile Include="..\html\shadow\DetailsMarkerControl.cpp" />
</span><del>- <ClCompile Include="..\html\shadow\InsertionPoint.cpp" />
</del><span class="cx"> <ClCompile Include="..\html\shadow\MediaControlElements.cpp" />
</span><span class="cx"> <ClCompile Include="..\html\shadow\MediaControlElementTypes.cpp" />
</span><span class="cx"> <ClCompile Include="..\html\shadow\MediaControls.cpp" />
</span><span class="lines">@@ -22372,9 +22370,7 @@
</span><span class="cx"> <ClInclude Include="..\html\parser\XSSAuditor.h" />
</span><span class="cx"> <ClInclude Include="..\html\parser\XSSAuditorDelegate.h" />
</span><span class="cx"> <ClInclude Include="..\html\shadow\AutoFillButtonElement.h" />
</span><del>- <ClInclude Include="..\html\shadow\ContentDistributor.h" />
</del><span class="cx"> <ClInclude Include="..\html\shadow\DetailsMarkerControl.h" />
</span><del>- <ClInclude Include="..\html\shadow\InsertionPoint.h" />
</del><span class="cx"> <ClInclude Include="..\html\shadow\MediaControlElements.h" />
</span><span class="cx"> <ClInclude Include="..\html\shadow\MediaControlElementTypes.h" />
</span><span class="cx"> <ClInclude Include="..\html\shadow\MediaControls.h" />
</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 = "<group>"; 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 = "<group>"; tabWidth = 8; usesTabs = 0; };
</span><span class="cx">                 55D408F71A7C631800C78450 /* SVGImageClients.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageClients.h; sourceTree = "<group>"; };
</span><del>-                57B7919F14C6A62900F202D1 /* ContentDistributor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContentDistributor.cpp; sourceTree = "<group>"; };
-                57B791A014C6A62900F202D1 /* ContentDistributor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentDistributor.h; sourceTree = "<group>"; };
-                57CF497214EE36D700ECFF14 /* InsertionPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InsertionPoint.cpp; sourceTree = "<group>"; };
-                57CF497314EE36D700ECFF14 /* InsertionPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InsertionPoint.h; sourceTree = "<group>"; };
</del><span class="cx">                 5803715F1A66F00A00BAF519 /* ClipRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClipRect.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 580371601A66F00A00BAF519 /* ClipRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClipRect.h; sourceTree = "<group>"; };
</span><span class="cx">                 580371631A66F1D300BAF519 /* LayerFragment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayerFragment.h; sourceTree = "<group>"; };
</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 "HTMLParserIdioms.h"
</span><span class="cx"> #include "HTMLProgressElement.h"
</span><span class="cx"> #include "HTMLStyleElement.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "InspectorInstrumentation.h"
</span><span class="cx"> #include "NodeRenderStyle.h"
</span><span class="cx"> #include "Page.h"
</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 "HTMLStyleElement.h"
</span><span class="cx"> #include "HTMLTableElement.h"
</span><span class="cx"> #include "HTMLTextAreaElement.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "InspectorInstrumentation.h"
</span><span class="cx"> #include "KeyframeList.h"
</span><span class="cx"> #include "LinkHash.h"
</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 "HTMLOptionsCollection.h"
</span><span class="cx"> #include "HTMLTableRowsCollection.h"
</span><span class="cx"> #include "InlineTextBox.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "JSLazyEventListener.h"
</span><span class="cx"> #include "JSNode.h"
</span><span class="cx"> #include "LabelsNodeList.h"
</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 "HTMLSelectElement.h"
</span><span class="cx"> #include "HTMLTemplateElement.h"
</span><span class="cx"> #include "IdTargetObserverRegistry.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "KeyboardEvent.h"
</span><span class="cx"> #include "MainFrame.h"
</span><span class="cx"> #include "MutationObserverInterestGroup.h"
</span><span class="lines">@@ -1622,9 +1621,7 @@
</span><span class="cx">
</span><span class="cx"> static bool shouldUseNodeRenderingTraversalSlowPath(const Element& 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 "HTMLImageElement.h"
</span><span class="cx"> #include "HTMLSlotElement.h"
</span><span class="cx"> #include "HTMLStyleElement.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "InspectorController.h"
</span><span class="cx"> #include "KeyboardEvent.h"
</span><span class="cx"> #include "Logging.h"
</span><span class="lines">@@ -1133,11 +1132,6 @@
</span><span class="cx"> return downcast<Element>(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& 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() && isTreeScope(); }
</span><del>- bool isInsertionPoint() const { return getFlag(NeedsNodeRenderingTraversalSlowPathFlag) && 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 "config.h"
</span><span class="cx"> #include "NodeRenderingTraversal.h"
</span><span class="cx">
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "ShadowRoot.h"
</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->isShadowRoot())
- return false;
-
- if (is<Element>(*parent) && downcast<Element>(*parent).shadowRoot())
- return true;
-
- return false;
-}
-
-static Node* findFirstSiblingEnteringInsertionPoints(const Node* node)
-{
- for (const Node* sibling = node; sibling; sibling = sibling->nextSibling()) {
- if (Node* found = findFirstEnteringInsertionPoints(sibling))
- return found;
- }
- return nullptr;
-}
-
-static Node* findFirstEnteringInsertionPoints(const Node* node)
-{
- ASSERT(node);
- if (!isActiveInsertionPoint(node))
- return const_cast<Node*>(node);
- const InsertionPoint& insertionPoint = downcast<InsertionPoint>(*node);
- if (Node* found = findFirstFromDistributedNode(insertionPoint.firstDistributed(), &insertionPoint))
- return found;
- return findFirstSiblingEnteringInsertionPoints(node->firstChild());
-}
-
-static Node* findFirstFromDistributedNode(const Node* node, const InsertionPoint* insertionPoint)
-{
- for (const Node* next = node; next; next = insertionPoint->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->previousSibling()) {
- if (Node* found = findLastEnteringInsertionPoints(sibling))
- return found;
- }
- return nullptr;
-}
-
-static Node* findLastEnteringInsertionPoints(const Node* node)
-{
- ASSERT(node);
- if (!isActiveInsertionPoint(node))
- return const_cast<Node*>(node);
- const InsertionPoint& insertionPoint = downcast<InsertionPoint>(*node);
- if (Node* found = findLastFromDistributedNode(insertionPoint.lastDistributed(), &insertionPoint))
- return found;
- return findLastSiblingEnteringInsertionPoints(node->lastChild());
-}
-
-static Node* findLastFromDistributedNode(const Node* node, const InsertionPoint* insertionPoint)
-{
- for (const Node* next = node; next; next = insertionPoint->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 && node->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->parentNode();
</span><ins>+ if (parent && parent->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<ShadowRoot>(*parent))
</span><span class="cx"> return shadowRootCrossing == CrossShadowRoot ? downcast<ShadowRoot>(parent)->host() : parent;
</span><span class="cx">
</span><del>- if (is<InsertionPoint>(*parent)) {
- const InsertionPoint& insertionPoint = downcast<InsertionPoint>(*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->shadowRoot();
</span><span class="cx"> }
</span><del>- return findFirstSiblingEnteringInsertionPoints(node->firstChild());
</del><ins>+ return node->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->shadowRoot();
</span><span class="cx"> }
</span><del>- return findLastSiblingEnteringInsertionPoints(node->lastChild());
</del><ins>+ return node->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) && (insertionPoint = findInsertionPointOf(node))) {
- Node* found = findFirstFromDistributedNode(insertionPoint->nextDistributedTo(node), insertionPoint);
- if (found)
- return found;
- return traverseNextSibling(insertionPoint);
- }
-
- for (const Node* sibling = node->nextSibling(); sibling; sibling = sibling->nextSibling()) {
- if (Node* found = findFirstEnteringInsertionPoints(sibling))
- return found;
- }
- if (node->parentNode() && isActiveInsertionPoint(node->parentNode()))
- return traverseNextSibling(node->parentNode());
-
- return nullptr;
</del><ins>+ return node->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) && (insertionPoint = findInsertionPointOf(node))) {
- Node* found = findLastFromDistributedNode(insertionPoint->previousDistributedTo(node), insertionPoint);
- if (found)
- return found;
- return traversePreviousSibling(insertionPoint);
- }
-
- for (const Node* sibling = node->previousSibling(); sibling; sibling = sibling->previousSibling()) {
- if (Node* found = findLastEnteringInsertionPoints(sibling))
- return found;
- }
- if (node->parentNode() && isActiveInsertionPoint(node->parentNode()))
- return traversePreviousSibling(node->parentNode());
-
- return nullptr;
</del><ins>+ return node->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&);
</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 "HTMLOptionElement.h"
</span><span class="cx"> #include "HTMLParserIdioms.h"
</span><span class="cx"> #include "IdTargetObserver.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "KeyboardEvent.h"
</span><span class="cx"> #include "Language.h"
</span><span class="cx"> #include "LocalizedStrings.h"
</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 "ElementChildIterator.h"
</span><span class="cx"> #include "HTMLNames.h"
</span><ins>+#include "ShadowRoot.h"
</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 "HTMLElement.h"
</span><del>-#include "InsertionPoint.h"
</del><span class="cx"> #include "Range.h"
</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
- * "AS IS" 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 "config.h"
-#include "ContentDistributor.h"
-
-#include "ElementIterator.h"
-#include "InsertionPoint.h"
-
-namespace WebCore {
-
-ContentDistributor::ContentDistributor()
- : m_insertionPointListIsValid(true)
- , m_validity(Undetermined)
-{
-}
-
-ContentDistributor::~ContentDistributor()
-{
-}
-
-void ContentDistributor::invalidateInsertionPointList()
-{
- m_insertionPointListIsValid = false;
- m_insertionPointList.clear();
-}
-
-const Vector<RefPtr<InsertionPoint>>& ContentDistributor::ensureInsertionPointList(ShadowRoot* shadowRoot)
-{
- if (m_insertionPointListIsValid)
- return m_insertionPointList;
-
- m_insertionPointListIsValid = true;
- ASSERT(m_insertionPointList.isEmpty());
-
- for (auto& element : descendantsOfType<InsertionPoint>(*shadowRoot))
- m_insertionPointList.append(&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->containingShadowRoot()
- || !host->containingShadowRoot()->distributor()
- || host->containingShadowRoot()->distributor()->isValid());
-
- m_validity = Valid;
-
- if (ShadowRoot* root = host->shadowRoot()) {
- for (auto& point : ensureInsertionPointList(root)) {
- if (!point->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->shadowRoot()) {
- for (auto& point : ensureInsertionPointList(root)) {
- needsReattach = true;
- point->clearDistribution();
- }
- }
-
- m_validity = Invalidating;
- m_nodeToInsertionPoint.clear();
- return needsReattach;
-}
-
-void ContentDistributor::distributeSelectionsTo(InsertionPoint* insertionPoint, Element* host)
-{
- for (Node* child = host->firstChild(); child; child = child->nextSibling()) {
- ASSERT(!child->isInsertionPoint());
-
- if (insertionPoint->matchTypeFor(child) != InsertionPoint::AlwaysMatches)
- continue;
-
- m_nodeToInsertionPoint.add(child, insertionPoint);
- }
-
- if (m_nodeToInsertionPoint.isEmpty())
- return;
- insertionPoint->setHasDistribution();
-}
-
-void ContentDistributor::ensureDistribution(ShadowRoot* shadowRoot)
-{
- ASSERT(shadowRoot);
-
- Vector<ShadowRoot*, 8> shadowRoots;
- for (Element* current = shadowRoot->host(); current; current = current->shadowHost()) {
- ShadowRoot* currentRoot = current->shadowRoot();
- if (!currentRoot->distributor() || !currentRoot->distributor()->needsDistribution())
- break;
- shadowRoots.append(currentRoot);
- }
-
- for (size_t i = shadowRoots.size(); i > 0; --i)
- shadowRoots[i - 1]->distributor()->distribute(shadowRoots[i - 1]->host());
-}
-
-void ContentDistributor::invalidateDistribution(Element* host)
-{
- bool didNeedInvalidation = needsInvalidation();
- bool needsReattach = didNeedInvalidation ? invalidate(host) : false;
-
- if (needsReattach)
- host->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
- * "AS IS" 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 <wtf/Forward.h>
-#include <wtf/HashMap.h>
-#include <wtf/RefCounted.h>
-#include <wtf/Vector.h>
-
-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<RefPtr<InsertionPoint>>& 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<RefPtr<InsertionPoint>> m_insertionPointList;
- HashMap<const Node*, RefPtr<InsertionPoint>> 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 && 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
- * "AS IS" 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 "config.h"
-#include "InsertionPoint.h"
-
-#include "QualifiedName.h"
-#include "StaticNodeList.h"
-#include "Text.h"
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-InsertionPoint::InsertionPoint(const QualifiedName& tagName, Document& document)
- : HTMLElement(tagName, document, CreateInsertionPoint)
- , m_hasDistribution(false)
-{
-}
-
-InsertionPoint::~InsertionPoint()
-{
-}
-
-bool InsertionPoint::shouldUseFallbackElements() const
-{
- return isActive() && !hasDistribution();
-}
-
-bool InsertionPoint::isActive() const
-{
- if (!containingShadowRoot())
- return false;
- const Node* node = parentNode();
- while (node) {
- if (node->isInsertionPoint())
- return false;
-
- node = node->parentNode();
- }
- return true;
-}
-
-bool InsertionPoint::rendererIsNeeded(const RenderStyle& style)
-{
- return !isActive() && HTMLElement::rendererIsNeeded(style);
-}
-
-void InsertionPoint::childrenChanged(const ChildChange& change)
-{
- HTMLElement::childrenChanged(change);
- if (ShadowRoot* root = containingShadowRoot()) {
- RELEASE_ASSERT(root->distributor());
- root->distributor()->invalidateDistribution(root->host());
- }
-}
-
-Node::InsertionNotificationRequest InsertionPoint::insertedInto(ContainerNode& insertionPoint)
-{
- HTMLElement::insertedInto(insertionPoint);
-
- if (ShadowRoot* root = containingShadowRoot()) {
- RELEASE_ASSERT(root->distributor());
- root->distributor()->didShadowBoundaryChange(root->host());
- root->distributor()->invalidateInsertionPointList();
- }
-
- return InsertionDone;
-}
-
-void InsertionPoint::removedFrom(ContainerNode& insertionPoint)
-{
- ShadowRoot* root = containingShadowRoot();
- if (!root)
- root = insertionPoint.containingShadowRoot();
-
- if (root && root->host()) {
- RELEASE_ASSERT(root->distributor());
- root->distributor()->invalidateDistribution(root->host());
- root->distributor()->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()->firstChild(); current; current = current->nextSibling()) {
- if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
- return current;
- }
- return 0;
-}
-
-Node* InsertionPoint::lastDistributed() const
-{
- if (!m_hasDistribution)
- return 0;
- for (Node* current = shadowHost()->lastChild(); current; current = current->previousSibling()) {
- if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
- return current;
- }
- return 0;
-}
-
-Node* InsertionPoint::nextDistributedTo(const Node* node) const
-{
- for (Node* current = node->nextSibling(); current; current = current->nextSibling()) {
- if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
- return current;
- }
- return 0;
-}
-
-Node* InsertionPoint::previousDistributedTo(const Node* node) const
-{
- for (Node* current = node->previousSibling(); current; current = current->previousSibling()) {
- if (matchTypeFor(current) == InsertionPoint::AlwaysMatches)
- return current;
- }
- return 0;
-}
-
-InsertionPoint* findInsertionPointOf(const Node* projectedNode)
-{
- if (ShadowRoot* shadowRoot = shadowRootOfParentForDistribution(projectedNode)) {
- if (ShadowRoot* root = projectedNode->containingShadowRoot())
- ContentDistributor::ensureDistribution(root);
- if (auto* distributor = shadowRoot->distributor())
- return distributor->findInsertionPointFor(projectedNode);
- }
- return 0;
-}
-
-void ShadowRootWithInsertionPoints::childrenChanged(const ChildChange& 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
- * "AS IS" 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 "ContentDistributor.h"
-#include "HTMLElement.h"
-#include "HTMLNames.h"
-#include "ShadowRoot.h"
-#include <wtf/Forward.h>
-
-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&, Document&);
- virtual bool rendererIsNeeded(const RenderStyle&) override;
- virtual void childrenChanged(const ChildChange&) override;
- virtual InsertionNotificationRequest insertedInto(ContainerNode&) override;
- virtual void removedFrom(ContainerNode&) override;
-
-private:
- virtual bool isInsertionPointNode() const override final { return true; }
-
- bool m_hasDistribution;
-};
-
-class ShadowRootWithInsertionPoints : public ShadowRoot {
-public:
-
- static Ref<ShadowRootWithInsertionPoints> create(Document& document)
- {
- return adoptRef(*new ShadowRootWithInsertionPoints(document));
- }
-
- virtual ContentDistributor* distributor() override { return &m_distributor; }
-
-private:
- ShadowRootWithInsertionPoints(Document& document)
- : ShadowRoot(document, Type::UserAgent)
- { }
-
- virtual void childrenChanged(const ChildChange&) override;
-
- ContentDistributor m_distributor;
-};
-
-inline bool isActiveInsertionPoint(const Node* node)
-{
- return is<InsertionPoint>(node) && downcast<InsertionPoint>(*node).isActive();
-}
-
-inline Node* parentNodeForDistribution(const Node* node)
-{
- ASSERT(node);
-
- if (Node* parent = node->parentNode()) {
- if (is<InsertionPoint>(*parent) && downcast<InsertionPoint>(*parent).shouldUseFallbackElements())
- return parent->parentNode();
- return parent;
- }
-
- return nullptr;
-}
-
-inline Element* parentElementForDistribution(const Node* node)
-{
- if (Node* parent = parentNodeForDistribution(node)) {
- if (is<Element>(*parent))
- return downcast<Element>(parent);
- }
-
- return nullptr;
-}
-
-inline ShadowRoot* shadowRootOfParentForDistribution(const Node* node)
-{
- ASSERT(node);
- if (Element* parent = parentElementForDistribution(node))
- return parent->shadowRoot();
-
- return nullptr;
-}
-
-InsertionPoint* findInsertionPointOf(const Node*);
-
-inline bool hasShadowRootOrActiveInsertionPointParent(const Node& node)
-{
- return hasShadowRootParent(node)
- || isActiveInsertionPoint(findInsertionPointOf(&node))
- || isActiveInsertionPoint(node.parentNode());
-}
-
-} // namespace WebCore
-
-SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::InsertionPoint)
- static bool isType(const WebCore::Node& 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 < 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<Element>(*node))
</span><span class="cx"> continue;
</span><span class="cx"> Element& element = downcast<Element>(*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 "ChromeClient.h"
</span><span class="cx"> #include "ClientRect.h"
</span><span class="cx"> #include "ClientRectList.h"
</span><del>-#include "ContentDistributor.h"
</del><span class="cx"> #include "Cursor.h"
</span><span class="cx"> #include "DOMPath.h"
</span><span class="cx"> #include "DOMStringList.h"
</span></span></pre>
</div>
</div>
</body>
</html>