<!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 <cdumez@apple.com>
</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 <cdumez@apple.com>
+
</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 "JSSVGZoomAndPan.cpp"
</span><span class="cx"> #include "JSSVGZoomEvent.cpp"
</span><span class="cx"> #include "JSShadowRoot.cpp"
</span><ins>+#include "JSShadowRootMode.cpp"
</ins><span class="cx"> #include "JSStorage.cpp"
</span><span class="cx"> #if ENABLE(QUOTA)
</span><span class="cx"> #include "JSStorageErrorCallback.cpp"
</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 = "<group>"; };
</span><span class="cx">                 46DB7D591B20FE58005651B2 /* VNodeTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VNodeTracker.h; sourceTree = "<group>"; };
</span><span class="cx">                 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PowerObserverMac.h; sourceTree = "<group>"; };
</span><ins>+                46DFF4961DC2601300B80B48 /* ShadowRootMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadowRootMode.h; sourceTree = "<group>"; };
+                46DFF4971DC2601300B80B48 /* ShadowRootMode.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ShadowRootMode.idl; sourceTree = "<group>"; };
+                46DFF4991DC261F900B80B48 /* JSShadowRootMode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSShadowRootMode.cpp; sourceTree = "<group>"; };
+                46DFF49A1DC261F900B80B48 /* JSShadowRootMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSShadowRootMode.h; sourceTree = "<group>"; };
</ins><span class="cx">                 46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionTraversal.h; sourceTree = "<group>"; };
</span><span class="cx">                 46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMNamedFlowCollectionCustom.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEWebKitBridge.cpp; sourceTree = "<group>"; };
</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 && m_pseudoStyleRequest.pseudoId != NOPSEUDO), "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.");
</span><span class="cx">
</span><span class="cx"> auto* shadowRoot = m_element.containingShadowRoot();
</span><del>- if (shadowRoot && shadowRoot->mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+ if (shadowRoot && shadowRoot->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& 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& 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& matchRequest, StyleResolver::RuleRange& ruleRange)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(matchRequest.ruleSet);
</span><del>- ASSERT(m_element.containingShadowRoot()->mode() == ShadowRoot::Mode::UserAgent);
</del><ins>+ ASSERT(m_element.containingShadowRoot()->mode() == ShadowRootMode::UserAgent);
</ins><span class="cx">
</span><span class="cx"> auto& 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->shadowPseudoId() != context.selector->value())
</span><span class="cx"> return MatchResult::fails(Match::SelectorFailsLocally);
</span><span class="cx">
</span><del>- if (context.selector->isWebKitCustomPseudoElement() && root->mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+ if (context.selector->isWebKitCustomPseudoElement() && root->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->isCustomElementUpgradeCandidate() && element->tagQName() == elementInterface.name())
</span><span class="cx"> element->enqueueToUpgrade(elementInterface);
</span><span class="cx"> if (auto* shadowRoot = element->shadowRoot()) {
</span><del>- if (shadowRoot->mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+ if (shadowRoot->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->isInShadowTree())
</span><span class="cx"> return element;
</span><del>- return element->containingShadowRoot()->mode() == ShadowRoot::Mode::UserAgent ? nullptr : element;
</del><ins>+ return element->containingShadowRoot()->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(&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->mode() != ShadowRoot::Mode::Open) {
</del><ins>+ if (root->mode() != ShadowRootMode::Open) {
</ins><span class="cx"> if (!JSC::jsCast<JSDOMGlobalObject*>(state.lexicalGlobalObject())->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->shadowRoot()) {
</span><del>- ASSERT(shadowRoot->mode() == ShadowRoot::Mode::UserAgent);
</del><ins>+ ASSERT(shadowRoot->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 "RegionOversetState.h"
</span><span class="cx"> #include "ScrollToOptions.h"
</span><span class="cx"> #include "ScrollTypes.h"
</span><ins>+#include "ShadowRootMode.h"
</ins><span class="cx"> #include "SimulatedClickOptions.h"
</span><span class="cx"> #include "StyleChange.h"
</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&);
</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 { "open", "closed" };
-
</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& baseURL = shadowRoot && shadowRoot->mode() == ShadowRoot::Mode::UserAgent ? blankURL() : element.document().baseURL();
</del><ins>+ auto& baseURL = shadowRoot && shadowRoot->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 && shadowRoot->mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+ if (shadowRoot && shadowRoot->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& root = treeScopeThatCanAccessOtherNode->rootNode();
</span><del>- if (is<ShadowRoot>(root) && downcast<ShadowRoot>(root).mode() != ShadowRoot::Mode::Open)
</del><ins>+ if (is<ShadowRoot>(root) && downcast<ShadowRoot>(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 && shadowRoot->mode() == ShadowRoot::Mode::Open)
</del><ins>+ if (shadowRoot && shadowRoot->mode() == ShadowRootMode::Open)
</ins><span class="cx"> return shadowRoot->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 && shadowRoot->mode() == ShadowRoot::Mode::UserAgent;
</del><ins>+ return shadowRoot && shadowRoot->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& document, Mode type)
</del><ins>+ShadowRoot::ShadowRoot(Document& 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& document, std::unique_ptr<SlotAssignment>&& 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<Style::Scope>(*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 "DocumentFragment.h"
</span><span class="cx"> #include "Element.h"
</span><span class="cx"> #include "ExceptionCode.h"
</span><ins>+#include "ShadowRootMode.h"
</ins><span class="cx"> #include "TreeScope.h"
</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<ShadowRoot> create(Document& document, Mode type)
</del><ins>+ static Ref<ShadowRoot> create(Document& 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<Node*>* assignedNodesForSlot(const HTMLSlotElement&);
</span><span class="cx">
</span><span class="cx"> protected:
</span><del>- ShadowRoot(Document&, Mode);
</del><ins>+ ShadowRoot(Document&, ShadowRootMode);
</ins><span class="cx">
</span><span class="cx"> ShadowRoot(Document&, std::unique_ptr<SlotAssignment>&&);
</span><span class="cx">
</span><span class="lines">@@ -108,7 +103,7 @@
</span><span class="cx"> void removedFrom(ContainerNode& 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>-// "user-agent" is a WebKit extension that is not exposed to the Web.
-enum ShadowRootMode { "user-agent", "closed", "open" };
-
</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.
+*/
+
+// "user-agent" is a WebKit extension that is not exposed to the Web.
+enum ShadowRootMode {
+ "user-agent",
+ "closed",
+ "open"
+};
</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<HTMLSummaryElement> HTMLSummaryElement::create(const QualifiedName& tagName, Document& document)
</span><span class="cx"> {
</span><span class="cx"> Ref<HTMLSummaryElement> summary = adoptRef(*new HTMLSummaryElement(tagName, document));
</span><del>- summary->addShadowRoot(ShadowRoot::create(document, ShadowRoot::Mode::UserAgent));
</del><ins>+ summary->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->mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+ if (root->mode() == ShadowRootMode::UserAgent)
</ins><span class="cx"> return root->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()->containingShadowRoot()) {
</span><del>- if (root->mode() == ShadowRoot::Mode::UserAgent) {
</del><ins>+ if (root->mode() == ShadowRootMode::UserAgent) {
</ins><span class="cx"> if (Element* shadowHost = element()->shadowHost())
</span><span class="cx"> return shadowHost->renderer()->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->containingShadowRoot()) {
</span><del>- if (shadowRoot->mode() == ShadowRoot::Mode::UserAgent)
</del><ins>+ if (shadowRoot->mode() == ShadowRootMode::UserAgent)
</ins><span class="cx"> return shadowRoot->host()->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->mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+ if (m_shadowRoot->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->mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+ if (descendantShadowRoot->mode() != ShadowRootMode::UserAgent)
</ins><span class="cx"> descendantShadowRoot->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->mode() != ShadowRoot::Mode::UserAgent)
</del><ins>+ if (root->mode() != ShadowRootMode::UserAgent)
</ins><span class="cx"> return nullptr;
</span><span class="cx"> auto* host = root->host();
</span><span class="cx"> if (!is<SVGUseElement>(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<ShadowRoot>(root).mode()) {
</span><del>- case ShadowRoot::Mode::UserAgent:
</del><ins>+ case ShadowRootMode::UserAgent:
</ins><span class="cx"> return String("UserAgentShadowRoot");
</span><del>- case ShadowRoot::Mode::Closed:
</del><ins>+ case ShadowRootMode::Closed:
</ins><span class="cx"> return String("ClosedShadowRoot");
</span><del>- case ShadowRoot::Mode::Open:
</del><ins>+ case ShadowRootMode::Open:
</ins><span class="cx"> return String("OpenShadowRoot");
</span><span class="cx"> default:
</span><span class="cx"> ASSERT_NOT_REACHED();
</span></span></pre>
</div>
</div>
</body>
</html>