[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