Bug 795221 part 5. Hook up <svg:style> elements to cycle collect their stylesheet. r=smaug

--HG--
rename : content/html/content/crashtests/795221-1.html => content/html/content/crashtests/795221-4.html
This commit is contained in:
Boris Zbarsky 2012-10-07 22:39:09 -04:00
parent e192ce8c57
commit 9534d07c69
3 changed files with 24 additions and 1 deletions

View File

@ -0,0 +1,9 @@
<!DOCTYPE html>
<svg>
<style>
div { }
</style>
</svg>
<script>
document.styleSheets[0].cssRules[0].style.foo = document;
</script>

View File

@ -39,3 +39,4 @@ load 741250.xhtml
load 795221-1.html
load 795221-2.html
load 795221-3.html
load 795221-4.html

View File

@ -30,6 +30,9 @@ public:
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSIDOMSVGSTYLEELEMENT
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsSVGStyleElement,
nsSVGStyleElementBase)
// xxx I wish we could use virtual inheritance
NS_FORWARD_NSIDOMNODE(nsSVGStyleElementBase::)
NS_FORWARD_NSIDOMELEMENT(nsSVGStyleElementBase::)
@ -105,7 +108,7 @@ NS_IMPL_RELEASE_INHERITED(nsSVGStyleElement,nsSVGStyleElementBase)
DOMCI_NODE_DATA(SVGStyleElement, nsSVGStyleElement)
NS_INTERFACE_TABLE_HEAD(nsSVGStyleElement)
NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED(nsSVGStyleElement)
NS_NODE_INTERFACE_TABLE7(nsSVGStyleElement, nsIDOMNode, nsIDOMElement,
nsIDOMSVGElement, nsIDOMSVGStyleElement,
nsIDOMLinkStyle, nsIStyleSheetLinkingElement,
@ -113,6 +116,16 @@ NS_INTERFACE_TABLE_HEAD(nsSVGStyleElement)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(SVGStyleElement)
NS_INTERFACE_MAP_END_INHERITING(nsSVGStyleElementBase)
NS_IMPL_CYCLE_COLLECTION_CLASS(nsSVGStyleElement)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsSVGStyleElement,
nsSVGStyleElementBase)
tmp->nsStyleLinkElement::Traverse(cb);
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsSVGStyleElement,
nsSVGStyleElementBase)
tmp->nsStyleLinkElement::Unlink();
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
//----------------------------------------------------------------------
// Implementation