mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 629912 - 4.0b11pre crash [@ NotificationController::TextEnumerator(nsPtrHashKey<nsIContent>*, void*) ][@ nsINode::GetFlags()], r=davidb, a=betaN+
This commit is contained in:
parent
06f1c2af92
commit
fb0f6d54cf
@ -161,6 +161,14 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancel pending text update.
|
||||||
|
*/
|
||||||
|
inline void CancelTextUpdate(nsIContent* aTextNode)
|
||||||
|
{
|
||||||
|
mTextHash.RemoveEntry(aTextNode);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pend accessible tree update for content insertion.
|
* Pend accessible tree update for content insertion.
|
||||||
*/
|
*/
|
||||||
|
@ -53,12 +53,13 @@
|
|||||||
#include "nsTArray.h"
|
#include "nsTArray.h"
|
||||||
#include "nsRefPtrHashtable.h"
|
#include "nsRefPtrHashtable.h"
|
||||||
|
|
||||||
|
class AccEvent;
|
||||||
class AccGroupInfo;
|
class AccGroupInfo;
|
||||||
class EmbeddedObjCollector;
|
class EmbeddedObjCollector;
|
||||||
class nsHyperTextAccessible;
|
|
||||||
class nsAccessible;
|
class nsAccessible;
|
||||||
class AccEvent;
|
class nsHyperTextAccessible;
|
||||||
struct nsRoleMapEntry;
|
struct nsRoleMapEntry;
|
||||||
|
class nsTextAccessible;
|
||||||
|
|
||||||
struct nsRect;
|
struct nsRect;
|
||||||
class nsIContent;
|
class nsIContent;
|
||||||
@ -359,6 +360,9 @@ public:
|
|||||||
inline bool IsHyperText() const { return mFlags & eHyperTextAccessible; }
|
inline bool IsHyperText() const { return mFlags & eHyperTextAccessible; }
|
||||||
nsHyperTextAccessible* AsHyperText();
|
nsHyperTextAccessible* AsHyperText();
|
||||||
|
|
||||||
|
inline bool IsTextLeaf() const { return mFlags & eTextLeafAccessible; }
|
||||||
|
nsTextAccessible* AsTextLeaf();
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
// HyperLinkAccessible
|
// HyperLinkAccessible
|
||||||
|
|
||||||
@ -499,7 +503,8 @@ protected:
|
|||||||
* @note keep these flags in sync with ChildrenFlags
|
* @note keep these flags in sync with ChildrenFlags
|
||||||
*/
|
*/
|
||||||
enum AccessibleTypes {
|
enum AccessibleTypes {
|
||||||
eHyperTextAccessible = 1 << 2
|
eHyperTextAccessible = 1 << 2,
|
||||||
|
eTextLeafAccessible = 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -2057,6 +2057,9 @@ nsDocAccessible::UncacheChildrenInSubtree(nsAccessible* aRoot)
|
|||||||
for (PRUint32 idx = 0; idx < count; idx++)
|
for (PRUint32 idx = 0; idx < count; idx++)
|
||||||
UncacheChildrenInSubtree(aRoot->GetCachedChildAt(idx));
|
UncacheChildrenInSubtree(aRoot->GetCachedChildAt(idx));
|
||||||
|
|
||||||
|
if (aRoot->IsTextLeaf())
|
||||||
|
mNotificationController->CancelTextUpdate(aRoot->GetContent());
|
||||||
|
|
||||||
if (aRoot->IsPrimaryForNode() &&
|
if (aRoot->IsPrimaryForNode() &&
|
||||||
mNodeToAccessibleMap.Get(aRoot->GetNode()) == aRoot)
|
mNodeToAccessibleMap.Get(aRoot->GetNode()) == aRoot)
|
||||||
mNodeToAccessibleMap.Remove(aRoot->GetNode());
|
mNodeToAccessibleMap.Remove(aRoot->GetNode());
|
||||||
|
@ -48,6 +48,7 @@ nsTextAccessible::
|
|||||||
nsTextAccessible(nsIContent *aContent, nsIWeakReference *aShell) :
|
nsTextAccessible(nsIContent *aContent, nsIWeakReference *aShell) :
|
||||||
nsLinkableAccessible(aContent, aShell)
|
nsLinkableAccessible(aContent, aShell)
|
||||||
{
|
{
|
||||||
|
mFlags |= eTextLeafAccessible;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRUint32
|
PRUint32
|
||||||
|
@ -61,5 +61,15 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// nsAccessible downcast method
|
||||||
|
|
||||||
|
inline nsTextAccessible*
|
||||||
|
nsAccessible::AsTextLeaf()
|
||||||
|
{
|
||||||
|
return mFlags & eTextLeafAccessible ?
|
||||||
|
static_cast<nsTextAccessible*>(this) : nsnull;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user