<!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>[186326] releases/WebKitGTK/webkit-2.8</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/186326">186326</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-07-06 02:21:46 -0700 (Mon, 06 Jul 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/184719">r184719</a> - SVG as image uses very tiny default font-size
https://bugs.webkit.org/show_bug.cgi?id=68090

Patch by Said Abou-Hallawa &lt;sabouhallawa@apple.com&gt; on 2015-05-21
Reviewed by Darin Adler.

Source/WebCore:

When loading a document, WebKit creates a Page object and then changes its setting
from the browser's preferences. This is true for interactive resources also, such as a
stand-alone SVG or an SVG embedded in an &lt;object&gt; tag for example. For non-interactive
resources, like an SVG embedded in an &lt;img&gt; tag for example, this function is called
after loading the resource is finished. This function creates an artificial page and
fabricates a scoped settings for it. This turns out to be problematic for cases like
the default font size because its initial value is zero. We cannot go from WebCore to
WebKit to ask for the global settings. But we can inherit the global settings from the
the master page. This is not the best solution because of two reasons. (1) Once the
resource is cached and the styles for the text elements are calculated, nothing can
change the values of styles except removing the resource itself from the cache if the
browser's preferences change. Also there is no mechanism to notify this artificial
page if the browser's preferences change. (2) An image like a non-interactive SVG,
should be displayed the same way regardless of the browser's preferences. A user may
be able to change the default font size for other text. But this should not affect
images even if they are vector images like SVG. An easy and more agreeable solution
is to hard-code the default font size for this case and do not depend on the global
settings at all.

Test: svg/text/text-default-font-size.html

* page/Settings.in: Set the initial value of the setting defaultFontSize to be 16.

LayoutTests:

* svg/text/text-default-font-size-expected.html: Added.
* svg/text/text-default-font-size.html: Added.
Ensure the default font size for non-interactive SVG images is not zero.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorepageSettingsin">releases/WebKitGTK/webkit-2.8/Source/WebCore/page/Settings.in</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestssvgtexttextdefaultfontsizeexpectedhtml">releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size-expected.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestssvgtexttextdefaultfontsizehtml">releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit28LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog (186325 => 186326)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-07-06 09:08:32 UTC (rev 186325)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-07-06 09:21:46 UTC (rev 186326)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2015-05-21  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
+
+        SVG as image uses very tiny default font-size
+        https://bugs.webkit.org/show_bug.cgi?id=68090
+
+        Reviewed by Darin Adler.
+
+        * svg/text/text-default-font-size-expected.html: Added.
+        * svg/text/text-default-font-size.html: Added.
+        Ensure the default font size for non-interactive SVG images is not zero.
+
</ins><span class="cx"> 2015-05-20  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r172591): Can no longer style &lt;optgroup&gt; with colors (LayoutTests/fast/forms/select/optgroup-rendering.html)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestssvgtexttextdefaultfontsizeexpectedhtml"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size-expected.html (0 => 186326)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size-expected.html                                (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size-expected.html        2015-07-06 09:21:46 UTC (rev 186326)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+&lt;body&gt;
+  &lt;img src=&quot;data:image/svg+xml,
+  &lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
+    &lt;g&gt;
+      &lt;rect width='100%' height='100%' fill='Lime'/&gt;
+      &lt;text x='10' y='25' font-size='16px'&gt;svg-text&lt;/text&gt;
+    &lt;/g&gt;
+    &lt;g transform='translate(40,40)'&gt;
+      &lt;rect width='100%' height='100%' fill='yellow'/&gt;
+      &lt;text x='10' y='25' font-size='16px'&gt;svg-svg-text&lt;/text&gt;
+    &lt;/g&gt;
+    &lt;g transform='translate(80,80)'&gt;
+      &lt;rect width='100%' height='100%' fill='orange'/&gt;
+      &lt;text x='10' y='25' font-size='16px'&gt;svg-image-text&lt;/text&gt;
+    &lt;/g&gt;
+    &lt;g transform='translate(120,120)'&gt;
+      &lt;rect width='100%' height='100%' fill='red'/&gt;
+      &lt;text x='10' y='25' font-size='16px'&gt;svg-image-svg-text&lt;/text&gt;
+    &lt;/g&gt;
+  &lt;/svg&gt;&quot;&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+
+
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestssvgtexttextdefaultfontsizehtml"></a>
<div class="addfile"><h4>Added: releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size.html (0 => 186326)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size.html                                (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/svg/text/text-default-font-size.html        2015-07-06 09:21:46 UTC (rev 186326)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+&lt;body&gt;
+  &lt;img src=&quot;data:image/svg+xml,
+  &lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
+    &lt;rect width='100%' height='100%' fill='Lime'/&gt;
+    &lt;text x='10' y='25'&gt;svg-text&lt;/text&gt;
+    &lt;svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='40' y='40'&gt;
+      &lt;rect width='100%' height='100%' fill='yellow'/&gt;
+      &lt;text x='10' y='25'&gt;svg-svg-text&lt;/text&gt;
+    &lt;/svg&gt;  
+    &lt;image x='80' y='80' width='100%' height='100%'
+      xlink:href='data:image/svg+xml;base64,
+      PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRw
+      Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJz4NCiAgICA8cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0
+      PScxMDAlJyBmaWxsPSdvcmFuZ2UnLz4NCiAgICA8dGV4dCB4PScxMCcgeT0nMjUnPnN2Zy1pbWFn
+      ZS10ZXh0PC90ZXh0Pg0KICAgIDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
+      JyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nNDAnIHk9JzQw
+      Jz4NCiAgICAgIDxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3JlZCcvPg0K
+      ICAgICAgPHRleHQgeD0nMTAnIHk9JzI1Jz5zdmctaW1hZ2Utc3ZnLXRleHQ8L3RleHQ+DQogICAg
+      PC9zdmc+ICANCjwvc3ZnPg=='&gt;
+    &lt;/image&gt;
+  &lt;/svg&gt;&quot;&gt;
+  &lt;script&gt;
+    if (window.testRunner) {
+      testRunner.waitUntilDone();
+      // window load event fires when the the page and its resources are loaded.
+      // However it does not wait till the sub-resources are loaded. And this is
+      // why we need to wait a little bit before we call notifyDone().
+      window.addEventListener(&quot;load&quot;, function() {
+        setTimeout(function () {
+          testRunner.notifyDone();
+        }, 200);
+      });
+    }
+  &lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+
+
</ins></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (186325 => 186326)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-07-06 09:08:32 UTC (rev 186325)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-07-06 09:21:46 UTC (rev 186326)
</span><span class="lines">@@ -1,3 +1,33 @@
</span><ins>+2015-05-21  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
+
+        SVG as image uses very tiny default font-size
+        https://bugs.webkit.org/show_bug.cgi?id=68090
+
+        Reviewed by Darin Adler.
+
+        When loading a document, WebKit creates a Page object and then changes its setting
+        from the browser's preferences. This is true for interactive resources also, such as a
+        stand-alone SVG or an SVG embedded in an &lt;object&gt; tag for example. For non-interactive
+        resources, like an SVG embedded in an &lt;img&gt; tag for example, this function is called
+        after loading the resource is finished. This function creates an artificial page and
+        fabricates a scoped settings for it. This turns out to be problematic for cases like
+        the default font size because its initial value is zero. We cannot go from WebCore to
+        WebKit to ask for the global settings. But we can inherit the global settings from the
+        the master page. This is not the best solution because of two reasons. (1) Once the
+        resource is cached and the styles for the text elements are calculated, nothing can
+        change the values of styles except removing the resource itself from the cache if the
+        browser's preferences change. Also there is no mechanism to notify this artificial
+        page if the browser's preferences change. (2) An image like a non-interactive SVG,
+        should be displayed the same way regardless of the browser's preferences. A user may
+        be able to change the default font size for other text. But this should not affect
+        images even if they are vector images like SVG. An easy and more agreeable solution
+        is to hard-code the default font size for this case and do not depend on the global
+        settings at all.
+
+        Test: svg/text/text-default-font-size.html
+
+        * page/Settings.in: Set the initial value of the setting defaultFontSize to be 16.
+        
</ins><span class="cx"> 2015-05-20  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r172591): Can no longer style &lt;optgroup&gt; with colors (LayoutTests/fast/forms/select/optgroup-rendering.html)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorepageSettingsin"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/page/Settings.in (186325 => 186326)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/page/Settings.in        2015-07-06 09:08:32 UTC (rev 186325)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/page/Settings.in        2015-07-06 09:21:46 UTC (rev 186326)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> minimumFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
</span><span class="cx"> minimumLogicalFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
</span><del>-defaultFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
</del><ins>+defaultFontSize type=int, initial=16, setNeedsStyleRecalcInAllFrames=1
</ins><span class="cx"> defaultFixedFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
</span><span class="cx"> 
</span><span class="cx"> editingBehaviorType type=EditingBehaviorType, initial=editingBehaviorTypeForPlatform()
</span></span></pre>
</div>
</div>

</body>
</html>