Lists styled with SVG fonts are not rendered as expected
[WebKit-https.git] / Source / WebCore / ChangeLog
index b0c718c..81100b2 100644 (file)
@@ -1,3 +1,38 @@
+2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Lists styled with SVG fonts are not rendered as expected
+        https://bugs.webkit.org/show_bug.cgi?id=133198
+
+        Reviewed by Simon Fraser.
+
+        There were a couple places in RenderListMarker and RenderMenuList that were
+        implicitly creating TextRuns by passing a String to a function which
+        expected a TextRun. Because TextRun has a constructor which takes a single
+        String and isn't marked explicit, TextRuns were being created without
+        any of the associated code that initializes the TextRun (such as creating
+        a RenderingContext if necessary).
+
+        There is currently one more client of this code that needs to be fixed.
+        This is in RenderThemeIOS::adjustMenuListButtonStyle(). However, fixing
+        this will be a somewhat large change, and is out of scope for this patch.
+        I will submit a follow-up patch that fixes this permanently. Once this is
+        fixed, I can mark TextRun's constructors as explicit.
+
+        Test: svg/custom/list-items-with-svg-font-family.html
+
+        * platform/graphics/TextRun.h:
+        (WebCore::TextRun::TextRun): Mark constructors as explicit.
+        * rendering/RenderListMarker.cpp:
+        (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
+        RenderBlock::constructTextRun.
+        (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
+        * rendering/RenderMenuList.cpp:
+        (RenderMenuList::updateOptionsWidth): Ditto.
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::adjustInputElementButtonStyle): Instead of crashing, mark
+        form controls rendered with SVG fonts as having 0 width. This isn't
+        perfect, but fixing this is out of scope for this patch.
+
 2014-06-04  Andreas Kling  <akling@apple.com>
 
         WebKit should adopt journal_mode=wal for all SQLite databases.