Bug 757751 - attribute updates on non-rendered svg elements result in an abort. r=jwatt

This commit is contained in:
Robert Longson 2012-08-15 12:58:06 +01:00
Родитель e6dbebb0f5
Коммит 489a806b3f
4 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -162,7 +162,8 @@ nsSVGInnerSVGFrame::AttributeChanged(PRInt32 aNameSpaceID,
nsIAtom* aAttribute,
PRInt32 aModType)
{
if (aNameSpaceID == kNameSpaceID_None) {
if (aNameSpaceID == kNameSpaceID_None &&
!(GetStateBits() & NS_STATE_SVG_NONDISPLAY_CHILD)) {
nsSVGSVGElement* content = static_cast<nsSVGSVGElement*>(mContent);

Просмотреть файл

@ -581,7 +581,7 @@ nsSVGOuterSVGFrame::AttributeChanged(PRInt32 aNameSpaceID,
PRInt32 aModType)
{
if (aNameSpaceID == kNameSpaceID_None &&
!(GetStateBits() & NS_FRAME_FIRST_REFLOW)) {
!(GetStateBits() & (NS_FRAME_FIRST_REFLOW | NS_STATE_SVG_NONDISPLAY_CHILD))) {
if (aAttribute == nsGkAtoms::viewBox ||
aAttribute == nsGkAtoms::preserveAspectRatio ||
aAttribute == nsGkAtoms::transform) {

Просмотреть файл

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<svg id="x" viewBox=" 0 0 10 10"/>
</defs>
<script>
window.addEventListener("load", function() { document.getElementById("x").setAttribute("width", "2"); }, false);
</script>
</svg>

После

Ширина:  |  Высота:  |  Размер: 246 B

Просмотреть файл

@ -131,4 +131,5 @@ load 740627-2.svg
load 757704-1.svg
load 757718-1.svg
load 768351.svg
load 757751-1.svg