<!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>[199461] releases/WebKitGTK/webkit-2.12</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/199461">199461</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2016-04-13 04:38:23 -0700 (Wed, 13 Apr 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/198780">r198780</a> - media/track/track-remove-track.html is flaky, crashing and failing
https://bugs.webkit.org/show_bug.cgi?id=130971

Reviewed by Alexey Proskuryakov.
Source/WebCore:

Prevent HTMLMediaElement from being collected while it is creating media controls.
These changes prevent the test from crashing but they do not fix the flakiness,
which is caused by another bug. Fixing that is tracked by
https://bugs.webkit.org/show_bug.cgi?id=155956.

* html/HTMLMediaElement.cpp:
(WebCore::actionName): New, debugging-only helper function.
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new variables.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Log the flag names to make debugging easier.
(WebCore::HTMLMediaElement::scheduleNextSourceChild): Add logging.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Update logging.
(WebCore::HTMLMediaElement::configureTextTrackGroup): Drive-by optimization: don't call
  updateCaptionContainer here, call it before exiting configureTextTracks so we only call
  it once instead of once per track group.
(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::ensureMediaControlsShadowRoot): New, wrapper around calling
  ensureUserAgentShadowRoot so m_creatingControls can be set and cleared appropriately.
(WebCore::HTMLMediaElement::updateCaptionContainer): ensureUserAgentShadowRoot -&gt;
  ensureMediaControlsShadowRoot. Drive by optimization: set/test m_haveSetupCaptionContainer
  so we only do this setup once.
(WebCore::HTMLMediaElement::configureTextTracks): Call updateCaptionContainer.
(WebCore::HTMLMediaElement::clearMediaPlayer): Log flag names.
(WebCore::HTMLMediaElement::hasPendingActivity): Return true when creating controls so GC
  won't happen during controls setup.
(WebCore::HTMLMediaElement::updateTextTrackDisplay): ensureUserAgentShadowRoot -&gt;
  ensureMediaControlsShadowRoot.
(WebCore::HTMLMediaElement::createMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
* html/HTMLMediaElement.h:

LayoutTests:

* platform/mac/TestExpectations: Mark crash as flaky only.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit212LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit212LayoutTestsplatformmacTestExpectations">releases/WebKitGTK/webkit-2.12/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorehtmlHTMLMediaElementcpp">releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit212SourceWebCorehtmlHTMLMediaElementh">releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit212LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog (199460 => 199461)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog        2016-04-13 11:38:03 UTC (rev 199460)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog        2016-04-13 11:38:23 UTC (rev 199461)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-03-29  Eric Carlson  &lt;eric.carlson@apple.com&gt;
+
+        media/track/track-remove-track.html is flaky, crashing and failing
+        https://bugs.webkit.org/show_bug.cgi?id=130971
+
+        Reviewed by Alexey Proskuryakov.
+
+        * platform/mac/TestExpectations: Mark crash as flaky only.
+
</ins><span class="cx"> 2016-03-28  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Pixel turds when bordered div is resized on SMF forum software.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212LayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/LayoutTests/platform/mac/TestExpectations (199460 => 199461)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/LayoutTests/platform/mac/TestExpectations        2016-04-13 11:38:03 UTC (rev 199460)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/platform/mac/TestExpectations        2016-04-13 11:38:23 UTC (rev 199461)
</span><span class="lines">@@ -904,7 +904,6 @@
</span><span class="cx"> webkit.org/b/123099 media/media-controller-time-clamp.html [ Pass Timeout ]
</span><span class="cx"> webkit.org/b/123522 media/track/track-in-band-legacy-api.html [ Pass Failure Crash ]
</span><span class="cx"> webkit.org/b/130490 media/video-remote-control-playpause.html [ Pass Failure ]
</span><del>-webkit.org/b/130971 media/track/track-remove-track.html [ Pass Crash Failure Timeout ]
</del><span class="cx"> webkit.org/b/131855 media/event-attributes.html [ Pass Failure Timeout ]
</span><span class="cx"> webkit.org/b/133363 media/video-rtl.html [ Pass ImageOnlyFailure ]
</span><span class="cx"> webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/align.html [ Pass Failure ]
</span><span class="lines">@@ -925,6 +924,7 @@
</span><span class="cx"> webkit.org/b/147944 media/video-seek-to-current-time.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/114177 media/event-queue-crash.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/150408 http/tests/media/video-load-suspend.html [ Pass Timeout ]
</span><ins>+webkit.org/b/155956 media/track/track-remove-track.html [ Pass Failure Timeout ]
</ins><span class="cx"> ## --- End flaky media tests
</span><span class="cx"> 
</span><span class="cx"> # Skipped while Eric Carlson works on a fix.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (199460 => 199461)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog        2016-04-13 11:38:03 UTC (rev 199460)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog        2016-04-13 11:38:23 UTC (rev 199461)
</span><span class="lines">@@ -1,3 +1,41 @@
</span><ins>+2016-03-29  Eric Carlson  &lt;eric.carlson@apple.com&gt;
+
+        media/track/track-remove-track.html is flaky, crashing and failing
+        https://bugs.webkit.org/show_bug.cgi?id=130971
+
+        Reviewed by Alexey Proskuryakov.
+        
+        Prevent HTMLMediaElement from being collected while it is creating media controls.
+        These changes prevent the test from crashing but they do not fix the flakiness,
+        which is caused by another bug. Fixing that is tracked by 
+        https://bugs.webkit.org/show_bug.cgi?id=155956.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::actionName): New, debugging-only helper function.
+        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new variables.
+        (WebCore::HTMLMediaElement::scheduleDelayedAction): Log the flag names to make debugging easier.
+        (WebCore::HTMLMediaElement::scheduleNextSourceChild): Add logging.
+        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Update logging.
+        (WebCore::HTMLMediaElement::configureTextTrackGroup): Drive-by optimization: don't call 
+          updateCaptionContainer here, call it before exiting configureTextTracks so we only call
+          it once instead of once per track group.
+        (WebCore::controllerJSValue):
+        (WebCore::HTMLMediaElement::ensureMediaControlsShadowRoot): New, wrapper around calling
+          ensureUserAgentShadowRoot so m_creatingControls can be set and cleared appropriately.
+        (WebCore::HTMLMediaElement::updateCaptionContainer): ensureUserAgentShadowRoot -&gt; 
+          ensureMediaControlsShadowRoot. Drive by optimization: set/test m_haveSetupCaptionContainer
+          so we only do this setup once.
+        (WebCore::HTMLMediaElement::configureTextTracks): Call updateCaptionContainer.
+        (WebCore::HTMLMediaElement::clearMediaPlayer): Log flag names.
+        (WebCore::HTMLMediaElement::hasPendingActivity): Return true when creating controls so GC
+          won't happen during controls setup.
+        (WebCore::HTMLMediaElement::updateTextTrackDisplay): ensureUserAgentShadowRoot -&gt; 
+          ensureMediaControlsShadowRoot.
+        (WebCore::HTMLMediaElement::createMediaControls): Ditto.
+        (WebCore::HTMLMediaElement::configureMediaControls): Ditto.
+        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
+        * html/HTMLMediaElement.h:
+
</ins><span class="cx"> 2016-03-28  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Pixel turds when bordered div is resized on SMF forum software.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.cpp (199460 => 199461)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.cpp        2016-04-13 11:38:03 UTC (rev 199460)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.cpp        2016-04-13 11:38:23 UTC (rev 199461)
</span><span class="lines">@@ -181,6 +181,30 @@
</span><span class="cx"> {
</span><span class="cx">     return val ? &quot;true&quot; : &quot;false&quot;;
</span><span class="cx"> }
</span><ins>+
+static String actionName(HTMLMediaElementEnums::DelayedActionType action)
+{
+    StringBuilder actionBuilder;
+
+#define CASE(_actionType) \
+    if (action &amp; (HTMLMediaElementEnums::_actionType)) { \
+        if (!actionBuilder.isEmpty()) \
+        actionBuilder.append(&quot;, &quot;); \
+        actionBuilder.append(#_actionType); \
+    } \
+
+    CASE(LoadMediaResource);
+    CASE(ConfigureTextTracks);
+    CASE(TextTrackChangesNotification);
+    CASE(ConfigureTextTrackDisplay);
+    CASE(CheckPlaybackTargetCompatablity);
+    CASE(CheckMediaState);
+
+    return actionBuilder.toString();
+
+#undef CASE
+}
+
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #ifndef LOG_MEDIA_EVENTS
</span><span class="lines">@@ -378,8 +402,10 @@
</span><span class="cx">     , m_havePreparedToPlay(false)
</span><span class="cx">     , m_parsingInProgress(createdByParser)
</span><span class="cx">     , m_elementIsHidden(document.hidden())
</span><ins>+    , m_creatingControls(false)
</ins><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     , m_mediaControlsDependOnPageScaleFactor(false)
</span><ins>+    , m_haveSetUpCaptionContainer(false)
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     , m_tracksAreReady(true)
</span><span class="lines">@@ -815,7 +841,7 @@
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::scheduleDelayedAction(DelayedActionType actionType)
</span><span class="cx"> {
</span><del>-    LOG(Media, &quot;HTMLMediaElement::scheduleLoad(%p)&quot;, this);
</del><ins>+    LOG(Media, &quot;HTMLMediaElement::scheduleDelayedAction(%p) - setting %s flag&quot;, this, actionName(actionType).utf8().data());
</ins><span class="cx"> 
</span><span class="cx">     if ((actionType &amp; LoadMediaResource) &amp;&amp; !(m_pendingActionFlags &amp; LoadMediaResource)) {
</span><span class="cx">         prepareForLoad();
</span><span class="lines">@@ -841,6 +867,7 @@
</span><span class="cx"> void HTMLMediaElement::scheduleNextSourceChild()
</span><span class="cx"> {
</span><span class="cx">     // Schedule the timer to try the next &lt;source&gt; element WITHOUT resetting state ala prepareForLoad.
</span><ins>+    LOG(Media, &quot;HTMLMediaElement::scheduleNextSourceChild(%p) - setting %s flag&quot;, this, actionName(LoadMediaResource).utf8().data());
</ins><span class="cx">     setFlags(m_pendingActionFlags, LoadMediaResource);
</span><span class="cx">     m_pendingActionTimer.startOneShot(0);
</span><span class="cx"> }
</span><span class="lines">@@ -1397,7 +1424,7 @@
</span><span class="cx">     if (ignoreTrackDisplayUpdateRequests())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    LOG(Media, &quot;HTMLMediaElement::updateActiveTextTracks(%p)&quot;, this);
</del><ins>+    LOG(Media, &quot;HTMLMediaElement::updateActiveTextTrackCues(%p)&quot;, this);
</ins><span class="cx"> 
</span><span class="cx">     // 1 - Let current cues be a list of cues, initialized to contain all the
</span><span class="cx">     // cues of all the hidden, showing, or showing by default text tracks of the
</span><span class="lines">@@ -3855,8 +3882,6 @@
</span><span class="cx">             m_webkitLegacyClosedCaptionOverride = true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    updateCaptionContainer();
-
</del><span class="cx">     m_processingPreferenceChange = false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3885,11 +3910,22 @@
</span><span class="cx"> 
</span><span class="cx">     return controllerJSWrapper;
</span><span class="cx"> }
</span><del>-    
</del><ins>+
+void HTMLMediaElement::ensureMediaControlsShadowRoot()
+{
+    ASSERT(!m_creatingControls);
+    m_creatingControls = true;
+    ensureUserAgentShadowRoot();
+    m_creatingControls = false;
+}
+
</ins><span class="cx"> void HTMLMediaElement::updateCaptionContainer()
</span><span class="cx"> {
</span><span class="cx">     LOG(Media, &quot;HTMLMediaElement::updateCaptionContainer(%p)&quot;, this);
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><ins>+    if (m_haveSetUpCaptionContainer)
+        return;
+
</ins><span class="cx">     Page* page = document().page();
</span><span class="cx">     if (!page)
</span><span class="cx">         return;
</span><span class="lines">@@ -3899,7 +3935,7 @@
</span><span class="cx">     if (!ensureMediaControlsInjectedScript())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ensureUserAgentShadowRoot();
</del><ins>+    ensureMediaControlsShadowRoot();
</ins><span class="cx"> 
</span><span class="cx">     if (!m_mediaControlsHost)
</span><span class="cx">         m_mediaControlsHost = MediaControlsHost::create(this);
</span><span class="lines">@@ -3933,6 +3969,8 @@
</span><span class="cx">     JSC::MarkedArgumentBuffer noArguments;
</span><span class="cx">     JSC::call(exec, methodObject, callType, callData, controllerObject, noArguments);
</span><span class="cx">     exec-&gt;clearException();
</span><ins>+
+    m_haveSetUpCaptionContainer = true;
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -4052,6 +4090,7 @@
</span><span class="cx">     if (otherTracks.tracks.size())
</span><span class="cx">         configureTextTrackGroup(otherTracks);
</span><span class="cx"> 
</span><ins>+    updateCaptionContainer();
</ins><span class="cx">     configureTextTrackDisplay();
</span><span class="cx">     if (hasMediaControls())
</span><span class="cx">         mediaControls()-&gt;closedCaptionTracksChanged();
</span><span class="lines">@@ -4918,9 +4957,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void HTMLMediaElement::clearMediaPlayer(int flags)
</del><ins>+void HTMLMediaElement::clearMediaPlayer(DelayedActionType flags)
</ins><span class="cx"> {
</span><del>-    LOG(Media, &quot;HTMLMediaElement::clearMediaPlayer(%p) - flags = %x&quot;, this, (unsigned)flags);
</del><ins>+    LOG(Media, &quot;HTMLMediaElement::clearMediaPlayer(%p) - flags = %s&quot;, this, actionName(flags).utf8().data());
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span><span class="cx">     forgetResourceSpecificTracks();
</span><span class="lines">@@ -5069,7 +5108,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool HTMLMediaElement::hasPendingActivity() const
</span><span class="cx"> {
</span><del>-    return (hasAudio() &amp;&amp; isPlaying()) || m_asyncEventQueue.hasPendingEvents();
</del><ins>+    return (hasAudio() &amp;&amp; isPlaying()) || m_asyncEventQueue.hasPendingEvents() || m_creatingControls;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void HTMLMediaElement::mediaVolumeDidChange()
</span><span class="lines">@@ -5406,7 +5445,7 @@
</span><span class="cx"> void HTMLMediaElement::updateTextTrackDisplay()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><del>-    ensureUserAgentShadowRoot();
</del><ins>+    ensureMediaControlsShadowRoot();
</ins><span class="cx">     ASSERT(m_mediaControlsHost);
</span><span class="cx">     m_mediaControlsHost-&gt;updateTextTrackContainer();
</span><span class="cx"> #else
</span><span class="lines">@@ -5566,7 +5605,7 @@
</span><span class="cx"> bool HTMLMediaElement::createMediaControls()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><del>-    ensureUserAgentShadowRoot();
</del><ins>+    ensureMediaControlsShadowRoot();
</ins><span class="cx">     return false;
</span><span class="cx"> #else
</span><span class="cx">     if (hasMediaControls())
</span><span class="lines">@@ -5611,7 +5650,7 @@
</span><span class="cx">     if (!requireControls || !inDocument() || !inActiveDocument())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ensureUserAgentShadowRoot();
</del><ins>+    ensureMediaControlsShadowRoot();
</ins><span class="cx"> #else
</span><span class="cx">     if (!requireControls || !inDocument() || !inActiveDocument()) {
</span><span class="cx">         if (hasMediaControls())
</span><span class="lines">@@ -5657,7 +5696,7 @@
</span><span class="cx">     if (!m_haveVisibleTextTrack)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ensureUserAgentShadowRoot();
</del><ins>+    ensureMediaControlsShadowRoot();
</ins><span class="cx"> #else
</span><span class="cx">     if (!m_haveVisibleTextTrack &amp;&amp; !hasMediaControls())
</span><span class="cx">         return;
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit212SourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.h (199460 => 199461)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.h        2016-04-13 11:38:03 UTC (rev 199460)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.h        2016-04-13 11:38:23 UTC (rev 199461)
</span><span class="lines">@@ -647,7 +647,7 @@
</span><span class="cx">     void scheduleNextSourceChild();
</span><span class="cx">     void loadNextSourceChild();
</span><span class="cx">     void userCancelledLoad();
</span><del>-    void clearMediaPlayer(int flags);
</del><ins>+    void clearMediaPlayer(DelayedActionType flags);
</ins><span class="cx">     bool havePotentialSourceChild();
</span><span class="cx">     void noneSupported();
</span><span class="cx">     void cancelPendingEventsAndCallbacks();
</span><span class="lines">@@ -751,6 +751,7 @@
</span><span class="cx">     void unregisterWithDocument(Document&amp;);
</span><span class="cx"> 
</span><span class="cx">     void updateCaptionContainer();
</span><ins>+    void ensureMediaControlsShadowRoot();
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="cx">     virtual void prepareForDocumentSuspension() override final;
</span><span class="lines">@@ -901,9 +902,11 @@
</span><span class="cx">     bool m_havePreparedToPlay : 1;
</span><span class="cx">     bool m_parsingInProgress : 1;
</span><span class="cx">     bool m_elementIsHidden : 1;
</span><ins>+    bool m_creatingControls : 1;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     bool m_mediaControlsDependOnPageScaleFactor : 1;
</span><ins>+    bool m_haveSetUpCaptionContainer : 1;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO_TRACK)
</span></span></pre>
</div>
</div>

</body>
</html>