<!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>[210293] 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/210293">210293</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2017-01-04 15:04:18 -0800 (Wed, 04 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove bindings/generic and distribute its contents appropriately
https://bugs.webkit.org/show_bug.cgi?id=166700

Rubber-stamped by Alex Christensen.

* CMakeLists.txt:
* DerivedSources.make:
* PlatformMac.cmake:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj:
* bindings/IDLTypes.h: Copied from Source/WebCore/bindings/generic/IDLTypes.h.
* bindings/generic/ActiveDOMCallback.cpp: Removed.
* bindings/generic/ActiveDOMCallback.h: Removed.
* bindings/generic/IDLTypes.h: Removed.
* bindings/generic/RuntimeEnabledFeatures.cpp: Removed.
* bindings/generic/RuntimeEnabledFeatures.h: Removed.
* dom/ActiveDOMCallback.cpp: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.cpp.
* dom/ActiveDOMCallback.h: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.h.
* page/RuntimeEnabledFeatures.cpp: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp.
* page/RuntimeEnabledFeatures.h: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h.
Move files around.</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="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCorePlatformMaccmake">trunk/Source/WebCore/PlatformMac.cmake</a></li>
<li><a href="#trunkSourceWebCorePlatformWincmake">trunk/Source/WebCore/PlatformWin.cmake</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsIDLTypesh">trunk/Source/WebCore/bindings/IDLTypes.h</a></li>
<li><a href="#trunkSourceWebCoredomActiveDOMCallbackcpp">trunk/Source/WebCore/dom/ActiveDOMCallback.cpp</a></li>
<li><a href="#trunkSourceWebCoredomActiveDOMCallbackh">trunk/Source/WebCore/dom/ActiveDOMCallback.h</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturescpp">trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/Source/WebCore/bindings/generic/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/CMakeLists.txt        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx">     &quot;${WEBCORE_DIR}/accessibility&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/animation&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/bindings&quot;
</span><del>-    &quot;${WEBCORE_DIR}/bindings/generic&quot;
</del><span class="cx">     &quot;${WEBCORE_DIR}/bindings/js&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/bridge&quot;
</span><span class="cx">     &quot;${WEBCORE_DIR}/bridge/c&quot;
</span><span class="lines">@@ -151,7 +150,6 @@
</span><span class="cx">     Modules/webdatabase
</span><span class="cx">     Modules/websockets
</span><span class="cx"> 
</span><del>-    bindings/generic
</del><span class="cx">     bindings/js
</span><span class="cx"> 
</span><span class="cx">     html/canvas
</span><span class="lines">@@ -1066,9 +1064,6 @@
</span><span class="cx">     animation/KeyframeEffect.cpp
</span><span class="cx">     animation/WebAnimation.cpp
</span><span class="cx"> 
</span><del>-    bindings/generic/ActiveDOMCallback.cpp
-    bindings/generic/RuntimeEnabledFeatures.cpp
-
</del><span class="cx">     bindings/js/CachedModuleScript.cpp
</span><span class="cx">     bindings/js/CachedModuleScriptLoader.cpp
</span><span class="cx">     bindings/js/CallbackFunction.cpp
</span><span class="lines">@@ -1381,6 +1376,7 @@
</span><span class="cx"> 
</span><span class="cx">     cssjit/SelectorCompiler.cpp
</span><span class="cx"> 
</span><ins>+    dom/ActiveDOMCallback.cpp
</ins><span class="cx">     dom/ActiveDOMCallbackMicrotask.cpp
</span><span class="cx">     dom/ActiveDOMObject.cpp
</span><span class="cx">     dom/AnimationEvent.cpp
</span><span class="lines">@@ -2053,6 +2049,7 @@
</span><span class="cx">     page/ResourceUsageData.cpp
</span><span class="cx">     page/ResourceUsageOverlay.cpp
</span><span class="cx">     page/ResourceUsageThread.cpp
</span><ins>+    page/RuntimeEnabledFeatures.cpp
</ins><span class="cx">     page/Screen.cpp
</span><span class="cx">     page/SecurityOrigin.cpp
</span><span class="cx">     page/SecurityOriginData.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/ChangeLog        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -1,5 +1,29 @@
</span><span class="cx"> 2017-01-04  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><ins>+        Remove bindings/generic and distribute its contents appropriately
+        https://bugs.webkit.org/show_bug.cgi?id=166700
+
+        Rubber-stamped by Alex Christensen.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformMac.cmake:
+        * PlatformWin.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/IDLTypes.h: Copied from Source/WebCore/bindings/generic/IDLTypes.h.
+        * bindings/generic/ActiveDOMCallback.cpp: Removed.
+        * bindings/generic/ActiveDOMCallback.h: Removed.
+        * bindings/generic/IDLTypes.h: Removed.
+        * bindings/generic/RuntimeEnabledFeatures.cpp: Removed.
+        * bindings/generic/RuntimeEnabledFeatures.h: Removed.
+        * dom/ActiveDOMCallback.cpp: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.cpp.
+        * dom/ActiveDOMCallback.h: Copied from Source/WebCore/bindings/generic/ActiveDOMCallback.h.
+        * page/RuntimeEnabledFeatures.cpp: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp.
+        * page/RuntimeEnabledFeatures.h: Copied from Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h.
+        Move files around.
+
+2017-01-04  Sam Weinig  &lt;sam@webkit.org&gt;
+
</ins><span class="cx">         Add Exception accessor to ExceptionOr to remove unnecessary releases
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=166692
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/DerivedSources.make        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -51,7 +51,6 @@
</span><span class="cx">     $(WebCore)/Modules/webdriver \
</span><span class="cx">     $(WebCore)/Modules/websockets \
</span><span class="cx">     $(WebCore)/animation \
</span><del>-    $(WebCore)/bindings/generic \
</del><span class="cx">     $(WebCore)/bindings/js \
</span><span class="cx">     $(WebCore)/crypto \
</span><span class="cx">     $(WebCore)/crypto/parameters \
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformMaccmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformMac.cmake (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformMac.cmake        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/PlatformMac.cmake        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -596,7 +596,6 @@
</span><span class="cx">     Modules/indexeddb/shared
</span><span class="cx">     Modules/indexeddb/server
</span><span class="cx"> 
</span><del>-    bindings/generic
</del><span class="cx">     bindings/js
</span><span class="cx"> 
</span><span class="cx">     bridge/objc
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformWincmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformWin.cmake (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformWin.cmake        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/PlatformWin.cmake        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -201,7 +201,6 @@
</span><span class="cx"> 
</span><span class="cx">     accessibility/win
</span><span class="cx"> 
</span><del>-    bindings/generic
</del><span class="cx">     bindings/js
</span><span class="cx"> 
</span><span class="cx">     bridge/c
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (210292 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-01-04 23:00:00 UTC (rev 210292)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -2836,6 +2836,11 @@
</span><span class="cx">                 7C4C96DF1AD4483500365A50 /* JSReadableStreamDefaultReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultReader.h */; };
</span><span class="cx">                 7C4C96E31AD44ABF00365A50 /* LaunchServicesSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4C96E21AD44ABF00365A50 /* LaunchServicesSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7C4EDD741A7B607800198C4D /* FontCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C4EDD731A7B607800198C4D /* FontCocoa.mm */; };
</span><ins>+                7C5222961E1DAE03002CB8F7 /* IDLTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5222951E1DADF8002CB8F7 /* IDLTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                7C5222991E1DAE1C002CB8F7 /* ActiveDOMCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                7C52229A1E1DAE20002CB8F7 /* ActiveDOMCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */; };
+                7C52229D1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */; };
+                7C52229E1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 7C522D4B15B477E8009B7C95 /* InspectorOverlay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */; };
</span><span class="cx">                 7C5343FC17B74B63004232F0 /* JSMediaQueryListListener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C5343FA17B74B63004232F0 /* JSMediaQueryListListener.cpp */; };
</span><span class="cx">                 7C5343FD17B74B63004232F0 /* JSMediaQueryListListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C5343FB17B74B63004232F0 /* JSMediaQueryListListener.h */; };
</span><span class="lines">@@ -2886,7 +2891,6 @@
</span><span class="cx">                 7C93F34E1AA6BF0700A98BAB /* ContentExtensionCompiler.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C93F34C1AA6BF0700A98BAB /* ContentExtensionCompiler.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7C9DBFED1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7C9DBFEB1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp */; };
</span><span class="cx">                 7C9DBFEE1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C9DBFEC1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h */; };
</span><del>-                7CC16FFB1D77375300CE0877 /* IDLTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CC16FFA1D77375300CE0877 /* IDLTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 7CC289DF1AA0FE5D009A9CE3 /* URLRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = CDEE393817974274001D7580 /* URLRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7CC564B818BABEA6001B9652 /* TelephoneNumberDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CC564B618BABEA6001B9652 /* TelephoneNumberDetector.h */; };
</span><span class="cx">                 7CC564BA18BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */; };
</span><span class="lines">@@ -3220,8 +3224,6 @@
</span><span class="cx">                 8AF4E55511DC5A36000ED3DE /* PerformanceNavigation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AF4E55211DC5A36000ED3DE /* PerformanceNavigation.cpp */; };
</span><span class="cx">                 8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55311DC5A36000ED3DE /* PerformanceNavigation.h */; };
</span><span class="cx">                 8AF4E55C11DC5A63000ED3DE /* PerformanceTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */; };
</span><del>-                8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */; };
-                8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 8E4C96DC1AD4483500365A50 /* JSFetchResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */; };
</span><span class="cx">                 8E4C96DD1AD4483500365A50 /* JSFetchResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E4C96D91AD4483500365A50 /* JSFetchResponse.h */; };
</span><span class="cx">                 8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F6756191288B17B0047ACA3 /* EventQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -5136,8 +5138,6 @@
</span><span class="cx">                 B5B65874186FDE4C009C26E8 /* RenderPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = ADE16736181050C300463A2E /* RenderPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 B5B7A17017C10AA800E4AA0A /* ElementData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5B7A16F17C1080600E4AA0A /* ElementData.cpp */; };
</span><span class="cx">                 B5B7A17117C10AC000E4AA0A /* ElementData.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B7A16E17C1048000E4AA0A /* ElementData.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */; };
-                B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 B6566270120B1227006EA85C /* JSIDBTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = B656626E120B1227006EA85C /* JSIDBTransaction.h */; };
</span><span class="cx">                 B658FFA11522EF3A00DD5595 /* JSRadioNodeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B658FF9F1522EF3A00DD5595 /* JSRadioNodeList.cpp */; };
</span><span class="cx">                 B658FFA21522EF3A00DD5595 /* JSRadioNodeList.h in Headers */ = {isa = PBXBuildFile; fileRef = B658FFA01522EF3A00DD5595 /* JSRadioNodeList.h */; };
</span><span class="lines">@@ -10323,6 +10323,11 @@
</span><span class="cx">                 7C4C96DB1AD4483500365A50 /* JSReadableStreamDefaultReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSReadableStreamDefaultReader.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C4C96E21AD44ABF00365A50 /* LaunchServicesSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchServicesSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C4EDD731A7B607800198C4D /* FontCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FontCocoa.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                7C5222951E1DADF8002CB8F7 /* IDLTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDLTypes.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMCallback.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMCallback.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RuntimeEnabledFeatures.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeEnabledFeatures.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorOverlay.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C522D4A15B478B2009B7C95 /* InspectorOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorOverlay.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C5343FA17B74B63004232F0 /* JSMediaQueryListListener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaQueryListListener.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -10394,7 +10399,6 @@
</span><span class="cx">                 7C9DBFEA1A9C489F000D6B25 /* HTMLAttachmentElement.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HTMLAttachmentElement.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C9DBFEB1A9C49B1000D6B25 /* JSHTMLAttachmentElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLAttachmentElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7C9DBFEC1A9C49B1000D6B25 /* JSHTMLAttachmentElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLAttachmentElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                7CC16FFA1D77375300CE0877 /* IDLTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IDLTypes.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 7CC564B618BABEA6001B9652 /* TelephoneNumberDetector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelephoneNumberDetector.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CC564B918BAC720001B9652 /* TelephoneNumberDetectorCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TelephoneNumberDetectorCocoa.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CC6993E191EC5F500AF2270 /* JSWebKitNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebKitNamespace.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -10804,8 +10808,6 @@
</span><span class="cx">                 8AF4E55411DC5A36000ED3DE /* PerformanceNavigation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceNavigation.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8AF4E55911DC5A63000ED3DE /* PerformanceTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PerformanceTiming.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8AF4E55A11DC5A63000ED3DE /* PerformanceTiming.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PerformanceTiming.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RuntimeEnabledFeatures.cpp; path = generic/RuntimeEnabledFeatures.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RuntimeEnabledFeatures.h; path = generic/RuntimeEnabledFeatures.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 8E4C96D81AD4483500365A50 /* JSFetchResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFetchResponse.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8E4C96D91AD4483500365A50 /* JSFetchResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFetchResponse.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 8F6756191288B17B0047ACA3 /* EventQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventQueue.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -11075,7 +11077,7 @@
</span><span class="cx">                 93F6F1EB127F70B10055CB06 /* WebGLContextEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGLContextEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 93F6F1EC127F70B10055CB06 /* WebGLContextEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGLContextEvent.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGenerator.pm; path = scripts/CodeGenerator.pm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGeneratorJS.pm; path = ../scripts/CodeGeneratorJS.pm; sourceTree = &quot;&lt;group&gt;&quot;; wrapsLines = 0; };
</del><ins>+                93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = CodeGeneratorJS.pm; path = scripts/CodeGeneratorJS.pm; sourceTree = &quot;&lt;group&gt;&quot;; wrapsLines = 0; };
</ins><span class="cx">                 93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = &quot;generate-bindings.pl&quot;; path = &quot;scripts/generate-bindings.pl&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 93F925410F7EF5B8007E37C9 /* RadioButtonGroups.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RadioButtonGroups.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 93F925420F7EF5B8007E37C9 /* RadioButtonGroups.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RadioButtonGroups.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -13011,8 +13013,6 @@
</span><span class="cx">                 B5A684230FFABEAA00D24689 /* SQLiteFileSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLiteFileSystem.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B5B7A16E17C1048000E4AA0A /* ElementData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ElementData.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B5B7A16F17C1080600E4AA0A /* ElementData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ElementData.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMCallback.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMCallback.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 B656626E120B1227006EA85C /* JSIDBTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSIDBTransaction.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B658FF9F1522EF3A00DD5595 /* JSRadioNodeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRadioNodeList.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 B658FFA01522EF3A00DD5595 /* JSRadioNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSRadioNodeList.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -18030,6 +18030,8 @@
</span><span class="cx">                                 ADBAD6ED1BCDD95000381325 /* ResourceUsageOverlay.h */,
</span><span class="cx">                                 A5071E831C56D079009951BE /* ResourceUsageThread.cpp */,
</span><span class="cx">                                 A5071E841C56D079009951BE /* ResourceUsageThread.h */,
</span><ins>+                                7C52229B1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp */,
+                                7C52229C1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h */,
</ins><span class="cx">                                 BCEC01BA0C274DAC009F4EC9 /* Screen.cpp */,
</span><span class="cx">                                 BCEC01BB0C274DAC009F4EC9 /* Screen.h */,
</span><span class="cx">                                 BCEC01BC0C274DAC009F4EC9 /* Screen.idl */,
</span><span class="lines">@@ -18380,6 +18382,24 @@
</span><span class="cx">                         path = cocoa;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                7C5222941E1DADDC002CB8F7 /* scripts */ = {
+                        isa = PBXGroup;
+                        children = (
+                                93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */,
+                                93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */,
+                                93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */,
+                                7C6136F61710C35200FF4A57 /* Hasher.pm */,
+                                A83B533814F399BB00720D9D /* IDLAttributes.txt */,
+                                14813BF309EDF88E00F757E1 /* IDLParser.pm */,
+                                7C6136F71710C35200FF4A57 /* InFilesCompiler.pm */,
+                                7C6136F81710C35200FF4A57 /* InFilesParser.pm */,
+                                A83B538014FBB2EC00720D9D /* preprocess-idls.pl */,
+                                C0F2A43F13869A280066C534 /* preprocessor.pm */,
+                                7C6136F91710C35200FF4A57 /* StaticString.pm */,
+                        );
+                        name = scripts;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 7E4DE10B198B10810051CB02 /* cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -21954,33 +21974,12 @@
</span><span class="cx">                         path = cocoa;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><del>-                B5D31DF711CF60E5009F22B4 /* generic */ = {
-                        isa = PBXGroup;
-                        children = (
-                                B5D31DF811CF610B009F22B4 /* ActiveDOMCallback.cpp */,
-                                B5D31DF911CF610B009F22B4 /* ActiveDOMCallback.h */,
-                                7CC16FFA1D77375300CE0877 /* IDLTypes.h */,
-                        );
-                        path = generic;
-                        sourceTree = &quot;&lt;group&gt;&quot;;
-                };
</del><span class="cx">                 BC1A3790097C6F970019F3D8 /* bindings */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                B5D31DF711CF60E5009F22B4 /* generic */,
</del><span class="cx">                                 BC1A3793097C6FB10019F3D8 /* js */,
</span><del>-                                93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */,
-                                93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */,
-                                7C6136F61710C35200FF4A57 /* Hasher.pm */,
-                                A83B533814F399BB00720D9D /* IDLAttributes.txt */,
-                                14813BF309EDF88E00F757E1 /* IDLParser.pm */,
-                                7C6136F71710C35200FF4A57 /* InFilesCompiler.pm */,
-                                7C6136F81710C35200FF4A57 /* InFilesParser.pm */,
-                                A83B538014FBB2EC00720D9D /* preprocess-idls.pl */,
-                                C0F2A43F13869A280066C534 /* preprocessor.pm */,
-                                8C6EA61711EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp */,
-                                8C6EA61811EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h */,
-                                7C6136F91710C35200FF4A57 /* StaticString.pm */,
</del><ins>+                                7C5222941E1DADDC002CB8F7 /* scripts */,
+                                7C5222951E1DADF8002CB8F7 /* IDLTypes.h */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = bindings;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -22002,7 +22001,6 @@
</span><span class="cx">                                 E307DEC71D81E44800141CAF /* CachedModuleScriptLoader.h */,
</span><span class="cx">                                 E307DEC81D81E44800141CAF /* CachedModuleScriptLoaderClient.h */,
</span><span class="cx">                                 BCD533630ED6848900887468 /* CachedScriptSourceProvider.h */,
</span><del>-                                93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */,
</del><span class="cx">                                 0F60F3291DFBB10400416D6C /* CommonVM.cpp */,
</span><span class="cx">                                 0F60F32A1DFBB10400416D6C /* CommonVM.h */,
</span><span class="cx">                                 B56576E717DA94E200A56BDC /* DOMConstructorWithDocument.h */,
</span><span class="lines">@@ -23943,6 +23941,8 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 CE2616A4187E65C1007955F3 /* ios */,
</span><span class="cx">                                 2D5036661BCDDDC400E20BB3 /* mac */,
</span><ins>+                                7C5222971E1DAE16002CB8F7 /* ActiveDOMCallback.cpp */,
+                                7C5222981E1DAE16002CB8F7 /* ActiveDOMCallback.h */,
</ins><span class="cx">                                 7CD0BA021B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp */,
</span><span class="cx">                                 7CD0BA031B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h */,
</span><span class="cx">                                 E1C4DE6D0EA75C650023CCD6 /* ActiveDOMObject.cpp */,
</span><span class="lines">@@ -24849,7 +24849,6 @@
</span><span class="cx">                                 29A812310FBB9C1D00510293 /* AccessibilityTableRow.h in Headers */,
</span><span class="cx">                                 A91C9FBF1B6586DE00AFFD54 /* AccessibilityTree.h in Headers */,
</span><span class="cx">                                 A91C9FC31B659A6700AFFD54 /* AccessibilityTreeItem.h in Headers */,
</span><del>-                                B5D31DFB11CF610B009F22B4 /* ActiveDOMCallback.h in Headers */,
</del><span class="cx">                                 7CD0BA051B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.h in Headers */,
</span><span class="cx">                                 E1C4DE690EA75C1E0023CCD6 /* ActiveDOMObject.h in Headers */,
</span><span class="cx">                                 724EE5501DC80D7F00A91FFB /* ActivityState.h in Headers */,
</span><span class="lines">@@ -25931,7 +25930,6 @@
</span><span class="cx">                                 1A71D57C0F33819000F9CE4E /* IdentifierRep.h in Headers */,
</span><span class="cx">                                 49E911C50EF86D47009D0CAF /* IdentityTransformOperation.h in Headers */,
</span><span class="cx">                                 C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */,
</span><del>-                                7CC16FFB1D77375300CE0877 /* IDLTypes.h in Headers */,
</del><span class="cx">                                 C3CF17A515B0063F00276D39 /* IdTargetObserver.h in Headers */,
</span><span class="cx">                                 C3CF17A715B0063F00276D39 /* IdTargetObserverRegistry.h in Headers */,
</span><span class="cx">                                 8AB4BC77126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h in Headers */,
</span><span class="lines">@@ -26686,6 +26684,7 @@
</span><span class="cx">                                 1A762C780A074F2600989F5B /* JSXPathNSResolver.h in Headers */,
</span><span class="cx">                                 1A762C7A0A074F2600989F5B /* JSXPathResult.h in Headers */,
</span><span class="cx">                                 BCEFE1EB0DCA5F6400739219 /* JSXSLTProcessor.h in Headers */,
</span><ins>+                                7C52229E1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.h in Headers */,
</ins><span class="cx">                                 85031B440A44EFC700F992E0 /* KeyboardEvent.h in Headers */,
</span><span class="cx">                                 1AE00D59182DAC8D00087DD7 /* KeyedCoding.h in Headers */,
</span><span class="cx">                                 517A63C51B74318F00E7DCDC /* KeyedDecoderCF.h in Headers */,
</span><span class="lines">@@ -27459,7 +27458,6 @@
</span><span class="cx">                                 1A569D230D7E2B82007C3983 /* runtime_object.h in Headers */,
</span><span class="cx">                                 1A569D250D7E2B82007C3983 /* runtime_root.h in Headers */,
</span><span class="cx">                                 293EAE1F1356B2FE0067ACF9 /* RuntimeApplicationChecks.h in Headers */,
</span><del>-                                8C6EA61A11EF7E0400FD8EE3 /* RuntimeEnabledFeatures.h in Headers */,
</del><span class="cx">                                 CDD7089718359F6F002B3DC6 /* SampleMap.h in Headers */,
</span><span class="cx">                                 49E911CB0EF86D47009D0CAF /* ScaleTransformOperation.h in Headers */,
</span><span class="cx">                                 5DFE8F570D16477C0076E937 /* ScheduledAction.h in Headers */,
</span><span class="lines">@@ -27792,6 +27790,7 @@
</span><span class="cx">                                 B22279D40D00BF220071B782 /* SVGFEDiffuseLightingElement.h in Headers */,
</span><span class="cx">                                 B22279D70D00BF220071B782 /* SVGFEDisplacementMapElement.h in Headers */,
</span><span class="cx">                                 B22279DA0D00BF220071B782 /* SVGFEDistantLightElement.h in Headers */,
</span><ins>+                                7C5222991E1DAE1C002CB8F7 /* ActiveDOMCallback.h in Headers */,
</ins><span class="cx">                                 4358E8861360A33B00E4748C /* SVGFEDropShadowElement.h in Headers */,
</span><span class="cx">                                 B22279DD0D00BF220071B782 /* SVGFEFloodElement.h in Headers */,
</span><span class="cx">                                 B22279E00D00BF220071B782 /* SVGFEFuncAElement.h in Headers */,
</span><span class="lines">@@ -27878,6 +27877,7 @@
</span><span class="cx">                                 83C1D427178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h in Headers */,
</span><span class="cx">                                 83C1D428178D5AB400141E68 /* SVGPathSegCurvetoCubicRel.h in Headers */,
</span><span class="cx">                                 B2227A690D00BF220071B782 /* SVGPathSegCurvetoCubicSmooth.h in Headers */,
</span><ins>+                                7C5222961E1DAE03002CB8F7 /* IDLTypes.h in Headers */,
</ins><span class="cx">                                 83C1D429178D5AB400141E68 /* SVGPathSegCurvetoCubicSmoothAbs.h in Headers */,
</span><span class="cx">                                 83C1D42A178D5AB400141E68 /* SVGPathSegCurvetoCubicSmoothRel.h in Headers */,
</span><span class="cx">                                 B2227A6D0D00BF220071B782 /* SVGPathSegCurvetoQuadratic.h in Headers */,
</span><span class="lines">@@ -28762,7 +28762,6 @@
</span><span class="cx">                                 37F57ACE1A5072DA00876F98 /* AccessibilityTableRow.cpp in Sources */,
</span><span class="cx">                                 A91C9FBE1B6586DE00AFFD54 /* AccessibilityTree.cpp in Sources */,
</span><span class="cx">                                 A91C9FC21B659A6700AFFD54 /* AccessibilityTreeItem.cpp in Sources */,
</span><del>-                                B5D31DFA11CF610B009F22B4 /* ActiveDOMCallback.cpp in Sources */,
</del><span class="cx">                                 7CD0BA041B8F79C9005CEBBE /* ActiveDOMCallbackMicrotask.cpp in Sources */,
</span><span class="cx">                                 E1C4DE6E0EA75C650023CCD6 /* ActiveDOMObject.cpp in Sources */,
</span><span class="cx">                                 84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */,
</span><span class="lines">@@ -31106,7 +31105,6 @@
</span><span class="cx">                                 1A569D220D7E2B82007C3983 /* runtime_object.cpp in Sources */,
</span><span class="cx">                                 1A569D240D7E2B82007C3983 /* runtime_root.cpp in Sources */,
</span><span class="cx">                                 465A8E791C8A24CE00E7D3E4 /* RuntimeApplicationChecks.mm in Sources */,
</span><del>-                                8C6EA61911EF7E0400FD8EE3 /* RuntimeEnabledFeatures.cpp in Sources */,
</del><span class="cx">                                 CDD7089618359F6F002B3DC6 /* SampleMap.cpp in Sources */,
</span><span class="cx">                                 49E911CA0EF86D47009D0CAF /* ScaleTransformOperation.cpp in Sources */,
</span><span class="cx">                                 5DFE8F560D16477B0076E937 /* ScheduledAction.cpp in Sources */,
</span><span class="lines">@@ -31234,6 +31232,7 @@
</span><span class="cx">                                 5C688AA31D3814BF000B54FA /* SocketProvider.cpp in Sources */,
</span><span class="cx">                                 510D4A36103165EE0049EA54 /* SocketStreamHandle.cpp in Sources */,
</span><span class="cx">                                 51ABAE1F103C1913008C5260 /* SocketStreamHandleImplCFNet.cpp in Sources */,
</span><ins>+                                7C52229D1E1DAE47002CB8F7 /* RuntimeEnabledFeatures.cpp in Sources */,
</ins><span class="cx">                                 E45390470EAFD637003695C8 /* SoundIOS.mm in Sources */,
</span><span class="cx">                                 4B3043C90AE0371D00A82647 /* SoundMac.mm in Sources */,
</span><span class="cx">                                 84A81F3D0FC7DFF000955300 /* SourceAlpha.cpp in Sources */,
</span><span class="lines">@@ -31566,6 +31565,7 @@
</span><span class="cx">                                 CD9D82751C7AE535006FF066 /* TextureCacheCV.mm in Sources */,
</span><span class="cx">                                 BCE65D320EAD1211007E4533 /* Theme.cpp in Sources */,
</span><span class="cx">                                 310D71951B335C9D009C7B73 /* ThemeCocoa.mm in Sources */,
</span><ins>+                                7C52229A1E1DAE20002CB8F7 /* ActiveDOMCallback.cpp in Sources */,
</ins><span class="cx">                                 44C991A00F3D210E00586670 /* ThemeIOS.mm in Sources */,
</span><span class="cx">                                 BCE659E90EA92FFA007E4533 /* ThemeMac.mm in Sources */,
</span><span class="cx">                                 976D6C94122B8A3D001FD1F7 /* ThreadableBlobRegistry.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsIDLTypeshfromrev210292trunkSourceWebCorebindingsgenericIDLTypesh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/bindings/IDLTypes.h (from rev 210292, trunk/Source/WebCore/bindings/generic/IDLTypes.h) (0 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/IDLTypes.h                                (rev 0)
+++ trunk/Source/WebCore/bindings/IDLTypes.h        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -0,0 +1,226 @@
</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
+
+#include &lt;heap/HandleTypes.h&gt;
+#include &lt;wtf/Brigand.h&gt;
+#include &lt;wtf/HashMap.h&gt;
+#include &lt;wtf/StdLibExtras.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace JSC {
+class ArrayBuffer;
+class ArrayBufferView;
+class JSValue;
+class JSObject;
+template&lt;typename&gt; class Strong;
+}
+
+namespace WebCore {
+
+template&lt;typename&gt; class DOMPromise;
+
+template&lt;typename T&gt;
+struct IDLType {
+    using ImplementationType = T;
+    using ParameterType = T;
+
+    using NullableType = std::optional&lt;ImplementationType&gt;;
+    static NullableType nullValue() { return std::nullopt; }
+    static bool isNullValue(const NullableType&amp; value) { return !value; }
+    static ImplementationType extractValueFromNullable(const NullableType&amp; value) { return value.value(); }
+};
+
+// IDLUnsupportedType is a special type that serves as a base class for currently unsupported types.
+struct IDLUnsupportedType : IDLType&lt;void&gt; { };
+
+// IDLNull is a special type for use as a subtype in an IDLUnion that is nullable.
+struct IDLNull : IDLType&lt;std::nullptr_t&gt; { };
+
+struct IDLAny : IDLType&lt;JSC::Strong&lt;JSC::Unknown&gt;&gt; {
+    using ParameterType = JSC::JSValue;
+
+    using NullableType = JSC::Strong&lt;JSC::Unknown&gt;;
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template&lt;typename U&gt; static inline bool isNullValue(U&amp;&amp; value) { return !value; }
+    template&lt;typename U&gt; static inline U&amp;&amp; extractValueFromNullable(U&amp;&amp; value) { return std::forward&lt;U&gt;(value); }
+};
+
+struct IDLBoolean : IDLType&lt;bool&gt; { };
+
+template&lt;typename NumericType&gt; struct IDLNumber : IDLType&lt;NumericType&gt; { };
+
+template&lt;typename IntegerType&gt; struct IDLInteger : IDLNumber&lt;IntegerType&gt; { };
+struct IDLByte : IDLInteger&lt;int8_t&gt; { };
+struct IDLOctet : IDLInteger&lt;uint8_t&gt; { };
+struct IDLShort : IDLInteger&lt;int16_t&gt; { };
+struct IDLUnsignedShort : IDLInteger&lt;uint16_t&gt; { };
+struct IDLLong : IDLInteger&lt;int32_t&gt; { };
+struct IDLUnsignedLong : IDLInteger&lt;uint32_t&gt; { };
+struct IDLLongLong : IDLInteger&lt;int64_t&gt; { };
+struct IDLUnsignedLongLong : IDLInteger&lt;uint64_t&gt; { };
+
+template&lt;typename FloatingPointType, bool unrestricted = false&gt; struct IDLFloatingPoint : IDLNumber&lt;FloatingPointType&gt; {
+    static constexpr bool isUnrestricted = unrestricted;
+};
+struct IDLFloat : IDLFloatingPoint&lt;float&gt; { };
+struct IDLUnrestrictedFloat : IDLFloatingPoint&lt;float, true&gt; { };
+struct IDLDouble : IDLFloatingPoint&lt;double&gt; { };
+struct IDLUnrestrictedDouble : IDLFloatingPoint&lt;double, true&gt; { };
+
+struct IDLString : IDLType&lt;String&gt; {
+    using ParameterType = const String&amp;;
+
+    using NullableType = String;
+    static String nullValue() { return String(); }
+    static bool isNullValue(const String&amp; value) { return value.isNull(); }
+    template &lt;typename U&gt; static U&amp;&amp; extractValueFromNullable(U&amp;&amp; value) { return std::forward&lt;U&gt;(value); }
+};
+struct IDLDOMString : IDLString { };
+struct IDLByteString : IDLString { };
+struct IDLUSVString : IDLString { };
+
+struct IDLObject : IDLType&lt;JSC::Strong&lt;JSC::JSObject&gt;&gt; {
+    using NullableType = JSC::Strong&lt;JSC::JSObject&gt;;
+
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template&lt;typename U&gt; static inline bool isNullValue(U&amp;&amp; value) { return !value; }
+    template&lt;typename U&gt; static inline U&amp;&amp; extractValueFromNullable(U&amp;&amp; value) { return std::forward&lt;U&gt;(value); }
+};
+
+template&lt;typename T&gt; struct IDLWrapper : IDLType&lt;RefPtr&lt;T&gt;&gt; {
+    using RawType = T;
+
+    using ParameterType = T&amp;;
+
+    using NullableType = RefPtr&lt;T&gt;;
+    static inline std::nullptr_t nullValue() { return nullptr; }
+    template&lt;typename U&gt; static inline bool isNullValue(U&amp;&amp; value) { return !value; }
+    template&lt;typename U&gt; static inline U&amp;&amp; extractValueFromNullable(U&amp;&amp; value) { return std::forward&lt;U&gt;(value); }
+};
+
+template&lt;typename T&gt; struct IDLInterface : IDLWrapper&lt;T&gt; { };
+template&lt;typename T&gt; struct IDLCallbackInterface : IDLWrapper&lt;T&gt; { };
+template&lt;typename T&gt; struct IDLCallbackFunction : IDLWrapper&lt;T&gt; { };
+
+template&lt;typename T&gt; struct IDLDictionary : IDLType&lt;T&gt; {
+    using ParameterType = const T&amp;;
+};
+
+template&lt;typename T&gt; struct IDLEnumeration : IDLType&lt;T&gt; { };
+
+template&lt;typename T&gt; struct IDLNullable : IDLType&lt;typename T::NullableType&gt; {
+    using InnerType = T;
+};
+
+template&lt;typename T&gt; struct IDLSequence : IDLType&lt;Vector&lt;typename T::ImplementationType&gt;&gt; {
+    using InnerType = T;
+
+    using ParameterType = const Vector&lt;typename T::ImplementationType&gt;&amp;;
+};
+
+template&lt;typename T&gt; struct IDLFrozenArray : IDLType&lt;Vector&lt;typename T::ImplementationType&gt;&gt; {
+    using InnerType = T;
+
+    using ParameterType = const Vector&lt;typename T::ImplementationType&gt;&amp;;
+};
+
+template&lt;typename K, typename V&gt; struct IDLRecord : IDLType&lt;HashMap&lt;typename K::ImplementationType, typename V::ImplementationType&gt;&gt; {
+    using KeyType = K;
+    using ValueType = V;
+
+    using ParameterType = const HashMap&lt;typename K::ImplementationType, typename V::ImplementationType&gt;&amp;;
+};
+
+template&lt;typename T&gt; struct IDLPromise : IDLType&lt;DOMPromise&lt;T&gt;&gt; {
+    using InnerType = T;
+};
+
+struct IDLError : IDLUnsupportedType { };
+struct IDLDOMException : IDLUnsupportedType { };
+
+template&lt;typename... Ts&gt;
+struct IDLUnion : IDLType&lt;Variant&lt;typename Ts::ImplementationType...&gt;&gt; {
+    using TypeList = brigand::list&lt;Ts...&gt;;
+
+    using ParameterType = const Variant&lt;typename Ts::ImplementationType...&gt;&amp;;
+};
+
+// Non-WebIDL extensions
+
+struct IDLDate : IDLType&lt;double&gt; { 
+    using NullableType = double;
+    static double nullValue() { return std::numeric_limits&lt;double&gt;::quiet_NaN(); }
+    static bool isNullValue(double value) { return std::isnan(value); }
+    static double extractValueFromNullable(double value) { return value; }
+};
+
+struct IDLJSON : IDLType&lt;String&gt; { 
+    using ParameterType = const String&amp;;
+
+    using NullableType = String;
+    static String nullValue() { return String(); }
+    static bool isNullValue(const String&amp; value) { return value.isNull(); }
+    template &lt;typename U&gt; static U&amp;&amp; extractValueFromNullable(U&amp;&amp; value) { return std::forward&lt;U&gt;(value); }
+};
+
+template&lt;typename T&gt; struct IDLSerializedScriptValue : IDLWrapper&lt;T&gt; { };
+template&lt;typename T&gt; struct IDLEventListener : IDLWrapper&lt;T&gt; { };
+template&lt;typename T&gt; struct IDLXPathNSResolver : IDLWrapper&lt;T&gt; { };
+template&lt;typename T&gt; struct IDLIDBKey : IDLWrapper&lt;T&gt; { };
+
+// Non-WebIDL convenience type aliases
+
+using IDLBufferSource = IDLUnion&lt;IDLInterface&lt;JSC::ArrayBufferView&gt;, IDLInterface&lt;JSC::ArrayBuffer&gt;&gt;;
+
+
+// Helper predicates
+
+template&lt;typename T&gt;
+struct IsIDLInterface : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLInterface&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLDictionary : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLDictionary&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLEnumeration : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLEnumeration&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLSequence : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLSequence&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLFrozenArray : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLFrozenArray&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLRecord : public std::integral_constant&lt;bool, WTF::IsTemplate&lt;T, IDLRecord&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLNumber : public std::integral_constant&lt;bool, WTF::IsBaseOfTemplate&lt;IDLNumber, T&gt;::value&gt; { };
+
+template&lt;typename T&gt;
+struct IsIDLInteger : public std::integral_constant&lt;bool, WTF::IsBaseOfTemplate&lt;IDLInteger, T&gt;::value&gt; { };
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoredomActiveDOMCallbackcppfromrev210292trunkSourceWebCorebindingsgenericActiveDOMCallbackcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/dom/ActiveDOMCallback.cpp (from rev 210292, trunk/Source/WebCore/bindings/generic/ActiveDOMCallback.cpp) (0 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ActiveDOMCallback.cpp                                (rev 0)
+++ trunk/Source/WebCore/dom/ActiveDOMCallback.cpp        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+/*
+ * Copyright (C) 2010. 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;ActiveDOMCallback.h&quot;
+
+#include &quot;ScriptExecutionContext.h&quot;
+
+namespace WebCore {
+
+ActiveDOMCallback::ActiveDOMCallback(ScriptExecutionContext* context)
+    : ContextDestructionObserver(context)
+{
+}
+
+ActiveDOMCallback::~ActiveDOMCallback()
+{
+}
+
+bool ActiveDOMCallback::canInvokeCallback() const
+{
+    ScriptExecutionContext* context = scriptExecutionContext();
+    return context &amp;&amp; !context-&gt;activeDOMObjectsAreSuspended() &amp;&amp; !context-&gt;activeDOMObjectsAreStopped();
+}
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCoredomActiveDOMCallbackhfromrev210292trunkSourceWebCorebindingsgenericActiveDOMCallbackh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/dom/ActiveDOMCallback.h (from rev 210292, trunk/Source/WebCore/bindings/generic/ActiveDOMCallback.h) (0 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ActiveDOMCallback.h                                (rev 0)
+++ trunk/Source/WebCore/dom/ActiveDOMCallback.h        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+/*
+ * Copyright (C) 2010, 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;ContextDestructionObserver.h&quot;
+
+namespace WebCore {
+
+class ScriptExecutionContext;
+
+// A base class that prevents binding callbacks from executing when
+// active dom objects are stopped or suspended.
+//
+// Should only be created, used, and destroyed on the script execution
+// context thread.
+class ActiveDOMCallback : public ContextDestructionObserver {
+public:
+    ActiveDOMCallback(ScriptExecutionContext* context);
+    virtual ~ActiveDOMCallback();
+
+    bool canInvokeCallback() const;
+};
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturescppfromrev210292trunkSourceWebCorebindingsgenericRuntimeEnabledFeaturescpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp (from rev 210292, trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp) (0 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp                                (rev 0)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.cpp        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -0,0 +1,180 @@
</span><ins>+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2013 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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;RuntimeEnabledFeatures.h&quot;
+
+#include &quot;DatabaseManager.h&quot;
+#include &quot;MediaPlayer.h&quot;
+#include &quot;WebSocket.h&quot;
+#include &lt;wtf/NeverDestroyed.h&gt;
+
+namespace WebCore {
+
+RuntimeEnabledFeatures::RuntimeEnabledFeatures()
+{
+    reset();
+#if ENABLE(MEDIA_STREAM) &amp;&amp; PLATFORM(COCOA)
+    m_isMediaStreamEnabled = false;
+#endif
+}
+
+void RuntimeEnabledFeatures::reset()
+{
+    m_isLocalStorageEnabled = true;
+    m_isSessionStorageEnabled = true;
+    m_isWebkitNotificationsEnabled = false;
+    m_isApplicationCacheEnabled = true;
+    m_isDataTransferItemsEnabled = true;
+    m_isGeolocationEnabled = true;
+    m_isTouchEnabled = true;
+    m_isDeviceMotionEnabled = true;
+    m_isDeviceOrientationEnabled = true;
+    m_isLinkPreloadEnabled = false;
+    m_isLangAttributeAwareFormControlUIEnabled = false;
+    m_isResourceTimingEnabled = false;
+#if ENABLE(INDEXED_DATABASE)
+    m_isIndexedDBEnabled = true;
+#endif
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    m_isIndexedDBWorkersEnabled = true;
+#endif
+#if ENABLE(WEB_RTC)
+    m_isPeerConnectionEnabled = true;
+#endif
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    m_isLegacyCSSVendorPrefixesEnabled = false;
+#endif
+#if ENABLE(JAVASCRIPT_I18N_API)
+    m_isJavaScriptI18NAPIEnabled = false;
+#endif
+#if ENABLE(INPUT_TYPE_DATE)
+    m_isInputTypeDateEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    m_isInputTypeDateTimeEnabled = false;
+#endif
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    m_isInputTypeDateTimeLocalEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_MONTH)
+    m_isInputTypeMonthEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_TIME)
+    m_isInputTypeTimeEnabled = true;
+#endif
+#if ENABLE(INPUT_TYPE_WEEK)
+    m_isInputTypeWeekEnabled = true;
+#endif
+#if ENABLE(CSP_NEXT)
+    m_areExperimentalContentSecurityPolicyFeaturesEnabled = false;
+#endif
+#if ENABLE(FONT_LOAD_EVENTS)
+    m_isFontLoadEventsEnabled = true;
+#endif
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    m_areAnimationTriggersEnabled = false;
+#endif
+#if ENABLE(WEB_ANIMATIONS)
+    m_areWebAnimationsEnabled = false;
+#endif
+#if ENABLE(CSS_GRID_LAYOUT)
+    m_cssGridLayoutEnabled = true;
+#endif
+#if ENABLE(INTERSECTION_OBSERVER)
+    m_intersectionObserverEnabled = false;
+#endif
+}
+
+RuntimeEnabledFeatures&amp; RuntimeEnabledFeatures::sharedFeatures()
+{
+    static NeverDestroyed&lt;RuntimeEnabledFeatures&gt; runtimeEnabledFeatures;
+
+    return runtimeEnabledFeatures;
+}
+
+#if ENABLE(JAVASCRIPT_I18N_API)
+bool RuntimeEnabledFeatures::javaScriptI18NAPIEnabled()
+{
+    return m_isJavaScriptI18NAPIEnabled;
+}
+#endif
+
+#if ENABLE(VIDEO)
+bool RuntimeEnabledFeatures::audioEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlMediaElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlAudioElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlVideoElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::htmlSourceElementEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::mediaControllerEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::mediaErrorEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+
+bool RuntimeEnabledFeatures::timeRangesEnabled() const
+{
+    return MediaPlayer::isAvailable();
+}
+#endif
+
+#if ENABLE(WEB_SOCKETS)
+bool RuntimeEnabledFeatures::webSocketEnabled() const
+{
+    return WebSocket::isAvailable();
+}
+#endif
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeatureshfromrev210292trunkSourceWebCorebindingsgenericRuntimeEnabledFeaturesh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (from rev 210292, trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h) (0 => 210293)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h                                (rev 0)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h        2017-01-04 23:04:18 UTC (rev 210293)
</span><span class="lines">@@ -0,0 +1,377 @@
</span><ins>+/*
+ * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2013-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:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include &quot;PlatformExportMacros.h&quot;
+#include &lt;wtf/NeverDestroyed.h&gt;
+
+namespace WebCore {
+
+// A class that stores static enablers for all experimental features. Note that
+// the method names must line up with the JavaScript method they enable for code
+// generation to work properly.
+
+class RuntimeEnabledFeatures {
+    WTF_MAKE_NONCOPYABLE(RuntimeEnabledFeatures);
+public:
+    void setLocalStorageEnabled(bool isEnabled) { m_isLocalStorageEnabled = isEnabled; }
+    bool localStorageEnabled() const { return m_isLocalStorageEnabled; }
+
+    void setSessionStorageEnabled(bool isEnabled) { m_isSessionStorageEnabled = isEnabled; }
+    bool sessionStorageEnabled() const { return m_isSessionStorageEnabled; }
+
+    void setWebkitNotificationsEnabled(bool isEnabled) { m_isWebkitNotificationsEnabled = isEnabled; }
+    bool webkitNotificationsEnabled() const { return m_isWebkitNotificationsEnabled; }
+
+    void setApplicationCacheEnabled(bool isEnabled) { m_isApplicationCacheEnabled = isEnabled; }
+    bool applicationCacheEnabled() const { return m_isApplicationCacheEnabled; }
+
+    void setDataTransferItemsEnabled(bool isEnabled) { m_isDataTransferItemsEnabled = isEnabled; }
+    bool dataTransferItemsEnabled() const { return m_isDataTransferItemsEnabled; }
+
+    void setDOMIteratorEnabled(bool isEnabled) { m_isDOMIteratorEnabled = isEnabled; }
+    bool domIteratorEnabled() const { return m_isDOMIteratorEnabled; }
+
+    void setGeolocationEnabled(bool isEnabled) { m_isGeolocationEnabled = isEnabled; }
+    bool geolocationEnabled() const { return m_isGeolocationEnabled; }
+
+#if ENABLE(INDEXED_DATABASE)
+    void setWebkitIndexedDBEnabled(bool isEnabled) { m_isIndexedDBEnabled = isEnabled; }
+    bool webkitIndexedDBEnabled() const { return m_isIndexedDBEnabled; }
+    bool indexedDBEnabled() const { return m_isIndexedDBEnabled; }
+#endif
+
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    void setIndexedDBWorkersEnabled(bool isEnabled) { m_isIndexedDBWorkersEnabled = isEnabled; }
+    bool indexedDBWorkersEnabled() const { return m_isIndexedDBWorkersEnabled; }
+#endif
+
+#if ENABLE(FONT_LOAD_EVENTS)
+    void setFontLoadEventsEnabled(bool isEnabled) { m_isFontLoadEventsEnabled = isEnabled; }
+    bool fontLoadEventsEnabled() const { return m_isFontLoadEventsEnabled; }
+#else
+    void setFontLoadEventsEnabled(bool) { }
+    bool fontLoadEventsEnabled() { return false; }
+#endif
+
+#if ENABLE(VIDEO)
+    bool audioEnabled() const;
+    bool htmlMediaElementEnabled() const;
+    bool htmlAudioElementEnabled() const;
+    bool htmlVideoElementEnabled() const;
+    bool htmlSourceElementEnabled() const;
+    bool mediaControllerEnabled() const;
+    bool mediaErrorEnabled() const;
+    bool timeRangesEnabled() const;
+#endif
+
+#if ENABLE(WEB_SOCKETS)
+    bool webSocketEnabled() const;
+#endif
+
+#if ENABLE(TOUCH_EVENTS)
+    bool touchEnabled() const { return m_isTouchEnabled; }
+    void setTouchEnabled(bool isEnabled) { m_isTouchEnabled = isEnabled; }
+#endif
+
+    void setDeviceMotionEnabled(bool isEnabled) { m_isDeviceMotionEnabled = isEnabled; }
+    bool deviceMotionEnabled() const { return m_isDeviceMotionEnabled; }
+    bool deviceMotionEventEnabled() const { return m_isDeviceMotionEnabled; }
+    bool ondevicemotionEnabled() const { return m_isDeviceMotionEnabled; }
+
+    void setDeviceOrientationEnabled(bool isEnabled) { m_isDeviceOrientationEnabled = isEnabled; }
+    bool deviceOrientationEnabled() const { return m_isDeviceOrientationEnabled; }
+    bool deviceOrientationEventEnabled() const { return m_isDeviceOrientationEnabled; }
+    bool ondeviceorientationEnabled() const { return m_isDeviceOrientationEnabled; }
+
+    void setLinkPreloadEnabled(bool isEnabled) { m_isLinkPreloadEnabled = isEnabled; }
+    bool linkPreloadEnabled() const { return m_isLinkPreloadEnabled; }
+
+#if ENABLE(JAVASCRIPT_I18N_API)
+    bool javaScriptI18NAPIEnabled() const;
+    void setJavaScriptI18NAPIEnabled(bool isEnabled) { m_isJavaScriptI18NAPIEnabled = isEnabled; }
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+    bool mediaStreamEnabled() const { return m_isMediaStreamEnabled; }
+    void setMediaStreamEnabled(bool isEnabled) { m_isMediaStreamEnabled = isEnabled; }
+    bool webkitGetUserMediaEnabled() const { return m_isMediaStreamEnabled; }
+    bool webkitMediaStreamEnabled() const { return m_isMediaStreamEnabled; }
+#endif
+#if ENABLE(WEB_RTC)
+    bool peerConnectionEnabled() const { return m_isMediaStreamEnabled &amp;&amp; m_isPeerConnectionEnabled; }
+    void setPeerConnectionEnabled(bool isEnabled) { m_isPeerConnectionEnabled = isEnabled; }
+    bool webkitRTCPeerConnectionEnabled() const { return peerConnectionEnabled(); }
+#endif
+
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    void setLegacyCSSVendorPrefixesEnabled(bool isEnabled) { m_isLegacyCSSVendorPrefixesEnabled = isEnabled; }
+    bool legacyCSSVendorPrefixesEnabled() const { return m_isLegacyCSSVendorPrefixesEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATE)
+    bool inputTypeDateEnabled() const { return m_isInputTypeDateEnabled; }
+    void setInputTypeDateEnabled(bool isEnabled) { m_isInputTypeDateEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    bool inputTypeDateTimeEnabled() const { return m_isInputTypeDateTimeEnabled; }
+    void setInputTypeDateTimeEnabled(bool isEnabled) { m_isInputTypeDateTimeEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    bool inputTypeDateTimeLocalEnabled() const { return m_isInputTypeDateTimeLocalEnabled; }
+    void setInputTypeDateTimeLocalEnabled(bool isEnabled) { m_isInputTypeDateTimeLocalEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_MONTH)
+    bool inputTypeMonthEnabled() const { return m_isInputTypeMonthEnabled; }
+    void setInputTypeMonthEnabled(bool isEnabled) { m_isInputTypeMonthEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_TIME)
+    bool inputTypeTimeEnabled() const { return m_isInputTypeTimeEnabled; }
+    void setInputTypeTimeEnabled(bool isEnabled) { m_isInputTypeTimeEnabled = isEnabled; }
+#endif
+
+#if ENABLE(INPUT_TYPE_WEEK)
+    bool inputTypeWeekEnabled() const { return m_isInputTypeWeekEnabled; }
+    void setInputTypeWeekEnabled(bool isEnabled) { m_isInputTypeWeekEnabled = isEnabled; }
+#endif
+
+#if ENABLE(CSP_NEXT)
+    bool experimentalContentSecurityPolicyFeaturesEnabled() const { return m_areExperimentalContentSecurityPolicyFeaturesEnabled; }
+    void setExperimentalContentSecurityPolicyFeaturesEnabled(bool isEnabled) { m_areExperimentalContentSecurityPolicyFeaturesEnabled = isEnabled; }
+#endif
+
+    bool langAttributeAwareFormControlUIEnabled() const { return m_isLangAttributeAwareFormControlUIEnabled; }
+    // The lang attribute support is incomplete and should only be turned on for tests.
+    void setLangAttributeAwareFormControlUIEnabled(bool isEnabled) { m_isLangAttributeAwareFormControlUIEnabled = isEnabled; }
+
+    void setResourceTimingEnabled(bool isEnabled) { m_isResourceTimingEnabled = isEnabled; }
+    bool resourceTimingEnabled() const { return m_isResourceTimingEnabled; }
+
+#if ENABLE(GAMEPAD)
+    void setGamepadsEnabled(bool areEnabled) { m_areGamepadsEnabled = areEnabled; }
+    bool gamepadsEnabled() const { return m_areGamepadsEnabled; }
+#endif
+
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    void setAnimationTriggersEnabled(bool areEnabled) { m_areAnimationTriggersEnabled = areEnabled; }
+    bool animationTriggersEnabled() const { return m_areAnimationTriggersEnabled; }
+#endif
+
+#if ENABLE(WEB_ANIMATIONS)
+    void setWebAnimationsEnabled(bool areEnabled) { m_areWebAnimationsEnabled = areEnabled; }
+    bool webAnimationsEnabled() const { return m_areWebAnimationsEnabled; }
+#endif
+
+    void setShadowDOMEnabled(bool isEnabled) { m_isShadowDOMEnabled = isEnabled; }
+    bool shadowDOMEnabled() const { return m_isShadowDOMEnabled; }
+
+    void setInputEventsEnabled(bool isEnabled) { m_inputEventsEnabled = isEnabled; }
+    bool inputEventsEnabled() const { return m_inputEventsEnabled; }
+
+    void setInteractiveFormValidationEnabled(bool isEnabled) { m_isInteractiveFormValidationEnabled = isEnabled; }
+    bool interactiveFormValidationEnabled() const { return m_isInteractiveFormValidationEnabled; }
+
+    void setCustomElementsEnabled(bool areEnabled) { m_areCustomElementsEnabled = areEnabled; }
+    bool customElementsEnabled() const { return m_areCustomElementsEnabled; }
+
+#if ENABLE(WEBGL2)
+    void setWebGL2Enabled(bool isEnabled) { m_isWebGL2Enabled = isEnabled; }
+    bool webGL2Enabled() const { return m_isWebGL2Enabled; }
+#endif
+
+#if ENABLE(FETCH_API)
+    void setFetchAPIEnabled(bool isEnabled) { m_isFetchAPIEnabled = isEnabled; }
+    bool fetchAPIEnabled() const { return m_isFetchAPIEnabled; }
+#endif
+
+#if ENABLE(DOWNLOAD_ATTRIBUTE)
+    void setDownloadAttributeEnabled(bool isEnabled) { m_isDownloadAttributeEnabled = isEnabled; }
+    bool downloadAttributeEnabled() const { return m_isDownloadAttributeEnabled; }
+#endif
+
+#if ENABLE(CSS_GRID_LAYOUT)
+    void setCSSGridLayoutEnabled(bool isEnabled) { m_cssGridLayoutEnabled = isEnabled; }
+    bool isCSSGridLayoutEnabled() const { return m_cssGridLayoutEnabled; }
+#endif
+
+#if ENABLE(INTERSECTION_OBSERVER)
+    void setIntersectionObserverEnabled(bool isEnabled) { m_intersectionObserverEnabled = isEnabled; }
+    bool intersectionObserverEnabled() const { return m_intersectionObserverEnabled; }
+#endif
+
+    void setModernMediaControlsEnabled(bool areEnabled) { m_areModernMediaControlsEnabled = areEnabled; }
+    bool modernMediaControlsEnabled() const { return m_areModernMediaControlsEnabled; }
+
+#if ENABLE(ENCRYPTED_MEDIA)
+    void setEncryptedMediaAPIEnabled(bool isEnabled) { m_encryptedMediaAPIEnabled = isEnabled; }
+    bool encryptedMediaAPIEnabled() const { return m_encryptedMediaAPIEnabled; }
+#endif
+
+#if ENABLE(SUBTLE_CRYPTO)
+    void setSubtleCryptoEnabled(bool isEnabled) { m_isSubtleCryptoEnabled = isEnabled; }
+    bool subtleCryptoEnabled() const { return m_isSubtleCryptoEnabled; }
+#endif
+
+    WEBCORE_EXPORT static RuntimeEnabledFeatures&amp; sharedFeatures();
+
+    WEBCORE_EXPORT void reset();
+
+private:
+    // Never instantiate.
+    RuntimeEnabledFeatures();
+
+    bool m_areModernMediaControlsEnabled { false };
+    bool m_isLocalStorageEnabled;
+    bool m_isSessionStorageEnabled;
+    bool m_isWebkitNotificationsEnabled;
+    bool m_isApplicationCacheEnabled;
+    bool m_isDataTransferItemsEnabled;
+    bool m_isDOMIteratorEnabled { true };
+    bool m_isGeolocationEnabled;
+    bool m_isTouchEnabled;
+    bool m_isDeviceMotionEnabled;
+    bool m_isDeviceOrientationEnabled;
+    bool m_isLinkPreloadEnabled;
+    bool m_isLangAttributeAwareFormControlUIEnabled;
+    bool m_isResourceTimingEnabled;
+
+#if ENABLE(INDEXED_DATABASE)
+    bool m_isIndexedDBEnabled;
+#endif
+
+#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
+    bool m_isIndexedDBWorkersEnabled;
+#endif
+
+#if ENABLE(JAVASCRIPT_I18N_API)
+    bool m_isJavaScriptI18NAPIEnabled;
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+    bool m_isMediaStreamEnabled { true };
+#endif
+#if ENABLE(WEB_RTC)
+    bool m_isPeerConnectionEnabled;
+#endif
+
+#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
+    bool m_isLegacyCSSVendorPrefixesEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATE)
+    bool m_isInputTypeDateEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
+    bool m_isInputTypeDateTimeEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
+    bool m_isInputTypeDateTimeLocalEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_MONTH)
+    bool m_isInputTypeMonthEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_TIME)
+    bool m_isInputTypeTimeEnabled;
+#endif
+
+#if ENABLE(INPUT_TYPE_WEEK)
+    bool m_isInputTypeWeekEnabled;
+#endif
+
+#if ENABLE(CSP_NEXT)
+    bool m_areExperimentalContentSecurityPolicyFeaturesEnabled;
+#endif
+
+#if ENABLE(FONT_LOAD_EVENTS)
+    bool m_isFontLoadEventsEnabled;
+#endif
+
+#if ENABLE(GAMEPAD)
+    bool m_areGamepadsEnabled { false };
+#endif
+
+#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
+    bool m_areAnimationTriggersEnabled;
+#endif
+
+#if ENABLE(WEB_ANIMATIONS)
+    bool m_areWebAnimationsEnabled;
+#endif
+    
+    bool m_isShadowDOMEnabled;
+
+    bool m_inputEventsEnabled;
+
+    bool m_isInteractiveFormValidationEnabled { false };
+
+    bool m_areCustomElementsEnabled { true };
+
+#if ENABLE(WEBGL2)
+    bool m_isWebGL2Enabled;
+#endif
+
+#if ENABLE(FETCH_API)
+    bool m_isFetchAPIEnabled { false };
+#endif
+
+#if ENABLE(DOWNLOAD_ATTRIBUTE)
+    bool m_isDownloadAttributeEnabled { false };
+#endif
+
+#if ENABLE(CSS_GRID_LAYOUT)
+    bool m_cssGridLayoutEnabled;
+#endif
+
+#if ENABLE(ENCRYPTED_MEDIA)
+    bool m_encryptedMediaAPIEnabled { false };
+#endif
+
+#if ENABLE(INTERSECTION_OBSERVER)
+    bool m_intersectionObserverEnabled { false };
+#endif
+
+#if ENABLE(SUBTLE_CRYPTO)
+    bool m_isSubtleCryptoEnabled;
+#endif
+
+    friend class WTF::NeverDestroyed&lt;RuntimeEnabledFeatures&gt;;
+};
+
+} // namespace WebCore
</ins></span></pre>
</div>
</div>

</body>
</html>