[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

jschuh at chromium.org jschuh at chromium.org
Mon Feb 21 00:13:30 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit 79d31dbbfcba1695a07ab835dfe117ee3b9732c8
Author: jschuh at chromium.org <jschuh at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jan 28 22:26:19 2011 +0000

    2011-01-28  Justin Schuh  <jschuh at chromium.org>
    
            Reviewed by Eric Seidel.
    
            We should hold RefPtrs to SVG font faces
            https://bugs.webkit.org/show_bug.cgi?id=53270
    
            * svg/custom/use-multiple-on-nested-disallowed-font-expected.txt: Added.
            * svg/custom/use-multiple-on-nested-disallowed-font.html: Added.
    2011-01-28  Justin Schuh  <jschuh at chromium.org>
    
            Reviewed by Eric Seidel.
    
            We should hold RefPtrs to SVG font faces
            https://bugs.webkit.org/show_bug.cgi?id=53270
    
            Test: svg/custom/use-multiple-on-nested-disallowed-font.html
    
            * css/CSSFontFaceSource.cpp:
            (WebCore::CSSFontFaceSource::getFontData):
            * css/CSSFontFaceSource.h:
            * svg/SVGFontFaceElement.cpp:
            (WebCore::SVGFontFaceElement::associatedFontElement):
            * svg/SVGFontFaceElement.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 3bd5a1e..d41b196 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2011-01-28  Justin Schuh  <jschuh at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        We should hold RefPtrs to SVG font faces
+        https://bugs.webkit.org/show_bug.cgi?id=53270
+
+        * svg/custom/use-multiple-on-nested-disallowed-font-expected.txt: Added.
+        * svg/custom/use-multiple-on-nested-disallowed-font.html: Added.
+
 2011-01-28  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by Kenneth Russell.
diff --git a/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font-expected.txt b/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font-expected.txt
new file mode 100644
index 0000000..2394f92
--- /dev/null
+++ b/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font-expected.txt
@@ -0,0 +1 @@
+ PASS: This file should not crash.
diff --git a/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font.html b/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font.html
new file mode 100644
index 0000000..f8e50dc
--- /dev/null
+++ b/LayoutTests/svg/custom/use-multiple-on-nested-disallowed-font.html
@@ -0,0 +1,31 @@
+<svg height="1" width="1">
+  <defs>
+    <use id="B">
+      <linearGradient>
+        <animateTransform attributeName="z"/>
+          <text font-family="x">
+            <textPath>
+              <font>
+                <font-face font-family="x">
+              </font>
+            </textPath>x
+          </text>
+        </animateTransform>
+      </linearGradient>
+    </use>
+  </defs>
+  <use xlink:href="#B"></use>
+  <use xlink:href="#B"></use>
+</svg>
+<script>
+if (window.layoutTestController) {
+    layoutTestController.waitUntilDone();
+    layoutTestController.dumpAsText();
+}
+
+setTimeout(function() {
+        document.body.innerHTML += "PASS: This file should not crash.";
+        if (window.layoutTestController)
+            layoutTestController.notifyDone();
+    }, 0);
+</script>
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index a72509c..a1b94ae 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2011-01-28  Justin Schuh  <jschuh at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        We should hold RefPtrs to SVG font faces
+        https://bugs.webkit.org/show_bug.cgi?id=53270
+
+        Test: svg/custom/use-multiple-on-nested-disallowed-font.html
+
+        * css/CSSFontFaceSource.cpp:
+        (WebCore::CSSFontFaceSource::getFontData):
+        * css/CSSFontFaceSource.h:
+        * svg/SVGFontFaceElement.cpp:
+        (WebCore::SVGFontFaceElement::associatedFontElement):
+        * svg/SVGFontFaceElement.h:
+
 2011-01-28  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by Kenneth Russell.
diff --git a/Source/WebCore/css/CSSFontFaceSource.cpp b/Source/WebCore/css/CSSFontFaceSource.cpp
index 034b22e..f965b1d 100644
--- a/Source/WebCore/css/CSSFontFaceSource.cpp
+++ b/Source/WebCore/css/CSSFontFaceSource.cpp
@@ -168,7 +168,7 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
 #if ENABLE(SVG_FONTS)
             // In-Document SVG Fonts
             if (m_svgFontFaceElement)
-                fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(m_svgFontFaceElement)), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
+                fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(m_svgFontFaceElement.get())), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
 #endif
         }
     } else {
@@ -190,6 +190,16 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
 }
 
 #if ENABLE(SVG_FONTS)
+SVGFontFaceElement* CSSFontFaceSource::svgFontFaceElement() const
+{
+    return m_svgFontFaceElement.get();
+}
+
+void CSSFontFaceSource::setSVGFontFaceElement(PassRefPtr<SVGFontFaceElement> element) 
+{ 
+    m_svgFontFaceElement = element;
+}
+
 bool CSSFontFaceSource::isSVGFontFaceSource() const
 {
     return m_svgFontFaceElement || (m_font && m_font->isSVGFont());
diff --git a/Source/WebCore/css/CSSFontFaceSource.h b/Source/WebCore/css/CSSFontFaceSource.h
index e2057cc..a5c3e61 100644
--- a/Source/WebCore/css/CSSFontFaceSource.h
+++ b/Source/WebCore/css/CSSFontFaceSource.h
@@ -63,8 +63,8 @@ public:
     void pruneTable();
 
 #if ENABLE(SVG_FONTS)
-    SVGFontFaceElement* svgFontFaceElement() const { return m_svgFontFaceElement; }
-    void setSVGFontFaceElement(SVGFontFaceElement* element) { m_svgFontFaceElement = element; }
+    SVGFontFaceElement* svgFontFaceElement() const;
+    void setSVGFontFaceElement(PassRefPtr<SVGFontFaceElement>);
     bool isSVGFontFaceSource() const;
 #endif
 
@@ -75,7 +75,7 @@ private:
     HashMap<unsigned, SimpleFontData*> m_fontDataTable; // The hash key is composed of size synthetic styles.
 
 #if ENABLE(SVG_FONTS)
-    SVGFontFaceElement* m_svgFontFaceElement;
+    RefPtr<SVGFontFaceElement> m_svgFontFaceElement;
     RefPtr<SVGFontElement> m_externalSVGFontElement;
 #endif
 };
diff --git a/Source/WebCore/svg/SVGFontFaceElement.cpp b/Source/WebCore/svg/SVGFontFaceElement.cpp
index 7af22be..68be2c6 100644
--- a/Source/WebCore/svg/SVGFontFaceElement.cpp
+++ b/Source/WebCore/svg/SVGFontFaceElement.cpp
@@ -261,6 +261,11 @@ String SVGFontFaceElement::fontFamily() const
     return m_styleDeclaration->getPropertyValue(CSSPropertyFontFamily);
 }
 
+SVGFontElement* SVGFontFaceElement::associatedFontElement() const
+{
+    return m_fontElement.get();
+}
+
 void SVGFontFaceElement::rebuildFontFace()
 {
     if (!inDocument())
diff --git a/Source/WebCore/svg/SVGFontFaceElement.h b/Source/WebCore/svg/SVGFontFaceElement.h
index 5e974a7..168f21c 100644
--- a/Source/WebCore/svg/SVGFontFaceElement.h
+++ b/Source/WebCore/svg/SVGFontFaceElement.h
@@ -47,7 +47,7 @@ public:
     int descent() const;
     String fontFamily() const;
 
-    SVGFontElement* associatedFontElement() const { return m_fontElement; }
+    SVGFontElement* associatedFontElement() const;
     void rebuildFontFace();
     void removeFromMappedElementSheet();
 
@@ -63,7 +63,7 @@ private:
     RefPtr<CSSFontFaceRule> m_fontFaceRule;
     RefPtr<CSSMutableStyleDeclaration> m_styleDeclaration;
 
-    SVGFontElement* m_fontElement;
+    RefPtr<SVGFontElement> m_fontElement;
 };
 
 } // namespace WebCore

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list