[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
commit-queue at webkit.org
commit-queue at webkit.org
Wed Dec 22 13:04:18 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 35bcdf7b423702699dea8ce115c0ddaf9edeb144
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Sep 6 16:51:37 2010 +0000
2010-09-06 Shane Stephens <shanestephens at google.com>
Reviewed by Dimitri Glazkov.
[Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
https://bugs.webkit.org/show_bug.cgi?id=44750
Added test case to demonstrate crash bug.
* svg/dom/symbol-embeddedAnimation-expected.txt: Added.
* svg/dom/symbol-embeddedAnimation.svg: Added.
2010-09-06 Shane Stephens <shanestephens at google.com>
Reviewed by Dimitri Glazkov.
[Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
https://bugs.webkit.org/show_bug.cgi?id=44750
Fixes crash by checking for null transforms and skipping update step
when appropriate.
Test: svg/dom/symbol-embeddedAnimation.svg
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyResultsToTarget):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 10c57b3..46e424a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-06 Shane Stephens <shanestephens at google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ [Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
+ https://bugs.webkit.org/show_bug.cgi?id=44750
+
+ Added test case to demonstrate crash bug.
+
+ * svg/dom/symbol-embeddedAnimation-expected.txt: Added.
+ * svg/dom/symbol-embeddedAnimation.svg: Added.
+
2010-09-06 Martin Robinson <mrobinson at igalia.com>
Unskip a couple of plugin tests which are now passing.
diff --git a/LayoutTests/svg/dom/use-transform-expected.txt b/LayoutTests/svg/dom/symbol-embeddedAnimation-expected.txt
similarity index 100%
copy from LayoutTests/svg/dom/use-transform-expected.txt
copy to LayoutTests/svg/dom/symbol-embeddedAnimation-expected.txt
diff --git a/LayoutTests/svg/dom/symbol-embeddedAnimation.svg b/LayoutTests/svg/dom/symbol-embeddedAnimation.svg
new file mode 100644
index 0000000..e91a023
--- /dev/null
+++ b/LayoutTests/svg/dom/symbol-embeddedAnimation.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- use of animateMotion inside symbol tag should not crash -->
+ <use xlink:href="#crash"/>
+ <a id="crash">
+ <symbol>
+ <animateMotion/>
+ </symbol>
+ </a>
+
+ <text>Survived the crash!</text>
+ <script>
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+ </script>
+</svg>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 2c4029f..53ec82e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-09-06 Shane Stephens <shanestephens at google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ [Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
+ https://bugs.webkit.org/show_bug.cgi?id=44750
+
+ Fixes crash by checking for null transforms and skipping update step
+ when appropriate.
+
+ Test: svg/dom/symbol-embeddedAnimation.svg
+
+ * svg/SVGAnimateMotionElement.cpp:
+ (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
+
2010-09-06 Xan Lopez <xlopez at igalia.com>
Rubber-stamped by Tor Arne Vestbø.
diff --git a/WebCore/svg/SVGAnimateMotionElement.cpp b/WebCore/svg/SVGAnimateMotionElement.cpp
index ffa201b..b50a993 100644
--- a/WebCore/svg/SVGAnimateMotionElement.cpp
+++ b/WebCore/svg/SVGAnimateMotionElement.cpp
@@ -222,6 +222,10 @@ void SVGAnimateMotionElement::applyResultsToTarget()
if (RenderObject* renderer = targetElement->renderer())
RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer);
+ AffineTransform* t = targetElement->supplementalTransform();
+ if (!t)
+ return;
+
// ...except in case where we have additional instances in <use> trees.
const HashSet<SVGElementInstance*>& instances = targetElement->instancesForElement();
const HashSet<SVGElementInstance*>::const_iterator end = instances.end();
@@ -229,7 +233,8 @@ void SVGAnimateMotionElement::applyResultsToTarget()
SVGElement* shadowTreeElement = (*it)->shadowTreeElement();
ASSERT(shadowTreeElement);
AffineTransform* transform = shadowTreeElement->supplementalTransform();
- AffineTransform* t = targetElement->supplementalTransform();
+ if (!transform)
+ continue;
transform->setMatrix(t->a(), t->b(), t->c(), t->d(), t->e(), t->f());
if (RenderObject* renderer = shadowTreeElement->renderer()) {
renderer->setNeedsTransformUpdate();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list