<!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>[195148] 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/195148">195148</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-01-15 14:28:03 -0800 (Fri, 15 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Media Query (-webkit-video-playable-inline) is failing as an invalid media query expression
https://bugs.webkit.org/show_bug.cgi?id=153111

Patch by Joseph Pecoraro &lt;pecoraro@apple.com&gt; on 2016-01-15
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/media/video-playable-inline-media-query.html

* css/MediaQueryEvaluator.cpp:
(WebCore::video_playable_inlineMediaFeatureEval):
(WebCore::isRunningOnIPhoneOrIPod): Deleted.
Make the media query work regardless of the platform.
It should just check the web view's settings.

* css/MediaQueryExp.cpp:
(WebCore::featureWithoutValue):
This media query expects no value, include it in the list
so it is not treated as invalid.

LayoutTests:

* fast/media/video-playable-inline-media-query-expected.txt: Added.
* fast/media/video-playable-inline-media-query.html: Added.
* platform/ios-simulator/ios/fast/media/video-inline-expected.txt: Removed.
* platform/ios-simulator/ios/fast/media/video-inline.html: Removed.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorcpp">trunk/Source/WebCore/css/MediaQueryEvaluator.cpp</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryExpcpp">trunk/Source/WebCore/css/MediaQueryExp.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastmediavideoplayableinlinemediaqueryexpectedtxt">trunk/LayoutTests/fast/media/video-playable-inline-media-query-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediavideoplayableinlinemediaqueryhtml">trunk/LayoutTests/fast/media/video-playable-inline-media-query.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformiossimulatoriosfastmediavideoinlineexpectedtxt">trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatoriosfastmediavideoinlinehtml">trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/LayoutTests/ChangeLog        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2016-01-15  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Media Query (-webkit-video-playable-inline) is failing as an invalid media query expression
+        https://bugs.webkit.org/show_bug.cgi?id=153111
+
+        Reviewed by Dean Jackson.
+
+        * fast/media/video-playable-inline-media-query-expected.txt: Added.
+        * fast/media/video-playable-inline-media-query.html: Added.
+        * platform/ios-simulator/ios/fast/media/video-inline-expected.txt: Removed.
+        * platform/ios-simulator/ios/fast/media/video-inline.html: Removed.
+
+2016-01-15  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
</ins><span class="cx">         LayoutTest inspector/script-profiler/event-type-Other.html is flaky
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=153016
</span><span class="cx">         &lt;rdar://problem/24192919&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediavideoplayableinlinemediaqueryexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/media/video-playable-inline-media-query-expected.txt (0 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/media/video-playable-inline-media-query-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/media/video-playable-inline-media-query-expected.txt        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+Tests the (-webkit-video-playable-inline) media query.
+
+Enabling Inline Media Playback
+PASS: &quot;(-webkit-video-playable-inline)&quot; evaluates to true
+Disabling Inline Media Playback
+PASS: &quot;(-webkit-video-playable-inline)&quot; evaluates to false
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastmediavideoplayableinlinemediaqueryhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/media/video-playable-inline-media-query.html (0 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/media/video-playable-inline-media-query.html                                (rev 0)
+++ trunk/LayoutTests/fast/media/video-playable-inline-media-query.html        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function log(m) {
+    var results = document.getElementById('results');
+    results.innerHTML += m + '&lt;br&gt;';
+}
+
+function testQuery(query, expected) {
+    var isTrue = window.styleMedia.matchMedium(query);
+    var message = '\&quot;' + query + '\&quot; evaluates to ' + (isTrue ? 'true' : 'false');
+    message = ((isTrue === expected) ? 'PASS: ' : 'FAIL: ') + message;
+    log(message);
+}
+
+function runTests() {
+    log(&quot;Enabling Inline Media Playback&quot;);
+    internals.settings.setAllowsInlineMediaPlayback(true);
+    testQuery('(-webkit-video-playable-inline)', true);
+
+    log(&quot;Disabling Inline Media Playback&quot;);
+    internals.settings.setAllowsInlineMediaPlayback(false);
+    testQuery('(-webkit-video-playable-inline)', false);
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;runTests()&quot;&gt;
+&lt;p&gt;Tests the (-webkit-video-playable-inline) media query.&lt;/p&gt;
+&lt;div id=&quot;results&quot;&gt;&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoriosfastmediavideoinlineexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline-expected.txt (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline-expected.txt        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline-expected.txt        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -1,4 +0,0 @@
</span><del>-Testing iOS-specific media query for inline video. When run inside MobileSafari on iPhone, the query should evaluate as false (and the test will indicate that it has failed). In all other places, including the test framework and DRT, the query should evaluate as true.
-
-FAIL: &quot;(-webkit-video-playable-inline)&quot; evaluates to false
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatoriosfastmediavideoinlinehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline.html (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline.html        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/LayoutTests/platform/ios-simulator/ios/fast/media/video-inline.html        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-    &lt;title&gt;Test iOS-specific media query for inline video&lt;/title&gt;
-    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&gt;
-    &lt;script&gt;
-        if (window.testRunner)
-            testRunner.dumpAsText();
-  
-        function log(m) {
-            var results = document.getElementById('results');
-            results.innerHTML += m + '&lt;br&gt;';
-        }
-  
-        function testQuery(query, expected) {
-            var isTrue = window.styleMedia.matchMedium(query);
-
-            var message = '\&quot;' + query + '\&quot; evaluates to ' + (isTrue ? 'true' : 'false');
-            message = ((isTrue == expected) ? 'PASS: ' : 'FAIL: ') + message;
-            log(message);
-        }
-  
-        function runTests() {
-            testQuery('(-webkit-video-playable-inline)', true);
-        }
-    &lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;runTests()&quot;&gt;
-    &lt;p&gt;
-        Testing iOS-specific media query for inline video.
-        When run inside MobileSafari on iPhone, the query should evaluate
-        as false (and the test will indicate that it has failed).
-        In all other places, including the test framework and DRT, the
-        query should evaluate as true.
-    &lt;/p&gt;
-    &lt;div id=&quot;results&quot;&gt;&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/Source/WebCore/ChangeLog        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2016-01-15  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        Media Query (-webkit-video-playable-inline) is failing as an invalid media query expression
+        https://bugs.webkit.org/show_bug.cgi?id=153111
+
+        Reviewed by Dean Jackson.
+
+        Test: fast/media/video-playable-inline-media-query.html
+
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::video_playable_inlineMediaFeatureEval):
+        (WebCore::isRunningOnIPhoneOrIPod): Deleted.
+        Make the media query work regardless of the platform.
+        It should just check the web view's settings.
+
+        * css/MediaQueryExp.cpp:
+        (WebCore::featureWithoutValue):
+        This media query expects no value, include it in the list
+        so it is not treated as invalid.
+
</ins><span class="cx"> 2016-01-15  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         ASSERTION FAILED: canHaveChildren() || canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -56,10 +56,6 @@
</span><span class="cx"> #include &quot;RenderLayerCompositor.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-#include &quot;Device.h&quot;
-#endif
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> using namespace MediaFeatureNames;
</span><span class="lines">@@ -661,20 +657,9 @@
</span><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(VIEW_MODE_CSS_MEDIA)
</span><span class="cx"> 
</span><del>-// FIXME: Find a better place for this function. Maybe ChromeClient?
-static inline bool isRunningOnIPhoneOrIPod()
-{
-#if PLATFORM(IOS)
-    static bool runningOnIPhoneOrIPod = deviceClass() == MGDeviceClassiPhone || deviceClass() == MGDeviceClassiPod;
-    return runningOnIPhoneOrIPod;
-#else
-    return false;
-#endif
-}
-
</del><span class="cx"> static bool video_playable_inlineMediaFeatureEval(CSSValue*, const CSSToLengthConversionData&amp;, Frame* frame, MediaFeaturePrefix)
</span><span class="cx"> {
</span><del>-    return !isRunningOnIPhoneOrIPod() || frame-&gt;settings().allowsInlineMediaPlayback();
</del><ins>+    return frame-&gt;settings().allowsInlineMediaPlayback();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool hoverMediaFeatureEval(CSSValue* value, const CSSToLengthConversionData&amp;, Frame*, MediaFeaturePrefix)
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryExpcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryExp.cpp (195147 => 195148)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryExp.cpp        2016-01-15 22:21:41 UTC (rev 195147)
+++ trunk/Source/WebCore/css/MediaQueryExp.cpp        2016-01-15 22:28:03 UTC (rev 195148)
</span><span class="lines">@@ -155,7 +155,8 @@
</span><span class="cx"> #endif // ENABLE(VIEW_MODE_CSS_MEDIA)
</span><span class="cx">         || mediaFeature == MediaFeatureNames::pointerMediaFeature
</span><span class="cx">         || mediaFeature == MediaFeatureNames::device_pixel_ratioMediaFeature
</span><del>-        || mediaFeature == MediaFeatureNames::resolutionMediaFeature;
</del><ins>+        || mediaFeature == MediaFeatureNames::resolutionMediaFeature
+        || mediaFeature == MediaFeatureNames::video_playable_inlineMediaFeature;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> MediaQueryExp::MediaQueryExp(const AtomicString&amp; mediaFeature, CSSParserValueList* valueList)
</span></span></pre>
</div>
</div>

</body>
</html>