<!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>[210006] 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/210006">210006</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2016-12-19 17:18:57 -0800 (Mon, 19 Dec 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Remove a few trivial custom bindings
https://bugs.webkit.org/show_bug.cgi?id=165999

Reviewed by Simon Fraser.

* CMakeLists.txt:
* bindings/js/JSBindingsAllInOne.cpp:
Remove files.

* WebCore.xcodeproj/project.pbxproj:
Move custom bindings that only exist for GC or wrapping reasons
to their own group, so we can focus on the ones with custom functions.

* bindings/js/JSDataTransferCustom.cpp: Removed.
* bindings/js/JSTrackEventCustom.cpp: Removed.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::types):
Remove incorrect comment and use a more concise empty initialization syntax.

* dom/DataTransfer.idl:
Update IDL to remove [Custom] annotation and match spec better.

* html/track/TrackEvent.cpp:
(WebCore::convertToTrackEventTrack):
(WebCore::TrackEvent::TrackEvent):
* html/track/TrackEvent.h:
Switch to store the Track in a Variant to make the binding easier.

* html/track/TrackEvent.idl:
Remove [CustomGetter] annotation.</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="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp">trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDataTransfercpp">trunk/Source/WebCore/dom/DataTransfer.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDataTransferidl">trunk/Source/WebCore/dom/DataTransfer.idl</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTrackEventcpp">trunk/Source/WebCore/html/track/TrackEvent.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTrackEventh">trunk/Source/WebCore/html/track/TrackEvent.h</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTrackEventidl">trunk/Source/WebCore/html/track/TrackEvent.idl</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorebindingsjsJSDataTransferCustomcpp">trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSTrackEventCustomcpp">trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -1120,7 +1120,6 @@
</span><span class="cx">     bindings/js/JSDOMWindowShell.cpp
</span><span class="cx">     bindings/js/JSDOMWrapper.cpp
</span><span class="cx">     bindings/js/JSDataCueCustom.cpp
</span><del>-    bindings/js/JSDataTransferCustom.cpp
</del><span class="cx">     bindings/js/JSDeviceMotionEventCustom.cpp
</span><span class="cx">     bindings/js/JSDeviceOrientationEventCustom.cpp
</span><span class="cx">     bindings/js/JSDocumentCustom.cpp
</span><span class="lines">@@ -1191,7 +1190,6 @@
</span><span class="cx">     bindings/js/JSTextTrackCustom.cpp
</span><span class="cx">     bindings/js/JSTextTrackListCustom.cpp
</span><span class="cx">     bindings/js/JSTrackCustom.cpp
</span><del>-    bindings/js/JSTrackEventCustom.cpp
</del><span class="cx">     bindings/js/JSTreeWalkerCustom.cpp
</span><span class="cx">     bindings/js/JSVideoTrackCustom.cpp
</span><span class="cx">     bindings/js/JSVideoTrackListCustom.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/ChangeLog        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2016-12-17  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Remove a few trivial custom bindings
+        https://bugs.webkit.org/show_bug.cgi?id=165999
+
+        Reviewed by Simon Fraser.
+
+        * CMakeLists.txt:
+        * bindings/js/JSBindingsAllInOne.cpp:
+        Remove files.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        Move custom bindings that only exist for GC or wrapping reasons
+        to their own group, so we can focus on the ones with custom functions.
+
+        * bindings/js/JSDataTransferCustom.cpp: Removed.
+        * bindings/js/JSTrackEventCustom.cpp: Removed.
+
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::types):
+        Remove incorrect comment and use a more concise empty initialization syntax.
+
+        * dom/DataTransfer.idl:
+        Update IDL to remove [Custom] annotation and match spec better.
+
+        * html/track/TrackEvent.cpp:
+        (WebCore::convertToTrackEventTrack):
+        (WebCore::TrackEvent::TrackEvent):
+        * html/track/TrackEvent.h:
+        Switch to store the Track in a Variant to make the binding easier.
+
+        * html/track/TrackEvent.idl:
+        Remove [CustomGetter] annotation.
+
</ins><span class="cx"> 2016-12-19  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Do not position detached list item marker.
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -276,7 +276,6 @@
</span><span class="cx">                 07B7116D1D899E63009F0FFB /* CaptureDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B7116A1D899E63009F0FFB /* CaptureDevice.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 07B7116E1D899E63009F0FFB /* CaptureDeviceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */; };
</span><span class="cx">                 07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */; };
</span><del>-                07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; };
</del><span class="cx">                 07C1C0E21BFB600100BD2256 /* MediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */; };
</span><span class="cx">                 07C1C0E51BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -5413,7 +5412,6 @@
</span><span class="cx">                 BCA2B08B10505BCD0043BD1C /* UserScriptTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA2B08A10505BCD0043BD1C /* UserScriptTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BCA83E4F0D7CE1E9003421A8 /* JSDataTransfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCA83E4D0D7CE1E9003421A8 /* JSDataTransfer.cpp */; };
</span><span class="cx">                 BCA83E500D7CE1E9003421A8 /* JSDataTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA83E4E0D7CE1E9003421A8 /* JSDataTransfer.h */; };
</span><del>-                BCA83E520D7CE205003421A8 /* JSDataTransferCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCA83E510D7CE205003421A8 /* JSDataTransferCustom.cpp */; };
</del><span class="cx">                 BCA846D60DC67A350026C309 /* RenderReplica.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCA846D40DC67A350026C309 /* RenderReplica.cpp */; };
</span><span class="cx">                 BCA846D70DC67A350026C309 /* RenderReplica.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA846D50DC67A350026C309 /* RenderReplica.h */; };
</span><span class="cx">                 BCA8C81E11E3D36900812FB7 /* BackForwardController.h in Headers */ = {isa = PBXBuildFile; fileRef = BCA8C81C11E3D36900812FB7 /* BackForwardController.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -7260,7 +7258,6 @@
</span><span class="cx">                 07B5A2D91464320A00A81ECE /* JSTextTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackList.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B5A2DA1464320A00A81ECE /* JSTextTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTextTrackList.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B5A3061468537100A81ECE /* TextTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TextTrackList.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTrackEventCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackListCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B7116A1D899E63009F0FFB /* CaptureDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDevice.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CaptureDeviceManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -13328,7 +13325,6 @@
</span><span class="cx">                 BCA83E360D7CDC4E003421A8 /* DataTransfer.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DataTransfer.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCA83E4D0D7CE1E9003421A8 /* JSDataTransfer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDataTransfer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCA83E4E0D7CE1E9003421A8 /* JSDataTransfer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDataTransfer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BCA83E510D7CE205003421A8 /* JSDataTransferCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDataTransferCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BCA846D40DC67A350026C309 /* RenderReplica.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderReplica.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCA846D50DC67A350026C309 /* RenderReplica.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderReplica.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCA8C81C11E3D36900812FB7 /* BackForwardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackForwardController.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -18350,6 +18346,52 @@
</span><span class="cx">                         name = Geolocation;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                7C3D8EE41E08BABE0023B084 /* GC / Wrapping Only */ = {
+                        isa = PBXGroup;
+                        children = (
+                                1221E0721C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp */,
+                                BC2ED6BB0C6BD2F000920BFF /* JSAttrCustom.cpp */,
+                                BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */,
+                                8931DE5A14C44C44000DC9D2 /* JSBlobCustom.cpp */,
+                                BC46C1ED0C0DDBDF0020CFC3 /* JSCSSRuleCustom.cpp */,
+                                AD726FE916D9F40A003A4E6D /* JSCSSRuleCustom.h */,
+                                9392262E10321084006E7D5D /* JSCSSRuleListCustom.cpp */,
+                                BC20FB7E0C0E8E6C00D1447F /* JSCSSValueCustom.cpp */,
+                                7C33F3601B4A050400502CAF /* JSDocumentFragmentCustom.cpp */,
+                                BC2ED5540C6B9BD300920BFF /* JSElementCustom.cpp */,
+                                ADEC78F718EE5308001315C2 /* JSElementCustom.h */,
+                                BCEFAF4D0C317E6900FA81F6 /* JSEventCustom.cpp */,
+                                E34EE49F1DC2D57500EAA9D3 /* JSEventCustom.h */,
+                                5141298D1C5FD7E90059E714 /* JSIDBCursorWithValueCustom.cpp */,
+                                5141299A1C6C166D0059E714 /* JSIDBIndexCustom.cpp */,
+                                511EF2CE17F0FDF100E4FA16 /* JSIDBObjectStoreCustom.cpp */,
+                                51E269321DD3BC43006B6A58 /* JSIDBTransactionCustom.cpp */,
+                                A7D0318D0E93540300E24ACD /* JSImageDataCustom.cpp */,
+                                AD726FE716D9F204003A4E6D /* JSMediaListCustom.h */,
+                                E1A5F99A0E7EAA2500AF85EA /* JSMessageChannelCustom.cpp */,
+                                E1ADED460E76B8DD004A1A5E /* JSMessagePortCustom.cpp */,
+                                1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
+                                BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
+                                AD20B18C18E9D216005A8083 /* JSNodeListCustom.h */,
+                                CB38FD551CD21D5B00592A3F /* JSPerformanceEntryCustom.cpp */,
+                                BC98A27C0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp */,
+                                AD726FEC16D9F4B9003A4E6D /* JSStyleSheetCustom.h */,
+                                B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
+                                838869EB1CE81E9E00D16A9E /* JSTextCustom.cpp */,
+                                07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */,
+                                07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */,
+                                070334E8145A1F35008D8D45 /* JSTrackCustom.cpp */,
+                                07846384145B1B8E00A58DF1 /* JSTrackCustom.h */,
+                                516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */,
+                                BE6DF70A171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp */,
+                                49EED14C1051971A00099FAB /* JSWebGLRenderingContextCustom.cpp */,
+                                83A4A9F81CE7FD7E00709B00 /* JSXMLDocumentCustom.cpp */,
+                                836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */,
+                                A1C7FAA1133A5D3500D6732D /* JSXPathResultCustom.cpp */,
+                        );
+                        name = &quot;GC / Wrapping Only&quot;;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 7C3E510718DF8F1200C112F7 /* cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -22077,30 +22119,21 @@
</span><span class="cx">                 BC4EDEF70C08F414007EDD49 /* Custom */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                1221E0721C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp */,
-                                BC2ED6BB0C6BD2F000920BFF /* JSAttrCustom.cpp */,
</del><ins>+                                7C3D8EE41E08BABE0023B084 /* GC / Wrapping Only */,
</ins><span class="cx">                                 BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */,
</span><del>-                                BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */,
-                                8931DE5A14C44C44000DC9D2 /* JSBlobCustom.cpp */,
</del><span class="cx">                                 49EED14B1051971900099FAB /* JSCanvasRenderingContext2DCustom.cpp */,
</span><span class="cx">                                 A584FE371864DAC100843B10 /* JSCommandLineAPIHostCustom.cpp */,
</span><span class="cx">                                 7CEF26181D6A92E300BE905D /* JSCryptoCustom.cpp */,
</span><span class="cx">                                 E157A8E618184C67009F821D /* JSCryptoKeyCustom.cpp */,
</span><del>-                                BC46C1ED0C0DDBDF0020CFC3 /* JSCSSRuleCustom.cpp */,
-                                AD726FE916D9F40A003A4E6D /* JSCSSRuleCustom.h */,
-                                9392262E10321084006E7D5D /* JSCSSRuleListCustom.cpp */,
</del><span class="cx">                                 BC5825F20C0B89380053F1B5 /* JSCSSStyleDeclarationCustom.cpp */,
</span><span class="cx">                                 AD726FEA16D9F40B003A4E6D /* JSCSSStyleDeclarationCustom.h */,
</span><del>-                                BC20FB7E0C0E8E6C00D1447F /* JSCSSValueCustom.cpp */,
</del><span class="cx">                                 9BC5F9DF1D5AAF6A002B749D /* JSCustomElementRegistryCustom.cpp */,
</span><span class="cx">                                 DEC2975D1B4DEB2A005F5945 /* JSCustomEventCustom.cpp */,
</span><span class="cx">                                 07FBDE2B18FED178001A7CFF /* JSDataCueCustom.cpp */,
</span><del>-                                BCA83E510D7CE205003421A8 /* JSDataTransferCustom.cpp */,
</del><span class="cx">                                 31FB1A6B120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp */,
</span><span class="cx">                                 590E1B4A11E4EF700069F784 /* JSDeviceOrientationEventCustom.cpp */,
</span><span class="cx">                                 49C7BA8C1042F5B10009D447 /* JSDocumentCustom.cpp */,
</span><span class="cx">                                 ADDA94BF19686F8000453029 /* JSDocumentCustom.h */,
</span><del>-                                7C33F3601B4A050400502CAF /* JSDocumentFragmentCustom.cpp */,
</del><span class="cx">                                 A9C6E6460D7465CA006442E9 /* JSDOMMimeTypeArrayCustom.cpp */,
</span><span class="cx">                                 46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */,
</span><span class="cx">                                 A9C6E64A0D7465E7006442E9 /* JSDOMPluginArrayCustom.cpp */,
</span><span class="lines">@@ -22108,11 +22141,7 @@
</span><span class="cx">                                 BC64649B11D8238C006455B0 /* JSDOMStringMapCustom.cpp */,
</span><span class="cx">                                 BCD9C25E0C17AA67005C90A2 /* JSDOMWindowCustom.cpp */,
</span><span class="cx">                                 652FBBBB0DE27CB60001D386 /* JSDOMWindowCustom.h */,
</span><del>-                                BC2ED5540C6B9BD300920BFF /* JSElementCustom.cpp */,
-                                ADEC78F718EE5308001315C2 /* JSElementCustom.h */,
</del><span class="cx">                                 A56D02A21D0B9AF30095E5D3 /* JSErrorEventCustom.cpp */,
</span><del>-                                BCEFAF4D0C317E6900FA81F6 /* JSEventCustom.cpp */,
-                                E34EE49F1DC2D57500EAA9D3 /* JSEventCustom.h */,
</del><span class="cx">                                 2E7582ED12764F260062628B /* JSFileReaderCustom.cpp */,
</span><span class="cx">                                 C28083411C6DC96A001451B6 /* JSFontFaceCustom.cpp */,
</span><span class="cx">                                 1C24EEAA1C72AA0A0080F8FC /* JSFontFaceSetCustom.cpp */,
</span><span class="lines">@@ -22136,19 +22165,11 @@
</span><span class="cx">                                 AB4CB4EA0B8BDA3D009F40B0 /* JSHTMLSelectElementCustom.h */,
</span><span class="cx">                                 D6F7960C166FFECE0076DD18 /* JSHTMLTemplateElementCustom.cpp */,
</span><span class="cx">                                 512BDB4C1C46B0FF006494DF /* JSIDBCursorCustom.cpp */,
</span><del>-                                5141298D1C5FD7E90059E714 /* JSIDBCursorWithValueCustom.cpp */,
-                                5141299A1C6C166D0059E714 /* JSIDBIndexCustom.cpp */,
-                                511EF2CE17F0FDF100E4FA16 /* JSIDBObjectStoreCustom.cpp */,
</del><span class="cx">                                 934F31B41CC0737200DB43DC /* JSIDBRequestCustom.cpp */,
</span><del>-                                51E269321DD3BC43006B6A58 /* JSIDBTransactionCustom.cpp */,
-                                A7D0318D0E93540300E24ACD /* JSImageDataCustom.cpp */,
</del><span class="cx">                                 7A74ECBC101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp */,
</span><span class="cx">                                 BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */,
</span><span class="cx">                                 2D9BF7481DBFDDF8007A7D99 /* JSMediaKeySessionCustom.cpp */,
</span><del>-                                AD726FE716D9F204003A4E6D /* JSMediaListCustom.h */,
-                                E1A5F99A0E7EAA2500AF85EA /* JSMessageChannelCustom.cpp */,
</del><span class="cx">                                 410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */,
</span><del>-                                E1ADED460E76B8DD004A1A5E /* JSMessagePortCustom.cpp */,
</del><span class="cx">                                 A1E5B31D1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp */,
</span><span class="cx">                                 C6F0917E143A2BB900685849 /* JSMutationObserverCustom.cpp */,
</span><span class="cx">                                 BCD9C25F0C17AA67005C90A2 /* JSNamedNodeMapCustom.cpp */,
</span><span class="lines">@@ -22155,10 +22176,6 @@
</span><span class="cx">                                 BCD9C2600C17AA67005C90A2 /* JSNodeCustom.cpp */,
</span><span class="cx">                                 BC9439C2116CF4940048C750 /* JSNodeCustom.h */,
</span><span class="cx">                                 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */,
</span><del>-                                1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
-                                BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
-                                AD20B18C18E9D216005A8083 /* JSNodeListCustom.h */,
-                                CB38FD551CD21D5B00592A3F /* JSPerformanceEntryCustom.cpp */,
</del><span class="cx">                                 A85F22081430377D007CC884 /* JSPopStateEventCustom.cpp */,
</span><span class="cx">                                 418C395D1C8F0AAB0051C8A3 /* JSReadableStreamSourceCustom.cpp */,
</span><span class="cx">                                 07DC5FD317D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp */,
</span><span class="lines">@@ -22165,32 +22182,17 @@
</span><span class="cx">                                 51DCE8010CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp */,
</span><span class="cx">                                 1AD2316D0CD269E700C1F194 /* JSSQLTransactionCustom.cpp */,
</span><span class="cx">                                 51D0C5150DAA90B7003B3831 /* JSStorageCustom.cpp */,
</span><del>-                                BC98A27C0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp */,
-                                AD726FEC16D9F4B9003A4E6D /* JSStyleSheetCustom.h */,
</del><span class="cx">                                 A84EBD770CB8C89200079609 /* JSStyleSheetListCustom.cpp */,
</span><span class="cx">                                 57A9C88D1DA70BF800BC7305 /* JSSubtleCryptoCustom.cpp */,
</span><del>-                                B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
-                                838869EB1CE81E9E00D16A9E /* JSTextCustom.cpp */,
-                                07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */,
</del><span class="cx">                                 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */,
</span><del>-                                07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */,
-                                070334E8145A1F35008D8D45 /* JSTrackCustom.cpp */,
-                                07846384145B1B8E00A58DF1 /* JSTrackCustom.h */,
-                                07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */,
-                                516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */,
</del><span class="cx">                                 7C73FB17191EF808007DE061 /* JSUserMessageHandlersNamespaceCustom.cpp */,
</span><span class="cx">                                 BE6DF708171CA2C500DD52B8 /* JSVideoTrackCustom.cpp */,
</span><del>-                                BE6DF70A171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp */,
</del><span class="cx">                                 D3F3D3591A69A3B00059FC2B /* JSWebGL2RenderingContextCustom.cpp */,
</span><span class="cx">                                 D3F3D35A1A69A3B00059FC2B /* JSWebGLRenderingContextBaseCustom.cpp */,
</span><del>-                                49EED14C1051971A00099FAB /* JSWebGLRenderingContextCustom.cpp */,
</del><span class="cx">                                 E1FF8F661807460800132674 /* JSWebKitSubtleCryptoCustom.cpp */,
</span><span class="cx">                                 E1CA5CBB0E8CDCAF00E8EF90 /* JSWorkerCustom.cpp */,
</span><span class="cx">                                 E18258AB0EF3CD7000933242 /* JSWorkerGlobalScopeCustom.cpp */,
</span><del>-                                83A4A9F81CE7FD7E00709B00 /* JSXMLDocumentCustom.cpp */,
</del><span class="cx">                                 BC348BBD0DB7F531004ABAB9 /* JSXMLHttpRequestCustom.cpp */,
</span><del>-                                836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */,
-                                A1C7FAA1133A5D3500D6732D /* JSXPathResultCustom.cpp */,
</del><span class="cx">                                 BCEFE1E40DCA5F3300739219 /* JSXSLTProcessorCustom.cpp */,
</span><span class="cx">                         );
</span><span class="cx">                         name = Custom;
</span><span class="lines">@@ -29904,7 +29906,6 @@
</span><span class="cx">                                 BE61039D18A9D65200DD50D7 /* JSDataCue.cpp in Sources */,
</span><span class="cx">                                 07FBDE2C18FED178001A7CFF /* JSDataCueCustom.cpp in Sources */,
</span><span class="cx">                                 BCA83E4F0D7CE1E9003421A8 /* JSDataTransfer.cpp in Sources */,
</span><del>-                                BCA83E520D7CE205003421A8 /* JSDataTransferCustom.cpp in Sources */,
</del><span class="cx">                                 4162A4571011464700DFF3ED /* JSDedicatedWorkerGlobalScope.cpp in Sources */,
</span><span class="cx">                                 FDA15ED112B03F94003A583A /* JSDelayNode.cpp in Sources */,
</span><span class="cx">                                 31FB1A65120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp in Sources */,
</span><span class="lines">@@ -30455,7 +30456,6 @@
</span><span class="cx">                                 0FDA7C1A188322EB00C954B5 /* JSTouchList.cpp in Sources */,
</span><span class="cx">                                 070334E9145A1F36008D8D45 /* JSTrackCustom.cpp in Sources */,
</span><span class="cx">                                 07846342145B151A00A58DF1 /* JSTrackEvent.cpp in Sources */,
</span><del>-                                07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */,
</del><span class="cx">                                 E17B492216A9B8FF001C8839 /* JSTransitionEvent.cpp in Sources */,
</span><span class="cx">                                 1A750D5C0A90DEE1000FF215 /* JSTreeWalker.cpp in Sources */,
</span><span class="cx">                                 516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSBindingsAllInOnecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -61,7 +61,6 @@
</span><span class="cx"> #include &quot;JSDOMWindowShell.cpp&quot;
</span><span class="cx"> #include &quot;JSDOMWrapper.cpp&quot;
</span><span class="cx"> #include &quot;JSDataCueCustom.cpp&quot;
</span><del>-#include &quot;JSDataTransferCustom.cpp&quot;
</del><span class="cx"> #include &quot;JSDeviceOrientationEventCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSDocumentCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSDocumentFragmentCustom.cpp&quot;
</span><span class="lines">@@ -120,7 +119,6 @@
</span><span class="cx"> #include &quot;JSTextTrackCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSTextTrackListCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSTrackCustom.cpp&quot;
</span><del>-#include &quot;JSTrackEventCustom.cpp&quot;
</del><span class="cx"> #include &quot;JSTreeWalkerCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSVideoTrackCustom.cpp&quot;
</span><span class="cx"> #include &quot;JSVideoTrackListCustom.cpp&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSDataTransferCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/bindings/js/JSDataTransferCustom.cpp        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-/*
- * Copyright (C) 2008, 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:
- *
- * 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.
- * 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) 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 APPLE AND ITS 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 APPLE 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.
- */
-
-#include &quot;config.h&quot;
-#include &quot;JSDataTransfer.h&quot;
-
-#include &quot;JSDOMConvert.h&quot;
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSDataTransfer::types(ExecState&amp; state) const
-{
-    Vector&lt;String&gt; types = wrapped().types();
-    return types.isEmpty() ? jsNull() : toJS&lt;IDLSequence&lt;IDLDOMString&gt;&gt;(state, *globalObject(), types);
-}
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSTrackEventCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/bindings/js/JSTrackEventCustom.cpp        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 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. 
- */
-
-#include &quot;config.h&quot;
-
-#if ENABLE(VIDEO_TRACK)
-
-#include &quot;JSTrackEvent.h&quot;
-
-#include &quot;JSTrackCustom.h&quot;
-#include &quot;TrackBase.h&quot;
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSTrackEvent::track(ExecState&amp; state) const
-{
-    TrackBase* track = wrapped().track();
-    if (!track)
-        return jsNull();
-
-    return toJS(&amp;state, globalObject(), *track);
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoredomDataTransfercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DataTransfer.cpp (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DataTransfer.cpp        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/dom/DataTransfer.cpp        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -147,10 +147,8 @@
</span><span class="cx"> 
</span><span class="cx"> Vector&lt;String&gt; DataTransfer::types() const
</span><span class="cx"> {
</span><del>-    // FIXME: Per HTML5, types should be a live array, and the DOM attribute should always return the same object.
-
</del><span class="cx">     if (!canReadTypes())
</span><del>-        return Vector&lt;String&gt;();
</del><ins>+        return { };
</ins><span class="cx"> 
</span><span class="cx">     return m_pasteboard-&gt;types();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDataTransferidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DataTransfer.idl (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DataTransfer.idl        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/dom/DataTransfer.idl        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -32,13 +32,15 @@
</span><span class="cx">     attribute DOMString dropEffect;
</span><span class="cx">     attribute DOMString effectAllowed;
</span><span class="cx"> 
</span><del>-    [CustomGetter] readonly attribute Array types;
-    readonly attribute FileList files;
</del><ins>+    // FIXME: items should use [SameObject] once that is supported.
+    [Conditional=DATA_TRANSFER_ITEMS] readonly attribute DataTransferItemList items;
</ins><span class="cx"> 
</span><del>-    void clearData(optional DOMString type);
-    DOMString getData(DOMString type);
-    void setData(DOMString type, DOMString data);
</del><span class="cx">     void setDragImage(Element? image, long x, long y); // FIXME: Element argument is not nullable in the HTML standard.
</span><span class="cx"> 
</span><del>-    [Conditional=DATA_TRANSFER_ITEMS] readonly attribute DataTransferItemList items;
</del><ins>+    readonly attribute FrozenArray&lt;DOMString&gt; types;
+    DOMString getData(DOMString format);
+    void setData(DOMString format, DOMString data);
+    void clearData(optional DOMString format);
+    // FIXME: files should use [SameObject] once that is supported.
+    readonly attribute FileList files;
</ins><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTrackEventcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TrackEvent.cpp (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TrackEvent.cpp        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/html/track/TrackEvent.cpp        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -33,20 +33,33 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+static inline std::optional&lt;TrackEvent::TrackEventTrack&gt; convertToTrackEventTrack(Ref&lt;TrackBase&gt;&amp;&amp; track)
+{
+    switch (track-&gt;type()) {
+    case TrackBase::BaseTrack:
+        return std::nullopt;
+    case TrackBase::TextTrack:
+        return TrackEvent::TrackEventTrack { RefPtr&lt;TextTrack&gt;(&amp;downcast&lt;TextTrack&gt;(track.get())) };
+    case TrackBase::AudioTrack:
+        return TrackEvent::TrackEventTrack { RefPtr&lt;AudioTrack&gt;(&amp;downcast&lt;AudioTrack&gt;(track.get())) };
+    case TrackBase::VideoTrack:
+        return TrackEvent::TrackEventTrack { RefPtr&lt;VideoTrack&gt;(&amp;downcast&lt;VideoTrack&gt;(track.get())) };
+    }
+    
+    ASSERT_NOT_REACHED();
+    return std::nullopt;
+}
+
</ins><span class="cx"> TrackEvent::TrackEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, Ref&lt;TrackBase&gt;&amp;&amp; track)
</span><span class="cx">     : Event(type, canBubble, cancelable)
</span><del>-    , m_track(WTFMove(track))
</del><ins>+    , m_track(convertToTrackEventTrack(WTFMove(track)))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-TrackEvent::TrackEvent(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted)
</del><ins>+TrackEvent::TrackEvent(const AtomicString&amp; type, Init&amp;&amp; initializer, IsTrusted isTrusted)
</ins><span class="cx">     : Event(type, initializer, isTrusted)
</span><ins>+    , m_track(WTFMove(initializer.track))
</ins><span class="cx"> {
</span><del>-    if (initializer.track) {
-        m_track = WTF::switchOn(*initializer.track,
-            [](const auto&amp; trackbase) -&gt; TrackBase* { return trackbase.get(); }
-        );
-    }
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> TrackEvent::~TrackEvent()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTrackEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TrackEvent.h (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TrackEvent.h        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/html/track/TrackEvent.h        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -49,20 +49,20 @@
</span><span class="cx">         std::optional&lt;TrackEventTrack&gt; track;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    static Ref&lt;TrackEvent&gt; create(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</del><ins>+    static Ref&lt;TrackEvent&gt; create(const AtomicString&amp; type, Init&amp;&amp; initializer, IsTrusted isTrusted = IsTrusted::No)
</ins><span class="cx">     {
</span><del>-        return adoptRef(*new TrackEvent(type, initializer, isTrusted));
</del><ins>+        return adoptRef(*new TrackEvent(type, WTFMove(initializer), isTrusted));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    EventInterface eventInterface() const override;
</del><ins>+    std::optional&lt;TrackEventTrack&gt; track() const { return m_track; }
</ins><span class="cx"> 
</span><del>-    TrackBase* track() const { return m_track.get(); }
-
</del><span class="cx"> private:
</span><span class="cx">     TrackEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, Ref&lt;TrackBase&gt;&amp;&amp;);
</span><del>-    TrackEvent(const AtomicString&amp; type, const Init&amp; initializer, IsTrusted);
</del><ins>+    TrackEvent(const AtomicString&amp; type, Init&amp;&amp; initializer, IsTrusted);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;TrackBase&gt; m_track;
</del><ins>+    EventInterface eventInterface() const override;
+
+    std::optional&lt;TrackEventTrack&gt; m_track;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTrackEventidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TrackEvent.idl (210005 => 210006)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TrackEvent.idl        2016-12-20 00:37:01 UTC (rev 210005)
+++ trunk/Source/WebCore/html/track/TrackEvent.idl        2016-12-20 01:18:57 UTC (rev 210006)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">     Conditional=VIDEO_TRACK,
</span><span class="cx">     Constructor(DOMString type, optional TrackEventInit eventInitDict)
</span><span class="cx"> ] interface TrackEvent : Event {
</span><del>-    [CustomGetter] readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
</del><ins>+    readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> dictionary TrackEventInit : EventInit {
</span></span></pre>
</div>
</div>

</body>
</html>