<!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>[208001] 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/208001">208001</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-10-27 13:23:06 -0700 (Thu, 27 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations
https://bugs.webkit.org/show_bug.cgi?id=164063

Reviewed by Sam Weinig.

Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations now
that we support having IDL string enumerations in their own IDL file.

No new tests, no Web-exposed behavior change.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::matchAuthorShadowPseudoElementRules):
(WebCore::ElementRuleCollector::collectMatchingShadowPseudoElementRules):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
* dom/CustomElementRegistry.cpp:
(WebCore::enqueueUpgradeInShadowIncludingTreeOrder):
* dom/Element.cpp:
(WebCore::Element::bindingsOffsetParent):
(WebCore::Element::addShadowRoot):
(WebCore::Element::attachShadow):
(WebCore::Element::shadowRootForBindings):
(WebCore::Element::userAgentShadowRoot):
(WebCore::Element::ensureUserAgentShadowRoot):
* dom/Element.h:
* dom/Element.idl:
* dom/InlineStyleSheetOwner.cpp:
(WebCore::parserContextForElement):
* dom/Node.cpp:
(WebCore::Node::isUnclosedNode):
(WebCore::Node::assignedSlotForBindings):
(WebCore::Node::isInUserAgentShadowTree):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::ShadowRoot):
* dom/ShadowRoot.h:
* dom/ShadowRoot.idl:
* dom/ShadowRootMode.h: Added.
* dom/ShadowRootMode.idl: Copied from Source/WebCore/dom/ShadowRoot.idl.
* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::didChangeSlot):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::create):
* inspector/InspectorDOMAgent.cpp:
(WebCore::shadowRootType):
* rendering/HitTestResult.cpp:
(WebCore::moveOutOfUserAgentShadowTree):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionPseudoStyle):
* rendering/RenderLayer.cpp:
(WebCore::rendererForScrollbar):
* style/StyleScope.cpp:
(WebCore::Style::Scope::shouldUseSharedUserAgentShadowTreeStyleResolver):
(WebCore::Style::Scope::didChangeStyleSheetEnvironment):
* svg/SVGElement.cpp:
(WebCore::SVGElement::correspondingUseElement):
* testing/Internals.cpp:
(WebCore::Internals::shadowRootType):</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="#trunkSourceWebCoreDerivedSourcescpp">trunk/Source/WebCore/DerivedSources.cpp</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssElementRuleCollectorcpp">trunk/Source/WebCore/css/ElementRuleCollector.cpp</a></li>
<li><a href="#trunkSourceWebCorecssSelectorCheckercpp">trunk/Source/WebCore/css/SelectorChecker.cpp</a></li>
<li><a href="#trunkSourceWebCoredomCustomElementRegistrycpp">trunk/Source/WebCore/dom/CustomElementRegistry.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomElementidl">trunk/Source/WebCore/dom/Element.idl</a></li>
<li><a href="#trunkSourceWebCoredomInlineStyleSheetOwnercpp">trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomShadowRootcpp">trunk/Source/WebCore/dom/ShadowRoot.cpp</a></li>
<li><a href="#trunkSourceWebCoredomShadowRooth">trunk/Source/WebCore/dom/ShadowRoot.h</a></li>
<li><a href="#trunkSourceWebCoredomShadowRootidl">trunk/Source/WebCore/dom/ShadowRoot.idl</a></li>
<li><a href="#trunkSourceWebCoredomSlotAssignmentcpp">trunk/Source/WebCore/dom/SlotAssignment.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSummaryElementcpp">trunk/Source/WebCore/html/HTMLSummaryElement.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestResultcpp">trunk/Source/WebCore/rendering/HitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleStyleScopecpp">trunk/Source/WebCore/style/StyleScope.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGElementcpp">trunk/Source/WebCore/svg/SVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoredomShadowRootModeh">trunk/Source/WebCore/dom/ShadowRootMode.h</a></li>
<li><a href="#trunkSourceWebCoredomShadowRootModeidl">trunk/Source/WebCore/dom/ShadowRootMode.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -445,6 +445,7 @@
</span><span class="cx">     dom/RequestAnimationFrameCallback.idl
</span><span class="cx">     dom/SecurityPolicyViolationEvent.idl
</span><span class="cx">     dom/ShadowRoot.idl
</span><ins>+    dom/ShadowRootMode.idl
</ins><span class="cx">     dom/Slotable.idl
</span><span class="cx">     dom/StaticRange.idl
</span><span class="cx">     dom/StringCallback.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/ChangeLog        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -1,5 +1,70 @@
</span><span class="cx"> 2016-10-27  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations
+        https://bugs.webkit.org/show_bug.cgi?id=164063
+
+        Reviewed by Sam Weinig.
+
+        Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations now
+        that we support having IDL string enumerations in their own IDL file.
+
+        No new tests, no Web-exposed behavior change.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/ElementRuleCollector.cpp:
+        (WebCore::ElementRuleCollector::collectMatchingRules):
+        (WebCore::ElementRuleCollector::matchAuthorShadowPseudoElementRules):
+        (WebCore::ElementRuleCollector::collectMatchingShadowPseudoElementRules):
+        * css/SelectorChecker.cpp:
+        (WebCore::SelectorChecker::matchRecursively):
+        * dom/CustomElementRegistry.cpp:
+        (WebCore::enqueueUpgradeInShadowIncludingTreeOrder):
+        * dom/Element.cpp:
+        (WebCore::Element::bindingsOffsetParent):
+        (WebCore::Element::addShadowRoot):
+        (WebCore::Element::attachShadow):
+        (WebCore::Element::shadowRootForBindings):
+        (WebCore::Element::userAgentShadowRoot):
+        (WebCore::Element::ensureUserAgentShadowRoot):
+        * dom/Element.h:
+        * dom/Element.idl:
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::parserContextForElement):
+        * dom/Node.cpp:
+        (WebCore::Node::isUnclosedNode):
+        (WebCore::Node::assignedSlotForBindings):
+        (WebCore::Node::isInUserAgentShadowTree):
+        * dom/ShadowRoot.cpp:
+        (WebCore::ShadowRoot::ShadowRoot):
+        * dom/ShadowRoot.h:
+        * dom/ShadowRoot.idl:
+        * dom/ShadowRootMode.h: Added.
+        * dom/ShadowRootMode.idl: Copied from Source/WebCore/dom/ShadowRoot.idl.
+        * dom/SlotAssignment.cpp:
+        (WebCore::SlotAssignment::didChangeSlot):
+        * html/HTMLSummaryElement.cpp:
+        (WebCore::HTMLSummaryElement::create):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::shadowRootType):
+        * rendering/HitTestResult.cpp:
+        (WebCore::moveOutOfUserAgentShadowTree):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::selectionPseudoStyle):
+        * rendering/RenderLayer.cpp:
+        (WebCore::rendererForScrollbar):
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::shouldUseSharedUserAgentShadowTreeStyleResolver):
+        (WebCore::Style::Scope::didChangeStyleSheetEnvironment):
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::correspondingUseElement):
+        * testing/Internals.cpp:
+        (WebCore::Internals::shadowRootType):
+
+2016-10-27  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Element parameter to CanvasRenderingContext2D.drawFocusIfNeeded() should not be nullable
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=164062
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/DerivedSources.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -581,6 +581,7 @@
</span><span class="cx"> #include &quot;JSSVGZoomAndPan.cpp&quot;
</span><span class="cx"> #include &quot;JSSVGZoomEvent.cpp&quot;
</span><span class="cx"> #include &quot;JSShadowRoot.cpp&quot;
</span><ins>+#include &quot;JSShadowRootMode.cpp&quot;
</ins><span class="cx"> #include &quot;JSStorage.cpp&quot;
</span><span class="cx"> #if ENABLE(QUOTA)
</span><span class="cx"> #include &quot;JSStorageErrorCallback.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/DerivedSources.make        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -356,6 +356,7 @@
</span><span class="cx">     $(WebCore)/dom/RequestAnimationFrameCallback.idl \
</span><span class="cx">     $(WebCore)/dom/SecurityPolicyViolationEvent.idl \
</span><span class="cx">     $(WebCore)/dom/ShadowRoot.idl \
</span><ins>+    $(WebCore)/dom/ShadowRootMode.idl \
</ins><span class="cx">     $(WebCore)/dom/Slotable.idl \
</span><span class="cx">     $(WebCore)/dom/StaticRange.idl \
</span><span class="cx">     $(WebCore)/dom/StringCallback.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -1765,6 +1765,9 @@
</span><span class="cx">                 46C83EFE1A9BBE2900A79A41 /* GeoNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C83EFC1A9BBE2900A79A41 /* GeoNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 46DB7D571B20FE46005651B2 /* VNodeTrackerCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D561B20FE3C005651B2 /* VNodeTrackerCocoa.cpp */; };
</span><span class="cx">                 46DBB6501AB8C96F00D9A813 /* PowerObserverMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */; };
</span><ins>+                46DFF4981DC2603100B80B48 /* ShadowRootMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DFF4961DC2601300B80B48 /* ShadowRootMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                46DFF49B1DC2620B00B80B48 /* JSShadowRootMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DFF4991DC261F900B80B48 /* JSShadowRootMode.cpp */; };
+                46DFF49C1DC2620B00B80B48 /* JSShadowRootMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DFF49A1DC261F900B80B48 /* JSShadowRootMode.h */; };
</ins><span class="cx">                 46EBEA021B7D4D6500BE4941 /* CollectionTraversal.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 46F3E3F91B2109000087ED13 /* VNodeTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D581B20FE58005651B2 /* VNodeTracker.cpp */; };
</span><span class="cx">                 46F3E3FA1B2109100087ED13 /* VNodeTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DB7D591B20FE58005651B2 /* VNodeTracker.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -8835,6 +8838,10 @@
</span><span class="cx">                 46DB7D581B20FE58005651B2 /* VNodeTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VNodeTracker.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 46DB7D591B20FE58005651B2 /* VNodeTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VNodeTracker.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PowerObserverMac.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                46DFF4961DC2601300B80B48 /* ShadowRootMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadowRootMode.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                46DFF4971DC2601300B80B48 /* ShadowRootMode.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ShadowRootMode.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                46DFF4991DC261F900B80B48 /* JSShadowRootMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSShadowRootMode.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                46DFF49A1DC261F900B80B48 /* JSShadowRootMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSShadowRootMode.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionTraversal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMNamedFlowCollectionCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEWebKitBridge.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -20115,6 +20122,8 @@
</span><span class="cx">                                 4998AECC13F9D6C90090B1AA /* JSRequestAnimationFrameCallback.h */,
</span><span class="cx">                                 9B6BC9601B975966005AE1F0 /* JSShadowRoot.cpp */,
</span><span class="cx">                                 9B6BC9611B975966005AE1F0 /* JSShadowRoot.h */,
</span><ins>+                                46DFF4991DC261F900B80B48 /* JSShadowRootMode.cpp */,
+                                46DFF49A1DC261F900B80B48 /* JSShadowRootMode.h */,
</ins><span class="cx">                                 65DF31EF09D1CC60000BE325 /* JSText.cpp */,
</span><span class="cx">                                 65DF31F009D1CC60000BE325 /* JSText.h */,
</span><span class="cx">                                 D7613AC214753E5600DB8606 /* JSWebKitNamedFlow.cpp */,
</span><span class="lines">@@ -23800,6 +23809,8 @@
</span><span class="cx">                                 A6D169611346B49B000EB770 /* ShadowRoot.cpp */,
</span><span class="cx">                                 A6D169631346B4C1000EB770 /* ShadowRoot.h */,
</span><span class="cx">                                 9B19B67E1B964E5200348745 /* ShadowRoot.idl */,
</span><ins>+                                46DFF4961DC2601300B80B48 /* ShadowRootMode.h */,
+                                46DFF4971DC2601300B80B48 /* ShadowRootMode.idl */,
</ins><span class="cx">                                 572A7F221C6E5A66009C6149 /* SimulatedClick.cpp */,
</span><span class="cx">                                 572A7F201C6E5719009C6149 /* SimulatedClick.h */,
</span><span class="cx">                                 31741AAB16635E45008A5B7E /* SimulatedClickOptions.h */,
</span><span class="lines">@@ -24742,6 +24753,7 @@
</span><span class="cx">                                 BC23EE920DAED2BC009FDC91 /* CSSImageGeneratorValue.h in Headers */,
</span><span class="cx">                                 9393E600151A99F200066F06 /* CSSImageSetValue.h in Headers */,
</span><span class="cx">                                 A80E6CFA0A1989CA007FB8C5 /* CSSImageValue.h in Headers */,
</span><ins>+                                46DFF4981DC2603100B80B48 /* ShadowRootMode.h in Headers */,
</ins><span class="cx">                                 A80E6CF60A1989CA007FB8C5 /* CSSImportRule.h in Headers */,
</span><span class="cx">                                 A80E6D010A1989CA007FB8C5 /* CSSInheritedValue.h in Headers */,
</span><span class="cx">                                 A80E6D080A1989CA007FB8C5 /* CSSInitialValue.h in Headers */,
</span><span class="lines">@@ -25958,6 +25970,7 @@
</span><span class="cx">                                 B2FA3D950AB75A6F000E5AC4 /* JSSVGFETurbulenceElement.h in Headers */,
</span><span class="cx">                                 B2FA3D970AB75A6F000E5AC4 /* JSSVGFilterElement.h in Headers */,
</span><span class="cx">                                 B27B28260CEF0C0700D39D54 /* JSSVGFontElement.h in Headers */,
</span><ins>+                                46DFF49C1DC2620B00B80B48 /* JSShadowRootMode.h in Headers */,
</ins><span class="cx">                                 A83B79050CCAFF15000B0825 /* JSSVGFontFaceElement.h in Headers */,
</span><span class="cx">                                 A83B79000CCAFF15000B0825 /* JSSVGFontFaceFormatElement.h in Headers */,
</span><span class="cx">                                 A83B79020CCAFF15000B0825 /* JSSVGFontFaceNameElement.h in Headers */,
</span><span class="lines">@@ -30616,6 +30629,7 @@
</span><span class="cx">                                 582CB0551A78A2B200AFFCC4 /* SimpleLineLayoutTextFragmentIterator.cpp in Sources */,
</span><span class="cx">                                 C5A1EA7C152BCF04004D00B6 /* SimplifyMarkupCommand.cpp in Sources */,
</span><span class="cx">                                 572A7F231C6E5A66009C6149 /* SimulatedClick.cpp in Sources */,
</span><ins>+                                46DFF49B1DC2620B00B80B48 /* JSShadowRootMode.cpp in Sources */,
</ins><span class="cx">                                 FD00D7A414A3F61900734011 /* SincResampler.cpp in Sources */,
</span><span class="cx">                                 51327D6111A33A2B004F9D65 /* SinkDocument.cpp in Sources */,
</span><span class="cx">                                 9444CBD51D860C8B0073A074 /* SizesAttributeParser.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssElementRuleCollectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/ElementRuleCollector.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/ElementRuleCollector.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/css/ElementRuleCollector.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     ASSERT_WITH_MESSAGE(!(m_mode == SelectorChecker::Mode::CollectingRulesIgnoringVirtualPseudoElements &amp;&amp; m_pseudoStyleRequest.pseudoId != NOPSEUDO), &quot;When in StyleInvalidation or SharingRules, SelectorChecker does not try to match the pseudo ID. While ElementRuleCollector supports matching a particular pseudoId in this case, this would indicate a error at the call site since matching a particular element should be unnecessary.&quot;);
</span><span class="cx"> 
</span><span class="cx">     auto* shadowRoot = m_element.containingShadowRoot();
</span><del>-    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">         collectMatchingShadowPseudoElementRules(matchRequest, ruleRange);
</span><span class="cx"> 
</span><span class="cx">     // We need to collect the rules for id, class, tag, and everything else into a buffer and
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(m_element.isInShadowTree());
</span><span class="cx">     auto&amp; shadowRoot = *m_element.containingShadowRoot();
</span><del>-    if (shadowRoot.mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+    if (shadowRoot.mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">         return;
</span><span class="cx">     // Look up shadow pseudo elements also from the host scope author style as they are web-exposed.
</span><span class="cx">     auto&amp; hostAuthorRules = Style::Scope::forNode(*shadowRoot.host()).resolver().ruleSets().authorStyle();
</span><span class="lines">@@ -294,7 +294,7 @@
</span><span class="cx"> void ElementRuleCollector::collectMatchingShadowPseudoElementRules(const MatchRequest&amp; matchRequest, StyleResolver::RuleRange&amp; ruleRange)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(matchRequest.ruleSet);
</span><del>-    ASSERT(m_element.containingShadowRoot()-&gt;mode() == ShadowRoot::Mode::UserAgent);
</del><ins>+    ASSERT(m_element.containingShadowRoot()-&gt;mode() == ShadowRootMode::UserAgent);
</ins><span class="cx"> 
</span><span class="cx">     auto&amp; rules = *matchRequest.ruleSet;
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span></span></pre></div>
<a id="trunkSourceWebCorecssSelectorCheckercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SelectorChecker.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SelectorChecker.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/css/SelectorChecker.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -292,7 +292,7 @@
</span><span class="cx">                 if (context.element-&gt;shadowPseudoId() != context.selector-&gt;value())
</span><span class="cx">                     return MatchResult::fails(Match::SelectorFailsLocally);
</span><span class="cx"> 
</span><del>-                if (context.selector-&gt;isWebKitCustomPseudoElement() &amp;&amp; root-&gt;mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+                if (context.selector-&gt;isWebKitCustomPseudoElement() &amp;&amp; root-&gt;mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">                     return MatchResult::fails(Match::SelectorFailsLocally);
</span><span class="cx">             } else
</span><span class="cx">                 return MatchResult::fails(Match::SelectorFailsLocally);
</span></span></pre></div>
<a id="trunkSourceWebCoredomCustomElementRegistrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/CustomElementRegistry.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/CustomElementRegistry.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/CustomElementRegistry.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">         if (element-&gt;isCustomElementUpgradeCandidate() &amp;&amp; element-&gt;tagQName() == elementInterface.name())
</span><span class="cx">             element-&gt;enqueueToUpgrade(elementInterface);
</span><span class="cx">         if (auto* shadowRoot = element-&gt;shadowRoot()) {
</span><del>-            if (shadowRoot-&gt;mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+            if (shadowRoot-&gt;mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">                 enqueueUpgradeInShadowIncludingTreeOrder(*shadowRoot, elementInterface);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -852,7 +852,7 @@
</span><span class="cx">     Element* element = offsetParent();
</span><span class="cx">     if (!element || !element-&gt;isInShadowTree())
</span><span class="cx">         return element;
</span><del>-    return element-&gt;containingShadowRoot()-&gt;mode() == ShadowRoot::Mode::UserAgent ? nullptr : element;
</del><ins>+    return element-&gt;containingShadowRoot()-&gt;mode() == ShadowRootMode::UserAgent ? nullptr : element;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Element* Element::offsetParent()
</span><span class="lines">@@ -1778,7 +1778,7 @@
</span><span class="cx"> 
</span><span class="cx">     InspectorInstrumentation::didPushShadowRoot(*this, shadowRoot);
</span><span class="cx"> 
</span><del>-    if (shadowRoot.mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+    if (shadowRoot.mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">         didAddUserAgentShadowRoot(&amp;shadowRoot);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1857,7 +1857,12 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    auto shadow = ShadowRoot::create(document(), init.mode == ShadowRootMode::Open ? ShadowRoot::Mode::Open : ShadowRoot::Mode::Closed);
</del><ins>+    if (init.mode == ShadowRootMode::UserAgent) {
+        ec = TypeError;
+        return nullptr;
+    }
+
+    auto shadow = ShadowRoot::create(document(), init.mode);
</ins><span class="cx">     addShadowRoot(shadow.copyRef());
</span><span class="cx">     return WTFMove(shadow);
</span><span class="cx"> }
</span><span class="lines">@@ -1868,7 +1873,7 @@
</span><span class="cx">     if (!root)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    if (root-&gt;mode() != ShadowRoot::Mode::Open) {
</del><ins>+    if (root-&gt;mode() != ShadowRootMode::Open) {
</ins><span class="cx">         if (!JSC::jsCast&lt;JSDOMGlobalObject*&gt;(state.lexicalGlobalObject())-&gt;world().shadowRootIsAlwaysOpen())
</span><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="lines">@@ -1879,7 +1884,7 @@
</span><span class="cx"> ShadowRoot* Element::userAgentShadowRoot() const
</span><span class="cx"> {
</span><span class="cx">     if (ShadowRoot* shadowRoot = this-&gt;shadowRoot()) {
</span><del>-        ASSERT(shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent);
</del><ins>+        ASSERT(shadowRoot-&gt;mode() == ShadowRootMode::UserAgent);
</ins><span class="cx">         return shadowRoot;
</span><span class="cx">     }
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -1889,7 +1894,7 @@
</span><span class="cx"> {
</span><span class="cx">     ShadowRoot* shadowRoot = userAgentShadowRoot();
</span><span class="cx">     if (!shadowRoot) {
</span><del>-        addShadowRoot(ShadowRoot::create(document(), ShadowRoot::Mode::UserAgent));
</del><ins>+        addShadowRoot(ShadowRoot::create(document(), ShadowRootMode::UserAgent));
</ins><span class="cx">         shadowRoot = userAgentShadowRoot();
</span><span class="cx">     }
</span><span class="cx">     return *shadowRoot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/Element.h        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;RegionOversetState.h&quot;
</span><span class="cx"> #include &quot;ScrollToOptions.h&quot;
</span><span class="cx"> #include &quot;ScrollTypes.h&quot;
</span><ins>+#include &quot;ShadowRootMode.h&quot;
</ins><span class="cx"> #include &quot;SimulatedClickOptions.h&quot;
</span><span class="cx"> #include &quot;StyleChange.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -270,7 +271,6 @@
</span><span class="cx">     WEBCORE_EXPORT ShadowRoot* shadowRoot() const;
</span><span class="cx">     WEBCORE_EXPORT ShadowRoot* createShadowRoot(ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-    enum class ShadowRootMode { Open, Closed };
</del><span class="cx">     struct ShadowRootInit {
</span><span class="cx">         ShadowRootMode mode;
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.idl (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.idl        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/Element.idl        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -180,8 +180,6 @@
</span><span class="cx">     [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-enum ShadowRootMode { &quot;open&quot;, &quot;closed&quot; };
-
</del><span class="cx"> dictionary ShadowRootInit {
</span><span class="cx">     required ShadowRootMode mode;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoredomInlineStyleSheetOwnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/InlineStyleSheetOwner.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -48,10 +48,10 @@
</span><span class="cx"> {
</span><span class="cx">     auto* shadowRoot = element.containingShadowRoot();
</span><span class="cx">     // User agent shadow trees can't contain document-relative URLs. Use blank URL as base allowing cross-document sharing.
</span><del>-    auto&amp; baseURL = shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent ? blankURL() : element.document().baseURL();
</del><ins>+    auto&amp; baseURL = shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRootMode::UserAgent ? blankURL() : element.document().baseURL();
</ins><span class="cx"> 
</span><span class="cx">     CSSParserContext result = CSSParserContext { element.document(), baseURL, element.document().encoding() };
</span><del>-    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">         result.mode = UASheetMode;
</span><span class="cx">     return result;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -1086,7 +1086,7 @@
</span><span class="cx">                 return true; // treeScopeThatCanAccessOtherNode is a shadow-including inclusive ancestor of this node.
</span><span class="cx">         }
</span><span class="cx">         auto&amp; root = treeScopeThatCanAccessOtherNode-&gt;rootNode();
</span><del>-        if (is&lt;ShadowRoot&gt;(root) &amp;&amp; downcast&lt;ShadowRoot&gt;(root).mode() != ShadowRoot::Mode::Open)
</del><ins>+        if (is&lt;ShadowRoot&gt;(root) &amp;&amp; downcast&lt;ShadowRoot&gt;(root).mode() != ShadowRootMode::Open)
</ins><span class="cx">             break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1110,7 +1110,7 @@
</span><span class="cx"> HTMLSlotElement* Node::assignedSlotForBindings() const
</span><span class="cx"> {
</span><span class="cx">     auto* shadowRoot = parentShadowRoot(*this);
</span><del>-    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRoot::Mode::Open)
</del><ins>+    if (shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRootMode::Open)
</ins><span class="cx">         return shadowRoot-&gt;findAssignedSlot(*this);
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="lines">@@ -1128,7 +1128,7 @@
</span><span class="cx"> bool Node::isInUserAgentShadowTree() const
</span><span class="cx"> {
</span><span class="cx">     auto* shadowRoot = containingShadowRoot();
</span><del>-    return shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent;
</del><ins>+    return shadowRoot &amp;&amp; shadowRoot-&gt;mode() == ShadowRootMode::UserAgent;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Node* Node::nonBoundaryShadowTreeRootNode()
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/ShadowRoot.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> 
</span><span class="cx"> COMPILE_ASSERT(sizeof(ShadowRoot) == sizeof(SameSizeAsShadowRoot), shadowroot_should_stay_small);
</span><span class="cx"> 
</span><del>-ShadowRoot::ShadowRoot(Document&amp; document, Mode type)
</del><ins>+ShadowRoot::ShadowRoot(Document&amp; document, ShadowRootMode type)
</ins><span class="cx">     : DocumentFragment(document, CreateShadowRoot)
</span><span class="cx">     , TreeScope(*this, document)
</span><span class="cx">     , m_type(type)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> ShadowRoot::ShadowRoot(Document&amp; document, std::unique_ptr&lt;SlotAssignment&gt;&amp;&amp; slotAssignment)
</span><span class="cx">     : DocumentFragment(document, CreateShadowRoot)
</span><span class="cx">     , TreeScope(*this, document)
</span><del>-    , m_type(Mode::UserAgent)
</del><ins>+    , m_type(ShadowRootMode::UserAgent)
</ins><span class="cx">     , m_styleScope(std::make_unique&lt;Style::Scope&gt;(*this))
</span><span class="cx">     , m_slotAssignment(WTFMove(slotAssignment))
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRooth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.h (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.h        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/ShadowRoot.h        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;DocumentFragment.h&quot;
</span><span class="cx"> #include &quot;Element.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><ins>+#include &quot;ShadowRootMode.h&quot;
</ins><span class="cx"> #include &quot;TreeScope.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -41,13 +42,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ShadowRoot final : public DocumentFragment, public TreeScope {
</span><span class="cx"> public:
</span><del>-    enum class Mode : uint8_t {
-        UserAgent = 0,
-        Closed,
-        Open,
-    };
-
-    static Ref&lt;ShadowRoot&gt; create(Document&amp; document, Mode type)
</del><ins>+    static Ref&lt;ShadowRoot&gt; create(Document&amp; document, ShadowRootMode type)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new ShadowRoot(document, type));
</span><span class="cx">     }
</span><span class="lines">@@ -74,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx">     Element* activeElement() const;
</span><span class="cx"> 
</span><del>-    Mode mode() const { return m_type; }
</del><ins>+    ShadowRootMode mode() const { return m_type; }
</ins><span class="cx"> 
</span><span class="cx">     void removeAllEventListeners() override;
</span><span class="cx"> 
</span><span class="lines">@@ -92,7 +87,7 @@
</span><span class="cx">     const Vector&lt;Node*&gt;* assignedNodesForSlot(const HTMLSlotElement&amp;);
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    ShadowRoot(Document&amp;, Mode);
</del><ins>+    ShadowRoot(Document&amp;, ShadowRootMode);
</ins><span class="cx"> 
</span><span class="cx">     ShadowRoot(Document&amp;, std::unique_ptr&lt;SlotAssignment&gt;&amp;&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -108,7 +103,7 @@
</span><span class="cx">     void removedFrom(ContainerNode&amp; insertionPoint) override;
</span><span class="cx"> 
</span><span class="cx">     bool m_resetStyleInheritance { false };
</span><del>-    Mode m_type { Mode::UserAgent };
</del><ins>+    ShadowRootMode m_type { ShadowRootMode::UserAgent };
</ins><span class="cx"> 
</span><span class="cx">     Element* m_host { nullptr };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.idl (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.idl        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/ShadowRoot.idl        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -33,7 +33,4 @@
</span><span class="cx">     [TreatNullAs=EmptyString, SetterMayThrowLegacyException] attribute DOMString innerHTML;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-// &quot;user-agent&quot; is a WebKit extension that is not exposed to the Web.
-enum ShadowRootMode { &quot;user-agent&quot;, &quot;closed&quot;, &quot;open&quot; };
-
</del><span class="cx"> ShadowRoot implements DocumentOrShadowRoot;
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootModeh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/dom/ShadowRootMode.h (0 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRootMode.h                                (rev 0)
+++ trunk/Source/WebCore/dom/ShadowRootMode.h        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+/*
+ * Copyright (C) 2016 Apple 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:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+ */
+
+#pragma once
+
+namespace WebCore {
+
+enum class ShadowRootMode : uint8_t {
+    UserAgent,
+    Closed,
+    Open
+};
+
+}
</ins></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootModeidlfromrev208000trunkSourceWebCoredomShadowRootidl"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/dom/ShadowRootMode.idl (from rev 208000, trunk/Source/WebCore/dom/ShadowRoot.idl) (0 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRootMode.idl                                (rev 0)
+++ trunk/Source/WebCore/dom/ShadowRootMode.idl        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -0,0 +1,31 @@
</span><ins>+/*
+* Copyright (C) 2016 Apple 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:
+* 1. Redistributions of source code must retain the above copyright
+*    notice, this list of conditions and the following disclaimer.
+* 2. 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.
+*
+* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 APPLE INC. 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.
+*/
+
+// &quot;user-agent&quot; is a WebKit extension that is not exposed to the Web.
+enum ShadowRootMode {
+    &quot;user-agent&quot;,
+    &quot;closed&quot;,
+    &quot;open&quot;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCoredomSlotAssignmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/SlotAssignment.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/SlotAssignment.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/dom/SlotAssignment.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">         m_slotAssignmentsIsValid = false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (shadowRoot.mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+    if (shadowRoot.mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     recursivelyFireSlotChangeEvent(*slotElement);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSummaryElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSummaryElement.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/html/HTMLSummaryElement.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> Ref&lt;HTMLSummaryElement&gt; HTMLSummaryElement::create(const QualifiedName&amp; tagName, Document&amp; document)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;HTMLSummaryElement&gt; summary = adoptRef(*new HTMLSummaryElement(tagName, document));
</span><del>-    summary-&gt;addShadowRoot(ShadowRoot::create(document, ShadowRoot::Mode::UserAgent));
</del><ins>+    summary-&gt;addShadowRoot(ShadowRoot::create(document, ShadowRootMode::UserAgent));
</ins><span class="cx">     return summary;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -1289,14 +1289,14 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Inspector::Protocol::DOM::ShadowRootType shadowRootType(ShadowRoot::Mode mode)
</del><ins>+static Inspector::Protocol::DOM::ShadowRootType shadowRootType(ShadowRootMode mode)
</ins><span class="cx"> {
</span><span class="cx">     switch (mode) {
</span><del>-    case ShadowRoot::Mode::UserAgent:
</del><ins>+    case ShadowRootMode::UserAgent:
</ins><span class="cx">         return Inspector::Protocol::DOM::ShadowRootType::UserAgent;
</span><del>-    case ShadowRoot::Mode::Closed:
</del><ins>+    case ShadowRootMode::Closed:
</ins><span class="cx">         return Inspector::Protocol::DOM::ShadowRootType::Closed;
</span><del>-    case ShadowRoot::Mode::Open:
</del><ins>+    case ShadowRootMode::Open:
</ins><span class="cx">         return Inspector::Protocol::DOM::ShadowRootType::Open;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestResultcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestResult.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (node.isInShadowTree()) {
</span><span class="cx">         if (ShadowRoot* root = node.containingShadowRoot()) {
</span><del>-            if (root-&gt;mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+            if (root-&gt;mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">                 return root-&gt;host();
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -1619,7 +1619,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (ShadowRoot* root = element()-&gt;containingShadowRoot()) {
</span><del>-        if (root-&gt;mode() == ShadowRoot::Mode::UserAgent) {
</del><ins>+        if (root-&gt;mode() == ShadowRootMode::UserAgent) {
</ins><span class="cx">             if (Element* shadowHost = element()-&gt;shadowHost())
</span><span class="cx">                 return shadowHost-&gt;renderer()-&gt;getUncachedPseudoStyle(PseudoStyleRequest(SELECTION));
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -3097,7 +3097,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (Element* element = renderer.element()) {
</span><span class="cx">         if (ShadowRoot* shadowRoot = element-&gt;containingShadowRoot()) {
</span><del>-            if (shadowRoot-&gt;mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+            if (shadowRoot-&gt;mode() == ShadowRootMode::UserAgent)
</ins><span class="cx">                 return shadowRoot-&gt;host()-&gt;renderer();
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleScope.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleScope.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/style/StyleScope.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!m_shadowRoot)
</span><span class="cx">         return false;
</span><del>-    if (m_shadowRoot-&gt;mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+    if (m_shadowRoot-&gt;mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">         return false;
</span><span class="cx">     // If we have stylesheets in the user agent shadow tree use per-scope resolver.
</span><span class="cx">     if (!m_styleSheetCandidateNodes.isEmpty())
</span><span class="lines">@@ -520,7 +520,7 @@
</span><span class="cx">     if (!m_shadowRoot) {
</span><span class="cx">         for (auto* descendantShadowRoot : m_document.inDocumentShadowRoots()) {
</span><span class="cx">             // Stylesheets is author shadow roots are are potentially affected.
</span><del>-            if (descendantShadowRoot-&gt;mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+            if (descendantShadowRoot-&gt;mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">                 descendantShadowRoot-&gt;styleScope().scheduleUpdate(UpdateType::ContentsOrInterpretation);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGElement.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGElement.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/svg/SVGElement.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx">     auto* root = containingShadowRoot();
</span><span class="cx">     if (!root)
</span><span class="cx">         return nullptr;
</span><del>-    if (root-&gt;mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+    if (root-&gt;mode() != ShadowRootMode::UserAgent)
</ins><span class="cx">         return nullptr;
</span><span class="cx">     auto* host = root-&gt;host();
</span><span class="cx">     if (!is&lt;SVGUseElement&gt;(host))
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (208000 => 208001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2016-10-27 20:08:51 UTC (rev 208000)
+++ trunk/Source/WebCore/testing/Internals.cpp        2016-10-27 20:23:06 UTC (rev 208001)
</span><span class="lines">@@ -817,11 +817,11 @@
</span><span class="cx">         return Exception { INVALID_ACCESS_ERR };
</span><span class="cx"> 
</span><span class="cx">     switch (downcast&lt;ShadowRoot&gt;(root).mode()) {
</span><del>-    case ShadowRoot::Mode::UserAgent:
</del><ins>+    case ShadowRootMode::UserAgent:
</ins><span class="cx">         return String(&quot;UserAgentShadowRoot&quot;);
</span><del>-    case ShadowRoot::Mode::Closed:
</del><ins>+    case ShadowRootMode::Closed:
</ins><span class="cx">         return String(&quot;ClosedShadowRoot&quot;);
</span><del>-    case ShadowRoot::Mode::Open:
</del><ins>+    case ShadowRootMode::Open:
</ins><span class="cx">         return String(&quot;OpenShadowRoot&quot;);
</span><span class="cx">     default:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span></span></pre>
</div>
</div>

</body>
</html>