<!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>[179041] tags/Safari-600.5.3</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/179041">179041</a></dd>
<dt>Author</dt> <dd>dburkart@apple.com</dd>
<dt>Date</dt> <dd>2015-01-23 16:45:38 -0800 (Fri, 23 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rollout <a href="http://trac.webkit.org/projects/webkit/changeset/178467">r178467</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#tagsSafari60053LayoutTestsChangeLog">tags/Safari-600.5.3/LayoutTests/ChangeLog</a></li>
<li><a href="#tagsSafari60053SourceWebCoreChangeLog">tags/Safari-600.5.3/Source/WebCore/ChangeLog</a></li>
<li><a href="#tagsSafari60053SourceWebCoreWebCorexcodeprojprojectpbxproj">tags/Safari-600.5.3/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationAVTrackPrivateAVFObjCImplh">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationAVTrackPrivateAVFObjCImplmm">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcAudioTrackPrivateAVFObjCh">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcAudioTrackPrivateAVFObjCmm">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateAVFObjCcpp">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateAVFObjCh">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCmm">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#tagsSafari60053LayoutTestshttptestsmediahlshlsaudiotracksexpectedtxt">tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks-expected.txt</a></li>
<li><a href="#tagsSafari60053LayoutTestshttptestsmediahlshlsaudiotrackshtml">tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks.html</a></li>
<li><a href="#tagsSafari60053LayoutTestshttptestsmediaresourceshlsaudiotracksm3u8">tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/audio-tracks.m3u8</a></li>
<li>tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/bipbop/</li>
<li>tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/french/</li>
<li>tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/spanish/</li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationMediaSelectionGroupAVFObjCh">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h</a></li>
<li><a href="#tagsSafari60053SourceWebCoreplatformgraphicsavfoundationMediaSelectionGroupAVFObjCmm">tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="tagsSafari60053LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/LayoutTests/ChangeLog (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/LayoutTests/ChangeLog        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/LayoutTests/ChangeLog        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -310,29 +310,6 @@
</span><span class="cx"> 
</span><span class="cx"> 2015-01-14  Dana Burkart  &lt;dburkart@apple.com&gt;
</span><span class="cx"> 
</span><del>-        Merged r174823. &lt;rdar://problem/19424155&gt;
-
-    2014-10-16  Jer Noble  &lt;jer.noble@apple.com&gt;
-
-            [Mac] Represent AVMediaSelectionOptions as AudioTracks
-            https://bugs.webkit.org/show_bug.cgi?id=137474
-
-            Reviewed by Brent Fulgham.
-
-            * http/tests/media/hls/hls-audio-tracks-expected.txt: Added.
-            * http/tests/media/hls/hls-audio-tracks.html: Added.
-            * http/tests/media/resources/hls/audio-tracks.m3u8: Added.
-            * http/tests/media/resources/hls/bipbop/iframe_index.m3u8: Added.
-            * http/tests/media/resources/hls/bipbop/main0.ts: Added.
-            * http/tests/media/resources/hls/bipbop/main1.ts: Added.
-            * http/tests/media/resources/hls/bipbop/prog_index.m3u8: Added.
-            * http/tests/media/resources/hls/french/main.aac: Added.
-            * http/tests/media/resources/hls/french/prog_index.m3u8: Added.
-            * http/tests/media/resources/hls/spanish/main.aac: Added.
-            * http/tests/media/resources/hls/spanish/prog_index.m3u8: Added.
-
-2015-01-14  Dana Burkart  &lt;dburkart@apple.com&gt;
-
</del><span class="cx">         Merged r174402. &lt;rdar://problem/19478358&gt;
</span><span class="cx"> 
</span><span class="cx">     2014-10-07  Jer Noble  &lt;jer.noble@apple.com&gt;
</span></span></pre></div>
<a id="tagsSafari60053LayoutTestshttptestsmediahlshlsaudiotracksexpectedtxt"></a>
<div class="delfile"><h4>Deleted: tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks-expected.txt (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks-expected.txt        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks-expected.txt        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1,8 +0,0 @@
</span><del>-
-EVENT(canplaythrough)
-EXPECTED (video.audioTracks.length == '3') OK
-EXPECTED (video.audioTracks[0].enabled == 'true') OK
-EXPECTED (video.audioTracks[1].enabled == 'false') OK
-EXPECTED (video.audioTracks[2].enabled == 'false') OK
-END OF TEST
-
</del></span></pre></div>
<a id="tagsSafari60053LayoutTestshttptestsmediahlshlsaudiotrackshtml"></a>
<div class="delfile"><h4>Deleted: tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks.html (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks.html        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/LayoutTests/http/tests/media/hls/hls-audio-tracks.html        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1,30 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;script src=../../media-resources/video-test.js&gt;&lt;/script&gt;
-        &lt;script src=../../media-resources/media-controls.js&gt;&lt;/script&gt;
-        &lt;script&gt;
-            if (window.testRunner) {
-                testRunner.dumpAsText();
-                testRunner.waitUntilDone();
-            }
-
-            function start() {
-                video = document.getElementById('video');
-                waitForEvent('canplaythrough', canplaythrough);
-                video.src = &quot;../resources/hls/audio-tracks.m3u8&quot;;
-            }
-
-            function canplaythrough() {
-                testExpected(&quot;video.audioTracks.length&quot;, 3);
-                testExpected(&quot;video.audioTracks[0].enabled&quot;, true);
-                testExpected(&quot;video.audioTracks[1].enabled&quot;, false);
-                testExpected(&quot;video.audioTracks[2].enabled&quot;, false);
-                endTest();
-            }
-        &lt;/script&gt;
-    &lt;/head&gt;
-    &lt;body onload=&quot;start()&quot;&gt;
-        &lt;video id=&quot;video&quot;&gt;&lt;/video&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="tagsSafari60053LayoutTestshttptestsmediaresourceshlsaudiotracksm3u8"></a>
<div class="delfile"><h4>Deleted: tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/audio-tracks.m3u8 (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/audio-tracks.m3u8        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/LayoutTests/http/tests/media/resources/hls/audio-tracks.m3u8        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-#EXTM3U
-
-#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=&quot;bipbop_audio&quot;,LANGUAGE=&quot;eng&quot;,NAME=&quot;English Sound&quot;,AUTOSELECT=YES,DEFAULT=YES
-#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=&quot;bipbop_audio&quot;,LANGUAGE=&quot;fre&quot;,NAME=&quot;French Sound&quot;,AUTOSELECT=NO,DEFAULT=NO,URI=&quot;french/prog_index.m3u8&quot;
-#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=&quot;bipbop_audio&quot;,LANGUAGE=&quot;spa&quot;,NAME=&quot;Spanish Sound&quot;,AUTOSELECT=NO,DEFAULT=NO,URI=&quot;spanish/prog_index.m3u8&quot;
-
-#EXT-X-STREAM-INF:BANDWIDTH=634451,CODECS=&quot;mp4a.40.2, avc1.4d401e&quot;,RESOLUTION=640x480,AUDIO=&quot;bipbop_audio&quot;
-bipbop/prog_index.m3u8
-#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=258613,CODECS=&quot;avc1.4d401e&quot;,URI=&quot;bipbop/iframe_index.m3u8&quot;
</del></span></pre></div>
<a id="tagsSafari60053SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/ChangeLog (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/ChangeLog        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/ChangeLog        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1689,116 +1689,6 @@
</span><span class="cx"> 
</span><span class="cx"> 2015-01-14  Dana Burkart  &lt;dburkart@apple.com&gt;
</span><span class="cx"> 
</span><del>-        Merged r174823. &lt;rdar://problem/19424155&gt;
-
-    2014-10-16  Jer Noble  &lt;jer.noble@apple.com&gt;
-
-            [Mac] Represent AVMediaSelectionOptions as AudioTracks
-            https://bugs.webkit.org/show_bug.cgi?id=137474
-
-            Reviewed by Brent Fulgham.
-
-            Test: http/tests/media/hls/hls-audio-tracks.html
-
-            Support selecting audio &quot;tracks&quot; in HLS streams by exposing AVMediaSelectionOptions
-            as entries in the video's AudioTrackList.
-
-            AVMediaSessionGroups and AVPlayerItems don't have KVO or notifications to track when options
-            are selected and deselected, so wrap AVMediaSessionGroup and AVMediaSessionOption in C++
-            wrappers. Each AVMediaSelectionGroup can have only one AVMediaSelectionOption selected at a
-            time, so the wrapper will take care of answering which AVMediaSelectionOption is currently
-            selected, as without KVO notifications, asking the AVMediaSelectionGroup directly is
-            inconsistent. Because setting the selected option multiple times in the same run-loop can
-            cause flakiness, coalesce calls to setSelectedOption() by setting a one-shot timer to do
-            the actual selection in the next run-loop.
-
-            * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h: Added.
-            (WebCore::MediaSelectionOptionAVFObjC::avMediaSelectionOption):
-            (WebCore::MediaSelectionOptionAVFObjC::clearGroup): Clear backpointer to group from option.
-            (WebCore::MediaSelectionGroupAVFObjC::selectedOption): Simple accessor.
-            (WebCore::MediaSelectionGroupAVFObjC::options):  Simple accessor.
-            (WebCore::MediaSelectionGroupAVFObjC::avMediaSelectionGroup): Simple accessor.
-            * platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm: Added.
-            (WebCore::MediaSelectionOptionAVFObjC::create): Simple factory method.
-            (WebCore::MediaSelectionOptionAVFObjC::MediaSelectionOptionAVFObjC): Simple constructor.
-            (WebCore::MediaSelectionOptionAVFObjC::setSelected): Pass through to MediaSelectionGroupAVFObjC.
-            (WebCore::MediaSelectionOptionAVFObjC::selected): Ditto.
-            (WebCore::MediaSelectionOptionAVFObjC::index): Return index of this object in the group's object.
-            (WebCore::MediaSelectionGroupAVFObjC::create):
-            (WebCore::MediaSelectionGroupAVFObjC::MediaSelectionGroupAVFObjC):
-            (WebCore::MediaSelectionGroupAVFObjC::~MediaSelectionGroupAVFObjC):
-            (WebCore::MediaSelectionGroupAVFObjC::updateOptions): Discover added or removed options.
-            (WebCore::MediaSelectionGroupAVFObjC::setSelectedOption): Set a one shot timer to coalesce multiple calls.
-            (WebCore::MediaSelectionGroupAVFObjC::selectionTimerFired): Set the selected AVSelectionOption.
-
-            Modify AVTrackPrivateAVFObjCImpl to support both AVPlayerItemTracks and these new
-            MediaSelectionOptionAVFObjC objects.
-
-            * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
-            (WebCore::AVTrackPrivateAVFObjCImpl::mediaSelectionOption): Simple accessor.
-            * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
-            (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):  Simple constructor.
-            (WebCore::AVTrackPrivateAVFObjCImpl::~AVTrackPrivateAVFObjCImpl): Simple destructor.
-            (WebCore::AVTrackPrivateAVFObjCImpl::enabled): Use MediaSelectionOptionAVFObjC, if present.
-            (WebCore::AVTrackPrivateAVFObjCImpl::setEnabled): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::audioKind): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::videoKind): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::index): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::id): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::label): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::language): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::languageForAVMediaSelectionOption): Ditto.
-            (WebCore::AVTrackPrivateAVFObjCImpl::trackID): Ditto.
-
-            Allow AudioTrackPrivateAVFObjC and VideoTrackPrivateAVFObjC to be created with
-            a MediaSelectionOptionAVFObjC.
-
-            * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
-            (WebCore::AudioTrackPrivateAVFObjC::create): Takes a MediaSelectionOptionAVFObjC.
-            * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
-            (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC): Simple constructor.
-            (WebCore::AudioTrackPrivateAVFObjC::setMediaSelectionOption): Create a new AVTrackPrivateAVFObjCImpl.
-            (WebCore::AudioTrackPrivateAVFObjC::mediaSelectionOption): Simple accessor.
-            * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
-            (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC): Simple constructor.
-            (WebCore::VideoTrackPrivateAVFObjC::setMediaSelectonOption): Create a new AVTrackPrivateAVFObjCImpl.
-            (WebCore::VideoTrackPrivateAVFObjC::mediaSelectionOption): Simple accessor.
-            * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
-
-            Because IDs are not necessarily unique across AVPlayerItemTracks and AVMediaSelectionOptions,
-            use the index of the track or option instead of it's self-declared ID for ordering for the
-            trackIndex.
-
-            * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
-            (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
-            * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
-            (WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
-
-            Rather than making allowing the AVPlayerItem to automatically select the &quot;best&quot;
-            AVMediaSelectionOption, select the automatic options when creating the AVPlayerItem
-            and thereafter allow the users manual selections &quot;stick&quot;.
-
-            * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
-            * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::ensureAVPlayer):
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::ensureAVPlayerItem):
-
-            Determine whether any MediaSelectionOptionsAVFObjC have been added or removed and send trackChange events accordingly.
-
-            * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
-            (WebCore::determineChangedTracksFromNewTracksAndOldItems): Added.
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Search for updated selection options.
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia): Return selection group, if available.
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia): Ditto.
-            (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Filter out AVPlayerItemTracks without
-                AVAssetTracks, as these will be represented by MediaSelectionGroupObjCs instead.
-            
-            Add new files to project.
-            * WebCore.xcodeproj/project.pbxproj:
-
-2015-01-14  Dana Burkart  &lt;dburkart@apple.com&gt;
-
</del><span class="cx">         Merged r174402. &lt;rdar://problem/19478358&gt;
</span><span class="cx"> 
</span><span class="cx">     2014-10-07  Jer Noble  &lt;jer.noble@apple.com&gt;
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/WebCore.xcodeproj/project.pbxproj (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -5730,8 +5730,6 @@
</span><span class="cx">                 CDAE8C091746B95700532D78 /* MediaSessionManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDAE8C071746B95700532D78 /* MediaSessionManager.cpp */; };
</span><span class="cx">                 CDB859F7160D48A400E5B07F /* MediaKeyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDB859F4160D489900E5B07F /* MediaKeyEvent.cpp */; };
</span><span class="cx">                 CDB859FA160D494900E5B07F /* JSMediaKeyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDB859F8160D493E00E5B07F /* JSMediaKeyEvent.cpp */; };
</span><del>-                CDBEAEAC19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDBEAEAA19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm */; };
-                CDBEAEAD19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = CDBEAEAB19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h */; };
</del><span class="cx">                 CDC26B40160A8CC60026757B /* MockCDM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDC26B3C160A62B00026757B /* MockCDM.cpp */; };
</span><span class="cx">                 CDC26B41160A8CCE0026757B /* MockCDM.h in Headers */ = {isa = PBXBuildFile; fileRef = CDC26B3D160A62B00026757B /* MockCDM.h */; };
</span><span class="cx">                 CDC69DD61632026C007C38DF /* WebCoreFullScreenWarningView.h in Headers */ = {isa = PBXBuildFile; fileRef = CDC69DD41632026C007C38DF /* WebCoreFullScreenWarningView.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -13234,8 +13232,6 @@
</span><span class="cx">                 CDB859F6160D489900E5B07F /* MediaKeyEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaKeyEvent.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CDB859F8160D493E00E5B07F /* JSMediaKeyEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaKeyEvent.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CDB859F9160D493E00E5B07F /* JSMediaKeyEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaKeyEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                CDBEAEAA19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaSelectionGroupAVFObjC.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
-                CDBEAEAB19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSelectionGroupAVFObjC.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 CDC1DD4117CC2C48008CB55D /* mediaControlsApple.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = mediaControlsApple.css; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CDC26B3C160A62B00026757B /* MockCDM.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MockCDM.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CDC26B3D160A62B00026757B /* MockCDM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockCDM.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -21792,8 +21788,6 @@
</span><span class="cx">                                 CD8B5A40180D149A008B8E65 /* VideoTrackPrivateMediaSourceAVFObjC.mm */,
</span><span class="cx">                                 CD7E05201651A84100C1201F /* WebCoreAVFResourceLoader.h */,
</span><span class="cx">                                 CD7E05211651A84100C1201F /* WebCoreAVFResourceLoader.mm */,
</span><del>-                                CDBEAEAA19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm */,
-                                CDBEAEAB19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h */,
</del><span class="cx">                         );
</span><span class="cx">                         name = objc;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -24017,7 +24011,6 @@
</span><span class="cx">                                 85C78A680ABDE1B40044FC16 /* DOMException.h in Headers */,
</span><span class="cx">                                 BC1A37B5097C715F0019F3D8 /* DOMExtensions.h in Headers */,
</span><span class="cx">                                 BC00F0040E0A185500FD04E3 /* DOMFile.h in Headers */,
</span><del>-                                CDBEAEAD19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h in Headers */,
</del><span class="cx">                                 2E3BC108117D479800B9409A /* DOMFileError.h in Headers */,
</span><span class="cx">                                 2E3BC10B117D47C800B9409A /* DOMFileErrorInternal.h in Headers */,
</span><span class="cx">                                 BC00F0060E0A185500FD04E3 /* DOMFileInternal.h in Headers */,
</span><span class="lines">@@ -28357,7 +28350,6 @@
</span><span class="cx">                                 59A86006119DAF7F00DEF1EF /* JSDeviceOrientationEvent.cpp in Sources */,
</span><span class="cx">                                 590E1B4B11E4EF700069F784 /* JSDeviceOrientationEventCustom.cpp in Sources */,
</span><span class="cx">                                 BCE438A2140C0DC0005E437E /* JSDictionary.cpp in Sources */,
</span><del>-                                CDBEAEAC19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm in Sources */,
</del><span class="cx">                                 659DDC8209E198BA001BF3C6 /* JSDocument.cpp in Sources */,
</span><span class="cx">                                 49C7BA8D1042F5B10009D447 /* JSDocumentCustom.cpp in Sources */,
</span><span class="cx">                                 1A494EDE0A123F4C00FDAFC1 /* JSDocumentFragment.cpp in Sources */,
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationAVTrackPrivateAVFObjCImplh"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -31,29 +31,20 @@
</span><span class="cx"> #include &quot;AudioTrackPrivate.h&quot;
</span><span class="cx"> #include &quot;VideoTrackPrivate.h&quot;
</span><span class="cx"> #include &lt;wtf/OwnPtr.h&gt;
</span><del>-#include &lt;wtf/Ref.h&gt;
</del><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> OBJC_CLASS AVAssetTrack;
</span><del>-OBJC_CLASS AVPlayerItem;
</del><span class="cx"> OBJC_CLASS AVPlayerItemTrack;
</span><del>-OBJC_CLASS AVMediaSelectionGroup;
-OBJC_CLASS AVMediaSelectionOption;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class MediaSelectionOptionAVFObjC;
-
</del><span class="cx"> class AVTrackPrivateAVFObjCImpl {
</span><span class="cx"> public:
</span><span class="cx">     explicit AVTrackPrivateAVFObjCImpl(AVPlayerItemTrack*);
</span><span class="cx">     explicit AVTrackPrivateAVFObjCImpl(AVAssetTrack*);
</span><del>-    explicit AVTrackPrivateAVFObjCImpl(MediaSelectionOptionAVFObjC&amp;);
-    ~AVTrackPrivateAVFObjCImpl();
</del><span class="cx"> 
</span><span class="cx">     AVPlayerItemTrack* playerItemTrack() const { return m_playerItemTrack.get(); }
</span><span class="cx">     AVAssetTrack* assetTrack() const { return m_assetTrack.get(); }
</span><del>-    MediaSelectionOptionAVFObjC* mediaSelectionOption() const { return m_mediaSelectionOption.get(); }
</del><span class="cx"> 
</span><span class="cx">     bool enabled() const;
</span><span class="cx">     void setEnabled(bool);
</span><span class="lines">@@ -61,7 +52,6 @@
</span><span class="cx">     AudioTrackPrivate::Kind audioKind() const;
</span><span class="cx">     VideoTrackPrivate::Kind videoKind() const;
</span><span class="cx"> 
</span><del>-    int index() const;
</del><span class="cx">     AtomicString id() const;
</span><span class="cx">     AtomicString label() const;
</span><span class="cx">     AtomicString language() const;
</span><span class="lines">@@ -69,13 +59,10 @@
</span><span class="cx">     int trackID() const;
</span><span class="cx"> 
</span><span class="cx">     static String languageForAVAssetTrack(AVAssetTrack*);
</span><del>-    static String languageForAVMediaSelectionOption(AVMediaSelectionOption *);
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RetainPtr&lt;AVPlayerItemTrack&gt; m_playerItemTrack;
</span><span class="cx">     RetainPtr&lt;AVAssetTrack&gt; m_assetTrack;
</span><del>-    RetainPtr&lt;AVPlayerItem&gt; m_playerItem;
-    RefPtr&lt;MediaSelectionOptionAVFObjC&gt; m_mediaSelectionOption;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationAVTrackPrivateAVFObjCImplmm"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -28,27 +28,16 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> 
</span><del>-#import &quot;MediaSelectionGroupAVFObjC.h&quot;
</del><span class="cx"> #import &quot;SoftLinking.h&quot;
</span><ins>+#import &lt;objc/runtime.h&gt;
</ins><span class="cx"> #import &lt;AVFoundation/AVAssetTrack.h&gt;
</span><del>-#import &lt;AVFoundation/AVMediaSelectionGroup.h&gt;
-#import &lt;AVFoundation/AVMetadataItem.h&gt;
-#import &lt;AVFoundation/AVPlayerItem.h&gt;
</del><span class="cx"> #import &lt;AVFoundation/AVPlayerItemTrack.h&gt;
</span><del>-#import &lt;objc/runtime.h&gt;
</del><ins>+#import &lt;AVFoundation/AVMetadataItem.h&gt;
</ins><span class="cx"> 
</span><del>-@class AVMediaSelectionOption;
-@interface AVMediaSelectionOption (WebKitInternal)
-- (id)optionID;
-@end
-
</del><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVAssetTrack)
</span><del>-SOFT_LINK_CLASS(AVFoundation, AVPlayerItem)
</del><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVPlayerItemTrack)
</span><del>-SOFT_LINK_CLASS(AVFoundation, AVMediaSelectionGroup)
-SOFT_LINK_CLASS(AVFoundation, AVMediaSelectionOption)
</del><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVMetadataItem)
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_POINTER_OPTIONAL(AVFoundation, AVMediaCharacteristicIsMainProgramContent, NSString *)
</span><span class="lines">@@ -80,120 +69,48 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl(MediaSelectionOptionAVFObjC&amp; option)
-    : m_mediaSelectionOption(&amp;option)
-{
-}
-
-AVTrackPrivateAVFObjCImpl::~AVTrackPrivateAVFObjCImpl()
-{
-}
-    
</del><span class="cx"> bool AVTrackPrivateAVFObjCImpl::enabled() const
</span><span class="cx"> {
</span><del>-    if (m_playerItemTrack)
-        return [m_playerItemTrack isEnabled];
-    if (m_mediaSelectionOption)
-        return m_mediaSelectionOption-&gt;selected();
-    ASSERT_NOT_REACHED();
-    return false;
</del><ins>+    ASSERT(m_playerItemTrack);
+    return [m_playerItemTrack isEnabled];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AVTrackPrivateAVFObjCImpl::setEnabled(bool enabled)
</span><span class="cx"> {
</span><del>-    if (m_playerItemTrack)
-        [m_playerItemTrack setEnabled:enabled];
-    else if (m_mediaSelectionOption)
-        m_mediaSelectionOption-&gt;setSelected(enabled);
-    else
-        ASSERT_NOT_REACHED();
</del><ins>+    ASSERT(m_playerItemTrack);
+    [m_playerItemTrack setEnabled:enabled];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AudioTrackPrivate::Kind AVTrackPrivateAVFObjCImpl::audioKind() const
</span><span class="cx"> {
</span><del>-    if (m_assetTrack) {
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
-            return AudioTrackPrivate::Alternative;
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
-            return AudioTrackPrivate::Main;
-        return AudioTrackPrivate::None;
-    }
-
-    if (m_mediaSelectionOption) {
-        AVMediaSelectionOption *option = m_mediaSelectionOption-&gt;avMediaSelectionOption();
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
-            return AudioTrackPrivate::Alternative;
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
-            return AudioTrackPrivate::Main;
-        return AudioTrackPrivate::None;
-    }
-
-    ASSERT_NOT_REACHED();
</del><ins>+    if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
+        return AudioTrackPrivate::Alternative;
+    else if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
+        return AudioTrackPrivate::Main;
</ins><span class="cx">     return AudioTrackPrivate::None;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VideoTrackPrivate::Kind AVTrackPrivateAVFObjCImpl::videoKind() const
</span><span class="cx"> {
</span><del>-    if (m_assetTrack) {
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicDescribesVideoForAccessibility])
-            return VideoTrackPrivate::Sign;
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicTranscribesSpokenDialogForAccessibility])
-            return VideoTrackPrivate::Captions;
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
-            return VideoTrackPrivate::Alternative;
-        if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
-            return VideoTrackPrivate::Main;
-        return VideoTrackPrivate::None;
-    }
-
-    if (m_mediaSelectionOption) {
-        AVMediaSelectionOption *option = m_mediaSelectionOption-&gt;avMediaSelectionOption();
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicDescribesVideoForAccessibility])
-            return VideoTrackPrivate::Sign;
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicTranscribesSpokenDialogForAccessibility])
-            return VideoTrackPrivate::Captions;
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
-            return VideoTrackPrivate::Alternative;
-        if ([option hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
-            return VideoTrackPrivate::Main;
-        return VideoTrackPrivate::None;
-    }
-
-    ASSERT_NOT_REACHED();
</del><ins>+    if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicDescribesVideoForAccessibility])
+        return VideoTrackPrivate::Sign;
+    else if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicTranscribesSpokenDialogForAccessibility])
+        return VideoTrackPrivate::Captions;
+    else if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsAuxiliaryContent])
+        return VideoTrackPrivate::Alternative;
+    else if ([m_assetTrack hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent])
+        return VideoTrackPrivate::Main;
</ins><span class="cx">     return VideoTrackPrivate::None;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-int AVTrackPrivateAVFObjCImpl::index() const
-{
-    if (m_assetTrack)
-        return [[[m_assetTrack asset] tracks] indexOfObject:m_assetTrack.get()];
-    if (m_mediaSelectionOption)
-        return [[[m_playerItem asset] tracks] count] + m_mediaSelectionOption-&gt;index();
-    ASSERT_NOT_REACHED();
-    return 0;
-}
-
</del><span class="cx"> AtomicString AVTrackPrivateAVFObjCImpl::id() const
</span><span class="cx"> {
</span><del>-    if (m_assetTrack)
-        return String::format(&quot;%d&quot;, [m_assetTrack trackID]);
-    if (m_mediaSelectionOption)
-        return [[m_mediaSelectionOption-&gt;avMediaSelectionOption() optionID] stringValue];
-    ASSERT_NOT_REACHED();
-    return emptyAtom;
</del><ins>+    return String::format(&quot;%d&quot;, [m_assetTrack trackID]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AtomicString AVTrackPrivateAVFObjCImpl::label() const
</span><span class="cx"> {
</span><del>-    NSArray *commonMetadata = nil;
-    if (m_assetTrack)
-        commonMetadata = [m_assetTrack commonMetadata];
-    else if (m_mediaSelectionOption)
-        commonMetadata = [m_mediaSelectionOption-&gt;avMediaSelectionOption() commonMetadata];
-    else
-        ASSERT_NOT_REACHED();
-
-    NSArray *titles = [AVMetadataItem metadataItemsFromArray:commonMetadata withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon];
</del><ins>+    NSArray *titles = [AVMetadataItem metadataItemsFromArray:[m_assetTrack commonMetadata] withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon];
</ins><span class="cx">     if (![titles count])
</span><span class="cx">         return emptyAtom;
</span><span class="cx"> 
</span><span class="lines">@@ -206,13 +123,7 @@
</span><span class="cx"> 
</span><span class="cx"> AtomicString AVTrackPrivateAVFObjCImpl::language() const
</span><span class="cx"> {
</span><del>-    if (m_assetTrack)
-        return languageForAVAssetTrack(m_assetTrack.get());
-    if (m_mediaSelectionOption)
-        return languageForAVMediaSelectionOption(m_mediaSelectionOption-&gt;avMediaSelectionOption());
-
-    ASSERT_NOT_REACHED();
-    return emptyAtom;
</del><ins>+    return languageForAVAssetTrack(m_assetTrack.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String AVTrackPrivateAVFObjCImpl::languageForAVAssetTrack(AVAssetTrack* track)
</span><span class="lines">@@ -232,35 +143,9 @@
</span><span class="cx">     return language;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String AVTrackPrivateAVFObjCImpl::languageForAVMediaSelectionOption(AVMediaSelectionOption* option)
-{
-#if  __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    NSString *language = [option extendedLanguageTag];
-#else
-    NSString *language = nil;
-#endif
-
-    // If the language code is stored as a QuickTime 5-bit packed code there aren't enough bits for a full
-    // RFC 4646 language tag so extendedLanguageTag returns NULL. In this case languageCode will return the
-    // ISO 639-2/T language code so check it.
-    if (!language)
-        language = [[option locale] objectForKey:NSLocaleLanguageCode];
-
-    // Some legacy tracks have &quot;und&quot; as a language, treat that the same as no language at all.
-    if (!language || [language isEqualToString:@&quot;und&quot;])
-        return emptyString();
-    
-    return language;
-}
-
</del><span class="cx"> int AVTrackPrivateAVFObjCImpl::trackID() const
</span><span class="cx"> {
</span><del>-    if (m_assetTrack)
-        return [m_assetTrack trackID];
-    if (m_mediaSelectionOption)
-        return [[m_mediaSelectionOption-&gt;avMediaSelectionOption() optionID] intValue];
-    ASSERT_NOT_REACHED();
-    return 0;
</del><ins>+    return [m_assetTrack trackID];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationMediaSelectionGroupAVFObjCh"></a>
<div class="delfile"><h4>Deleted: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1,100 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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.
- */
-
-#ifndef MediaSelectionGroupAVFObjC_h
-#define MediaSelectionGroupAVFObjC_h
-
-#if ENABLE(VIDEO_TRACK)
-
-#include &quot;Timer.h&quot;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/IteratorRange.h&gt;
-#include &lt;wtf/OwnPtr.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-#include &lt;wtf/RetainPtr.h&gt;
-
-OBJC_CLASS AVPlayerItem;
-OBJC_CLASS AVMediaSelectionGroup;
-OBJC_CLASS AVMediaSelectionOption;
-
-namespace WebCore {
-
-class MediaSelectionGroupAVFObjC;
-
-class MediaSelectionOptionAVFObjC : public RefCounted&lt;MediaSelectionOptionAVFObjC&gt; {
-public:
-    static PassRefPtr&lt;MediaSelectionOptionAVFObjC&gt; create(MediaSelectionGroupAVFObjC&amp;, AVMediaSelectionOption *);
-
-    void setSelected(bool);
-    bool selected() const;
-
-    int index() const;
-
-    AVMediaSelectionOption *avMediaSelectionOption() const { return m_mediaSelectionOption.get(); }
-
-private:
-    friend class MediaSelectionGroupAVFObjC;
-    MediaSelectionOptionAVFObjC(MediaSelectionGroupAVFObjC&amp;, AVMediaSelectionOption *);
-
-    void clearGroup() { m_group = nullptr; }
-
-    MediaSelectionGroupAVFObjC* m_group;
-    RetainPtr&lt;AVMediaSelectionOption&gt; m_mediaSelectionOption;
-};
-
-class MediaSelectionGroupAVFObjC : public RefCounted&lt;MediaSelectionGroupAVFObjC&gt; {
-public:
-    static PassRefPtr&lt;MediaSelectionGroupAVFObjC&gt; create(AVPlayerItem*, AVMediaSelectionGroup*);
-    ~MediaSelectionGroupAVFObjC();
-
-    void setSelectedOption(MediaSelectionOptionAVFObjC*);
-    MediaSelectionOptionAVFObjC* selectedOption() const { return m_selectedOption; }
-
-    void updateOptions();
-
-    typedef HashMap&lt;AVMediaSelectionOption*, RefPtr&lt;MediaSelectionOptionAVFObjC&gt;&gt; OptionContainer;
-    WTF::IteratorRange&lt;OptionContainer::iterator::Values&gt; options() { return m_options.values(); }
-
-    AVMediaSelectionGroup *avMediaSelectionGroup() const { return m_mediaSelectionGroup.get(); }
-
-private:
-    MediaSelectionGroupAVFObjC(AVPlayerItem*, AVMediaSelectionGroup*);
-
-    void selectionTimerFired(Timer&amp;);
-
-    RetainPtr&lt;AVPlayerItem&gt; m_playerItem;
-    RetainPtr&lt;AVMediaSelectionGroup&gt; m_mediaSelectionGroup;
-    OptionContainer m_options;
-    MediaSelectionOptionAVFObjC* m_selectedOption;
-    Timer m_selectionTimer;
-};
-
-}
-
-#endif // ENABLE(VIDEO_TRACK)
-
-#endif // MediaSelectionGroupAVFObjC_h
</del></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationMediaSelectionGroupAVFObjCmm"></a>
<div class="delfile"><h4>Deleted: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -1,151 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 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.
- */
-
-#import &quot;config.h&quot;
-#import &quot;MediaSelectionGroupAVFObjC.h&quot;
-
-#if ENABLE(VIDEO_TRACK)
-
-#import &quot;SoftLinking.h&quot;
-#import &lt;AVFoundation/AVAsset.h&gt;
-#import &lt;AVFoundation/AVMediaSelectionGroup.h&gt;
-#import &lt;AVFoundation/AVPlayerItem.h&gt;
-#import &lt;objc/runtime.h&gt;
-#import &lt;wtf/HashMap.h&gt;
-#import &lt;wtf/HashSet.h&gt;
-
-SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
-
-SOFT_LINK_CLASS(AVFoundation, AVMediaSelectionGroup)
-SOFT_LINK_CLASS(AVFoundation, AVMediaSelectionOption)
-
-namespace WebCore {
-
-PassRefPtr&lt;MediaSelectionOptionAVFObjC&gt; MediaSelectionOptionAVFObjC::create(MediaSelectionGroupAVFObjC&amp; group, AVMediaSelectionOption *option)
-{
-    return adoptRef(new MediaSelectionOptionAVFObjC(group, option));
-}
-
-MediaSelectionOptionAVFObjC::MediaSelectionOptionAVFObjC(MediaSelectionGroupAVFObjC&amp; group, AVMediaSelectionOption *option)
-    : m_group(&amp;group)
-    , m_mediaSelectionOption(option)
-{
-}
-
-void MediaSelectionOptionAVFObjC::setSelected(bool selected)
-{
-    if (!m_group)
-        return;
-
-    if (selected == this-&gt;selected())
-        return;
-
-    m_group-&gt;setSelectedOption(selected ? this : nullptr);
-}
-
-bool MediaSelectionOptionAVFObjC::selected() const
-{
-    if (!m_group)
-        return false;
-    return this == m_group-&gt;selectedOption();
-}
-
-int MediaSelectionOptionAVFObjC::index() const
-{
-    if (!m_group)
-        return 0;
-
-    return [[m_group-&gt;avMediaSelectionGroup() options] indexOfObject:m_mediaSelectionOption.get()];
-}
-
-PassRefPtr&lt;MediaSelectionGroupAVFObjC&gt; MediaSelectionGroupAVFObjC::create(AVPlayerItem *item, AVMediaSelectionGroup *group)
-{
-    return adoptRef(new MediaSelectionGroupAVFObjC(item, group));
-}
-
-MediaSelectionGroupAVFObjC::MediaSelectionGroupAVFObjC(AVPlayerItem *item, AVMediaSelectionGroup *group)
-    : m_playerItem(item)
-    , m_mediaSelectionGroup(group)
-    , m_selectedOption(nullptr)
-    , m_selectionTimer(this, &amp;MediaSelectionGroupAVFObjC::selectionTimerFired)
-{
-    updateOptions();
-}
-
-MediaSelectionGroupAVFObjC::~MediaSelectionGroupAVFObjC()
-{
-    for (auto&amp; option : m_options.values())
-        option-&gt;clearGroup();
-}
-
-void MediaSelectionGroupAVFObjC::updateOptions()
-{
-    RetainPtr&lt;NSSet&gt; newAVOptions = adoptNS([[NSSet alloc] initWithArray:[getAVMediaSelectionGroupClass() playableMediaSelectionOptionsFromArray:[m_mediaSelectionGroup options]]]);
-    RetainPtr&lt;NSMutableSet&gt; oldAVOptions = adoptNS([[NSMutableSet alloc] initWithCapacity:m_options.size()]);
-    for (auto&amp; avOption : m_options.keys())
-        [oldAVOptions addObject:avOption];
-
-    RetainPtr&lt;NSMutableSet&gt; addedAVOptions = [newAVOptions mutableCopy];
-    [addedAVOptions minusSet:oldAVOptions.get()];
-
-    RetainPtr&lt;NSMutableSet&gt; removedAVOptions = [oldAVOptions mutableCopy];
-    [removedAVOptions minusSet:newAVOptions.get()];
-
-    for (AVMediaSelectionOption* removedAVOption in removedAVOptions.get()) {
-        if (m_selectedOption &amp;&amp; removedAVOption == m_selectedOption-&gt;avMediaSelectionOption())
-            m_selectedOption = nullptr;
-
-        m_options.remove(removedAVOption);
-    }
-
-    AVMediaSelectionOption* selectedOption = [m_playerItem selectedMediaOptionInMediaSelectionGroup:m_mediaSelectionGroup.get()];
-
-    for (AVMediaSelectionOption* addedAVOption in addedAVOptions.get()) {
-        RefPtr&lt;MediaSelectionOptionAVFObjC&gt; addedOption = MediaSelectionOptionAVFObjC::create(*this, addedAVOption);
-        if (addedAVOption == selectedOption)
-            m_selectedOption = addedOption.get();
-        m_options.set(addedAVOption, addedOption.release());
-    }
-}
-
-void MediaSelectionGroupAVFObjC::setSelectedOption(MediaSelectionOptionAVFObjC* option)
-{
-    if (m_selectedOption == option)
-        return;
-
-    m_selectedOption = option;
-    if (m_selectionTimer.isActive())
-        m_selectionTimer.stop();
-    m_selectionTimer.startOneShot(0);
-}
-
-void MediaSelectionGroupAVFObjC::selectionTimerFired(Timer&amp;)
-{
-    [m_playerItem selectMediaOption:(m_selectedOption ? m_selectedOption-&gt;avMediaSelectionOption() : nil) inMediaSelectionGroup:m_mediaSelectionGroup.get()];
-}
-
-}
-
-#endif
</del></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcAudioTrackPrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -31,16 +31,12 @@
</span><span class="cx"> #include &quot;AudioTrackPrivateAVF.h&quot;
</span><span class="cx"> #include &lt;wtf/OwnPtr.h&gt;
</span><span class="cx"> 
</span><del>-OBJC_CLASS AVAssetTrack;
-OBJC_CLASS AVPlayerItem;
</del><span class="cx"> OBJC_CLASS AVPlayerItemTrack;
</span><del>-OBJC_CLASS AVMediaSelectionGroup;
-OBJC_CLASS AVMediaSelectionOption;
</del><ins>+OBJC_CLASS AVAssetTrack;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AVTrackPrivateAVFObjCImpl;
</span><del>-class MediaSelectionOptionAVFObjC;
</del><span class="cx"> 
</span><span class="cx"> class AudioTrackPrivateAVFObjC : public AudioTrackPrivateAVF {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(AudioTrackPrivateAVFObjC)
</span><span class="lines">@@ -55,11 +51,6 @@
</span><span class="cx">         return adoptRef(new AudioTrackPrivateAVFObjC(track));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static RefPtr&lt;AudioTrackPrivateAVFObjC&gt; create(MediaSelectionOptionAVFObjC&amp; option)
-    {
-        return adoptRef(new AudioTrackPrivateAVFObjC(option));
-    }
-
</del><span class="cx">     virtual void setEnabled(bool);
</span><span class="cx"> 
</span><span class="cx">     void setPlayerItemTrack(AVPlayerItemTrack*);
</span><span class="lines">@@ -68,14 +59,9 @@
</span><span class="cx">     void setAssetTrack(AVAssetTrack*);
</span><span class="cx">     AVAssetTrack* assetTrack();
</span><span class="cx"> 
</span><del>-    void setMediaSelectionOption(MediaSelectionOptionAVFObjC&amp;);
-    MediaSelectionOptionAVFObjC* mediaSelectionOption();
-
</del><span class="cx"> private:
</span><del>-    friend class MediaPlayerPrivateAVFoundationObjC;
</del><span class="cx">     AudioTrackPrivateAVFObjC(AVPlayerItemTrack*);
</span><span class="cx">     AudioTrackPrivateAVFObjC(AVAssetTrack*);
</span><del>-    AudioTrackPrivateAVFObjC(MediaSelectionOptionAVFObjC&amp;);
</del><span class="cx"> 
</span><span class="cx">     void resetPropertiesFromTrack();
</span><span class="cx">     std::unique_ptr&lt;AVTrackPrivateAVFObjCImpl&gt; m_impl;
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcAudioTrackPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;AudioTrackPrivateAVFObjC.h&quot;
</span><span class="cx"> #import &quot;AVTrackPrivateAVFObjCImpl.h&quot;
</span><del>-#import &quot;MediaSelectionGroupAVFObjC.h&quot;
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> 
</span><span class="lines">@@ -38,19 +37,13 @@
</span><span class="cx">     resetPropertiesFromTrack();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC(MediaSelectionOptionAVFObjC&amp; option)
-    : m_impl(std::make_unique&lt;AVTrackPrivateAVFObjCImpl&gt;(option))
-{
-    resetPropertiesFromTrack();
-}
-
</del><span class="cx"> void AudioTrackPrivateAVFObjC::resetPropertiesFromTrack()
</span><span class="cx"> {
</span><span class="cx">     // Don't call this-&gt;setEnabled() because it also sets the enabled state of the
</span><span class="cx">     // AVPlayerItemTrack
</span><span class="cx">     AudioTrackPrivateAVF::setEnabled(m_impl-&gt;enabled());
</span><span class="cx"> 
</span><del>-    setTrackIndex(m_impl-&gt;index());
</del><ins>+    setTrackIndex(m_impl-&gt;trackID());
</ins><span class="cx">     setKind(m_impl-&gt;audioKind());
</span><span class="cx">     setId(m_impl-&gt;id());
</span><span class="cx">     setLabel(m_impl-&gt;label());
</span><span class="lines">@@ -85,17 +78,6 @@
</span><span class="cx">     return m_impl-&gt;assetTrack();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AudioTrackPrivateAVFObjC::setMediaSelectionOption(MediaSelectionOptionAVFObjC&amp; option)
-{
-    m_impl = std::make_unique&lt;AVTrackPrivateAVFObjCImpl&gt;(option);
-    resetPropertiesFromTrack();
-}
-
-MediaSelectionOptionAVFObjC* AudioTrackPrivateAVFObjC::mediaSelectionOption()
-{
-    return m_impl-&gt;mediaSelectionOption();
-}
-
</del><span class="cx"> void AudioTrackPrivateAVFObjC::setEnabled(bool enabled)
</span><span class="cx"> {
</span><span class="cx">     AudioTrackPrivateAVF::setEnabled(enabled);
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -63,7 +63,6 @@
</span><span class="cx"> class InbandMetadataTextTrackPrivateAVF;
</span><span class="cx"> class InbandTextTrackPrivateAVFObjC;
</span><span class="cx"> class AudioTrackPrivateAVFObjC;
</span><del>-class MediaSelectionGroupAVFObjC;
</del><span class="cx"> class VideoTrackPrivateAVFObjC;
</span><span class="cx"> 
</span><span class="cx"> class MediaPlayerPrivateAVFoundationObjC : public MediaPlayerPrivateAVFoundation {
</span><span class="lines">@@ -241,8 +240,6 @@
</span><span class="cx"> #if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP)
</span><span class="cx">     void processMediaSelectionOptions();
</span><span class="cx">     AVMediaSelectionGroup* safeMediaSelectionGroupForLegibleMedia();
</span><del>-    AVMediaSelectionGroup* safeMediaSelectionGroupForAudibleMedia();
-    AVMediaSelectionGroup* safeMediaSelectionGroupForVisualMedia();
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATACUE_VALUE)
</span><span class="lines">@@ -321,11 +318,7 @@
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     Vector&lt;RefPtr&lt;AudioTrackPrivateAVFObjC&gt;&gt; m_audioTracks;
</span><span class="cx">     Vector&lt;RefPtr&lt;VideoTrackPrivateAVFObjC&gt;&gt; m_videoTracks;
</span><del>-#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP)
-    RefPtr&lt;MediaSelectionGroupAVFObjC&gt; m_audibleGroup;
-    RefPtr&lt;MediaSelectionGroupAVFObjC&gt; m_visualGroup;
</del><span class="cx"> #endif
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     InbandTextTrackPrivateAVF* m_currentTextTrack;
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -45,7 +45,6 @@
</span><span class="cx"> #import &quot;OutOfBandTextTrackPrivateAVF.h&quot;
</span><span class="cx"> #import &quot;URL.h&quot;
</span><span class="cx"> #import &quot;Logging.h&quot;
</span><del>-#import &quot;MediaSelectionGroupAVFObjC.h&quot;
</del><span class="cx"> #import &quot;MediaTimeAVFoundation.h&quot;
</span><span class="cx"> #import &quot;PlatformTimeRanges.h&quot;
</span><span class="cx"> #import &quot;SecurityOrigin.h&quot;
</span><span class="lines">@@ -66,7 +65,6 @@
</span><span class="cx"> #import &lt;runtime/Uint8Array.h&gt;
</span><span class="cx"> #import &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #import &lt;wtf/Functional.h&gt;
</span><del>-#import &lt;wtf/ListHashSet.h&gt;
</del><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #import &lt;wtf/text/CString.h&gt;
</span><span class="cx"> #import &lt;wtf/text/StringBuilder.h&gt;
</span><span class="lines">@@ -89,12 +87,6 @@
</span><span class="cx"> #import &lt;VideoToolbox/VideoToolbox.h&gt;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-namespace std {
-template &lt;&gt; struct iterator_traits&lt;HashSet&lt;RefPtr&lt;WebCore::MediaSelectionOptionAVFObjC&gt;&gt;::iterator&gt; {
-    typedef RefPtr&lt;WebCore::MediaSelectionOptionAVFObjC&gt; value_type;
-};
-}
-
</del><span class="cx"> @interface WebVideoContainerLayer : CALayer
</span><span class="cx"> @end
</span><span class="cx"> 
</span><span class="lines">@@ -130,11 +122,7 @@
</span><span class="cx"> 
</span><span class="cx"> typedef AVPlayer AVPlayerType;
</span><span class="cx"> typedef AVPlayerItem AVPlayerItemType;
</span><del>-typedef AVPlayerItemLegibleOutput AVPlayerItemLegibleOutputType;
-typedef AVPlayerItemVideoOutput AVPlayerItemVideoOutputType;
</del><span class="cx"> typedef AVMetadataItem AVMetadataItemType;
</span><del>-typedef AVMediaSelectionGroup AVMediaSelectionGroupType;
-typedef AVMediaSelectionOption AVMediaSelectionOptionType;
</del><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(CoreMedia)
</span><span class="lines">@@ -864,7 +852,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) &amp;&amp; HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
</span><del>-    [m_avPlayer.get() setAppliesMediaSelectionCriteriaAutomatically:NO];
</del><ins>+    [m_avPlayer.get() setAppliesMediaSelectionCriteriaAutomatically:YES];
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(IOS_AIRPLAY)
</span><span class="lines">@@ -920,12 +908,6 @@
</span><span class="cx">     [m_avPlayerItem.get() addOutput:m_legibleOutput.get()];
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) &amp;&amp; HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT)
-        [m_avPlayerItem selectMediaOptionAutomaticallyInMediaSelectionGroup:safeMediaSelectionGroupForLegibleMedia()];
-        [m_avPlayerItem selectMediaOptionAutomaticallyInMediaSelectionGroup:safeMediaSelectionGroupForAudibleMedia()];
-        [m_avPlayerItem selectMediaOptionAutomaticallyInMediaSelectionGroup:safeMediaSelectionGroupForVisualMedia()];
-#endif
-
</del><span class="cx">     setDelayCallbacks(false);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1752,27 +1734,24 @@
</span><span class="cx">     }]]]);
</span><span class="cx">     RetainPtr&lt;NSMutableSet&gt; oldTracks = adoptNS([[NSMutableSet alloc] initWithCapacity:oldItems.size()]);
</span><span class="cx"> 
</span><del>-    for (auto&amp; oldItem : oldItems) {
-        if (oldItem-&gt;playerItemTrack())
-            [oldTracks addObject:oldItem-&gt;playerItemTrack()];
-    }
</del><ins>+    typedef Vector&lt;RefT&gt; ItemVector;
+    for (auto i = oldItems.begin(); i != oldItems.end(); ++i)
+        [oldTracks addObject:(*i)-&gt;playerItemTrack()];
</ins><span class="cx"> 
</span><del>-    // Find the added &amp; removed AVPlayerItemTracks:
</del><span class="cx">     RetainPtr&lt;NSMutableSet&gt; removedTracks = adoptNS([oldTracks mutableCopy]);
</span><span class="cx">     [removedTracks minusSet:newTracks.get()];
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;NSMutableSet&gt; addedTracks = adoptNS([newTracks mutableCopy]);
</span><span class="cx">     [addedTracks minusSet:oldTracks.get()];
</span><span class="cx"> 
</span><del>-    typedef Vector&lt;RefT&gt; ItemVector;
</del><span class="cx">     ItemVector replacementItems;
</span><span class="cx">     ItemVector addedItems;
</span><span class="cx">     ItemVector removedItems;
</span><del>-    for (auto&amp; oldItem : oldItems) {
-        if (oldItem-&gt;playerItemTrack() &amp;&amp; [removedTracks containsObject:oldItem-&gt;playerItemTrack()])
-            removedItems.append(oldItem);
</del><ins>+    for (auto i = oldItems.begin(); i != oldItems.end(); ++i) {
+        if ([removedTracks containsObject:(*i)-&gt;playerItemTrack()])
+            removedItems.append(*i);
</ins><span class="cx">         else
</span><del>-            replacementItems.append(oldItem);
</del><ins>+            replacementItems.append(*i);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     for (AVPlayerItemTrack* track in addedTracks.get())
</span><span class="lines">@@ -1781,75 +1760,13 @@
</span><span class="cx">     replacementItems.appendVector(addedItems);
</span><span class="cx">     oldItems.swap(replacementItems);
</span><span class="cx"> 
</span><del>-    for (auto&amp; removedItem : removedItems)
-        (player-&gt;*removedFunction)(removedItem);
</del><ins>+    for (auto i = removedItems.begin(); i != removedItems.end(); ++i)
+        (player-&gt;*removedFunction)(*i);
</ins><span class="cx"> 
</span><del>-    for (auto&amp; addedItem : addedItems)
-        (player-&gt;*addedFunction)(addedItem);
</del><ins>+    for (auto i = addedItems.begin(); i != addedItems.end(); ++i)
+        (player-&gt;*addedFunction)(*i);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP)
-template &lt;typename RefT, typename PassRefT&gt;
-void determineChangedTracksFromNewTracksAndOldItems(MediaSelectionGroupAVFObjC* group, Vector&lt;RefT&gt;&amp; oldItems, RefT (*itemFactory)(MediaSelectionOptionAVFObjC&amp;), MediaPlayer* player, void (MediaPlayer::*removedFunction)(PassRefT), void (MediaPlayer::*addedFunction)(PassRefT))
-{
-    group-&gt;updateOptions();
-
-    // Only add selection options which do not have an associated persistant track.
-    ListHashSet&lt;RefPtr&lt;MediaSelectionOptionAVFObjC&gt;&gt; newSelectionOptions;
-    for (auto&amp; option : group-&gt;options()) {
-        if (!option)
-            continue;
-        AVMediaSelectionOptionType* avOption = option-&gt;avMediaSelectionOption();
-        if (!avOption)
-            continue;
-        if (![avOption respondsToSelector:@selector(track)] || ![avOption performSelector:@selector(track)])
-            newSelectionOptions.add(option);
-    }
-
-    ListHashSet&lt;RefPtr&lt;MediaSelectionOptionAVFObjC&gt;&gt; oldSelectionOptions;
-    for (auto&amp; oldItem : oldItems) {
-        if (MediaSelectionOptionAVFObjC *option = oldItem-&gt;mediaSelectionOption())
-            oldSelectionOptions.add(option);
-    }
-
-    // Find the added &amp; removed AVMediaSelectionOptions:
-    ListHashSet&lt;RefPtr&lt;MediaSelectionOptionAVFObjC&gt;&gt; removedSelectionOptions;
-    for (auto&amp; oldOption : oldSelectionOptions) {
-        if (!newSelectionOptions.contains(oldOption))
-            removedSelectionOptions.add(oldOption);
-    }
-
-    ListHashSet&lt;RefPtr&lt;MediaSelectionOptionAVFObjC&gt;&gt; addedSelectionOptions;
-    for (auto&amp; newOption : newSelectionOptions) {
-        if (!oldSelectionOptions.contains(newOption))
-            addedSelectionOptions.add(newOption);
-    }
-
-    typedef Vector&lt;RefT&gt; ItemVector;
-    ItemVector replacementItems;
-    ItemVector addedItems;
-    ItemVector removedItems;
-    for (auto&amp; oldItem : oldItems) {
-        if (oldItem-&gt;mediaSelectionOption() &amp;&amp; removedSelectionOptions.contains(oldItem-&gt;mediaSelectionOption()))
-            removedItems.append(oldItem);
-        else
-            replacementItems.append(oldItem);
-    }
-
-    for (auto&amp; option : addedSelectionOptions)
-        addedItems.append(itemFactory(*option.get()));
-
-    replacementItems.appendVector(addedItems);
-    oldItems.swap(replacementItems);
-    
-    for (auto&amp; removedItem : removedItems)
-        (player-&gt;*removedFunction)(removedItem);
-    
-    for (auto&amp; addedItem : addedItems)
-        (player-&gt;*addedFunction)(addedItem);
-}
-#endif
-
</del><span class="cx"> void MediaPlayerPrivateAVFoundationObjC::updateAudioTracks()
</span><span class="cx"> {
</span><span class="cx"> #if !LOG_DISABLED
</span><span class="lines">@@ -1858,19 +1775,6 @@
</span><span class="cx"> 
</span><span class="cx">     determineChangedTracksFromNewTracksAndOldItems(m_cachedTracks.get(), AVMediaTypeAudio, m_audioTracks, &amp;AudioTrackPrivateAVFObjC::create, player(), &amp;MediaPlayer::removeAudioTrack, &amp;MediaPlayer::addAudioTrack);
</span><span class="cx"> 
</span><del>-#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP)
-    if (!m_audibleGroup) {
-        if (AVMediaSelectionGroupType *group = safeMediaSelectionGroupForAudibleMedia())
-            m_audibleGroup = MediaSelectionGroupAVFObjC::create(m_avPlayerItem.get(), group);
-    }
-
-    if (m_audibleGroup)
-        determineChangedTracksFromNewTracksAndOldItems(m_audibleGroup.get(), m_audioTracks, &amp;AudioTrackPrivateAVFObjC::create, player(), &amp;MediaPlayer::removeAudioTrack, &amp;MediaPlayer::addAudioTrack);
-#endif
-
-    for (auto&amp; track : m_audioTracks)
-        track-&gt;resetPropertiesFromTrack();
-
</del><span class="cx"> #if !LOG_DISABLED
</span><span class="cx">     LOG(Media, &quot;MediaPlayerPrivateAVFoundationObjC::updateAudioTracks(%p) - audio track count was %lu, is %lu&quot;, this, count, m_audioTracks.size());
</span><span class="cx"> #endif
</span><span class="lines">@@ -1884,19 +1788,6 @@
</span><span class="cx"> 
</span><span class="cx">     determineChangedTracksFromNewTracksAndOldItems(m_cachedTracks.get(), AVMediaTypeVideo, m_videoTracks, &amp;VideoTrackPrivateAVFObjC::create, player(), &amp;MediaPlayer::removeVideoTrack, &amp;MediaPlayer::addVideoTrack);
</span><span class="cx"> 
</span><del>-#if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP)
-    if (!m_visualGroup) {
-        if (AVMediaSelectionGroupType *group = safeMediaSelectionGroupForVisualMedia())
-            m_visualGroup = MediaSelectionGroupAVFObjC::create(m_avPlayerItem.get(), group);
-    }
-
-    if (m_visualGroup)
-        determineChangedTracksFromNewTracksAndOldItems(m_visualGroup.get(), m_videoTracks, &amp;VideoTrackPrivateAVFObjC::create, player(), &amp;MediaPlayer::removeVideoTrack, &amp;MediaPlayer::addVideoTrack);
-#endif
-
-    for (auto&amp; track : m_audioTracks)
-        track-&gt;resetPropertiesFromTrack();
-
</del><span class="cx"> #if !LOG_DISABLED
</span><span class="cx">     LOG(Media, &quot;MediaPlayerPrivateAVFoundationObjC::updateVideoTracks(%p) - video track count was %lu, is %lu&quot;, this, count, m_videoTracks.size());
</span><span class="cx"> #endif
</span><span class="lines">@@ -2301,28 +2192,6 @@
</span><span class="cx">     return [m_avAsset.get() mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-AVMediaSelectionGroupType* MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia()
-{
-    if (!m_avAsset)
-        return nil;
-
-    if ([m_avAsset.get() statusOfValueForKey:@&quot;availableMediaCharacteristicsWithMediaSelectionOptions&quot; error:NULL] != AVKeyValueStatusLoaded)
-        return nil;
-
-    return [m_avAsset.get() mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicAudible];
-}
-
-AVMediaSelectionGroupType* MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia()
-{
-    if (!m_avAsset)
-        return nil;
-
-    if ([m_avAsset.get() statusOfValueForKey:@&quot;availableMediaCharacteristicsWithMediaSelectionOptions&quot; error:NULL] != AVKeyValueStatusLoaded)
-        return nil;
-
-    return [m_avAsset.get() mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicVisual];
-}
-
</del><span class="cx"> void MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions()
</span><span class="cx"> {
</span><span class="cx">     AVMediaSelectionGroupType *legibleGroup = safeMediaSelectionGroupForLegibleMedia();
</span><span class="lines">@@ -2713,14 +2582,7 @@
</span><span class="cx">     for (AVPlayerItemTrack *track in m_cachedTracks.get())
</span><span class="cx">         [track removeObserver:m_objcObserver.get() forKeyPath:@&quot;enabled&quot;];
</span><span class="cx"> 
</span><del>-    NSArray *assetTracks = [m_avAsset tracks];
-
-    // Tracks which are not present in the AVAsset are streaming tracks, and will instead be represented by
-    // AVMediaSelectionOptions.
-    m_cachedTracks = [tracks objectsAtIndexes:[tracks indexesOfObjectsPassingTest:^(id obj, NSUInteger, BOOL*) {
-        return [assetTracks containsObject:[obj assetTrack]];
-    }]];
-
</del><ins>+    m_cachedTracks = tracks;
</ins><span class="cx">     for (AVPlayerItemTrack *track in m_cachedTracks.get())
</span><span class="cx">         [track addObserver:m_objcObserver.get() forKeyPath:@&quot;enabled&quot; options:NSKeyValueObservingOptionNew context:(void *)MediaPlayerAVFoundationObservationContextPlayerItemTrack];
</span><span class="cx"> 
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateAVFObjCcpp"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;VideoTrackPrivateAVFObjC.h&quot;
</span><span class="cx"> #import &quot;AVTrackPrivateAVFObjCImpl.h&quot;
</span><del>-#import &quot;MediaSelectionGroupAVFObjC.h&quot;
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx"> 
</span><span class="lines">@@ -44,12 +43,6 @@
</span><span class="cx">     resetPropertiesFromTrack();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC(MediaSelectionOptionAVFObjC&amp; option)
-    : m_impl(std::make_unique&lt;AVTrackPrivateAVFObjCImpl&gt;(option))
-{
-    resetPropertiesFromTrack();
-}
-
</del><span class="cx"> void VideoTrackPrivateAVFObjC::resetPropertiesFromTrack()
</span><span class="cx"> {
</span><span class="cx">     // Don't call this-&gt;setSelected() because it also sets the enabled state of the
</span><span class="lines">@@ -85,17 +78,6 @@
</span><span class="cx">     return m_impl-&gt;assetTrack();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void VideoTrackPrivateAVFObjC::setMediaSelectonOption(MediaSelectionOptionAVFObjC&amp; option)
-{
-    m_impl = std::make_unique&lt;AVTrackPrivateAVFObjCImpl&gt;(option);
-    resetPropertiesFromTrack();
-}
-
-MediaSelectionOptionAVFObjC* VideoTrackPrivateAVFObjC::mediaSelectionOption()
-{
-    return m_impl-&gt;mediaSelectionOption();
-}
-
</del><span class="cx"> void VideoTrackPrivateAVFObjC::setSelected(bool enabled)
</span><span class="cx"> {
</span><span class="cx">     VideoTrackPrivateAVF::setSelected(enabled);
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -31,15 +31,11 @@
</span><span class="cx"> #include &quot;VideoTrackPrivateAVF.h&quot;
</span><span class="cx"> 
</span><span class="cx"> OBJC_CLASS AVAssetTrack;
</span><del>-OBJC_CLASS AVPlayerItem;
</del><span class="cx"> OBJC_CLASS AVPlayerItemTrack;
</span><del>-OBJC_CLASS AVMediaSelectionGroup;
-OBJC_CLASS AVMediaSelectionOption;
</del><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AVTrackPrivateAVFObjCImpl;
</span><del>-class MediaSelectionOptionAVFObjC;
</del><span class="cx"> 
</span><span class="cx"> class VideoTrackPrivateAVFObjC final : public VideoTrackPrivateAVF {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(VideoTrackPrivateAVFObjC)
</span><span class="lines">@@ -54,11 +50,6 @@
</span><span class="cx">         return adoptRef(new VideoTrackPrivateAVFObjC(track));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    static RefPtr&lt;VideoTrackPrivateAVFObjC&gt; create(MediaSelectionOptionAVFObjC&amp; option)
-    {
-        return adoptRef(new VideoTrackPrivateAVFObjC(option));
-    }
-
</del><span class="cx">     virtual void setSelected(bool) override;
</span><span class="cx"> 
</span><span class="cx">     void setPlayerItemTrack(AVPlayerItemTrack*);
</span><span class="lines">@@ -67,13 +58,9 @@
</span><span class="cx">     void setAssetTrack(AVAssetTrack*);
</span><span class="cx">     AVAssetTrack* assetTrack();
</span><span class="cx"> 
</span><del>-    void setMediaSelectonOption(MediaSelectionOptionAVFObjC&amp;);
-    MediaSelectionOptionAVFObjC* mediaSelectionOption();
-
</del><span class="cx"> private:
</span><span class="cx">     explicit VideoTrackPrivateAVFObjC(AVPlayerItemTrack*);
</span><span class="cx">     explicit VideoTrackPrivateAVFObjC(AVAssetTrack*);
</span><del>-    explicit VideoTrackPrivateAVFObjC(MediaSelectionOptionAVFObjC&amp;);
</del><span class="cx"> 
</span><span class="cx">     void resetPropertiesFromTrack();
</span><span class="cx">     std::unique_ptr&lt;AVTrackPrivateAVFObjCImpl&gt; m_impl;
</span></span></pre></div>
<a id="tagsSafari60053SourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm (179040 => 179041)</h4>
<pre class="diff"><span>
<span class="info">--- tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm        2015-01-24 00:43:38 UTC (rev 179040)
+++ tags/Safari-600.5.3/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm        2015-01-24 00:45:38 UTC (rev 179041)
</span><span class="lines">@@ -47,7 +47,6 @@
</span><span class="cx"> {
</span><span class="cx">     m_trackID = m_impl-&gt;trackID();
</span><span class="cx"> 
</span><del>-    setTrackIndex(m_impl-&gt;index());
</del><span class="cx">     setKind(m_impl-&gt;videoKind());
</span><span class="cx">     setId(m_impl-&gt;id());
</span><span class="cx">     setLabel(m_impl-&gt;label());
</span></span></pre>
</div>
</div>

</body>
</html>