From 5696e3c71a1106be42da8c71679f6a494c51030d Mon Sep 17 00:00:00 2001 From: "ginn.chen%sun.com" Date: Mon, 6 Aug 2007 03:19:37 +0000 Subject: [PATCH] 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 --- .../accessible/src/base/nsDocAccessible.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mozilla/accessible/src/base/nsDocAccessible.cpp b/mozilla/accessible/src/base/nsDocAccessible.cpp index d9ce59e175d..ae4c990f1fd 100644 --- a/mozilla/accessible/src/base/nsDocAccessible.cpp +++ b/mozilla/accessible/src/base/nsDocAccessible.cpp @@ -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 child(aContainer->GetChildAt(index)); @@ -1187,6 +1195,10 @@ void nsDocAccessible::FireTextChangedEventOnDOMCharacterDataModified(nsIContent *aContent, CharacterDataChangeInfo* aInfo) { + if (!mIsContentLoaded || !mDocument) { + return; + } + nsCOMPtr node(do_QueryInterface(aContent)); if (!node) return; @@ -1232,6 +1244,10 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeInserted(nsIContent *aChild, nsIContent *aContainer, PRInt32 aIndexInContainer) { + if (!mIsContentLoaded || !mDocument) { + return; + } + nsCOMPtr node(do_QueryInterface(aChild)); if (!node) return; @@ -1286,6 +1302,10 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeRemoved(nsIContent *aChild, nsIContent *aContainer, PRInt32 aIndexInContainer) { + if (!mIsContentLoaded || !mDocument) { + return; + } + nsCOMPtr node(do_QueryInterface(aChild)); if (!node) return;