<!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>[214063] trunk</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/214063">214063</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-03-16 13:42:53 -0700 (Thu, 16 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>[mac-wk2 debug] LayoutTest webrtc/video-mute.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=169758

Patch by Youenn Fablet &lt;youenn@apple.com&gt; on 2017-03-16
Reviewed by Eric Carlson.

Source/WebKit2:

Test is timing out due to the UIProcess requesting to disable/enable ICE candidate filtering
on a page whose preference is set to not enabling ICE candidate filtering.
Current fix is to act upon what UI process asks if the page preference is to enable ICE candidate filtering.
If ICE candidate filtering preference is disable for that page (WebKitTestRunner case), no disabling/enabling is done at all.

* UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::endedCaptureSession):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_backgroundCPULimit):
(WebKit::m_backgroundCPULimit):
(WebKit::WebPage::disableICECandidateFiltering):
(WebKit::WebPage::enableICECandidateFiltering):
* WebProcess/WebPage/WebPage.h:

LayoutTests:

* TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserMediaProcessManagercpp">trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPageh">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/LayoutTests/ChangeLog        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2017-03-16  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        [mac-wk2 debug] LayoutTest webrtc/video-mute.html is timing out
+        https://bugs.webkit.org/show_bug.cgi?id=169758
+
+        Reviewed by Eric Carlson.
+
+        * TestExpectations:
+
</ins><span class="cx"> 2017-03-16  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Stay inside the continuation while searching for a candidate ancestor for insertion.
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/LayoutTests/TestExpectations        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -711,9 +711,7 @@
</span><span class="cx"> # GTK enables some of these tests on their TestExpectations file.
</span><span class="cx"> [ Release ] webrtc [ Skip ]
</span><span class="cx"> 
</span><del>-[ Debug ] webrtc/peer-connection-audio-mute.html [ Pass Failure ]
</del><span class="cx"> [ Debug ] webrtc/peer-connection-audio-mute2.html [ Pass Failure ]
</span><del>-[ Debug ] webrtc/peer-connection-remote-audio-mute.html [ Pass Failure ]
</del><span class="cx"> [ Debug ] webrtc/peer-connection-remote-audio-mute2.html [ Pass Failure ]
</span><span class="cx"> fast/mediastream/getUserMedia-webaudio.html [ Skip ]
</span><span class="cx"> fast/mediastream/RTCPeerConnection-AddRemoveStream.html [ Skip ]
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/Source/WebKit2/ChangeLog        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2017-03-16  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        [mac-wk2 debug] LayoutTest webrtc/video-mute.html is timing out
+        https://bugs.webkit.org/show_bug.cgi?id=169758
+
+        Reviewed by Eric Carlson.
+
+        Test is timing out due to the UIProcess requesting to disable/enable ICE candidate filtering
+        on a page whose preference is set to not enabling ICE candidate filtering.
+        Current fix is to act upon what UI process asks if the page preference is to enable ICE candidate filtering.
+        If ICE candidate filtering preference is disable for that page (WebKitTestRunner case), no disabling/enabling is done at all. 
+
+        * UIProcess/UserMediaProcessManager.cpp:
+        (WebKit::UserMediaProcessManager::endedCaptureSession):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_backgroundCPULimit):
+        (WebKit::m_backgroundCPULimit):
+        (WebKit::WebPage::disableICECandidateFiltering):
+        (WebKit::WebPage::enableICECandidateFiltering):
+        * WebProcess/WebPage/WebPage.h:
+
</ins><span class="cx"> 2017-03-16  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Clean up WKContentExtension API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserMediaProcessManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/Source/WebKit2/UIProcess/UserMediaProcessManager.cpp        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -199,7 +199,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
</span><del>-    if (currentExtensions == ProcessState::SandboxExtensionsGranted::None &amp;&amp; proxy.page().preferences().iceCandidateFilteringEnabled())
</del><ins>+    // FIXME: We should only do EnableICECandidateFiltering when the page is being reloaded.
+    if (currentExtensions == ProcessState::SandboxExtensionsGranted::None)
</ins><span class="cx">         proxy.page().process().send(Messages::WebPage::EnableICECandidateFiltering(), proxy.page().pageID());
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -556,7 +556,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><del>-    if (!parameters.iceCandidateFilteringEnabled)
</del><ins>+    m_shouldDoICECandidateFiltering = parameters.iceCandidateFilteringEnabled;
+
+    if (!m_shouldDoICECandidateFiltering)
</ins><span class="cx">         disableICECandidateFiltering();
</span><span class="cx"> #if USE(LIBWEBRTC)
</span><span class="cx">     if (parameters.enumeratingAllNetworkInterfacesEnabled)
</span><span class="lines">@@ -568,6 +570,22 @@
</span><span class="cx">         registerURLSchemeHandler(iterator.value, iterator.key);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#if ENABLE(WEB_RTC)
+void WebPage::disableICECandidateFiltering()
+{
+    if (!m_shouldDoICECandidateFiltering)
+        return;
+    m_page-&gt;rtcController().disableICECandidateFiltering();
+}
+
+void WebPage::enableICECandidateFiltering()
+{
+    if (!m_shouldDoICECandidateFiltering)
+        return;
+    m_page-&gt;rtcController().disableICECandidateFiltering();
+}
+#endif
+
</ins><span class="cx"> void WebPage::reinitializeWebPage(WebPageCreationParameters&amp;&amp; parameters)
</span><span class="cx"> {
</span><span class="cx">     if (m_activityState != parameters.activityState)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (214062 => 214063)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2017-03-16 20:28:11 UTC (rev 214062)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2017-03-16 20:42:53 UTC (rev 214063)
</span><span class="lines">@@ -1188,8 +1188,8 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><del>-    void disableICECandidateFiltering() { m_page-&gt;rtcController().disableICECandidateFiltering(); }
-    void enableICECandidateFiltering() { m_page-&gt;rtcController().enableICECandidateFiltering(); }
</del><ins>+    void disableICECandidateFiltering();
+    void enableICECandidateFiltering();
</ins><span class="cx"> #if USE(LIBWEBRTC)
</span><span class="cx">     void disableEnumeratingAllNetworkInterfaces() { m_page-&gt;libWebRTCProvider().disableEnumeratingAllNetworkInterfaces(); }
</span><span class="cx">     void enableEnumeratingAllNetworkInterfaces() { m_page-&gt;libWebRTCProvider().enableEnumeratingAllNetworkInterfaces(); }
</span><span class="lines">@@ -1549,6 +1549,10 @@
</span><span class="cx">     std::chrono::system_clock::time_point m_loadCommitTime;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+#if ENABLE(WEB_RTC)
+    bool m_shouldDoICECandidateFiltering { true };
+#endif
+
</ins><span class="cx">     WebCore::UserInterfaceLayoutDirection m_userInterfaceLayoutDirection { WebCore::UserInterfaceLayoutDirection::LTR };
</span><span class="cx"> 
</span><span class="cx">     const String m_overrideContentSecurityPolicy;
</span></span></pre>
</div>
</div>

</body>
</html>