зеркало из https://github.com/mozilla/pjs.git
Bug 17955. Don't unnecessarily add script event listeners to temporary nodes used for overlay hookup. r=hyatt, a=chofmann
This commit is contained in:
Родитель
0b5d621294
Коммит
1d630564b4
|
@ -371,6 +371,7 @@ nsXULElement::~nsXULElement()
|
|||
nsresult
|
||||
nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
||||
nsIDocument* aDocument,
|
||||
PRBool aIsScriptable,
|
||||
nsIContent** aResult)
|
||||
{
|
||||
// Create an nsXULElement from a prototype
|
||||
|
@ -401,6 +402,7 @@ nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
|||
element->mPrototype = aPrototype;
|
||||
element->mDocument = aDocument;
|
||||
|
||||
if (aIsScriptable) {
|
||||
// Check each attribute on the prototype to see if we need to do
|
||||
// any additional processing and hookup that would otherwise be
|
||||
// done 'automagically' by SetAttribute().
|
||||
|
@ -428,6 +430,7 @@ nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aResult = NS_REINTERPRET_CAST(nsIStyledContent*, element);
|
||||
NS_ADDREF(*aResult);
|
||||
|
|
|
@ -276,7 +276,7 @@ protected:
|
|||
|
||||
public:
|
||||
static nsresult
|
||||
Create(nsXULPrototypeElement* aPrototype, nsIDocument* aDocument, nsIContent** aResult);
|
||||
Create(nsXULPrototypeElement* aPrototype, nsIDocument* aDocument, PRBool aIsScriptable, nsIContent** aResult);
|
||||
|
||||
static nsresult
|
||||
Create(PRInt32 aNameSpaceID, nsIAtom* aTag, nsIContent** aResult);
|
||||
|
|
|
@ -4721,7 +4721,7 @@ nsXULDocument::CreateElement(nsXULPrototypeElement* aPrototype, nsIContent** aRe
|
|||
else {
|
||||
// If it's a XUL element, it'll be lightweight until somebody
|
||||
// monkeys with it.
|
||||
rv = nsXULElement::Create(aPrototype, this, getter_AddRefs(result));
|
||||
rv = nsXULElement::Create(aPrototype, this, PR_TRUE, getter_AddRefs(result));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
// We also need to pay special attention to the keyset tag to set up a listener
|
||||
|
@ -4763,7 +4763,7 @@ nsXULDocument::CreateOverlayElement(nsXULPrototypeElement* aPrototype, nsIConten
|
|||
// element. I'd use an XML element, but it gets its knickers in a
|
||||
// knot with DOM ranges when you try to remove its children.
|
||||
nsCOMPtr<nsIContent> element;
|
||||
rv = nsXULElement::Create(aPrototype, this, getter_AddRefs(element));
|
||||
rv = nsXULElement::Create(aPrototype, this, PR_FALSE, getter_AddRefs(element));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
OverlayForwardReference* fwdref = new OverlayForwardReference(element);
|
||||
|
|
|
@ -4721,7 +4721,7 @@ nsXULDocument::CreateElement(nsXULPrototypeElement* aPrototype, nsIContent** aRe
|
|||
else {
|
||||
// If it's a XUL element, it'll be lightweight until somebody
|
||||
// monkeys with it.
|
||||
rv = nsXULElement::Create(aPrototype, this, getter_AddRefs(result));
|
||||
rv = nsXULElement::Create(aPrototype, this, PR_TRUE, getter_AddRefs(result));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
// We also need to pay special attention to the keyset tag to set up a listener
|
||||
|
@ -4763,7 +4763,7 @@ nsXULDocument::CreateOverlayElement(nsXULPrototypeElement* aPrototype, nsIConten
|
|||
// element. I'd use an XML element, but it gets its knickers in a
|
||||
// knot with DOM ranges when you try to remove its children.
|
||||
nsCOMPtr<nsIContent> element;
|
||||
rv = nsXULElement::Create(aPrototype, this, getter_AddRefs(element));
|
||||
rv = nsXULElement::Create(aPrototype, this, PR_FALSE, getter_AddRefs(element));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
OverlayForwardReference* fwdref = new OverlayForwardReference(element);
|
||||
|
|
|
@ -371,6 +371,7 @@ nsXULElement::~nsXULElement()
|
|||
nsresult
|
||||
nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
||||
nsIDocument* aDocument,
|
||||
PRBool aIsScriptable,
|
||||
nsIContent** aResult)
|
||||
{
|
||||
// Create an nsXULElement from a prototype
|
||||
|
@ -401,6 +402,7 @@ nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
|||
element->mPrototype = aPrototype;
|
||||
element->mDocument = aDocument;
|
||||
|
||||
if (aIsScriptable) {
|
||||
// Check each attribute on the prototype to see if we need to do
|
||||
// any additional processing and hookup that would otherwise be
|
||||
// done 'automagically' by SetAttribute().
|
||||
|
@ -428,6 +430,7 @@ nsXULElement::Create(nsXULPrototypeElement* aPrototype,
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*aResult = NS_REINTERPRET_CAST(nsIStyledContent*, element);
|
||||
NS_ADDREF(*aResult);
|
||||
|
|
|
@ -276,7 +276,7 @@ protected:
|
|||
|
||||
public:
|
||||
static nsresult
|
||||
Create(nsXULPrototypeElement* aPrototype, nsIDocument* aDocument, nsIContent** aResult);
|
||||
Create(nsXULPrototypeElement* aPrototype, nsIDocument* aDocument, PRBool aIsScriptable, nsIContent** aResult);
|
||||
|
||||
static nsresult
|
||||
Create(PRInt32 aNameSpaceID, nsIAtom* aTag, nsIContent** aResult);
|
||||
|
|
Загрузка…
Ссылка в новой задаче