<!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>[194228] branches/safari-601.1.46-branch</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/194228">194228</a></dd>
<dt>Author</dt> <dd>matthew_hanson@apple.com</dd>
<dt>Date</dt> <dd>2015-12-17 13:56:05 -0800 (Thu, 17 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/193894">r193894</a>. rdar://problem/23769696</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branchessafari601146branchLayoutTestsChangeLog">branches/safari-601.1.46-branch/LayoutTests/ChangeLog</a></li>
<li><a href="#branchessafari601146branchLayoutTestsplatformmacTestExpectations">branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#branchessafari601146branchLayoutTestsplatformmacfastwritingmodebrokenideographsmallcapsexpectedtxt">branches/safari-601.1.46-branch/LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreChangeLog">branches/safari-601.1.46-branch/Source/WebCore/ChangeLog</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicsFontcpp">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.cpp</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicsFonth">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.h</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicsFontCascadeh">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascade.h</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicsFontCascadeFontscpp">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascadeFonts.cpp</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicscocoaFontCocoamm">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformgraphicsmacComplexTextControllercpp">branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp</a></li>
<li><a href="#branchessafari601146branchSourceWebCoreplatformspicocoaCoreTextSPIh">branches/safari-601.1.46-branch/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesiscoverageexpectedhtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage-expected.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesiscoveragehtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesisexpectedhtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-expected.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesishtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesiscoverageexpectedhtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage-expected.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesiscoveragehtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesisexpectedhtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-expected.html</a></li>
<li><a href="#branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesishtml">branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#branchessafari601146branchLayoutTestsplatformmacTestExpectationsorig">branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.orig</a></li>
<li><a href="#branchessafari601146branchLayoutTestsplatformmacTestExpectationsrej">branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.rej</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchessafari601146branchLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/LayoutTests/ChangeLog (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/ChangeLog        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/LayoutTests/ChangeLog        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2015-12-17  Matthew Hanson  &lt;matthew_hanson@apple.com&gt;
+
+        Merge r193894. rdar://problem/23769696
+
+    2015-12-10  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+    
+            font-variant-caps does not work if the font does not support font features
+            https://bugs.webkit.org/show_bug.cgi?id=149774
+    
+            Reviewed by Antti Koivisto.
+    
+            Adding two new font which include lowercase characters which respond to 'smcp' and 'c2sc'. 
+    
+            The character mappings are:
+    
+            OpenType:
+            'smcp': f
+            'c2sc': g
+    
+            TrueType:
+            kLowerCaseType / kLowerCaseSmallCapsSelector: r
+            kUpperCaseType / kUpperCaseSmallCapsSelector: u
+    
+            * css3/font-variant-all-expected.html:
+            * css3/font-variant-all.html:
+            * css3/font-variant-small-caps-synthesis-expected.html: Added.
+            * css3/font-variant-small-caps-synthesis.html: Added.
+            * css3/font-variant-petite-caps-synthesis-expected.html: Added.
+            * css3/font-variant-petite-caps-synthesis.html: Added.
+            * css3/resources/FontWithFeaturesLowercaseSmallCaps.otf: Added.
+            * css3/resources/FontWithFeaturesLowercaseSmallCaps.ttf: Added.
+            * platform/mac/TestExpectations:
+            * platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:
+
</ins><span class="cx"> 2015-12-17  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge r194209.
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesiscoverageexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage-expected.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage-expected.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage-expected.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    font-family: &quot;testfont&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;AS&lt;/span&gt;DF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AS&lt;span style=&quot;font-size: 14px;&quot;&gt;DF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid black 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;BA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid blue 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesiscoveragehtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-coverage.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    /* Opentype. &quot;L&quot; responds to pcap; &quot;M&quot; responds to c2pc */
+    font-family: &quot;testfontotf&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid black 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;aL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;La&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;AL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;LA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;aM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;Ma&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;AM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;MA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid blue 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;aL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;La&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;AL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;LA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;aM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;Ma&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;AM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;MA&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesisexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-expected.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-expected.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis-expected.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,59 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    font-family: &quot;testfont&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;AS&lt;/span&gt;DF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AS&lt;span style=&quot;font-size: 14px;&quot;&gt;DF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid black 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;BA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid blue 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantpetitecapssynthesishtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-petite-caps-synthesis.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    /* Opentype. &quot;L&quot; responds to pcap; &quot;M&quot; responds to c2pc */
+    font-family: &quot;testfontotf&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid black 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;aL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;La&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;AL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;LA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;aM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;Ma&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;AM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: petite-caps;&quot;&gt;MA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid blue 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;L&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;aL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;La&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;AL&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;LA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;M&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;aM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;Ma&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;AM&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-petite-caps;&quot;&gt;MA&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesiscoverageexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage-expected.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage-expected.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage-expected.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,91 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    font-family: &quot;testfont&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;AS&lt;/span&gt;DF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AS&lt;span style=&quot;font-size: 14px;&quot;&gt;DF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid black 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;BA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid red 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;style=&quot;&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;A&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid blue 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid green 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesiscoveragehtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-coverage.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,98 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+/* Only test OpenType fonts for now, because our TrueType font is busted when disabling features. */
+@font-face {
+    /* Opentype. &quot;J&quot; responds to smcp; &quot;K&quot; responds to c2sc */
+    font-family: &quot;testfontotf&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+@font-face {
+    /* Opentype. &quot;f&quot; responds to smcp; &quot;g&quot; responds to c2sc */
+    font-family: &quot;testfontlowercasesmallcapsotf&quot;;
+    src: url(&quot;resources/FontWithFeaturesLowercaseSmallCaps.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid black 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;aJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ja&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;AJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;JA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;aK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ka&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;AK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;KA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontlowercasesmallcapsotf; border: solid red 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;F&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;G&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;fa&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;fA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ga&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;gA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid blue 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;aJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ja&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;AJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;JA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;aK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ka&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;AK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;KA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontlowercasesmallcapsotf; border: solid green 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;fa&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;fA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ga&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;gA&lt;/div
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesisexpectedhtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-expected.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-expected.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis-expected.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,91 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+@font-face {
+    font-family: &quot;testfont&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;AS&lt;/span&gt;DF&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AS&lt;span style=&quot;font-size: 14px;&quot;&gt;DF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ASDF&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid black 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AA&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;BA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid red 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;style=&quot;&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;B&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;A&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;A&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;A&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid blue 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfont; border: solid green 1px; margin: 5px;&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;B&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;A&lt;/span&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestscss3fontvariantsmallcapssynthesishtml"></a>
<div class="addfile"><h4>Added: branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis.html (0 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis.html                                (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/css3/font-variant-small-caps-synthesis.html        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -0,0 +1,98 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+/* Only test OpenType fonts for now, because our TrueType font is busted when disabling features. */
+@font-face {
+    /* Opentype. &quot;J&quot; responds to smcp; &quot;K&quot; responds to c2sc */
+    font-family: &quot;testfontotf&quot;;
+    src: url(&quot;resources/FontWithFeatures.otf&quot;) format(&quot;opentype&quot;);
+}
+@font-face {
+    /* Opentype. &quot;f&quot; responds to smcp; &quot;g&quot; responds to c2sc */
+    font-family: &quot;testfontlowercasesmallcapsotf&quot;;
+    src: url(&quot;resources/FontWithFeaturesLowercaseSmallCaps.otf&quot;) format(&quot;opentype&quot;);
+}
+.test {
+    font-size: 20px;
+    display: inline-block;
+}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test makes sure that font-variant synthesis is correctly applied. The test passes when a particular pattern of Xs and checks appear below. Also note that the correct size of the character is required.
+&lt;div style=&quot;border: solid black 1px;&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ASDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;asdf&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;asDF&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ASdf&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid black 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;aJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ja&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;AJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;JA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;aK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ka&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;AK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;KA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontlowercasesmallcapsotf; border: solid red 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot;&gt;AB&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;F&lt;/div&gt;
+&lt;div class=&quot;test&quot;&gt;G&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;fa&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;fA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;ga&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;Ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: small-caps;&quot;&gt;gA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontotf; border: solid blue 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;J&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;aJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ja&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;AJ&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;JA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;K&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;aK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ka&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;AK&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;KA&lt;/div&gt;
+&lt;/div&gt;
+&lt;div style=&quot;font-family: testfontlowercasesmallcapsotf; border: solid green 1px; margin: 5px; font-feature-settings: 'ntrl';&quot;&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;a&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;f&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;fa&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Af&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;fA&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;g&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;ga&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;Ag&lt;/div&gt;
+&lt;div class=&quot;test&quot; style=&quot;font-variant-caps: all-small-caps;&quot;&gt;gA&lt;/div
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -278,6 +278,10 @@
</span><span class="cx"> [ Mavericks ] http/tests/navigation/page-cache-pending-image-load-cache-partition.html [ Skip ]
</span><span class="cx"> [ Mavericks ] http/tests/navigation/page-cache-xhr.html [ Skip ]
</span><span class="cx"> 
</span><ins>+# Yosemite and El Capitan do not support font feature coverage queries.
+[ Yosemite ElCapitan ] css3/font-variant-small-caps-synthesis-coverage.html [ ImageOnlyFailure ]
+[ Yosemite ElCapitan ] css3/font-variant-petite-caps-synthesis-coverage.html [ ImageOnlyFailure ]
+
</ins><span class="cx"> webkit.org/b/68278 http/tests/history/back-with-fragment-change.php [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> # Skip because this platform does not support a paging mouse wheel event
</span></span></pre></div>
<a id="branchessafari601146branchLayoutTestsplatformmacTestExpectationsorig"></a>
<div class="delfile"><h4>Deleted: branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.orig (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.orig        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.orig        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -1,1378 +0,0 @@
</span><del>-# These are the layout test expectations for Apple's Mac port of WebKit.
-#
-# See http://trac.webkit.org/wiki/TestExpectations for more information on this file.
-
-# &lt;rdar://problem/5647952&gt; fast/events/mouseout-on-window.html needs mac DRT to issue mouse out events
-fast/events/mouseout-on-window.html [ Failure ]
-
-# Different behavior expectatations on mac, and puts up visible context menu.
-webkit.org/b/102987 fast/events/context-nodrag.html [ Failure ]
-
-# &lt;rdar://problem/5643675&gt; window.scrollTo scrolls a window with no scrollbars
-fast/events/attempt-scroll-with-no-scrollbars.html [ Failure ]
-
-# Pixel test doesn't repaint entire view so result is corrupted by previous test
-webkit.org/b/21916 tables/mozilla_expected_failures/bugs/bug178855.xml [ Pass ImageOnlyFailure Failure ]
-
-# https://bugs.webkit.org/show_bug.cgi?id=81697 Skip file:// based notifications tests
-fast/notifications
-
-# This port doesn't support detecting slow unload handlers.
-fast/dom/Window/slow-unload-handler.html
-fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html
-
-# This test fails on release and crashes on debug because of trying to use isEqual() with undefined objects
-webkit.org/b/126066 accessibility/loading-iframe-updates-axtree.html [ Failure Crash ]
-
-webkit.org/b/116636 accessibility/document-attributes.html [ Failure ]
-
-# Accessibility tests with missing AccessibilityController functionality.
-webkit.org/b/116637 accessibility/selection-states.html [ Failure ]
-
-# Accessibility tests for notifications that don't exist or aren't needed on Mac OS X.
-accessibility/aria-checkbox-sends-notification.html
-accessibility/aria-switch-sends-notification.html
-accessibility/combo-box-collapsed-selection-changed.html
-accessibility/children-changed-sends-notification.html
-accessibility/menu-list-sends-change-notification.html
-accessibility/multiselect-list-reports-active-option.html
-
-# isIndeterminate is not implemented in mac
-webkit.org/b/125855 accessibility/aria-checked-mixed-value.html [ Skip ]
-# Missing implementation of some functions in mac.
-webkit.org/b/129039 accessibility/select-element-at-index.html [ Skip ]
-
-# ariaControlsElementAtIndex is not implemented in mac
-webkit.org/b/127908 accessibility/aria-controls.html [ Skip ]
-
-# Need to add functionality to DumpRenderTree to handle error pages
-fast/history/back-forward-reset-after-error-handling.html
-
-# Need to implement this in plugins code in WebKit
-plugins/reloadplugins-and-pages.html
-
-# These tests require touch support
-fast/events/touch
-
-# No button tracked
-fast/events/mouseover-button.html
-
-webkit.org/b/33923 platform/mac/accessibility/change-notification-on-scroll.html [ Skip ] # times out
-
-# eventSender needs to propagate the event to the calling window, not the main frame always.
-http/tests/plugins/plugin-document-has-focus.html
-
-# Requires testRunner.setMediaType() and implementation
-fast/media/print-restores-previous-mediatype.html
-
-# VIEW_MODE_CSS_MEDIA is not enabled on Mac.
-# DumpRenderTree requires testRunner.setViewModeMediaFeature()
-fast/media/view-mode-media-feature.html [ ImageOnlyFailure ]
-fast/media/media-query-list-02.html [ Failure ]
-fast/media/media-query-list-03.html [ Failure ]
-fast/media/media-query-list-04.html [ Failure Timeout ]
-fast/media/media-query-list-05.html [ Failure ]
-fast/media/media-query-list-06.html [ Failure ]
-
-# Needs testRunner.enableAutoResizeMode()
-fast/autoresize
-
-# Uses testRunner.titleTextDirection, which is Chromium-only
-webkit.org/b/58845 fast/dom/title-directionality-removeChild.html
-webkit.org/b/58845 fast/dom/title-directionality.html
-
-webkit.org/b/36642 fast/replaced/border-radius-clip.html [ Pass Failure ]
-
-# Need to add functionality to DumpRenderTree to handle scrollbar policy changes
-fast/overflow/scrollbar-restored-and-then-locked.html
-
-# Mac port doesn't put text/html on the pasteboard for app compatibility: https://bugs.webkit.org/show_bug.cgi?id=19893
-editing/pasteboard/onpaste-text-html-types.html
-editing/pasteboard/onpaste-text-html.html
-fast/events/ondrop-text-html.html
-
-# EventSendingController does not send events on areas outside the WebView.
-scrollbars/scrollbar-click-does-not-blur-content.html
-
-# Below canvas test cases from http://philip.html5.org/tests/canvas/suite/tests/
-# (2d.composite.operation.clear) is failing because we support the &quot;clear&quot; composite op
-# without our vendor prefix since it was around in canvas before the spec was written.
-canvas/philip/tests/2d.composite.operation.clear.html [ Failure ]
-# (2d.composite.*) Most, if not all, of these are failing due to the webkit canvas
-# drawing model being different than the spec's current model. There is a current
-# effort out to change the spec to the webkit canvas model.
-canvas/philip/tests/2d.composite.operation.darker.html [ Failure ]
-
-# This canvas test is skipped because it is out of date with respect to
-# the current spec, and the fix for https://bugs.webkit.org/show_bug.cgi?id=65709
-# which complies with the current spec, makes this test fail by no longer throwing
-# exceptions that were previously expected
-canvas/philip/tests/2d.drawImage.outsidesource.html [ Failure ]
-
-# This port doesn't support DeviceMotion or DeviceOrientation.
-fast/dom/DeviceMotion
-fast/dom/DeviceOrientation
-fast/dom/Window/window-properties-device-orientation.html
-
-# Link prefetch is disabled by default
-fast/dom/HTMLLinkElement/link-and-subresource-test.html
-fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent.html
-fast/dom/HTMLLinkElement/prefetch.html
-fast/dom/HTMLLinkElement/prefetch-beforeload.html
-fast/dom/HTMLLinkElement/prefetch-onerror.html
-fast/dom/HTMLLinkElement/prefetch-onload.html
-fast/dom/HTMLLinkElement/prefetch-too-many-clients.html
-fast/dom/HTMLLinkElement/subresource.html
-http/tests/misc/link-rel-prefetch-and-subresource.html
-http/tests/misc/prefetch-purpose.html
-
-# Filenames aren't filtered out from edit drags yet, see https://bugs.webkit.org/show_bug.cgi?id=38826
-editing/pasteboard/file-drag-to-editable.html [ Failure ]
-
-# EventSender::dumpFilenameBeingDragged not implemented.
-webkit.org/b/61827 fast/events/drag-image-filename.html
-
-# Datalist is not yet enabled.
-fast/forms/datalist
-
-# ENABLE_INPUT_TYPE_* are not enabled.
-# https://bugs.webkit.org/show_bug.cgi?id=29359
-fast/forms/date
-fast/forms/datetime
-fast/forms/datetimelocal
-fast/forms/month
-fast/forms/time
-fast/forms/week
-
-# ENABLE_GAMEPAD not enabled.
-gamepad/
-
-# X-Content-Type-Options (ENABLE_NOSNIFF) is not enabled.
-webkit.org/b/136452 http/tests/security/contentTypeOptions
-
-# Media Stream API is not yet enabled.
-fast/mediastream
-fast/events/constructors/media-stream-event-constructor.html
-http/tests/media/media-stream
-
-# Asserts in debug.
-[ Debug ] fast/images/large-size-image-crash.html [ Skip ]
-
-# Directory upload is not enabled.
-fast/forms/file/input-file-directory-upload.html
-
-# webkit.org/b/61138, webkit.org/b/84893, webkit.org/b/133321
-http/tests/w3c/webperf [ Skip ]
-
-# Content Security Policy 1.1 (ENABLE_CSP_NEXT) is not enabled
-webkit.org/b/85558 http/tests/security/contentSecurityPolicy/1.1
-
-# Perf tests are very flaky, because they run in parallel with other tests.
-perf
-
-webkit.org/b/42821 animations/play-state.html [ Pass Failure ]
-webkit.org/b/113598 animations/animation-delay-changed.html [ Pass Failure ]
-webkit.org/b/113599 svg/animations/reinserting-svg-into-document.html [ Pass Failure ]
-
-# Safari doesn't allow to customize outermost scrollbars.
-webkit.org/b/43960 scrollbars/custom-scrollbar-with-incomplete-style.html
-
-# viewport meta tag support
-fast/viewport
-
-webkit.org/b/116640 plugins/plugin-initiate-popup-window.html
-
-# Requires WebP support.
-fast/canvas/canvas-toDataURL-webp.html
-fast/images/webp-image-decoding.html
-fast/images/webp-color-profile-lossless.html
-fast/images/webp-color-profile-lossy-alpha.html
-fast/images/webp-color-profile-lossy.html
-http/tests/images/webp-partial-load.html
-http/tests/images/webp-progressive-load.html
-
-# Times out because plugins aren't allowed to execute JS after NPP_Destroy has been called in WebKit1's OOP plugins implementation
-webkit.org/b/48929 plugins/evaluate-js-after-removing-plugin-element.html
-
-# DRT does not support toggling caret browsing on / off
-editing/selection/caret-mode-paragraph-keys-navigation.html
-
-# Non-premultiplied-alpha currently broken on mac.
-webkit.org/b/55509 compositing/webgl/webgl-nonpremultiplied-blend.html
-
-webkit.org/b/114321 compositing/plugins/invalidate_rect.html [ Failure Pass ]
-
-# DataTransferItems is not yet implemented.
-editing/pasteboard/data-transfer-items.html
-editing/pasteboard/data-transfer-items-image-png.html
-editing/pasteboard/data-transfer-items-drag-drop-file.html
-editing/pasteboard/data-transfer-items-drag-drop-entry.html
-editing/pasteboard/data-transfer-items-drag-drop-string.html
-fast/events/clipboard-dataTransferItemList.html
-fast/events/drag-dataTransferItemList.html
-fast/events/drag-dataTransferItemList-file-handling.html
-
-# Custom MIME type support in DataTransfer is not yet implemented.
-editing/pasteboard/clipboard-customData.html
-fast/events/drag-customData.html
-
-# Need to implement WebGeolocationRequest::cancelPermissionRequest on mac.
-webkit.org/b/55944 fast/dom/Geolocation/page-reload-cancel-permission-requests.html [ Failure Timeout ]
-
-webkit.org/b/103435 fast/backgrounds/background-opaque-images-over-color.html [ ImageOnlyFailure ]
-
-webkit.org/b/56685 webarchive/test-link-rel-icon.html [ Failure ]
-
-# Quota API is not supported.
-storage/storageinfo-missing-arguments.html
-storage/storageinfo-no-callbacks.html
-storage/storageinfo-query-usage.html
-storage/storageinfo-request-quota.html
-storage/storagequota-query-usage.html
-storage/storagequota-request-quota.html
-fast/workers/worker-storagequota-query-usage.html
-
-# Tests that require ENABLE(DOWNLOAD_ATTRIBUTE).
-fast/dom/HTMLAnchorElement/anchor-nodownload.html
-fast/dom/HTMLAnchorElement/anchor-download.html
-fast/dom/HTMLAnchorElement/anchor-nodownload-set.html
-fast/dom/HTMLAnchorElement/anchor-download-unset.html
-
-# HTTP 204 (No Content) should be ignored
-webkit.org/b/60206 http/tests/navigation/response204.html
-
-# Styled scope element is not yet enabled.
-webkit.org/b/49142 fast/css/style-scoped
-
-# ENABLE(SHADOW_DOM) is disabled.
-fast/dom/shadow
-fast/dom/HTMLTemplateElement/cycles-in-shadow.html
-editing/shadow
-accessibility/corresponding-control-deleted-crash.html
-editing/text-iterator/basic-iteration-shadowdom.html
-
-# JSC does not support setIsolatedWorldSecurityOrigin
-webkit.org/b/61540 http/tests/security/isolatedWorld/cross-origin-xhr.html
-
-# https://bugs.webkit.org/show_bug.cgi?id=63282 layerTreeAsText doesn't work for iframes
-compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Skip ]
-compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Skip ]
-compositing/rtl/rtl-iframe-absolute-overflow.html [ Skip ]
-compositing/rtl/rtl-iframe-absolute.html [ Skip ]
-compositing/rtl/rtl-iframe-fixed-overflow.html [ Skip ]
-compositing/rtl/rtl-iframe-fixed.html [ Skip ]
-compositing/rtl/rtl-iframe-relative.html [ Skip ]
-
-# ENABLE(DRAGGABLE_REGION) is disabled
-fast/css/draggable-region-parser.html
-
-# Font features are not implemented on Mavericks.
-webkit.org/b/149246 [ Mavericks ] css3/font-feature-settings-rendering.html [ ImageOnlyFailure ]
-webkit.org/b/149246 [ Mavericks ] css3/font-variant-all.html [ ImageOnlyFailure ]
-webkit.org/b/149246 [ Mavericks ] css3/font-feature-settings-font-face-rendering.html [ ImageOnlyFailure ]
-webkit.org/b/149246 [ Mavericks ] css3/font-variant-font-face-all.html [ ImageOnlyFailure ]
-webkit.org/b/149246 [ Mavericks ] css3/font-variant-font-face-override.html [ ImageOnlyFailure ]
-
-# This feature is disabled on Mavericks.
-[ Mavericks ] http/tests/navigation/page-cache-pending-image-load.html [ Skip ]
-[ Mavericks ] http/tests/navigation/page-cache-pending-image-load-cache-partition.html [ Skip ]
-[ Mavericks ] http/tests/navigation/page-cache-xhr.html [ Skip ]
-
-webkit.org/b/68278 http/tests/history/back-with-fragment-change.php [ Failure ]
-
-# Skip because this platform does not support a paging mouse wheel event
-fast/events/platform-wheelevent-paging-x-in-non-scrolling-div.html
-fast/events/platform-wheelevent-paging-x-in-non-scrolling-page.html
-fast/events/platform-wheelevent-paging-x-in-scrolling-div.html
-fast/events/platform-wheelevent-paging-x-in-scrolling-page.html
-fast/events/platform-wheelevent-paging-xy-in-scrolling-div.html
-fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html
-fast/events/platform-wheelevent-paging-y-in-non-scrolling-div.html
-fast/events/platform-wheelevent-paging-y-in-non-scrolling-page.html
-fast/events/platform-wheelevent-paging-y-in-scrolling-div.html
-fast/events/platform-wheelevent-paging-y-in-scrolling-page.html
-
-# Pointer Lock is not implemented.
-pointer-lock/
-http/tests/pointer-lock/
-
-webkit.org/b/82763 fast/forms/textarea-placeholder-set-attribute.html
-
-webkit.org/b/102257 fast/dom/Window/open-window-min-size.html
-
-# Fails because MutationObservers are not notified at end-of-task
-webkit.org/b/78290 fast/dom/MutationObserver/end-of-task-delivery.html [ Failure ]
-
-# Needs PageClients::vibrationClient() implementation.
-webkit.org/b/72010 vibration
-
-# &lt;rdar://problem/11059777&gt;
-webkit.org/b/81289 canvas/philip/tests/2d.line.cap.round.html [ Failure ]
-
-# BatteryClient is not supported
-webkit.org/b/62698 batterystatus/
-
-# Proximity Events are not supported.
-proximity
-fast/events/constructors/device-proximity-event-constructor.html
-
-webkit.org/b/81410 scrollbars/scrollbar-middleclick-nopaste.html
-
-# Has failed since its introduction in r105826.
-webkit.org/b/61630 fast/events/dropzone-005.html [ Failure ]
-
-# Spelling tests that are flakey.
-webkit.org/b/82555 editing/spelling/spellcheck-async-mutation.html [ Pass Failure ]
-
-webkit.org/b/82665 http/tests/webarchive/test-css-url-encoding-shift-jis.html [ Failure ]
-webkit.org/b/82665 http/tests/webarchive/test-css-url-encoding-utf-8.html [ Failure ]
-webkit.org/b/82665 http/tests/webarchive/test-css-url-encoding.html [ Failure ]
-webkit.org/b/82665 webarchive/test-css-url-resources-in-stylesheets.html [ Failure ]
-webkit.org/b/82665 webarchive/test-css-url-resources-inline-styles.html [ Failure ]
-
-webkit.org/b/82672 http/tests/xmlhttprequest/range-test.html [ Failure ]
-
-webkit.org/b/82762 fast/animation/request-animation-frame-during-modal.html
-
-webkit.org/b/82805 fast/canvas/webgl/framebuffer-object-attachment.html [ Failure ]
-
-webkit.org/b/82972 plugins/keyboard-events.html [ Pass Failure ]
-webkit.org/b/82972 plugins/layout-in-beforeload-listener-affects-plugin-loading.html [ Pass Failure ]
-webkit.org/b/82972 plugins/mouse-events-fixedpos.html [ Pass Failure ]
-webkit.org/b/82972 plugins/multiple-plugins.html [ Pass Failure ]
-
-webkit.org/b/82979 fast/canvas/2d.text.draw.fill.maxWidth.gradient.html [ Pass Failure ]
-webkit.org/b/82979 canvas/philip/tests/2d.text.draw.align.center.html [ Pass Failure ]
-
-# No CORS support for media elements is implemented yet.
-http/tests/security/video-cross-origin-readback.html
-http/tests/security/video-cross-origin-accessfailure.html
-
-# Random crash, like in many media tests.
-http/tests/security/video-cross-origin-accesssameorigin.html [ Pass Crash ]
-
-# Requires ENABLE(MEDIA_CAPTURE)
-fast/forms/file/file-input-capture.html
-
-webkit.org/b/85969 http/tests/loading/post-in-iframe-with-back-navigation.html [ Failure ]
-
-webkit.org/b/86480 plugins/npruntime/delete-plugin-within-setProperty.html [ Failure ]
-webkit.org/b/86480 plugins/npruntime/delete-plugin-within-hasProperty-return-true.html [ Failure ]
-webkit.org/b/86480 plugins/npruntime/delete-plugin-within-hasProperty-return-false.html [ Failure ]
-
-# Implement textInputController.setComposition()
-webkit.org/b/89845 fast/forms/input-set-composition-scroll.html [ Pass Failure ]
-
-# &lt;rdar://problem/11224160&gt; Focus not transferring properly in DumpRenderTree in Mountain Lion
-fast/events/show-modal-dialog-onblur-onfocus.html [ Skip ]
-platform/mac/fast/forms/listbox-scrollbar-hit-test.html [ Failure ]
-platform/mac/fast/overflow/overflow-scrollbar-hit-test.html [ Failure ]
-
-[ Mavericks ] platform/mac/accessibility/form-control-value-settable.html [ Failure ]
-platform/mac/fast/forms/input-appearance-spinbutton-up.html [ Failure ]
-platform/mac/fast/forms/input-appearance-spinbutton.html [ Failure ]
-platform/mac/fast/text/vertical-no-sideways.html [ Pass Failure ]
-
-fast/css/resize-corner-tracking.html [ Pass Failure ]
-
-# Multiple non contiguous selection with keyboard not enabled on mac
-webkit.org/b/15816 fast/forms/listbox-non-contiguous-keyboard-selection.html [ Skip ]
-
-# &lt;rdar://problem/11224894&gt; Several Japanese vertical text tests failing on Mountain Lion
-fast/dynamic/text-combine.html [ Failure ]
-fast/repaint/japanese-rl-selection-clear.html [ Failure ]
-fast/repaint/japanese-rl-selection-repaint.html [ Failure ]
-fast/repaint/repaint-across-writing-mode-boundary.html [ Failure ]
-fast/ruby/base-shorter-than-text.html [ Failure ]
-fast/text/emphasis-vertical.html [ Failure ]
-fast/text/international/text-spliced-font.html [ Failure ]
-fast/writing-mode/border-vertical-lr.html [ Failure ]
-fast/writing-mode/fallback-orientation.html [ Failure ]
-fast/writing-mode/japanese-lr-selection.html [ Failure ]
-fast/writing-mode/japanese-lr-text.html [ Failure ]
-fast/writing-mode/japanese-rl-selection.html [ Failure ]
-fast/writing-mode/japanese-rl-text.html [ Failure ]
-
-# &lt;rdar://problem/11059031&gt; Many, many Java tests fail on Mountain Lion
-java/
-
-# &lt;rdar://problem/11187491&gt; storage/websql/quota-tracking.html is failing on Mountain Lion
-storage/websql/quota-tracking.html
-
-# https://bugs.webkit.org/show_bug.cgi?id=95009
-compositing/overflow/overflow-auto-with-touch.html [ Failure ]
-compositing/overflow/overflow-overlay-with-touch.html [ Failure ]
-compositing/overflow/scrolling-content-clip-to-viewport.html [ Failure ]
-compositing/overflow/textarea-scroll-touch.html [ Failure ]
-compositing/overflow/updating-scrolling-content.html [ Failure ]
-compositing/overflow/scrolling-without-painting.html [ Failure ]
-
-# &lt;rdar://problem/11229810&gt; SVG square caps on zero-length paths draw incorrectly on Mountain Lion
-svg/W3C-SVG-1.1-SE/painting-control-04-f.svg [ Failure ]
-svg/custom/zero-path-square-cap-rendering.svg [ Failure ]
-svg/stroke/zero-length-arc-linecaps-rendering.svg [ Failure ]
-svg/stroke/zero-length-path-linecap-rendering.svg [ Failure ]
-svg/stroke/zero-length-subpaths-linecap-rendering.svg [ Failure ]
-
-webkit.org/b/110871 compositing/overlap-blending/reflection-opacity-huge.html [ ImageOnlyFailure ]
-webkit.org/b/114340 compositing/overlap-blending/nested-overlap.html [ ImageOnlyFailure ]
-webkit.org/b/114338 compositing/overlap-blending/nested-overlap-overflow.html [ ImageOnlyFailure ]
-webkit.org/b/146523 compositing/masks/compositing-clip-path-origin.html [ Pass ImageOnlyFailure ]
-
-webkit.org/b/95027 fast/block/float/016.html [ Failure ]
-
-# https://bugs.webkit.org/show_bug.cgi?id=93878
-# Due to JSC::Bindings::Instance::createRuntimeObject(JSC::ExecState*) crashes:
-editing/pasteboard/paste-TIFF.html [ Skip ]
-platform/mac/editing/pasteboard/dataTransfer-set-data-file-url.html [ Skip ]
-
-# https://bugs.webkit.org/show_bug.cgi?id=94458
-# Assertion failure in MessagePort::contextDestroyed, usually attributed to later tests
-http/tests/security/MessagePort/event-listener-context.html [ Skip ]
-
-webkit.org/b/112620 [ Debug ] svg/custom/image-with-attr-change-after-delete-crash.html [ Crash Pass ]
-
-# Assorted failures that need investigation
-
-webkit.org/b/107118 fast/canvas/canvas-quadratic-same-endpoint.html [ Failure ]
-webkit.org/b/142258 fast/css/object-fit/object-fit-canvas.html [ Pass ImageOnlyFailure ]
-
-# --- Compositing ----
-css3/filters/composited-during-transition-layertree.html
-webkit.org/b/95622 css3/filters/composited-during-animation-layertree.html [ Pass Failure ]
-
-platform/mac/fast/text/combining-character-sequence-fallback.html [ Pass Failure ]
-
-# --- Editing ---
-# Pasting replaces the three periods with an ellipsis on Lion and Mountain Lion
-editing/pasteboard/5478250.html
-
-# Mac does not have global selections.
-editing/pasteboard/paste-global-selection.html
-
-# Unexpected WebGL Conformance tests that need to be fixed
-# These tests pass when run through webgl-conformance-tests.html but not when just opened via a browser (or via run-webkit-tests)
-webgl/1.0.2/conformance/context/context-creation-and-destruction.html [ Failure Timeout ]
-webgl/1.0.2/conformance/rendering/multisample-corruption.html [ Pass Failure Timeout ]
-http/tests/webgl/1.0.2/origin-clean-conformance.html [ Skip ]
-
-webkit.org/b/124935 [ Debug ] webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html [ Slow ]
-webkit.org/b/124935 [ Yosemite ] webgl/1.0.2/conformance/uniforms/out-of-bounds-uniform-array-access.html [ Pass Timeout ]
-
-[ Yosemite ] webgl/1.0.2/conformance/ogles/GL/operators/operators_009_to_016.html [ Pass Failure ]
-
-# Skip 1.0.3 tests for now, to be unskipped when we get closer to conformance
-webgl/1.0.3/conformance/attribs [ Skip ]
-webgl/1.0.3/conformance/buffers [ Skip ]
-webgl/1.0.3/conformance/canvas [ Skip ]
-webgl/1.0.3/conformance/context [ Skip ]
-webgl/1.0.3/conformance/glsl [ Skip ]
-webgl/1.0.3/conformance/renderbuffers [ Skip ]
-webgl/1.0.3/conformance/rendering [ Skip ]
-webgl/1.0.3/conformance/state [ Skip ]
-webgl/1.0.3/conformance/textures [ Skip ]
-webgl/1.0.3/conformance/typedarrays [ Skip ]
-webgl/1.0.3/conformance/uniforms [ Skip ]
-webgl/1.0.3/conformance/extensions/angle-instanced-arrays.html [ Skip ]
-webgl/1.0.3/conformance/extensions/oes-texture-half-float.html [ Skip ]
-webgl/1.0.3/conformance/extensions/webgl-compressed-texture-size-limit.html [ Skip ]
-webgl/1.0.3/conformance/extensions/webgl-draw-buffers.html [ Skip ]
-
-# Sending the mouse down event to the scrollbar starts a nested run loop which causes a hang.
-fast/events/mousedown-in-subframe-scrollbar.html [ Skip ]
-
-webkit.org/b/96828 fast/canvas/webgl/oes-vertex-array-object.html [ Skip ]
-webkit.org/b/96828 webgl/1.0.2/conformance/extensions/oes-vertex-array-object.html [ Skip ]
-
-http/tests/misc/willCacheResponse-delegate-callback.html [ Failure ]
-http/tests/xmlhttprequest/basic-auth-nopassword.html [ Failure ]
-platform/mac/accessibility/selection-value-changes-for-aria-textbox.html [ Failure ]
-
-platform/mac/accessibility/search-with-frames.html [ Pass Failure ]
-
-# --- Plugins ---
-# WebKit1 OOP plug-ins: Can't evaluate JavaScript from NPP_Destroy.
-plugins/document-open.html
-plugins/geturlnotify-during-document-teardown.html
-plugins/nested-plugin-objects.html
-plugins/netscape-destroy-plugin-script-objects.html
-plugins/open-and-close-window-with-plugin.html
-
-# WebKit1 OOP plug-ins: No support for getting the form value.
-plugins/form-value.html
-
-# WebKit1 OOP plug-ins: Exceptions aren't thrown on invoke failure.
-plugins/npruntime/invoke-failure.html
-
-webkit.org/b/93589 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [ Pass Timeout ]
-
-[ Mavericks ] http/tests/multipart/invalid-image-data-standalone.html [ Skip ]
-
-# Needs ENABLE_SHADOW_DOM
-webkit.org/b/76439 [ Debug ] fast/dom/shadow/content-element-api.html [ Failure ]
-
-# ENABLE(CUSTOM_ELEMENTS) is disabled.
-fast/dom/custom
-
-# CSS image-resolution is not yet enabled.
-webkit.org/b/85262 fast/css/image-resolution
-
-# Resolution media query is not yet enabled.
-webkit.org/b/85262 fast/media/mq-resolution.html [ Skip ]
-webkit.org/b/85262 fast/media/mq-resolution-dpi-dpcm-warning.html [ Skip ]
-
-# CSS image-orientation is not yet enabled.
-webkit.org/b/89052 fast/css/image-orientation
-
-# CSS3 Text support is not yet enabled (needs ENABLE_CSS3_TEXT).
-webkit.org/b/76173 fast/css3-text/css3-text-align-last
-webkit.org/b/99945 fast/css3-text/css3-text-justify [ Skip ]
-webkit.org/b/112755 fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html [ ImageOnlyFailure ]
-webkit.org/b/112755 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html [ Failure ]
-webkit.org/b/112755 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited.html [ Failure ]
-webkit.org/b/58491 editing/pasteboard/insert-text-decoration.html [ Skip ]
-
-# MHTML is not yet enabled
-mhtml [ Skip ]
-
-# Our slow tests, in alphabetical order.
-webkit.org/b/57672 http/tests/local/fileapi/send-sliced-dragged-file.html [ Failure Pass ]
-
-# Flaky tests that appear to be fail depending on which earlier tests
-# run in the same process
-webkit.org/b/57688 fast/text/international/bidi-AN-after-empty-run.html [ Failure Pass ]
-webkit.org/b/57688 fast/text/international/bidi-CS-after-AN.html [ Failure Pass ]
-webkit.org/b/57688 fast/text/international/thai-line-breaks.html [ Failure Pass ]
-
-webkit.org/b/112646 plugins/private-browsing-mode.html [ Failure Pass ]
-webkit.org/b/112616 plugins/plugin-clip-subframe.html [ Failure Pass ]
-
-# Occasional assertion in JSNPObject::invalidate()
-webkit.org/b/112518 [ Debug ] plugins/object-onfocus-mutation-crash.html [ Crash Pass ]
-webkit.org/b/112518 [ Debug ] plugins/npruntime/evaluate.html [ Crash Pass ]
-
-# Flakey plugin tests
-webkit.org/b/82752 plugins/netscape-dom-access-and-reload.html [ Failure Pass ]
-
-svg/dom/SVGScriptElement/script-set-href.svg [ Failure Pass ]
-
-# Flakey frame flattening tests
-webkit.org/b/112532 fast/frames/flattening/iframe-flattening-offscreen.html [ Failure Pass ]
-webkit.org/b/112532 fast/frames/flattening/iframe-flattening-out-of-view.html [ Failure Pass ]
-webkit.org/b/112532 fast/frames/flattening/frameset-flattening-advanced.html [ Failure Pass ]
-webkit.org/b/112532 fast/frames/flattening/frameset-flattening-subframesets.html [ Failure Pass ]
-webkit.org/b/106185 fast/frames/flattening/iframe-flattening-fixed-height.html [ Failure Pass ]
-webkit.org/b/106185 fast/frames/flattening/frameset-flattening-grid.html [ Failure Pass ]
-
-webkit.org/b/73766 css3/unicode-bidi-isolate-aharon-failing.html [ ImageOnlyFailure ]
-
-# Failing ref tests
-webkit.org/b/84759 ietestcenter/css3/multicolumn/column-containing-block-001.htm [ ImageOnlyFailure ]
-webkit.org/b/84760 ietestcenter/css3/multicolumn/column-containing-block-002.htm [ ImageOnlyFailure ]
-webkit.org/b/84761 ietestcenter/css3/multicolumn/column-filling-001.htm [ ImageOnlyFailure ]
-webkit.org/b/84770 ietestcenter/css3/multicolumn/column-width-applies-to-007.htm [ ImageOnlyFailure ]
-webkit.org/b/84771 ietestcenter/css3/multicolumn/column-width-applies-to-009.htm [ ImageOnlyFailure ]
-webkit.org/b/84772 ietestcenter/css3/multicolumn/column-width-applies-to-010.htm [ ImageOnlyFailure ]
-webkit.org/b/84773 ietestcenter/css3/multicolumn/column-width-applies-to-012.htm [ ImageOnlyFailure ]
-webkit.org/b/84777 ietestcenter/css3/multicolumn/column-width-applies-to-015.htm [ ImageOnlyFailure ]
-
-webkit.org/b/85404 fast/loader/javascript-url-in-embed.html [ Failure Pass ]
-
-webkit.org/b/85408 svg/batik/text/longTextOnPath.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/paints/gradientLimit.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/textOnPath.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/verticalTextOnPath.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/textPosition.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/verticalText.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/textLength.svg [ Failure Pass ]
-webkit.org/b/85408 svg/batik/text/textEffect.svg [ Pass Failure ]
-webkit.org/b/85408 svg/batik/paints/patternRegions-positioned-objects.svg [ Pass Failure ]
-webkit.org/b/85408 svg/batik/text/textDecoration.svg [ Pass Failure ]
-webkit.org/b/114120 svg/batik/masking/maskRegions.svg [ Pass Failure ]
-webkit.org/b/114375 svg/batik/filters/feTile.svg [ Pass Failure ]
-
-webkit.org/b/99893 svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg [ ImageOnlyFailure ]
-
-webkit.org/b/98718 svg/animations/animate-css-xml-attributeType.html [ Failure Pass ]
-
-# IETC flexbox failures
-webkit.org/b/85211 ietestcenter/css3/flexbox/flexbox-align-stretch-001.htm [ ImageOnlyFailure ]
-webkit.org/b/85212 ietestcenter/css3/flexbox/flexbox-layout-002.htm [ ImageOnlyFailure ]
-
-# Interferes with the tests that should pass
-webkit.org/b/85689 fast/animation/request-animation-frame-disabled.html [ Skip ]
-
-# Hits assert https://bugs.webkit.org/show_bug.cgi?id=86208
-webkit.org/b/85308 ietestcenter/css3/valuesandunits/units-000.htm [ Skip ]
-
-# IETC namespace failures
-webkit.org/b/86142 ietestcenter/css3/namespaces/syntax-021.xml [ ImageOnlyFailure ]
-
-webaudio/mediastreamaudiodestinationnode.html [ Failure ]
-webaudio/mediastreamaudiosourcenode.html [ Skip ]
-webaudio/codec-tests/vorbis/ [ WontFix ]
-webkit.org/b/119467 webaudio/audiobuffersource-loop-points.html [ Skip ]
-
-# Text Autosizing is not enabled.
-webkit.org/b/84186 fast/text-autosizing
-
-# Skip tests in fast/text/shaping
-webkit.org/b/90951 fast/text/shaping
-
-# CSS Device Adaptation is not enabled.
-webkit.org/b/95959 css3/device-adapt [ Skip ]
-
-# Accelerated overflow scrolling (ENABLE_ACCELERATED_OVERFLOW_SCROLLING) is not enabled.
-fast/repaint/overflow-scroll-touch-repaint.html [ Skip ]
-
-# Hardware accelerated CSS transitions appear pixelated when scaled up using transform
-webkit.org/b/27684 compositing/text-on-scaled-layer.html [ ImageOnlyFailure ]
-webkit.org/b/27684 compositing/text-on-scaled-surface.html [ ImageOnlyFailure ]
-
-# Asserts in MessagePort::contextDestroyed, but the assert usually gets attributed to later tests.
-webkit.org/b/94458 fast/events/message-port-constructor-for-deleted-document.html
-
-webkit.org/b/95501 http/tests/security/inactive-document-with-empty-security-origin.html [ Skip ]
-
-# Rendering/Layout issue of CJK vertical text with some fonts.
-webkit.org/b/98560 fast/writing-mode/vertical-subst-font-vert-no-dflt.html [ Pass ImageOnlyFailure ]
-
-# This test is failing and causing subsequent tests to time out.
-webkit.org/b/98837 http/tests/security/svg-image-leak.html [ Skip ]
-
-# Should never have been a ref test.
-webkit.org/b/98456 compositing/images/truncated-direct-png-image.html [ ImageOnlyFailure ]
-
-# Timing out on Mountain Lion WK1 release sometimes
-webkit.org/b/99221 js/dom/random-array-gc-stress.html [ Pass Timeout ]
-
-# Expected to fail until WebGL extension implementation lands
-webkit.org/b/98257 fast/canvas/webgl/oes-element-index-uint.html [ Failure Pass ]
-
-# Expected to fail until GL_EXT_draw_buffers works properly for DARWIN. See WebGLDrawBuffers::supported
-webkit.org/b/112486 fast/canvas/webgl/webgl-draw-buffers.html [ Failure Pass ]
-
-webkit.org/b/107356 fast/css/sticky/sticky-top-zoomed.html [ ImageOnlyFailure ]
-
-# Overflowing LayoutUnits cause RenderGeometryMap assertions
-webkit.org/b/67434 [ Debug ] fast/overflow/overflow-height-float-not-removed-crash.html [ Skip ]
-webkit.org/b/67434 [ Debug ] fast/overflow/overflow-height-float-not-removed-crash2.html [ Skip ]
-webkit.org/b/67434 [ Debug ] fast/overflow/overflow-height-float-not-removed-crash3.html [ Skip ]
-webkit.org/b/67434 [ Debug ] fast/block/float/overhanging-tall-block.html [ Skip ]
-
-webkit.org/b/104954 http/tests/canvas/canvas-slow-font-loading.html [ ImageOnlyFailure ]
-
-webkit.org/b/104962 platform/mac/fast/loader/file-url-mimetypes-2.html [ Failure ]
-
-webkit.org/b/105777 platform/mac/editing/spelling/autocorrection-in-textarea.html [ Failure Pass ]
-
-# Enable when support drag-and-drop autoscrolling
-webkit.org/b/39725 fast/events/drag-and-drop-autoscroll.html [ Skip ]
-
-webkit.org/b/106415 fast/workers/worker-close-more.html [ Timeout ] 
-webkit.org/b/106415 fast/workers/worker-document-leak.html [ Pass Failure ] 
-webkit.org/b/106415 fast/workers/worker-lifecycle.html [ Pass Failure ]
-
-webkit.org/b/119374 fast/workers/termination-early.html [ Pass Crash ]
-
-webkit.org/b/110186 inspector-protocol/page/javascriptDialogEvents.html [ Skip ]
-
-# Need support for ResourceHandle::didChangePriority and DRT support
-webkit.org/b/111016 http/tests/loading/promote-img-preload-priority.html [ Failure ]
-
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.1_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.4_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.1_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.4_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/10_Execution_Contexts/10.1_Definitions/10.1.8_Arguments_Object/S10.1.8_A3_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A5.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A6.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/12_Statement/12.6_Iteration_Statements/12.6.2_The_while_statement/S12.6.2_A6_T2.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Conformance/13_Function_Definition/S13_A4_T4.html [ Slow ]
-webkit.org/b/111647 [ Debug ] sputnik/Unicode/Unicode_218/S7.6_A5.3_T2.html [ Slow ]
-
-webkit.org/b/111606 fast/borders/border-fit-2.html [ Failure Pass ]
-webkit.org/b/111606 fast/borders/border-fit.html [ Failure Pass ]
-webkit.org/b/111606 fast/repaint/border-fit-lines.html [ Failure Pass ]
-
-
-# The following tests only fail on Mac EWS bots. Unfortunately, we haven't been able to figure out the cause of these failures.
-webkit.org/b/112176 canvas/philip/tests/2d.path.arc.scale.2.html [ Failure Pass ]
-webkit.org/b/112176 canvas/philip/tests/2d.path.arcTo.scale.html [ Failure Pass ]
-webkit.org/b/112176 canvas/philip/tests/2d.path.arcTo.transformation.html [ Failure Pass ]
-webkit.org/b/112176 canvas/philip/tests/2d.path.stroke.scale1.html [ Failure Pass ]
-webkit.org/b/112176 canvas/philip/tests/2d.path.stroke.skew.html [ Failure Pass ]
-webkit.org/b/112176 compositing/overflow/composited-scrolling-paint-phases.html [ Failure Pass ]
-webkit.org/b/112176 fast/canvas/canvas-composite-alpha.html [ Failure Pass ]
-webkit.org/b/112176 fast/canvas/webgl/read-pixels-test.html [ Failure Pass ]
-
-# The following ref-test appears to fail on EWS bots as well.
-webkit.org/b/112176 fast/css/sticky/inline-sticky-abspos-child.html [ ImageOnlyFailure Pass ]
-webkit.org/b/112176 fast/css/sticky/inline-sticky.html [ ImageOnlyFailure Pass ]
-webkit.org/b/112176 fast/css/sticky/sticky-both-sides.html [ ImageOnlyFailure Pass ]
-# Once the bug 112176 is fixed, potentially restore the following test expectations.
-
-# Always very slow, frequently timing out (only on bots, not locally).
-webkit.org/b/121331 http/tests/misc/submit-post-keygen.html [ Pass Failure Timeout ]
-
-# isProtocolHandlerRegistered() isn't supported yet.
-webkit.org/b/92749 fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html [ Skip ]
-
-# New test failing, needs investigation.
-webkit.org/b/103857 fast/events/mouse-cursor-change.html
-
-webkit.org/b/116245 canvas/philip/tests/2d.text.draw.fontface.notinpage.html [ Pass Failure ]
-
-webkit.org/b/120387 svg/animations/svglengthlist-animation-3.html [ Pass Failure ]
-
-webkit.org/b/120923 animations/cross-fade-background-image.html [ ImageOnlyFailure ]
-
-webkit.org/b/131244 svg/as-image/svg-as-image-canvas.html [ Pass ImageOnlyFailure ]
-
-webkit.org/b/117427 compositing/reflections/load-video-in-reflection.html [ Pass Failure Crash Timeout ]
-
-# Resizing windows appears broken in both DRT and WTR, making the test fail or time out flakily.
-webkit.org/b/96642 loader/go-back-to-different-window-size.html [ Pass Failure Timeout ]
-
-webkit.org/b/122031 fast/animation/request-animation-frame-time-unit.html [ Pass Failure ]
-
-webkit.org/b/122038 animations/transform-non-accelerated.html [ Pass Failure ]
-
-webkit.org/b/122490 [ Debug ] mathml/very-large-stretchy-operators.html [ Skip ]
-
-# rdar://problem/21443002
-[ Release ElCapitan+ ] mathml/very-large-stretchy-operators.html [ Slow ]
-
-webkit.org/b/123220 compositing/regions/floated-region-with-transformed-child.html [ Pass ImageOnlyFailure ]
-webkit.org/b/138179 compositing/regions/propagate-region-box-shadow-border-padding-for-video.html [ Skip ]
-
-webkit.org/b/123250 plugins/destroy-during-npp-new-object-with-fallback-content.html [ Pass Failure ]
-
-webkit.org/b/123369 svg/css/parent-shadow-offscreen.svg [ Pass ImageOnlyFailure ]
-webkit.org/b/123369 svg/css/root-shadow-offscreen.svg [ Pass ImageOnlyFailure ]
-
-# webkit.org/b/100846, webkit.org/b/136715
-inspector-protocol/debugger
-
-webkit.org/b/124311 compositing/regions/transform-transparent-positioned-video-inside-region.html [ ImageOnlyFailure ]
-
-webkit.org/b/124321 [ Mavericks ] animations/resume-after-page-cache.html [ Pass Failure ]
-
-# These fast/forms/select tests open a pop-up menu (visible on screen even when using run-webkit-tests), and get stuck in its nested event loop.
-webkit.org/b/87748 fast/forms/select/optgroup-clicking.html [ Skip ]
-webkit.org/b/73304 fast/forms/select/menulist-popup-crash.html [ Skip ]
-webkit.org/b/113220 fast/forms/select/popup-closes-on-blur.html [ Skip ]
-webkit.org/b/74384 fast/forms/select/menulist-onchange-fired-with-key-up-down.html [ WontFix ] # Additionally, this is not an expected behavior on Mac.
-
-webkit.org/b/123029 [ Debug ] platform/mac/editing/attributed-string [ Pass Crash ]
-
-webkit.org/b/124933 svg/animations/getCurrentTime-pause-unpause.html [ Pass Failure ]
-
-webkit.org/b/126586 webgl/1.0.2/conformance/rendering/gl-scissor-test.html [ Pass Failure ]
-
-webkit.org/b/52016 http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html [ Pass Failure Timeout ]
-
-# Subpixel failures START
-# Inline text positioning
-webkit.org/b/85532 fast/sub-pixel/file-upload-control-at-fractional-offset.html [ ImageOnlyFailure ]
-
-# -webkit-flex off-by-one px
-webkit.org/b/126898 css3/flexbox/image-percent-max-height.html [ ImageOnlyFailure ]
-
-# repaintRectsAsText reports different repaintrects.
-webkit.org/b/131887 fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html [ Failure ]
-
-# Some CSS region expected tests do not properly match CSS region's behavior.
-webkit.org/b/132990 fast/regions/overflow/overflow-size-change-with-stacking-context.html [ ImageOnlyFailure ]
-
-webkit.org/b/124342 fast/hidpi/image-srcset-svg-canvas.html [ ImageOnlyFailure ]
-
-# Clipping filter effects when region is present.
-webkit.org/b/133523 fast/regions/inline-block-inside-anonymous-overflow.html [ ImageOnlyFailure ]
-
-webkit.org/b/136419 fast/sub-pixel/block-with-margin-overflow.html [ ImageOnlyFailure ]
-webkit.org/b/137729 fast/sub-pixel/client-width-height-snapping.html [ Failure ]
-# Subpixel failures END
-
-# These tests were always flaky, but became a lot more so at in r163472-r163476.
-webkit.org/b/49182 animations/stop-animation-on-suspend.html [ Pass Failure ]
-webkit.org/b/50959 animations/play-state-suspend.html [ Pass Failure ]
-webkit.org/b/122040 animations/combo-transform-translate+scale.html [ Pass Failure ]
-webkit.org/b/128379 animations/suspend-resume-animation.html [ Pass Failure ]
-
-# Regressions in svg/clip-path
-webkit.org/b/129180 svg/clip-path/clip-path-on-svg-001.svg [ ImageOnlyFailure ]
-webkit.org/b/129180 svg/clip-path/clip-path-on-svg-002.svg [ ImageOnlyFailure ]
-
-# Skipped for ios-simulator as well:
-webkit.org/b/129758 js/dom/create-lots-of-workers.html [ Skip ]
-
-# This test fails because the structure of mfenced/mo operators was changed in bug 124838.
-webkit.org/b/124836 platform/mac/accessibility/mathml-elements.html [ Failure ]
-
-webkit.org/b/130693 mathml/presentation/tokenElements-background-color.html [ ImageOnlyFailure ]
-
-# These tests require an OpenType MATH font on the Apple bots.
-webkit.org/b/130322 [ Mavericks ] mathml/opentype/large-operators.html [ Failure ]
-webkit.org/b/130322 [ Mavericks ] mathml/opentype/vertical.html [ Failure ]
-webkit.org/b/72828 mathml/opentype/horizontal.html [ Failure ]
-webkit.org/b/72828 mathml/opentype/horizontal-munderover.html [ Failure ]
-
-# Missing references
-webkit.org/b/119038 mathml/presentation/mo-stretch.html [ Failure ]
-webkit.org/b/119038 mathml/presentation/roots.xhtml [ Failure ]
-
-webkit.org/b/128255 compositing/columns/composited-lr-paginated-repaint.html [ Pass Failure ]
-webkit.org/b/128255 compositing/columns/composited-rl-paginated-repaint.html [ Pass Failure ]
-
-webkit.org/b/140183 compositing/backgrounds/background-image-with-negative-zindex.html [ ImageOnlyFailure ]
-
-webkit.org/b/130972 transitions/3d/interrupted-transition.html [ Pass Failure Timeout ]
-
-webkit.org/b/118153 compositing/repaint/positioned-movement.html [ Pass Failure ]
-
-webkit.org/b/131715 transitions/cancel-transition.html [ Pass Failure ]
-
-webkit.org/b/89153 http/tests/websocket/tests/hybi/workers/close.html [ Pass Failure ]
-
-[ Mavericks ] fast/images/image-controls-basic.html [ WontFix ]
-
-# &lt;rdar://problem/16696298&gt;
-webkit.org/b/131886 webgl/1.0.2/conformance/textures/texture-size-limit.html [ Pass Failure ]
-webkit.org/b/131886 fast/canvas/webgl/webgl-compressed-texture-size-limit.html [ Pass Failure Timeout ]
-
-webkit.org/b/132385 compositing/repaint/repaint-on-layer-grouping-change.html [ Pass Failure ]
-
-# Mavericks and prior do not support web timing.
-[ Mavericks ] fast/dom/navigation-type-back-forward.html [ WontFix ]
-[ Mavericks ] fast/dom/navigation-type-navigate.html [ WontFix ]
-[ Mavericks ] fast/dom/navigation-type-reload.html [ WontFix ]
-[ Mavericks ] fast/dom/webtiming-document-open.html [ WontFix ]
-[ Mavericks ] fast/dom/webtiming-navigate-within-document.html [ WontFix ]
-[ Mavericks ] fast/dom/webtiming.html [ WontFix ]
-[ Mavericks ] fast/dom/Window/web-timing-minimal-performance-now.html [ WontFix ]
-[ Mavericks ] fast/dom/Window/window-properties-performance.html [ WontFix ]
-[ Mavericks ] fast/performance [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-cross-origin-and-back1.html [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-cross-origin-redirect.php [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-no-origin.html [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-one-redirect.php [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-resolution.html [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-slow-load.php [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-ssl.php [ WontFix ]
-[ Mavericks ] http/tests/misc/webtiming-two-redirects.php [ WontFix ]
-
-# This test, originally written for Chromium, historically was not testing anything on Mac because
-# resizing didn't work. Now the test fails. I believe this bug was never fixed for the Mac port.
-fast/dom/rtl-scroll-to-leftmost-and-resize.html [ Failure ]
-
-webkit.org/b/135015 plugins/quicktime-plugin-replacement.html [ Pass Failure ]
-
-webkit.org/b/131477 fast/repaint/obscured-background-no-repaint.html [ Pass Failure ]
-
-webkit.org/b/116259 http/tests/cache/willsendrequest-returns-null-for-memory-cache-load.html [ Pass Failure ]
-
-webkit.org/b/136718 fast/dynamic/layer-no-longer-paginated.html [ Skip ]
-
-webkit.org/b/137737 accessibility/table-cells-roles.html [ Skip ]
-
-# --- Start media tests ---
-## --- Start media wontfix tests ---
-# This test requires ogg codecs
-media/media-can-play-ogg.html [ WontFix ]
-
-# This test requires flac codec
-media/media-can-play-flac-audio.html [ WontFix ]
-
-# This tests requires support for non-Range HTTP requests.
-http/tests/media/media-seeking-no-ranges-server.html [ WontFix ]
-
-# This test requires MKV and OGV support.
-media/track/in-band [ WontFix ]
-
-# These tests require MKV, Vorbis, and Theora support.
-media/track/audio [ WontFix ]
-media/track/video [ WontFix ]
-
-# This test requires alpha-channel video support.
-compositing/video/video-background-color.html [ WontFix ]
-
-# Mac doesn't have a toggle for CC any more, it's based on a menu of choices.
-media/video-controls-captions.html [ WontFix ]
-
-# Mac doesn't support YUV 420/422 colorspace
-media/video-colorspace-yuv420.html [ WontFix ]
-media/video-colorspace-yuv422.html [ WontFix ]
-
-# The logic in this test is no longer correct for Apple ports
-media/track/track-user-preferences.html [ WontFix ]
-
-# This test requires the QuickTime LOOP user data property, which AVFoundation and QTKit64 do not support.
-media/video-does-not-loop.html [ WontFix ]
-
-# This test uses movie matricies, which AVFoundation and QTKit64 do not support.
-media/video-size-intrinsic-scale.html [ WontFix ]
-
-# These tests are for an obsolete version of the EME spec.
-fast/events/constructors/media-key-event-constructor.html [ WontFix ]
-media/encrypted-media/encrypted-media-can-play-type-webm.html [ WontFix ]
-media/encrypted-media/encrypted-media-events.html [ WontFix ]
-media/encrypted-media/encrypted-media-not-loaded.html [ WontFix ]
-media/encrypted-media/encrypted-media-syntax.html [ WontFix ]
-
-# This test requires media engines not purge buffered date before currentTime.
-http/tests/media/video-buffered.html [ WontFix ]
-## --- End media wontfix tests ---
-
-## --- Start unimplemented media tests ---
-webkit.org/b/91611 media/media-higher-prio-audio-stream.html [ Skip ]
-
-# WebKitDataCue is supported, not DataCue
-media/track/track-datacue.html [ Skip ]
-## --- End unimplemeted media tests ---
-
-## --- Start media tests failing on Mavericks and earlier ---
-# HTTP Auth in Media is not supported in Mavericks
-webkit.org/b/40382 [ Mavericks ] http/tests/media/video-auth.html [ WontFix ]
-
-# HTML sandboxing produces two or three messages flakily.
-webkit.org/b/137368 media/video-controls-no-scripting.html [ Pass Failure ]
-
-# Mavericks and prior do not support Media Source.
-[ Mavericks ] media/media-source [ WontFix ]
-[ Mavericks ] http/tests/media/media-source/ [ WontFix ]
-[ Mavericks ] fast/history/page-cache-media-source-closed.html [ WontFix ]
-[ Mavericks ] fast/history/page-cache-media-source-closed-2.html [ WontFix ]
-[ Mavericks ] fast/history/page-cache-media-source-opened.html [ WontFix ]
-[ Mavericks ] fast/history/page-cache-removed-source-buffer.html [ WontFix ]
-## --- End media tests failing on Mavericks and earlier ---
-
-## --- Start flaky media tests ---
-webkit.org/b/34331 http/tests/media/video-referer.html [ Pass Timeout ]
-webkit.org/b/35297 media/video-display-aspect-ratio.html [ Pass Failure ]
-webkit.org/b/82976 media/W3C/video/networkState/networkState_during_progress.html [ Pass Failure ]
-webkit.org/b/85525 media/video-played-reset.html [ Pass Failure ]
-webkit.org/b/112659 media/video-playing-and-pause.html [ Failure Timeout ]
-webkit.org/b/114744 media/video-layer-crash.html [ Pass Timeout Failure ]
-webkit.org/b/115048 media/media-element-play-after-eos.html [ Pass Timeout ]
-webkit.org/b/116277 media/video-buffered.html [ Pass Failure ]
-webkit.org/b/121803 media/video-object-fit-change.html [ Pass ImageOnlyFailure ]
-webkit.org/b/121803 media/video-object-fit.html [ Pass ImageOnlyFailure ]
-webkit.org/b/122021 media/track/track-cue-rendering-vertical.html [ Failure ]
-webkit.org/b/122033 media/video-duration-known-after-eos.html [ Pass Timeout ]
-webkit.org/b/122042 media/media-controller-playback.html [ Pass Timeout ]
-webkit.org/b/122126 media/click-volume-bar-not-pausing.html [ Pass Timeout ]
-webkit.org/b/122507 media/track/track-cue-rendering.html [ Pass Failure ]
-webkit.org/b/123010 media/W3C/audio/networkState/networkState_during_loadstart.html [ Pass Timeout ]
-webkit.org/b/123099 media/media-controller-time-clamp.html [ Pass Timeout ]
-webkit.org/b/123522 media/track/track-in-band-legacy-api.html [ Pass Failure Crash ]
-webkit.org/b/128312 media/video-load-preload-metadata.html [ Pass Failure ]
-webkit.org/b/130490 media/video-remote-control-playpause.html [ Pass Failure ]
-webkit.org/b/130971 media/track/track-remove-track.html [ Pass Crash Failure Timeout ]
-webkit.org/b/131855 media/event-attributes.html [ Pass Failure Timeout ]
-webkit.org/b/133363 media/video-rtl.html [ Pass ImageOnlyFailure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/align.html [ Pass Failure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/endTime.html [ Pass Failure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/id.html [ Pass Failure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/pauseOnExit.html [ Pass Failure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/startTime.html [ Pass Failure ]
-webkit.org/b/133686 media/track/w3c/interfaces/TextTrackCue/track.html [ Pass Failure ]
-webkit.org/b/135071 media/video-seek-with-negative-playback.html [ Pass Timeout ]
-webkit.org/b/135160 [ Mavericks ] media/track/track-in-band-subtitles-too-large.html [ Failure ]
-webkit.org/b/135160 [ Yosemite+ ] media/track/track-in-band-subtitles-too-large.html [ Pass Failure Timeout Crash ]
-webkit.org/b/135160 media/track/track-long-word-container-sizing.html [ Pass Failure ]
-webkit.org/b/137311 media/video-fullscreeen-only-playback.html [ Pass Timeout Crash ]
-webkit.org/b/139789 media/media-controls-timeline-updates.html [ Pass Failure ]
-webkit.org/b/139825 media/video-seek-past-end-paused.html [ Pass Timeout ]
-webkit.org/b/141084 [ Yosemite ] http/tests/media/video-preload.html [ Pass Timeout ]
-webkit.org/b/141294 compositing/reflections/masked-reflection-on-composited.html [ Pass Crash ]
-webkit.org/b/142152 media/track/track-in-band-cues-added-once.html [ Pass Failure ]
-webkit.org/b/147944 media/video-seek-to-current-time.html [ Pass Failure ]
-## --- End flaky media tests
-
-# Skipped while Eric Carlson works on a fix.
-webkit.org/b/28221 media/audio-delete-while-step-button-clicked.html [ Failure ]
-
-# These tests always time out.
-webkit.org/b/112492 media/track/track-prefer-captions.html [ Skip ]
-
-webkit.org/b/136708 http/tests/media/video-play-stall-seek.html
-webkit.org/b/136708 media/media-fullscreen-not-in-document.html
-
-webkit.org/b/140639 http/tests/media/video-play-waiting.html [ Pass Timeout ]
-
-# ENABLE(MEDIA_SESSION) is disabled
-media/session/controls-existence.html
-media/session/default-session.html
-
-# This test requires generation of progress events during loading
-webkit.org/b/100984 media/progress-events-generated-correctly.html [ Failure ]
-
-webkit.org/b/34287 http/tests/media/video-cookie.html
-
-# needs enhanced eventSender.contextMenu() return value
-webkit.org/b/116651 media/context-menu-actions.html [ Skip ]
-
-webkit.org/b/61487 http/tests/media/video-cross-site.html [ Failure ]
-
-# Opera-submitted tests to W3C for &lt;track&gt;, a lot of failures still.
-webkit.org/b/103926 media/track/opera/idl/media-idl-tests.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/HTMLElement/HTMLMediaElement/crossOrigin.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/HTMLElement/HTMLTrackElement/kind.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/HTMLElement/HTMLTrackElement/src.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrack/activeCues.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/constructor.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TrackEvent/createEvent.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/getCueAsHTML.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/line.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onenter.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/onexit.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/snapToLines.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/text.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCue/vertical.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackCueList/getter.html [ Skip ]
-webkit.org/b/103926 media/track/opera/interfaces/TextTrackList/getter.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/track-element/cloneNode.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/track-element/src-clear-cues.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/parsing/001.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/parsing-cue-data/tests/entities.html [ Skip ] 
-webkit.org/b/103926 media/track/opera/track/webvtt/parsing-cue-data/tests/tags.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/12345_timestamps.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/parsing-cue-data/tests/timestamps.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/parsing-cue-data/tests/tree-building.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/cue_font_size_transition.html [ Skip ]
-webkit.org/b/103926 media/track/opera/track/webvtt/rendering/adhoc/voice_with_evil_timestamp.html [ Skip ]
-
-# WebVTT tests don't work because they need more than a 800x600 snapshot.
-# They are also flakily failing on WebKit2, as snapshot sometimes has a black rectangle for video element instead of white one.
-webkit.org/b/131476 media/track/w3c/track/webvtt [ Skip ]
-
-webkit.org/b/67716 media/media-controls-invalid-url.html [ Failure ]
-
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_codecs_order_2.html [ Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_codecs_order_3.html [ Failure ]
-webkit.org/b/75184 media/W3C/audio/canPlayType/canPlayType_supported_but_no_codecs_parameter_1.html [ Pass Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_supported_but_no_codecs_parameter_2.html [ Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_two_implies_one_3.html [ Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_two_implies_one_4.html [ Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_two_implies_one_5.html [ Failure ]
-webkit.org/b/75184 media/W3C/video/canPlayType/canPlayType_two_implies_one_6.html [ Failure ]
-
-webkit.org/b/130234 [ Mavericks ] http/tests/media/media-play-stream-chunked-icy.html [ Skip ]
-
-media/media-document-audio-repaint.html [ Failure ]
-webkit.org/b/84357 media/audio-repaint.html [ Failure ]
-
-webkit.org/b/121992 media/media-volume-slider-rendered-below.html [ Failure ]
-webkit.org/b/121992 media/media-volume-slider-rendered-normal.html [ Timeout Failure ]
-webkit.org/b/121995 media/video-controls-captions-trackmenu-hide-on-click-outside.html [ Timeout Failure ]
-webkit.org/b/121995 media/video-controls-captions-trackmenu-hide-on-click.html [ Timeout Failure ]
-webkit.org/b/121995 media/video-controls-captions-trackmenu-includes-enabled-track.html [ Timeout Failure ]
-
-# REGRESSION(r156546): 6 media tests broken (122021)
-webkit.org/b/122021 media/track/track-cue-mutable-text.html [ Pass Failure ]
-webkit.org/b/122021 media/track/track-cue-rendering-mode-changed.html [ Timeout ]
-webkit.org/b/122021 media/track/track-in-band-mode.html [ Failure ]
-webkit.org/b/122021 media/video-controls-captions-trackmenu.html [ Timeout ]
-webkit.org/b/122021 media/video-controls-fullscreen-volume.html [ Failure ]
-webkit.org/b/116266 media/video-controls-toggling.html [ Timeout ]
-
-webkit.org/b/139708 http/tests/media/video-buffered-range-contains-currentTime.html [ Pass Timeout ]
-# --- End media tests ---
-
-webkit.org/b/136994 http/tests/media/hls/video-cookie.html [ Failure ]
-
-# Some inspector tests failing after r173992
-webkit.org/b/137157 [ Release ] inspector/page/main-frame-resource.html [ Pass Failure ]
-[ Debug ] inspector/page/main-frame-resource.html [ Pass Failure Slow ]
-
-webkit.org/b/137505 media/track/track-forced-subtitles-in-band.html [ Failure Pass Timeout ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/15971968&gt;)
-[ Yosemite+ ] platform/mac/accessibility/misspelled-attributed-string.html [ Pass Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/16040720&gt;)
-[ Yosemite+ ] canvas/philip/tests/2d.drawImage.animated.poster.html [ Pass Failure ]
-[ Yosemite+ ] fast/canvas/canvas-scale-strokePath-shadow.html [ Pass Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/16187249&gt;)
-[ Yosemite ] transitions/transition-end-event-destroy-iframe.html [ Skip ]
-[ Yosemite ] media/video-controls-in-media-document.html [ Skip ]
-[ Yosemite ] media/video-document-types.html [ Skip ]
-[ Yosemite ] fast/events/media-focus-in-standalone-media-document.html [ Skip ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/16663912&gt;)
-# Seems like this should happen everywhere, but it only does on Yosemite.
-[ Yosemite+ ] http/tests/navigation/post-frames-goback1.html [ Pass Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/16664245&gt;)
-# We should land updated results if we can't get this bug fixed in time.
-[ Yosemite+ ] http/tests/xmlhttprequest/cache-override.html [ Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/16802068&gt;)
-[ Yosemite+ ] fast/css/input-search-padding.html [ Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/17458211&gt;)
-[ Yosemite+ ] platform/mac/fast/text/systemFont.html [ Pass Failure ]
-[ Mavericks ] platform/mac/fast/text/systemFont.html [ Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/17476688&gt;)
-[ Yosemite+ ] media/media-source/media-source-tracks.html [ Skip ]
-
-# Passing Media Source tests
-[ Yosemite+ ] http/tests/media/media-source/ [ Skip ]
-[ Yosemite+ ] http/tests/media/media-source/SourceBuffer-abort-readyState.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/SourceBuffer-abort-removed.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/SourceBuffer-abort-updating.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/SourceBuffer-abort.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-addsourcebuffer.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-append-buffer.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-closed.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-endofstream-invaliderror.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-is-type-supported.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-multiple-attach.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-play.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-remove.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-sourcebufferlist.html [ Pass ]
-[ Yosemite+ ] http/tests/media/media-source/mediasource-sourcebuffer-mode.html [ Pass ]
-
-# These two tests have &quot;Error: InvalidStateError: DOM Exception 11&quot; in output.
-[ Yosemite+ ] media/media-source/media-source-duplicate-seeked.html [ Failure ]
-[ Yosemite+ ] media/media-source/media-source-play.html [ Failure ]
-
-# This test times out.
-[ Yosemite+ ] media/media-source/media-source-seek-complete.html [ Timeout ]
-
-# These tests used to only fail with WK2, but on Yosemite, they also fail with WK1.
-webkit.org/b/132766 [ Yosemite ] fast/hidpi/filters-blur.html [ Pass ImageOnlyFailure ]
-webkit.org/b/132766 [ Yosemite ] fast/hidpi/filters-hue-rotate.html [ Pass ImageOnlyFailure ]
-webkit.org/b/132766 [ Yosemite ] fast/hidpi/filters-invert.html [ Pass ImageOnlyFailure ]
-webkit.org/b/132766 [ Yosemite ] fast/hidpi/filters-multiple.html [ Pass ImageOnlyFailure ]
-webkit.org/b/132766 [ Yosemite ] fast/hidpi/filters-reference.html [ Pass ImageOnlyFailure ]
-
-# FIXME: Needs bugzilla
-platform/mac/editing/input/undo-grouping-on-text-insertion.html [ Skip ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/17890720&gt;)
-[ Yosemite+ ] fast/dom/Geolocation/requestQueuingForHiddenPage.html [ Skip ]
-
-# This test fails in compositing mode, so pre-Yosemite failures are WK2 only, and now it fails on WK1 too.
-webkit.org/b/136109 [ Yosemite+ ] fast/multicol/mixed-opacity-fixed-test.html  [ ImageOnlyFailure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/18232228&gt;)
-[ Yosemite ] fast/canvas/image-potential-subsample.html [ Pass Failure ]
-[ Yosemite ] fast/canvas/webgl/tex-image-and-sub-image-2d-with-potentially-subsampled-image.html [ Pass Failure ]
-
-# FIXME: Needs bugzilla (&lt;rdar://problem/18273139&gt;)
-[ Yosemite+ ] storage/websql/sql-error-codes.html [ Failure ]
-
-# Also, these tests are flaky in Debug/Release builds, &lt;https://bugs.webkit.org/show_bug.cgi?id=138636&gt;
-# and &lt;https://bugs.webkit.org/show_bug.cgi?id=129817&gt;.
-[ Yosemite+ ] inspector/css/matched-style-properties.html [ Pass Timeout ]
-[ Yosemite+ ] inspector/css/pseudo-element-matches.html [ Pass Timeout ]
-[ Yosemite+ ] inspector/css/selector-specificity.html [ Pass Timeout Crash ]
-[ Yosemite+ ] inspector/dom/content-flow-content-removal.html [ Skip ]
-[ Yosemite+ ] inspector/dom/content-flow-list.html [ Skip ]
-[ Yosemite+ ] inspector/model/parse-script-syntax-tree.html [ Pass Timeout ]
-[ Yosemite+ ] inspector/test-harness-trivially-works.html [ Skip ]
-
-# Specific to Yosemite's font fallback
-webkit.org/b/138328 [ Mavericks ] platform/mac/fast/text/font-cursive-italic-cjk.html [ Skip ]
-
-webkit.org/b/82980 http/tests/navigation/back-twice-without-commit.html [ Timeout ]
-
-# Verified passing, so override generic skip
-webkit.org/b/89235 css3/line-break [ Pass ]
-webkit.org/b/138115 css3/line-break/line-break-auto-hyphens.html [ ImageOnlyFailure ]
-webkit.org/b/138115 css3/line-break/line-break-auto-sound-marks.html [ ImageOnlyFailure ]
-
-# Backdrop filters are supported in Yosemite and above only.
-[ Mavericks ] css3/filters/backdrop [ WontFix ]
-
-webkit.org/b/137589 compositing/hidpi-compositing-vs-non-compositing-check-on-testing-framework.html [ Pass ImageOnlyFailure ]
-
-# These tests fail on machines with AMD (ATI) graphics cards - that is, on EWS and locally.
-webkit.org/b/93560 fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html [ Pass Failure ]
-webkit.org/b/93560 fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565.html [ Pass Failure ]
-webkit.org/b/93560 fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444.html [ Pass Failure ]
-webkit.org/b/93560 fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551.html [ Pass Failure ]
-webkit.org/b/93560 fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data.html [ Pass Failure ]
-
-# These seem to be like the above, but they fail locally on Yosemite with AMD graphics (Mac Pro Late 2013).
-fast/canvas/canvas-draw-canvas-on-canvas-shadow.html [ Pass Failure ]
-fast/canvas/canvas-fillRect-gradient-shadow.html [ Pass Failure ]
-
-# SVG gradients are not bit-for-bit equivalent through a scale.
-webkit.org/b/142192 svg/transforms/transformed-text-fill-gradient.html [ ImageOnlyFailure ]
-
-# Word-spacing is incorrectly applied
-webkit.org/b/142086 fast/css/word-spacing-between-blocks.html [ ImageOnlyFailure ]
-webkit.org/b/142086 fast/css/word-spacing-between-inlines.html [ ImageOnlyFailure ]
-webkit.org/b/142086 fast/css/word-spacing-characters.html [ ImageOnlyFailure ]
-webkit.org/b/142086 fast/text/word-space-between-inlines.html [ ImageOnlyFailure ]
-
-# Underlines' starting and ending positions need to be pixel-snapped
-webkit.org/b/142087 fast/css3-text/css3-text-decoration/no-gap-between-two-rounded-textboxes.html [ ImageOnlyFailure ]
-webkit.org/b/142087 fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-inherit.html [ ImageOnlyFailure ]
-
-# Tests that fail with the SVG -&gt; OTF font converter, but are lower priority than live-on
-webkit.org/b/140588 svg/W3C-SVG-1.1/fonts-desc-02-t.svg [ Failure ]
-webkit.org/b/137096 svg/W3C-SVG-1.1/text-altglyph-01-b.svg [ Failure ]
-webkit.org/b/137096 svg/custom/altglyph.svg [ Failure ]
-webkit.org/b/140590 svg/custom/svg-fonts-in-text-controls.html [ Failure ]
-webkit.org/b/137096 svg/text/text-altglyph-01-b.svg [ Failure ]
-webkit.org/b/137096 svg/text/alt-glyph-for-surrogate-pair.svg [ ImageOnlyFailure ]
-webkit.org/b/140589 svg/W3C-SVG-1.1/text-text-06-t.svg [ Failure ]
-webkit.org/b/140589 svg/text/text-text-06-t.svg [ Failure ]
-webkit.org/b/137098 svg/text/text-hkern.svg [ Failure ]
-webkit.org/b/137100 svg/text/text-vkern.svg [ Failure ]
-
-# Sometimes has an extra space at the end
-fast/forms/focus-selection-textarea.html [ Pass Failure ]
-
-# webkit.org/b/141252 [ Release Yosemite+ ] inspector/css/selector-dynamic-specificity.html [ Slow ]
-# webkit.org/b/141252 [ Debug Yosemite+ ] inspector/css/selector-dynamic-specificity.html [ Pass Timeout ]
-webkit.org/b/141118 inspector/css/selector-dynamic-specificity.html [ Skip ]
-
-webkit.org/b/141601 inspector/css/stylesheet-with-mutations.html [ Skip ]
-
-webkit.org/b/141534 [ Yosemite ] media/video-load-networkState.html [ Pass Crash ]
-
-webkit.org/b/142726 [ Yosemite+ ] fast/images/animated-png.html [ ImageOnlyFailure ]
-
-# Skip media control tests until new controls are finalized
-webkit.org/b/142142 media/video-no-audio.html [ Skip ]
-webkit.org/b/142142 media/controls-strict.html [ Skip ]
-webkit.org/b/142142 media/video-volume-slider.html [ Skip ]
-webkit.org/b/142142 media/controls-styling.html [ Skip ]
-webkit.org/b/142142 media/video-display-toggle.html [ Skip ]
-webkit.org/b/142142 media/audio-controls-rendering.html [ Skip ]
-webkit.org/b/142142 media/video-zoom-controls.html [ Skip ]
-webkit.org/b/142142 fast/hidpi/video-controls-in-hidpi.html [ Skip ]
-webkit.org/b/142142 media/video-controls-rendering.html [ Skip ]
-webkit.org/b/142142 accessibility/media-element.html [ Skip ]
-webkit.org/b/142142 media/controls-without-preload.html [ Skip ]
-webkit.org/b/142142 media/media-controls-clone.html [ Skip ]
-webkit.org/b/142142 fast/layers/video-layer.html [ Skip ]
-webkit.org/b/142142 media/video-empty-source.html [ Skip ]
-webkit.org/b/142142 media/audio-delete-while-slider-thumb-clicked.html [ Skip ]
-webkit.org/b/142142 media/controls-after-reload.html [ Skip ]
-webkit.org/b/142142 media/nodesFromRect-shadowContent.html [ Skip ]
-webkit.org/b/142142 media/video-initially-hidden-volume-slider-up.html [ Skip ]
-webkit.org/b/142142 fullscreen/video-controls-override.html [ Skip ]
-webkit.org/b/142142 http/tests/media/hls/video-controls-live-stream.html [ Skip ]
-webkit.org/b/142142 media/video-volume-slider-drag.html [ Skip ]
-
-# Test uses Yosemite blurs
-[ Mavericks ] compositing/media-controls-bar-appearance.html [ Skip ]
-
-# Mavericks and prior do not support APNG.
-webkit.org/b/17022 [ MountainLion Mavericks ] fast/images/animated-png.html [ Skip ]
-
-# OS X 10.10.3+ has the necessary glyphs.
-webkit.org/b/142548 [ Yosemite+ ] editing/selection/extend-by-character-007.html [ Pass ]
-
-media/accessiblity-describes-video.html [ Pass Failure ]
-
-webkit.org/b/145432 media/video-transformed-by-javascript.html [ Failure ]
-
-# &lt;rdar://problem/19588632&gt;
-[ ElCapitan+ ] http/tests/media/track-in-band-hls-metadata.html [ Timeout ]
-
-# &lt;rdar://problem/19893462&gt;
-[ ElCapitan+ ] sputnik/Unicode/Unicode_510/S7.6_A3.1.html [ Failure ]
-[ ElCapitan+ ] sputnik/Unicode/Unicode_510/S7.6_A3.2.html [ Failure ]
-[ ElCapitan+ ] sputnik/Unicode/Unicode_510/S7.6_A5.3_T1.html [ Failure ]
-[ ElCapitan+ ] sputnik/Unicode/Unicode_510/S7.6_A5.3_T2.html [ Failure ]
-
-# &lt;rdar://problem/20417352&gt;
-[ ElCapitan+ ] accessibility/deleting-iframe-destroys-axcache.html [ Pass Failure ]
-
-# &lt;rdar://problem/20622665&gt; WebKit media doesn't get a canplay event when load stalls
-[ ElCapitan+ ] http/tests/media/video-play-stall.html [ Failure ]
-
-# &lt;rdar://problem/21263363&gt;
-http/tests/media/remove-while-loading.html [ Skip ]
-http/tests/media/video-accept-encoding.html [ Failure ]
-http/tests/media/video-cancel-load.html [ Skip ]
-http/tests/media/video-served-as-text.html [ Failure ]
-http/tests/media/video-throttled-load-metadata.html [ Failure ]
-http/tests/security/contentSecurityPolicy/media-src-allowed.html [ Skip ]
-
-[ Yosemite ] fast/canvas/webgl/oes-texture-half-float-linear.html [ Pass Failure ]
-
-# &lt;rdar://problem/21857102&gt;
-[ ElCapitan+ ] fast/canvas/canvas-too-large-to-draw.html [ Crash ]
-
-# These features have been disabled on the branch.
-
-# ENABLE_ATTACHMENT_ELEMENT
-editing/pasteboard/copy-paste-attachment.html [ Skip ]
-editing/pasteboard/drag-and-drop-attachment-contenteditable.html [ Skip ]
-editing/pasteboard/drag-files-to-editable-element.html [ Skip ]
-fast/attachment [ Skip ]
-
-# ENABLE_CSS_ANIMATIONS_LEVEL_2
-animations/trigger-computed-style.html [ Skip ]
-animations/trigger-container-scroll-boundaries.html [ Skip ]
-animations/trigger-container-scroll-empty.html [ Skip ]
-animations/trigger-container-scroll-simple.html [ Skip ]
-animations/trigger-parsing.html [ Skip ]
-
-# ENABLE_CSS_GRID_LAYOUT
-fast/css-grid-layout [ Skip ]
-ietestcenter/css3/grid [ Skip ]
-fast/events/key-events-in-editable-gridbox.html [ Skip ]
-
-# ENABLE_INPUT_TYPE_COLOR
-accessibility/color-well.html [ Skip ]
-fast/forms/color [ Skip ]
-
-# No support for Filters Level 2
-[ Mavericks ] fast/css/will-change/will-change-creates-stacking-context-inline.html [ ImageOnlyFailure ]
-
-# ENABLE_WILL_REVEAL_EDGE_EVENTS
-fast/events/will-reveal-edge-on-div.html [ Skip ]
-fast/events/will-reveal-edges-body-attributes.html [ Skip ]
-fast/events/will-reveal-edges-event-listeners.html [ Skip ]
-fast/events/will-reveal-edges-window-attributes.html [ Skip ]
-
-# ENABLE_NAVIGATOR_HWCONCURRENCY
-fast/dom/navigator-hardwareConcurrency.html [ Skip ]
-
-# ENABLE_INDIE_UI
-indieui [ Skip ]
-
-# ENABLE_STREAMS_API
-streams [ Skip ]
-
-# ENABLE_CSS_SELECTORS_LEVEL4
-fast/css/descendant-combinator-doubled-child-syntax-styling.html [ ImageOnlyFailure ]
-fast/css/currentColor-value-style-update.html [ Skip ]
-
-# &lt;rdar://problem/21964590&gt; Hits ASSERT_NOT_REACHED in RenderFlexibleBox::alignChildren,
-# possibly due to GRID_LAYOUT being disabled.
-[ Debug ] css3/parse-align-self.html [ Skip ]
-
-# rdar://problem/22014672
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.fill.destination-atop.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.fill.destination-in.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.fill.source-in.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.fill.source-out.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.pattern.destination-atop.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.pattern.destination-in.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.pattern.source-in.html [ Pass Failure ]
-[ ElCapitan+ ] imported/w3c/canvas/2d.composite.uncovered.pattern.source-out.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.pattern.destination-in.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.pattern.source-out.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.fill.destination-in.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.pattern.source-in.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.fill.source-out.html [ Pass Failure ]
-[ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.fill.source-in.html [ Pass Failure ]
-
-# This test relies on iOS-specific font fallback.
-[ Mavericks Yosemite ElCapitan ] fast/text/arabic-glyph-cache-fill-combine.html [ ImageOnlyFailure ]
</del></span></pre></div>
<a id="branchessafari601146branchLayoutTestsplatformmacTestExpectationsrej"></a>
<div class="delfile"><h4>Deleted: branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.rej (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.rej        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/LayoutTests/platform/mac/TestExpectations.rej        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-***************
-*** 1365,1367 ****
-  
-  # Started to fail after r188390
-  webkit.org/b/148042 http/tests/media/video-buffered-range-contains-currentTime.html [ Pass Failure ]
---- 1365,1374 ----
-  
-  # Started to fail after r188390
-  webkit.org/b/148042 http/tests/media/video-buffered-range-contains-currentTime.html [ Pass Failure ]
-+ 
-+ # Temporarily disable font-features tests unil synthesis for font-variant-caps is implemented. 
-+ webkit.org/b/149774 css3/font-feature-settings-font-face-rendering.html [ Pass Failure ImageOnlyFailure ] 
-+ webkit.org/b/149774 css3/font-feature-settings-rendering.html [ Pass Failure ImageOnlyFailure ] 
-+ webkit.org/b/149774 css3/font-variant-all.html [ Pass Failure ImageOnlyFailure ] 
-+ webkit.org/b/149774 css3/font-variant-font-face-all.html [ Pass Failure ImageOnlyFailure ] 
-+ webkit.org/b/149774 css3/font-variant-font-face-override.html [ Pass Failure ImageOnlyFailure ] 
</del></span></pre></div>
<a id="branchessafari601146branchLayoutTestsplatformmacfastwritingmodebrokenideographsmallcapsexpectedtxt"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/LayoutTests/platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -13,8 +13,8 @@
</span><span class="cx">               text run at (21,1) width 176: &quot;\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} Paragraph 2&quot;
</span><span class="cx">         RenderBlock {DIV} at (278,1) size 277x275 [bgcolor=#FFFFEE]
</span><span class="cx">           RenderBlock {P} at (14,28) size 63x219 [bgcolor=#FFAAAA] [border: none (20px solid #FF8888) none (20px solid #FF8888)]
</span><del>-            RenderText {#text} at (21,1) size 20x175
-              text run at (21,1) width 175: &quot;\x{7B2C}\x{4E00}\x{6BB5}\x{843D} Paragraph 1&quot;
</del><ins>+            RenderText {#text} at (21,1) size 20x156
+              text run at (21,1) width 156: &quot;\x{7B2C}\x{4E00}\x{6BB5}\x{843D} Paragraph 1&quot;
</ins><span class="cx">           RenderBlock {P} at (90,28) size 63x219 [bgcolor=#FFAAAA] [border: none (20px solid #FF8888) none (20px solid #FF8888)]
</span><del>-            RenderText {#text} at (21,1) size 20x181
-              text run at (21,1) width 181: &quot;\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} Paragraph 2&quot;
</del><ins>+            RenderText {#text} at (21,1) size 20x162
+              text run at (21,1) width 162: &quot;\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} Paragraph 2&quot;
</ins></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/ChangeLog (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/ChangeLog        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/ChangeLog        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -1,3 +1,64 @@
</span><ins>+2015-12-17  Matthew Hanson  &lt;matthew_hanson@apple.com&gt;
+
+        Merge r193894. rdar://problem/23769696
+
+    2015-12-10  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+            font-variant-caps does not work if the font does not support font features
+            https://bugs.webkit.org/show_bug.cgi?id=149774
+
+            Reviewed by Antti Koivisto.
+
+            This test implements synthesis for small-caps and all-small-caps. It does so by
+            moving font variant selection into a higher level (ComplexTextController).
+            In general, the approach is to use the pure font feature until we encounter
+            a character which needs to be uppercased, and which the font feature does not
+            support uppercasing. In this situation, we try again with synthesis. In this
+            case, synthesis means artificially uppercasing letters and rendering them with
+            a smaller font.
+
+            We require system support to know which glyphs a particular font feature supports.
+            Therefore, on operating systems which do not include this support, we will simply
+            say that the font feature does not support any glyphs.
+
+            Test: css3/font-variant-small-caps-synthesis.html
+                  css3/font-variant-petite-caps-synthesis.html
+
+            * platform/graphics/Font.cpp:
+            (WebCore::Font::noSmallCapsFont): Return the same font, but without smcp or c2sc.
+            This function utilizes a cache.
+            * platform/graphics/Font.h:
+            (WebCore::Font::variantFont): Small caps should never go through this function
+            anymore.
+            * platform/graphics/FontCascade.h: Because we're moving variant selection into
+            a higher level, we remove the FontVariant argument from the lower-level call.
+            * platform/graphics/FontCascadeFonts.cpp:
+            (WebCore::FontCascadeFonts::glyphDataForVariant): Use early-return style.
+            (WebCore::FontCascadeFonts::glyphDataForNormalVariant): Ditto.
+            * platform/graphics/cocoa/FontCascadeCocoa.mm:
+            (WebCore::FontCascade::fontForCombiningCharacterSequence): Because we're moving
+            variant selection into a higher level, we remove the FontVariant argument from
+            the lower-level call.
+            * platform/graphics/cocoa/FontCocoa.mm:
+            (WebCore::Font::smallCapsSupportsCharacter):
+            (WebCore::Font::allSmallCapsSupportsCharacter):
+            (WebCore::smallCapsOpenTypeDictionary): Helper function for
+            smallCapsSupportsCharacter().
+            (WebCore::smallCapsTrueTypeDictionary): Ditto.
+            (WebCore::unionBitVectors):
+            (WebCore::Font::glyphsSupportedBySmallCaps): Compute a bit vector of supported
+            glyphs.
+            (WebCore::Font::glyphsSupportedByAllSmallCaps): Ditto.
+            (WebCore::createDerivativeFont): Moving common code into its own helper function.
+            (WebCore::Font::createFontWithoutSmallCaps):
+            (WebCore::Font::platformCreateScaledFont): Use the common code.
+            * platform/graphics/mac/ComplexTextController.cpp:
+            (WebCore::capitalized): What is the capitalized form of a character?
+            (WebCore::ComplexTextController::collectComplexTextRuns): Implement the core
+            logic of this patch. This includes the retry when we encounter a character which
+            is not supported by the font feature.
+            * platform/spi/cocoa/CoreTextSPI.h:
+
</ins><span class="cx"> 2015-12-17  Babak Shafiei  &lt;bshafiei@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge r194209.
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicsFontcpp"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.cpp (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.cpp        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.cpp        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -307,6 +307,18 @@
</span><span class="cx">     return m_derivedFontData-&gt;smallCaps;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#if PLATFORM(COCOA)
+const Font&amp; Font::noSynthesizableFeaturesFont() const
+{
+    if (!m_derivedFontData)
+        m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
+    if (!m_derivedFontData-&gt;noSynthesizableFeatures)
+        m_derivedFontData-&gt;noSynthesizableFeatures = createFontWithoutSynthesizableFeatures();
+    ASSERT(m_derivedFontData-&gt;noSynthesizableFeatures != this);
+    return *m_derivedFontData-&gt;noSynthesizableFeatures;
+}
+#endif
+
</ins><span class="cx"> PassRefPtr&lt;Font&gt; Font::emphasisMarkFont(const FontDescription&amp; fontDescription) const
</span><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicsFonth"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.h (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.h        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/Font.h        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -35,6 +35,8 @@
</span><span class="cx"> #if ENABLE(OPENTYPE_VERTICAL)
</span><span class="cx"> #include &quot;OpenTypeVerticalData.h&quot;
</span><span class="cx"> #endif
</span><ins>+#include &lt;wtf/BitVector.h&gt;
+#include &lt;wtf/Optional.h&gt;
</ins><span class="cx"> #include &lt;wtf/TypeCasts.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -104,9 +106,13 @@
</span><span class="cx">     PassRefPtr&lt;Font&gt; emphasisMarkFont(const FontDescription&amp;) const;
</span><span class="cx">     PassRefPtr&lt;Font&gt; brokenIdeographFont() const;
</span><span class="cx">     PassRefPtr&lt;Font&gt; nonSyntheticItalicFont() const;
</span><ins>+    const Font&amp; noSynthesizableFeaturesFont() const;
</ins><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;Font&gt; variantFont(const FontDescription&amp; description, FontVariant variant) const
</span><span class="cx">     {
</span><ins>+#if PLATFORM(COCOA)
+        ASSERT(variant != SmallCapsVariant);
+#endif
</ins><span class="cx">         switch (variant) {
</span><span class="cx">         case SmallCapsVariant:
</span><span class="cx">             return smallCapsFont(description);
</span><span class="lines">@@ -122,6 +128,8 @@
</span><span class="cx">         return const_cast&lt;Font*&gt;(this);
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    bool variantCapsSupportsCharacterForSynthesis(FontVariantCaps, UChar32) const;
+
</ins><span class="cx">     PassRefPtr&lt;Font&gt; verticalRightOrientationFont() const;
</span><span class="cx">     PassRefPtr&lt;Font&gt; uprightOrientationFont() const;
</span><span class="cx"> 
</span><span class="lines">@@ -194,7 +202,12 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     CFDictionaryRef getCFStringAttributes(bool enableKerning, FontOrientation) const;
</span><ins>+
</ins><span class="cx">     bool hasCustomTracking() const { return isSystemFont(); }
</span><ins>+    const BitVector&amp; glyphsSupportedBySmallCaps() const;
+    const BitVector&amp; glyphsSupportedByAllSmallCaps() const;
+    const BitVector&amp; glyphsSupportedByPetiteCaps() const;
+    const BitVector&amp; glyphsSupportedByAllPetiteCaps() const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) || USE(HARFBUZZ)
</span><span class="lines">@@ -229,6 +242,7 @@
</span><span class="cx"> 
</span><span class="cx">     void initCharWidths();
</span><span class="cx"> 
</span><ins>+    RefPtr&lt;Font&gt; createFontWithoutSynthesizableFeatures() const;
</ins><span class="cx">     PassRefPtr&lt;Font&gt; createScaledFont(const FontDescription&amp;, float scaleFactor) const;
</span><span class="cx">     PassRefPtr&lt;Font&gt; platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const;
</span><span class="cx"> 
</span><span class="lines">@@ -274,6 +288,7 @@
</span><span class="cx"> 
</span><span class="cx">         bool forCustomFont;
</span><span class="cx">         RefPtr&lt;Font&gt; smallCaps;
</span><ins>+        RefPtr&lt;Font&gt; noSynthesizableFeatures;
</ins><span class="cx">         RefPtr&lt;Font&gt; emphasisMark;
</span><span class="cx">         RefPtr&lt;Font&gt; brokenIdeograph;
</span><span class="cx">         RefPtr&lt;Font&gt; verticalRightOrientation;
</span><span class="lines">@@ -292,6 +307,10 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     mutable HashMap&lt;unsigned, RetainPtr&lt;CFDictionaryRef&gt;&gt; m_CFStringAttributes;
</span><ins>+    mutable Optional&lt;BitVector&gt; m_glyphsSupportedBySmallCaps;
+    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByAllSmallCaps;
+    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByPetiteCaps;
+    mutable Optional&lt;BitVector&gt; m_glyphsSupportedByAllPetiteCaps;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) || USE(HARFBUZZ)
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicsFontCascadeh"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascade.h (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascade.h        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascade.h        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx">     GlyphData glyphDataForCharacter(UChar32, bool mirror, FontVariant = AutoVariant) const;
</span><span class="cx">     
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    const Font* fontForCombiningCharacterSequence(const UChar*, size_t length, FontVariant) const;
</del><ins>+    const Font* fontForCombiningCharacterSequence(const UChar*, size_t length) const;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     static bool isCJKIdeograph(UChar32);
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicsFontCascadeFontscpp"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascadeFonts.cpp (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascadeFonts.cpp        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/FontCascadeFonts.cpp        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -296,15 +296,15 @@
</span><span class="cx">         if (fontRanges.isNull())
</span><span class="cx">             break;
</span><span class="cx">         GlyphData data = fontRanges.glyphDataForCharacter(c);
</span><del>-        if (data.font) {
-            // The variantFont function should not normally return 0.
-            // But if it does, we will just render the capital letter big.
-            RefPtr&lt;Font&gt; variantFont = data.font-&gt;variantFont(description, variant);
-            if (!variantFont)
-                return data;
</del><ins>+        if (!data.font)
+            continue;
+        // The variantFont function should not normally return 0.
+        // But if it does, we will just render the capital letter big.
+        RefPtr&lt;Font&gt; variantFont = data.font-&gt;variantFont(description, variant);
+        if (!variantFont)
+            return data;
</ins><span class="cx"> 
</span><del>-            return variantFont-&gt;glyphDataForCharacter(c);
-        }
</del><ins>+        return variantFont-&gt;glyphDataForCharacter(c);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return glyphDataForSystemFallback(c, description, variant);
</span><span class="lines">@@ -317,23 +317,23 @@
</span><span class="cx">         if (fontRanges.isNull())
</span><span class="cx">             break;
</span><span class="cx">         GlyphData data = fontRanges.glyphDataForCharacter(c);
</span><del>-        if (data.font) {
-            if (data.font-&gt;platformData().orientation() == Vertical &amp;&amp; !data.font-&gt;isTextOrientationFallback()) {
-                if (!FontCascade::isCJKIdeographOrSymbol(c))
-                    return glyphDataForNonCJKCharacterWithGlyphOrientation(c, description.nonCJKGlyphOrientation(), data);
</del><ins>+        if (!data.font)
+            continue;
+        if (data.font-&gt;platformData().orientation() == Vertical &amp;&amp; !data.font-&gt;isTextOrientationFallback()) {
+            if (!FontCascade::isCJKIdeographOrSymbol(c))
+                return glyphDataForNonCJKCharacterWithGlyphOrientation(c, description.nonCJKGlyphOrientation(), data);
</ins><span class="cx"> 
</span><del>-                if (!data.font-&gt;hasVerticalGlyphs()) {
-                    // Use the broken ideograph font data. The broken ideograph font will use the horizontal width of glyphs
-                    // to make sure you get a square (even for broken glyphs like symbols used for punctuation).
-                    return glyphDataForVariant(c, description, BrokenIdeographVariant, fallbackIndex);
-                }
</del><ins>+            if (!data.font-&gt;hasVerticalGlyphs()) {
+                // Use the broken ideograph font data. The broken ideograph font will use the horizontal width of glyphs
+                // to make sure you get a square (even for broken glyphs like symbols used for punctuation).
+                return glyphDataForVariant(c, description, BrokenIdeographVariant, fallbackIndex);
+            }
</ins><span class="cx"> #if PLATFORM(COCOA) || USE(CAIRO)
</span><del>-                if (data.font-&gt;platformData().syntheticOblique())
-                    return glyphDataForCJKCharacterWithoutSyntheticItalic(c, data);
</del><ins>+            if (data.font-&gt;platformData().syntheticOblique())
+                return glyphDataForCJKCharacterWithoutSyntheticItalic(c, data);
</ins><span class="cx"> #endif
</span><del>-            }
-            return data;
</del><span class="cx">         }
</span><ins>+        return data;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return glyphDataForSystemFallback(c, description, NormalVariant);
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -756,13 +756,13 @@
</span><span class="cx">     return controller.offsetForPosition(x, includePartialGlyphs);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length, FontVariant variant) const
</del><ins>+const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const
</ins><span class="cx"> {
</span><span class="cx">     UChar32 baseCharacter;
</span><span class="cx">     size_t baseCharacterLength = 0;
</span><span class="cx">     U16_NEXT(characters, baseCharacterLength, length, baseCharacter);
</span><span class="cx"> 
</span><del>-    GlyphData baseCharacterGlyphData = glyphDataForCharacter(baseCharacter, false, variant);
</del><ins>+    GlyphData baseCharacterGlyphData = glyphDataForCharacter(baseCharacter, false, NormalVariant);
</ins><span class="cx"> 
</span><span class="cx">     if (!baseCharacterGlyphData.glyph)
</span><span class="cx">         return 0;
</span><span class="lines">@@ -780,26 +780,20 @@
</span><span class="cx">         if (baseCharacter &gt;= 0x0600 &amp;&amp; baseCharacter &lt;= 0x06ff &amp;&amp; font-&gt;shouldNotBeUsedForArabic())
</span><span class="cx">             continue;
</span><span class="cx"> #endif
</span><del>-        if (variant == NormalVariant) {
-            if (font-&gt;platformData().orientation() == Vertical) {
-                if (isCJKIdeographOrSymbol(baseCharacter) &amp;&amp; !font-&gt;hasVerticalGlyphs()) {
-                    variant = BrokenIdeographVariant;
-                    font = font-&gt;brokenIdeographFont().get();
-                } else if (m_fontDescription.nonCJKGlyphOrientation() == NonCJKGlyphOrientationVerticalRight) {
-                    Font* verticalRightFont = font-&gt;verticalRightOrientationFont().get();
-                    Glyph verticalRightGlyph = verticalRightFont-&gt;glyphForCharacter(baseCharacter);
-                    if (verticalRightGlyph == baseCharacterGlyphData.glyph)
-                        font = verticalRightFont;
-                } else {
-                    Font* uprightFont = font-&gt;uprightOrientationFont().get();
-                    Glyph uprightGlyph = uprightFont-&gt;glyphForCharacter(baseCharacter);
-                    if (uprightGlyph != baseCharacterGlyphData.glyph)
-                        font = uprightFont;
-                }
</del><ins>+        if (font-&gt;platformData().orientation() == Vertical) {
+            if (isCJKIdeographOrSymbol(baseCharacter) &amp;&amp; !font-&gt;hasVerticalGlyphs())
+                font = font-&gt;brokenIdeographFont().get();
+            else if (m_fontDescription.nonCJKGlyphOrientation() == NonCJKGlyphOrientationVerticalRight) {
+                Font* verticalRightFont = font-&gt;verticalRightOrientationFont().get();
+                Glyph verticalRightGlyph = verticalRightFont-&gt;glyphForCharacter(baseCharacter);
+                if (verticalRightGlyph == baseCharacterGlyphData.glyph)
+                    font = verticalRightFont;
+            } else {
+                Font* uprightFont = font-&gt;uprightOrientationFont().get();
+                Glyph uprightGlyph = uprightFont-&gt;glyphForCharacter(baseCharacter);
+                if (uprightGlyph != baseCharacterGlyphData.glyph)
+                    font = uprightFont;
</ins><span class="cx">             }
</span><del>-        } else {
-            if (const Font* variantFont = font-&gt;variantFont(m_fontDescription, variant).get())
-                font = variantFont;
</del><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (font == baseCharacterGlyphData.font)
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicscocoaFontCocoamm"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> #import &lt;float.h&gt;
</span><span class="cx"> #import &lt;unicode/uchar.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/NeverDestroyed.h&gt;
</ins><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -314,64 +315,271 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const
</del><ins>+bool Font::variantCapsSupportsCharacterForSynthesis(FontVariantCaps fontVariantCaps, UChar32 character) const
</ins><span class="cx"> {
</span><del>-#if !CORETEXT_WEB_FONTS
-    if (isCustomFont()) {
-        FontPlatformData scaledFontData(m_platformData);
-        scaledFontData.m_size = scaledFontData.m_size * scaleFactor;
-        return Font::create(scaledFontData, true, false);
</del><ins>+#if (PLATFORM(IOS) &amp;&amp; TARGET_OS_IOS &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 90300) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100 &amp;&amp; __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101104)
+    Glyph glyph = glyphForCharacter(character);
+    if (!glyph)
+        return false;
+
+    switch (fontVariantCaps) {
+    case FontVariantCaps::Small: {
+        auto&amp; supported = glyphsSupportedBySmallCaps();
+        return supported.size() &gt; glyph &amp;&amp; supported.get(glyph);
</ins><span class="cx">     }
</span><ins>+    case FontVariantCaps::Petite: {
+        auto&amp; supported = glyphsSupportedByPetiteCaps();
+        return supported.size() &gt; glyph &amp;&amp; supported.get(glyph);
+    }
+    case FontVariantCaps::AllSmall: {
+        auto&amp; supported = glyphsSupportedByAllSmallCaps();
+        return supported.size() &gt; glyph &amp;&amp; supported.get(glyph);
+    }
+    case FontVariantCaps::AllPetite: {
+        auto&amp; supported = glyphsSupportedByAllPetiteCaps();
+        return supported.size() &gt; glyph &amp;&amp; supported.get(glyph);
+    }
+    default:
+        // Synthesis only supports the variant-caps values listed above.
+        return true;
+    }
+#else
+    UNUSED_PARAM(character);
+
+    switch (fontVariantCaps) {
+    case FontVariantCaps::Small:
+    case FontVariantCaps::Petite:
+    case FontVariantCaps::AllSmall:
+    case FontVariantCaps::AllPetite:
+        return false;
+    default:
+        // Synthesis only supports the variant-caps values listed above.
+        return true;
+    }
</ins><span class="cx"> #endif
</span><ins>+}
</ins><span class="cx"> 
</span><del>-    float size = m_platformData.size() * scaleFactor;
</del><ins>+#if (PLATFORM(IOS) &amp;&amp; TARGET_OS_IOS &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 90300) || (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101100 &amp;&amp; __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101104)
+static RetainPtr&lt;CFDictionaryRef&gt; smallCapsOpenTypeDictionary(CFStringRef key, int rawValue)
+{
+    RetainPtr&lt;CFNumberRef&gt; value = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawValue));
+    CFTypeRef keys[] = { kCTFontOpenTypeFeatureTag, kCTFontOpenTypeFeatureValue };
+    CFTypeRef values[] = { key, value.get() };
+    return adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
+}
</ins><span class="cx"> 
</span><del>-#if USE(APPKIT)
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
</del><ins>+static RetainPtr&lt;CFDictionaryRef&gt; smallCapsTrueTypeDictionary(int rawKey, int rawValue)
+{
+    CFNumberRef key = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawKey);
+    CFNumberRef value = CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawValue);
+    CFTypeRef keys[] = { kCTFontFeatureTypeIdentifierKey, kCTFontFeatureSelectorIdentifierKey };
+    CFTypeRef values[] = { key, value };
+    return adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
+}
</ins><span class="cx"> 
</span><del>-    FontPlatformData scaledFontData(reinterpret_cast&lt;CTFontRef&gt;([[NSFontManager sharedFontManager] convertFont:m_platformData.nsFont() toSize:size]), size, false, false, m_platformData.orientation());
</del><ins>+static void unionBitVectors(BitVector&amp; result, CFBitVectorRef source)
+{
+    CFIndex length = CFBitVectorGetCount(source);
+    result.ensureSize(length);
+    CFIndex min = 0;
+    while (min &lt; length) {
+        CFIndex nextIndex = CFBitVectorGetFirstIndexOfBit(source, CFRangeMake(min, length - min), 1);
+        if (nextIndex == kCFNotFound)
+            break;
+        result.set(nextIndex, true);
+        min = nextIndex + 1;
+    }
+}
</ins><span class="cx"> 
</span><del>-    if (scaledFontData.font()) {
-        NSFontManager *fontManager = [NSFontManager sharedFontManager];
-        NSFontTraitMask fontTraits = [fontManager traitsOfFont:m_platformData.nsFont()];
</del><ins>+static void injectOpenTypeCoverage(CFStringRef feature, CTFontRef font, BitVector&amp; result)
+{
+    RetainPtr&lt;CFBitVectorRef&gt; source = adoptCF(CTFontCopyGlyphCoverageForFeature(font, smallCapsOpenTypeDictionary(feature, 1).get()));
+    unionBitVectors(result, source.get());
+}
</ins><span class="cx"> 
</span><del>-        if (m_platformData.m_syntheticBold)
-            fontTraits |= NSBoldFontMask;
-        if (m_platformData.m_syntheticOblique)
-            fontTraits |= NSItalicFontMask;
</del><ins>+static void injectTrueTypeCoverage(int type, int selector, CTFontRef font, BitVector&amp; result)
+{
+    RetainPtr&lt;CFBitVectorRef&gt; source = adoptCF(CTFontCopyGlyphCoverageForFeature(font, smallCapsTrueTypeDictionary(type, selector).get()));
+    unionBitVectors(result, source.get());
+}
</ins><span class="cx"> 
</span><del>-        NSFontTraitMask scaledFontTraits = [fontManager traitsOfFont:scaledFontData.nsFont()];
-        scaledFontData.m_syntheticBold = (fontTraits &amp; NSBoldFontMask) &amp;&amp; !(scaledFontTraits &amp; NSBoldFontMask);
-        scaledFontData.m_syntheticOblique = (fontTraits &amp; NSItalicFontMask) &amp;&amp; !(scaledFontTraits &amp; NSItalicFontMask);
</del><ins>+const BitVector&amp; Font::glyphsSupportedBySmallCaps() const
+{
+    if (!m_glyphsSupportedBySmallCaps) {
+        m_glyphsSupportedBySmallCaps = BitVector();
+        injectOpenTypeCoverage(CFSTR(&quot;smcp&quot;), platformData().font(), m_glyphsSupportedBySmallCaps.value());
+        injectTrueTypeCoverage(kLowerCaseType, kLowerCaseSmallCapsSelector, platformData().font(), m_glyphsSupportedBySmallCaps.value());
+    }
+    return m_glyphsSupportedBySmallCaps.value();
+}
</ins><span class="cx"> 
</span><del>-        return Font::create(scaledFontData);
</del><ins>+const BitVector&amp; Font::glyphsSupportedByAllSmallCaps() const
+{
+    if (!m_glyphsSupportedByAllSmallCaps) {
+        m_glyphsSupportedByAllSmallCaps = BitVector();
+        injectOpenTypeCoverage(CFSTR(&quot;smcp&quot;), platformData().font(), m_glyphsSupportedByAllSmallCaps.value());
+        injectOpenTypeCoverage(CFSTR(&quot;c2sc&quot;), platformData().font(), m_glyphsSupportedByAllSmallCaps.value());
+        injectTrueTypeCoverage(kLowerCaseType, kLowerCaseSmallCapsSelector, platformData().font(), m_glyphsSupportedByAllSmallCaps.value());
+        injectTrueTypeCoverage(kUpperCaseType, kUpperCaseSmallCapsSelector, platformData().font(), m_glyphsSupportedByAllSmallCaps.value());
</ins><span class="cx">     }
</span><del>-    END_BLOCK_OBJC_EXCEPTIONS;
</del><ins>+    return m_glyphsSupportedByAllSmallCaps.value();
+}
</ins><span class="cx"> 
</span><del>-    return nullptr;
-#else
-    CTFontSymbolicTraits fontTraits = CTFontGetSymbolicTraits(m_platformData.font());
-    RetainPtr&lt;CTFontDescriptorRef&gt; fontDescriptor = adoptCF(CTFontCopyFontDescriptor(m_platformData.font()));
-    RetainPtr&lt;CTFontRef&gt; scaledFont = adoptCF(CTFontCreateWithFontDescriptor(fontDescriptor.get(), size, nullptr));
-    FontPlatformData scaledFontData(scaledFont.get(), size, false, false, m_platformData.orientation());
</del><ins>+const BitVector&amp; Font::glyphsSupportedByPetiteCaps() const
+{
+    if (!m_glyphsSupportedByPetiteCaps) {
+        m_glyphsSupportedByPetiteCaps = BitVector();
+        injectOpenTypeCoverage(CFSTR(&quot;pcap&quot;), platformData().font(), m_glyphsSupportedByPetiteCaps.value());
+        injectTrueTypeCoverage(kLowerCaseType, kLowerCasePetiteCapsSelector, platformData().font(), m_glyphsSupportedByPetiteCaps.value());
+    }
+    return m_glyphsSupportedByPetiteCaps.value();
+}
</ins><span class="cx"> 
</span><del>-    if (scaledFontData.font()) {
-        if (m_platformData.m_syntheticBold)
-            fontTraits |= kCTFontBoldTrait;
-        if (m_platformData.m_syntheticOblique)
-            fontTraits |= kCTFontItalicTrait;
</del><ins>+const BitVector&amp; Font::glyphsSupportedByAllPetiteCaps() const
+{
+    if (!m_glyphsSupportedByAllPetiteCaps) {
+        m_glyphsSupportedByAllPetiteCaps = BitVector();
+        injectOpenTypeCoverage(CFSTR(&quot;pcap&quot;), platformData().font(), m_glyphsSupportedByAllPetiteCaps.value());
+        injectOpenTypeCoverage(CFSTR(&quot;c2pc&quot;), platformData().font(), m_glyphsSupportedByAllPetiteCaps.value());
+        injectTrueTypeCoverage(kLowerCaseType, kLowerCasePetiteCapsSelector, platformData().font(), m_glyphsSupportedByAllPetiteCaps.value());
+        injectTrueTypeCoverage(kUpperCaseType, kUpperCasePetiteCapsSelector, platformData().font(), m_glyphsSupportedByAllPetiteCaps.value());
+    }
+    return m_glyphsSupportedByAllPetiteCaps.value();
+}
+#endif
</ins><span class="cx"> 
</span><del>-        CTFontSymbolicTraits scaledFontTraits = CTFontGetSymbolicTraits(scaledFontData.font());
-        scaledFontData.m_syntheticBold = (fontTraits &amp; kCTFontBoldTrait) &amp;&amp; !(scaledFontTraits &amp; kCTFontTraitBold);
-        scaledFontData.m_syntheticOblique = (fontTraits &amp; kCTFontItalicTrait) &amp;&amp; !(scaledFontTraits &amp; kCTFontTraitItalic);
</del><ins>+static RefPtr&lt;Font&gt; createDerivativeFont(CTFontRef font, float size, FontOrientation orientation, CTFontSymbolicTraits fontTraits, bool syntheticBold, bool syntheticItalic)
+{
+    if (!font)
+        return nullptr;
</ins><span class="cx"> 
</span><del>-        return Font::create(scaledFontData);
</del><ins>+    FontPlatformData scaledFontData(font, size, false, false, orientation);
+
+    if (syntheticBold)
+        fontTraits |= kCTFontBoldTrait;
+    if (syntheticItalic)
+        fontTraits |= kCTFontItalicTrait;
+
+    CTFontSymbolicTraits scaledFontTraits = CTFontGetSymbolicTraits(scaledFontData.font());
+    scaledFontData.m_syntheticBold = (fontTraits &amp; kCTFontBoldTrait) &amp;&amp; !(scaledFontTraits &amp; kCTFontTraitBold);
+    scaledFontData.m_syntheticOblique = (fontTraits &amp; kCTFontItalicTrait) &amp;&amp; !(scaledFontTraits &amp; kCTFontTraitItalic);
+
+    return Font::create(scaledFontData);
+}
+
+static inline bool isOpenTypeFeature(CFDictionaryRef feature)
+{
+    return CFDictionaryContainsKey(feature, kCTFontOpenTypeFeatureTag) &amp;&amp; CFDictionaryContainsKey(feature, kCTFontOpenTypeFeatureValue);
+}
+
+static inline bool isTrueTypeFeature(CFDictionaryRef feature)
+{
+    return CFDictionaryContainsKey(feature, kCTFontFeatureTypeIdentifierKey) &amp;&amp; CFDictionaryContainsKey(feature, kCTFontFeatureSelectorIdentifierKey);
+}
+
+static inline Optional&lt;CFStringRef&gt; openTypeFeature(CFDictionaryRef feature)
+{
+    ASSERT(isOpenTypeFeature(feature));
+    CFStringRef tag = static_cast&lt;CFStringRef&gt;(CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureTag));
+    int rawValue;
+    CFNumberRef value = static_cast&lt;CFNumberRef&gt;(CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureValue));
+    auto success = CFNumberGetValue(value, kCFNumberIntType, &amp;rawValue);
+    ASSERT_UNUSED(success, success);
+    return rawValue ? Optional&lt;CFStringRef&gt;(tag) : Nullopt;
+}
+
+static inline std::pair&lt;int, int&gt; trueTypeFeature(CFDictionaryRef feature)
+{
+    ASSERT(isTrueTypeFeature(feature));
+    int rawType;
+    CFNumberRef type = static_cast&lt;CFNumberRef&gt;(CFDictionaryGetValue(feature, kCTFontFeatureTypeIdentifierKey));
+    auto success = CFNumberGetValue(type, kCFNumberIntType, &amp;rawType);
+    ASSERT_UNUSED(success, success);
+    int rawSelector;
+    CFNumberRef selector = static_cast&lt;CFNumberRef&gt;(CFDictionaryGetValue(feature, kCTFontFeatureSelectorIdentifierKey));
+    success = CFNumberGetValue(selector, kCFNumberIntType, &amp;rawSelector);
+    ASSERT_UNUSED(success, success);
+    return std::make_pair(rawType, rawSelector);
+}
+
+static inline RetainPtr&lt;CFDictionaryRef&gt; removedFeature(CFDictionaryRef feature)
+{
+    bool isOpenType = isOpenTypeFeature(feature);
+    bool isTrueType = isTrueTypeFeature(feature);
+    if (!isOpenType &amp;&amp; !isTrueType)
+        return feature; // We don't understand this font format.
+    RetainPtr&lt;CFMutableDictionaryRef&gt; result = adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
+    if (isOpenType) {
+        auto featureTag = openTypeFeature(feature);
+        if (featureTag &amp;&amp; (CFEqual(featureTag.value(), CFSTR(&quot;smcp&quot;))
+            || CFEqual(featureTag.value(), CFSTR(&quot;c2sc&quot;))
+            || CFEqual(featureTag.value(), CFSTR(&quot;pcap&quot;))
+            || CFEqual(featureTag.value(), CFSTR(&quot;c2pc&quot;)))) {
+            int rawZero = 0;
+            RetainPtr&lt;CFNumberRef&gt; zero = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawZero));
+            CFDictionaryAddValue(result.get(), kCTFontOpenTypeFeatureTag, featureTag.value());
+            CFDictionaryAddValue(result.get(), kCTFontOpenTypeFeatureValue, zero.get());
+        } else {
+            CFDictionaryAddValue(result.get(), kCTFontOpenTypeFeatureTag, CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureTag));
+            CFDictionaryAddValue(result.get(), kCTFontOpenTypeFeatureValue, CFDictionaryGetValue(feature, kCTFontOpenTypeFeatureValue));
+        }
</ins><span class="cx">     }
</span><ins>+    if (isTrueType) {
+        auto trueTypeFeaturePair = trueTypeFeature(feature);
+        if (trueTypeFeaturePair.first == kLowerCaseType &amp;&amp; (trueTypeFeaturePair.second == kLowerCaseSmallCapsSelector || trueTypeFeaturePair.second == kLowerCasePetiteCapsSelector)) {
+            int rawSelector = kDefaultLowerCaseSelector;
+            RetainPtr&lt;CFNumberRef&gt; selector = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawSelector));
+            CFDictionaryAddValue(result.get(), kCTFontFeatureTypeIdentifierKey, CFDictionaryGetValue(feature, kCTFontFeatureTypeIdentifierKey));
+            CFDictionaryAddValue(result.get(), kCTFontFeatureSelectorIdentifierKey, selector.get());
+        } else if (trueTypeFeaturePair.first == kUpperCaseType &amp;&amp; (trueTypeFeaturePair.second == kUpperCaseSmallCapsSelector || trueTypeFeaturePair.second == kUpperCasePetiteCapsSelector)) {
+            int rawSelector = kDefaultUpperCaseSelector;
+            RetainPtr&lt;CFNumberRef&gt; selector = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &amp;rawSelector));
+            CFDictionaryAddValue(result.get(), kCTFontFeatureTypeIdentifierKey, CFDictionaryGetValue(feature, kCTFontFeatureTypeIdentifierKey));
+            CFDictionaryAddValue(result.get(), kCTFontFeatureSelectorIdentifierKey, selector.get());
+        } else {
+            CFDictionaryAddValue(result.get(), kCTFontFeatureTypeIdentifierKey, CFDictionaryGetValue(feature, kCTFontFeatureTypeIdentifierKey));
+            CFDictionaryAddValue(result.get(), kCTFontFeatureSelectorIdentifierKey, CFDictionaryGetValue(feature, kCTFontFeatureSelectorIdentifierKey));
+        }
+    }
+    return result;
+}
</ins><span class="cx"> 
</span><del>-    return nullptr;
-#endif
</del><ins>+static RetainPtr&lt;CTFontRef&gt; createCTFontWithoutSynthesizableFeatures(CTFontRef font)
+{
+    RetainPtr&lt;CFArrayRef&gt; features = static_cast&lt;CFArrayRef&gt;(CTFontCopyAttribute(font, kCTFontFeatureSettingsAttribute));
+    if (!features)
+        return font;
+    CFIndex featureCount = CFArrayGetCount(features.get());
+    RetainPtr&lt;CFMutableArrayRef&gt; newFeatures = adoptCF(CFArrayCreateMutable(kCFAllocatorDefault, featureCount, &amp;kCFTypeArrayCallBacks));
+    for (CFIndex i = 0; i &lt; featureCount; ++i) {
+        CFDictionaryRef feature = static_cast&lt;CFDictionaryRef&gt;(CFArrayGetValueAtIndex(features.get(), i));
+        CFArrayAppendValue(newFeatures.get(), removedFeature(feature).get());
+    }
+    CFTypeRef keys[] = { kCTFontFeatureSettingsAttribute };
+    CFTypeRef values[] = { newFeatures.get() };
+    RetainPtr&lt;CFDictionaryRef&gt; attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(keys), &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
+    RetainPtr&lt;CTFontDescriptorRef&gt; newDescriptor = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get()));
+    return adoptCF(CTFontCreateCopyWithAttributes(font, CTFontGetSize(font), nullptr, newDescriptor.get()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+RefPtr&lt;Font&gt; Font::createFontWithoutSynthesizableFeatures() const
+{
+    float size = m_platformData.size();
+    CTFontSymbolicTraits fontTraits = CTFontGetSymbolicTraits(m_platformData.font());
+    RetainPtr&lt;CTFontRef&gt; ctFont = createCTFontWithoutSynthesizableFeatures(m_platformData.font());
+    return createDerivativeFont(ctFont.get(), size, m_platformData.orientation(), fontTraits, m_platformData.m_syntheticBold, m_platformData.m_syntheticOblique);
+}
+
+PassRefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const
+{
+    float size = m_platformData.size() * scaleFactor;
+    CTFontSymbolicTraits fontTraits = CTFontGetSymbolicTraits(m_platformData.font());
+    RetainPtr&lt;CTFontDescriptorRef&gt; fontDescriptor = adoptCF(CTFontCopyFontDescriptor(m_platformData.font()));
+    RetainPtr&lt;CTFontRef&gt; scaledFont = adoptCF(CTFontCreateWithFontDescriptor(fontDescriptor.get(), size, nullptr));
+
+    return createDerivativeFont(scaledFont.get(), size, m_platformData.orientation(), fontTraits, m_platformData.m_syntheticBold, m_platformData.m_syntheticOblique);
+}
+
</ins><span class="cx"> void Font::determinePitch()
</span><span class="cx"> {
</span><span class="cx"> #if USE(APPKIT)
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformgraphicsmacComplexTextControllercpp"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &quot;RenderText.h&quot;
</span><span class="cx"> #include &quot;TextBreakIterator.h&quot;
</span><span class="cx"> #include &quot;TextRun.h&quot;
</span><ins>+#include &lt;wtf/Optional.h&gt;
</ins><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> #include &lt;wtf/unicode/CharacterNames.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -289,6 +290,19 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// FIXME: Capitalization is language-dependent and context-dependent and should operate on grapheme clusters instead of codepoints.
+static inline Optional&lt;UChar32&gt; capitalized(UChar32 baseCharacter)
+{
+    if (U_GET_GC_MASK(baseCharacter) &amp; U_GC_M_MASK)
+        return Nullopt;
+
+    UChar32 uppercaseCharacter = u_toupper(baseCharacter);
+    ASSERT(uppercaseCharacter == baseCharacter || uppercaseCharacter &lt;= 0xFFFF);
+    if (uppercaseCharacter != baseCharacter)
+        return uppercaseCharacter;
+    return Nullopt;
+}
+
</ins><span class="cx"> void ComplexTextController::collectComplexTextRuns()
</span><span class="cx"> {
</span><span class="cx">     if (!m_end)
</span><span class="lines">@@ -304,7 +318,11 @@
</span><span class="cx">     } else
</span><span class="cx">         cp = m_run.characters16();
</span><span class="cx"> 
</span><del>-    if (m_font.isSmallCaps())
</del><ins>+    auto fontVariantCaps = m_font.fontDescription().variantCaps();
+    bool engageAllSmallCapsProcessing = fontVariantCaps == FontVariantCaps::AllSmall || fontVariantCaps == FontVariantCaps::AllPetite;
+    bool engageSmallCapsProcessing = engageAllSmallCapsProcessing || fontVariantCaps == FontVariantCaps::Small || fontVariantCaps == FontVariantCaps::Petite;
+
+    if (engageAllSmallCapsProcessing || engageSmallCapsProcessing)
</ins><span class="cx">         m_smallCapsBuffer.resize(m_end);
</span><span class="cx"> 
</span><span class="cx">     unsigned indexOfFontTransition = 0;
</span><span class="lines">@@ -312,74 +330,103 @@
</span><span class="cx">     const UChar* end = cp + m_end;
</span><span class="cx"> 
</span><span class="cx">     const Font* font;
</span><del>-    bool isMissingGlyph;
</del><span class="cx">     const Font* nextFont;
</span><del>-    bool nextIsMissingGlyph;
</del><ins>+    const Font* synthesizedFont = nullptr;
+    RefPtr&lt;Font&gt; smallSynthesizedFont = nullptr;
</ins><span class="cx"> 
</span><span class="cx">     unsigned markCount;
</span><del>-    const UChar* sequenceStart = curr;
</del><span class="cx">     UChar32 baseCharacter;
</span><span class="cx">     if (!advanceByCombiningCharacterSequence(curr, end, baseCharacter, markCount))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    UChar uppercaseCharacter = 0;
</del><ins>+    nextFont = m_font.fontForCombiningCharacterSequence(cp, curr - cp);
</ins><span class="cx"> 
</span><del>-    bool isSmallCaps;
-    bool nextIsSmallCaps = m_font.isSmallCaps() &amp;&amp; !(U_GET_GC_MASK(baseCharacter) &amp; U_GC_M_MASK) &amp;&amp; (uppercaseCharacter = u_toupper(baseCharacter)) != baseCharacter;
-    ASSERT(uppercaseCharacter == 0 || u_toupper(baseCharacter) &lt;= 0xFFFF);
</del><ins>+    bool isSmallCaps = false;
+    bool nextIsSmallCaps = false;
</ins><span class="cx"> 
</span><del>-    if (nextIsSmallCaps) {
-        m_smallCapsBuffer[sequenceStart - cp] = uppercaseCharacter;
-        for (unsigned i = 0; i &lt; markCount; ++i)
-            m_smallCapsBuffer[sequenceStart - cp + i + 1] = sequenceStart[i + 1];
</del><ins>+    auto capitalizedBase = capitalized(baseCharacter);
+    if (nextFont &amp;&amp; nextFont != Font::systemFallback() &amp;&amp; (capitalizedBase || engageAllSmallCapsProcessing)
+        &amp;&amp; !nextFont-&gt;variantCapsSupportsCharacterForSynthesis(fontVariantCaps, baseCharacter)) {
+        synthesizedFont = &amp;nextFont-&gt;noSynthesizableFeaturesFont();
+        smallSynthesizedFont = synthesizedFont-&gt;smallCapsFont(m_font.fontDescription());
+        m_smallCapsBuffer[0] = capitalizedBase ? capitalizedBase.value() : cp[0];
+        for (unsigned i = 1; cp + i &lt; curr; ++i)
+            m_smallCapsBuffer[i] = cp[i];
+        nextIsSmallCaps = true;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    nextIsMissingGlyph = false;
-    nextFont = m_font.fontForCombiningCharacterSequence(sequenceStart, curr - sequenceStart, nextIsSmallCaps ? SmallCapsVariant : NormalVariant);
-    if (!nextFont)
-        nextIsMissingGlyph = true;
</del><ins>+    nextFont = m_font.fontForCombiningCharacterSequence(cp, curr - cp);
</ins><span class="cx"> 
</span><span class="cx">     while (curr &lt; end) {
</span><span class="cx">         font = nextFont;
</span><del>-        isMissingGlyph = nextIsMissingGlyph;
</del><span class="cx">         isSmallCaps = nextIsSmallCaps;
</span><del>-        int index = curr - cp;
</del><ins>+        unsigned index = curr - cp;
</ins><span class="cx"> 
</span><span class="cx">         if (!advanceByCombiningCharacterSequence(curr, end, baseCharacter, markCount))
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        if (m_font.isSmallCaps()) {
-            ASSERT(u_toupper(baseCharacter) &lt;= 0xFFFF);
-            uppercaseCharacter = u_toupper(baseCharacter);
-            nextIsSmallCaps = uppercaseCharacter != baseCharacter;
-            if (nextIsSmallCaps) {
-                m_smallCapsBuffer[index] = uppercaseCharacter;
</del><ins>+        if (synthesizedFont) {
+            if (auto capitalizedBase = capitalized(baseCharacter)) {
+                m_smallCapsBuffer[index] = capitalizedBase.value();
</ins><span class="cx">                 for (unsigned i = 0; i &lt; markCount; ++i)
</span><span class="cx">                     m_smallCapsBuffer[index + i + 1] = cp[index + i + 1];
</span><ins>+                nextIsSmallCaps = true;
+            } else {
+                if (engageAllSmallCapsProcessing) {
+                    for (unsigned i = 0; i &lt; curr - cp - index; ++i)
+                        m_smallCapsBuffer[index + i] = cp[index + i];
+                }
+                nextIsSmallCaps = engageAllSmallCapsProcessing;
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        nextIsMissingGlyph = false;
</del><span class="cx">         if (baseCharacter == zeroWidthJoiner)
</span><span class="cx">             nextFont = font;
</span><del>-        else {
-            nextFont = m_font.fontForCombiningCharacterSequence(cp + index, curr - cp - index, nextIsSmallCaps ? SmallCapsVariant : NormalVariant);
-            if (!nextFont)
-                nextIsMissingGlyph = true;
</del><ins>+        else
+            nextFont = m_font.fontForCombiningCharacterSequence(cp + index, curr - cp - index);
+
+        capitalizedBase = capitalized(baseCharacter);
+        if (!synthesizedFont &amp;&amp; nextFont &amp;&amp; nextFont != Font::systemFallback() &amp;&amp; (capitalizedBase || engageAllSmallCapsProcessing)
+            &amp;&amp; !nextFont-&gt;variantCapsSupportsCharacterForSynthesis(fontVariantCaps, baseCharacter)) {
+            // Rather than synthesize each character individually, we should synthesize the entire &quot;run&quot; if any character requires synthesis.
+            synthesizedFont = &amp;nextFont-&gt;noSynthesizableFeaturesFont();
+            smallSynthesizedFont = synthesizedFont-&gt;smallCapsFont(m_font.fontDescription());
+            nextIsSmallCaps = true;
+            curr = cp + indexOfFontTransition;
+            continue;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (nextFont != font || nextIsMissingGlyph != isMissingGlyph) {
-            int itemStart = static_cast&lt;int&gt;(indexOfFontTransition);
-            int itemLength = index - indexOfFontTransition;
-            collectComplexTextRunsForCharacters((isSmallCaps ? m_smallCapsBuffer.data() : cp) + itemStart, itemLength, itemStart, !isMissingGlyph ? font : 0);
</del><ins>+        if (nextFont != font || nextIsSmallCaps != isSmallCaps) {
+            unsigned itemLength = index - indexOfFontTransition;
+            if (itemLength) {
+                unsigned itemStart = indexOfFontTransition;
+                if (synthesizedFont) {
+                    if (isSmallCaps)
+                        collectComplexTextRunsForCharacters(m_smallCapsBuffer.data() + itemStart, itemLength, itemStart, smallSynthesizedFont.get());
+                    else
+                        collectComplexTextRunsForCharacters(cp + itemStart, itemLength, itemStart, synthesizedFont);
+                } else
+                    collectComplexTextRunsForCharacters(cp + itemStart, itemLength, itemStart, font);
+                if (nextFont != font) {
+                    synthesizedFont = nullptr;
+                    smallSynthesizedFont = nullptr;
+                    nextIsSmallCaps = false;
+                }
+            }
</ins><span class="cx">             indexOfFontTransition = index;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    int itemLength = m_end - indexOfFontTransition;
</del><ins>+    unsigned itemLength = m_end - indexOfFontTransition;
</ins><span class="cx">     if (itemLength) {
</span><del>-        int itemStart = indexOfFontTransition;
-        collectComplexTextRunsForCharacters((nextIsSmallCaps ? m_smallCapsBuffer.data() : cp) + itemStart, itemLength, itemStart, !nextIsMissingGlyph ? nextFont : 0);
</del><ins>+        unsigned itemStart = indexOfFontTransition;
+        if (synthesizedFont) {
+            if (nextIsSmallCaps)
+                collectComplexTextRunsForCharacters(m_smallCapsBuffer.data() + itemStart, itemLength, itemStart, smallSynthesizedFont.get());
+            else
+                collectComplexTextRunsForCharacters(cp + itemStart, itemLength, itemStart, synthesizedFont);
+        } else
+            collectComplexTextRunsForCharacters(cp + itemStart, itemLength, itemStart, nextFont);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (!m_run.ltr())
</span></span></pre></div>
<a id="branchessafari601146branchSourceWebCoreplatformspicocoaCoreTextSPIh"></a>
<div class="modfile"><h4>Modified: branches/safari-601.1.46-branch/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h (194227 => 194228)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-601.1.46-branch/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h        2015-12-17 20:57:20 UTC (rev 194227)
+++ branches/safari-601.1.46-branch/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h        2015-12-17 21:56:05 UTC (rev 194228)
</span><span class="lines">@@ -76,6 +76,7 @@
</span><span class="cx"> CTFontDescriptorRef CTFontDescriptorCreateForUIType(CTFontUIFontType, CGFloat size, CFStringRef language);
</span><span class="cx"> CTFontDescriptorRef CTFontDescriptorCreateWithTextStyle(CFStringRef style, CFStringRef size, CFStringRef language);
</span><span class="cx"> CTFontDescriptorRef CTFontDescriptorCreateCopyWithSymbolicTraits(CTFontDescriptorRef original, CTFontSymbolicTraits symTraitValue, CTFontSymbolicTraits symTraitMask);
</span><ins>+CFBitVectorRef CTFontCopyGlyphCoverageForFeature(CTFontRef, CFDictionaryRef feature);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx"> #if !USE(APPLE_INTERNAL_SDK)
</span></span></pre>
</div>
</div>

</body>
</html>