Bug 389973 GTK accessibility make rendering of large file list pages slow, busy freezing all UI

r=aaronleventhal a=dsicore


git-svn-id: svn://10.0.0.236/trunk@231517 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
ginn.chen%sun.com
2007-08-06 03:19:37 +00:00
parent 659ea4b3c3
commit 5696e3c71a

View File

@@ -1121,6 +1121,14 @@ void nsDocAccessible::ContentAppended(nsIDocument *aDocument,
nsIContent* aContainer,
PRInt32 aNewIndexInContainer)
{
if (!mIsContentLoaded || !mDocument) {
if (mAccessNodeCache.Count() <= 1) {
// See comments in nsDocAccessible::InvalidateCacheSubtree
InvalidateChildren();
}
return;
}
PRUint32 childCount = aContainer->GetChildCount();
for (PRUint32 index = aNewIndexInContainer; index < childCount; index ++) {
nsCOMPtr<nsIContent> child(aContainer->GetChildAt(index));
@@ -1187,6 +1195,10 @@ void
nsDocAccessible::FireTextChangedEventOnDOMCharacterDataModified(nsIContent *aContent,
CharacterDataChangeInfo* aInfo)
{
if (!mIsContentLoaded || !mDocument) {
return;
}
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(aContent));
if (!node)
return;
@@ -1232,6 +1244,10 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeInserted(nsIContent *aChild,
nsIContent *aContainer,
PRInt32 aIndexInContainer)
{
if (!mIsContentLoaded || !mDocument) {
return;
}
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(aChild));
if (!node)
return;
@@ -1286,6 +1302,10 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeRemoved(nsIContent *aChild,
nsIContent *aContainer,
PRInt32 aIndexInContainer)
{
if (!mIsContentLoaded || !mDocument) {
return;
}
nsCOMPtr<nsIDOMNode> node(do_QueryInterface(aChild));
if (!node)
return;