author | Alexander Surkov <surkov.alexander@gmail.com> |
Sat, 29 Jan 2011 16:02:02 +0800 | |
changeset 61582 | 4b8113a528f00a023fdfbd6ec499f435c5baf978 |
parent 61581 | c5e11345cd0bd76a72037ea420dee6eca7b77d5b |
child 61583 | e006628cc089ab82641e56c9e9ae08315a97b3a3 |
push id | 18397 |
push user | surkov.alexander@gmail.com |
push date | Sat, 29 Jan 2011 08:03:14 +0000 |
treeherder | mozilla-central@e006628cc089 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | davidb, davidb |
bugs | 626667 |
milestone | 2.0b11pre |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -2824,47 +2824,16 @@ nsAccessible::RemoveChild(nsAccessible* aChild->UnbindFromParent(); mChildren.RemoveElementAt(index); mEmbeddedObjCollector = nsnull; return PR_TRUE; } nsAccessible* -nsAccessible::GetParent() -{ - if (mParent) - return mParent; - - if (IsDefunct()) - return nsnull; - - // XXX: mParent can be null randomly because supposedly we get layout - // notification and invalidate parent-child relations, this accessible stays - // unattached. This should gone after bug 572951. - NS_WARNING("Bad accessible tree!"); - -#ifdef DEBUG - nsDocAccessible *docAccessible = GetDocAccessible(); - NS_ASSERTION(docAccessible, "No document accessible for valid accessible!"); -#endif - - nsAccessible* parent = GetAccService()->GetContainerAccessible(mContent, - mWeakShell); - NS_ASSERTION(parent, "No accessible parent for valid accessible!"); - if (!parent) - return nsnull; - - // Repair parent-child relations. - parent->EnsureChildren(); - NS_ASSERTION(parent == mParent, "Wrong children repair!"); - return parent; -} - -nsAccessible* nsAccessible::GetChildAt(PRUint32 aIndex) { if (EnsureChildren()) return nsnull; nsAccessible *child = mChildren.SafeElementAt(aIndex, nsnull); if (!child) return nsnull;
--- a/accessible/src/base/nsAccessible.h +++ b/accessible/src/base/nsAccessible.h @@ -256,17 +256,17 @@ public: virtual PRBool RemoveChild(nsAccessible* aChild); ////////////////////////////////////////////////////////////////////////////// // Accessible tree traverse methods /** * Return parent accessible. */ - virtual nsAccessible* GetParent(); + nsAccessible* GetParent() const { return mParent; } /** * Return child accessible at the given index. */ virtual nsAccessible* GetChildAt(PRUint32 aIndex); /** * Return child accessible count.
--- a/accessible/src/base/nsApplicationAccessible.cpp +++ b/accessible/src/base/nsApplicationAccessible.cpp @@ -405,22 +405,16 @@ nsApplicationAccessible::GetStateInterna void nsApplicationAccessible::InvalidateChildren() { // Do nothing because application children are kept updated by AppendChild() // and RemoveChild() method calls. } -nsAccessible* -nsApplicationAccessible::GetParent() -{ - return nsnull; -} - //////////////////////////////////////////////////////////////////////////////// // nsAccessible protected methods void nsApplicationAccessible::CacheChildren() { // CacheChildren is called only once for application accessible when its // children are requested because empty InvalidateChldren() prevents its
--- a/accessible/src/base/nsApplicationAccessible.h +++ b/accessible/src/base/nsApplicationAccessible.h @@ -126,18 +126,16 @@ public: // nsAccessible virtual nsresult GetARIAState(PRUint32 *aState, PRUint32 *aExtraState); virtual PRUint32 NativeRole(); virtual nsresult GetStateInternal(PRUint32 *aState, PRUint32 *aExtraState); virtual void InvalidateChildren(); - virtual nsAccessible* GetParent(); - protected: // nsAccessible virtual void CacheChildren(); virtual nsAccessible* GetSiblingAtOffset(PRInt32 aOffset, nsresult *aError = nsnull); private:
--- a/accessible/tests/mochitest/events/test_docload.html +++ b/accessible/tests/mochitest/events/test_docload.html @@ -122,21 +122,16 @@ { // Get application root accessible. var docAcc = getAccessible(document); while (docAcc) { this.mRootAcc = docAcc; try { docAcc = docAcc.parent; } catch (e) { - // XXX: it may randomaly fail on propertypage accessible of browser's - // tabbbrowser if nsIAccessible::parent returns cached parent only. - // This should gone after bug 572951. - // Error: failed | Can't get parent for [ 'panel1277435313424' , - // role: propertypage] ok(false, "Can't get parent for " + prettyName(docAcc)); throw e; } } this.eventSeq = [ new invokerChecker(EVENT_REORDER, this.mRootAcc) ];