mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
Backed out changeset 52345a440234 (bug 1748450) for causing crashes (Bug 1751268).
This commit is contained in:
parent
5df06ce671
commit
8508eb2c77
@ -1094,7 +1094,7 @@ void DocAccessible::BindToDocument(LocalAccessible* aAccessible,
|
||||
}
|
||||
}
|
||||
|
||||
if (mIPCDoc) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
mInsertedAccessibles.EnsureInserted(aAccessible);
|
||||
}
|
||||
}
|
||||
@ -1414,7 +1414,7 @@ void DocAccessible::ProcessBoundsChanged() {
|
||||
}
|
||||
|
||||
void DocAccessible::SendAccessiblesWillMove() {
|
||||
if (!mIPCDoc) {
|
||||
if (!mIPCDoc || !StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
return;
|
||||
}
|
||||
nsTArray<uint64_t> ids;
|
||||
@ -2345,7 +2345,7 @@ bool DocAccessible::MoveChild(LocalAccessible* aChild,
|
||||
if (curParent == aNewParent) {
|
||||
MOZ_ASSERT(aChild->IndexInParent() != aIdxInParent, "No move case");
|
||||
curParent->RelocateChild(aIdxInParent, aChild);
|
||||
if (mIPCDoc) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
TrackMovedAccessible(aChild);
|
||||
}
|
||||
|
||||
@ -2374,7 +2374,7 @@ bool DocAccessible::MoveChild(LocalAccessible* aChild,
|
||||
|
||||
TreeMutation imut(aNewParent);
|
||||
aNewParent->InsertChildAt(aIdxInParent, aChild);
|
||||
if (mIPCDoc) {
|
||||
if (StaticPrefs::accessibility_cache_enabled_AtStartup()) {
|
||||
TrackMovedAccessible(aChild);
|
||||
}
|
||||
imut.AfterInsertion(aChild);
|
||||
|
@ -507,9 +507,6 @@ class DocAccessible : public HyperTextAccessibleWrap,
|
||||
*/
|
||||
void ProcessBoundsChanged();
|
||||
|
||||
/**
|
||||
* Only works in content process documents.
|
||||
*/
|
||||
bool IsAccessibleBeingMoved(LocalAccessible* aAcc) {
|
||||
return mMovedAccessibles.Contains(aAcc);
|
||||
}
|
||||
@ -747,8 +744,8 @@ class DocAccessible : public HyperTextAccessibleWrap,
|
||||
void SetRoleMapEntryForDoc(dom::Element* aElement);
|
||||
|
||||
/**
|
||||
* This must be called whenever an Accessible is moved in a content process.
|
||||
* It keeps track of Accessibles moved during this tick.
|
||||
* This must be called whenever an Accessible is moved if the cache is
|
||||
* enabled. It keeps track of Accessibles moved during this tick.
|
||||
*/
|
||||
void TrackMovedAccessible(LocalAccessible* aAcc);
|
||||
|
||||
@ -758,11 +755,11 @@ class DocAccessible : public HyperTextAccessibleWrap,
|
||||
DocAccessibleChild* mIPCDoc;
|
||||
|
||||
nsTHashSet<RefPtr<LocalAccessible>> mMaybeBoundsChanged;
|
||||
// A set of Accessibles moved during this tick. Only used in content
|
||||
// processes.
|
||||
// A set of Accessibles moved during this tick. Only used if the cache is
|
||||
// enabled.
|
||||
nsTHashSet<RefPtr<LocalAccessible>> mMovedAccessibles;
|
||||
// A set of Accessibles inserted during this tick. Only used in content
|
||||
// processes. This is needed to prevent insertions + moves of the same
|
||||
// A set of Accessibles inserted during this tick. Only used if the cache is
|
||||
// enabled. This is needed to prevent insertions + moves of the same
|
||||
// Accessible in the same tick from being tracked as moves.
|
||||
nsTHashSet<RefPtr<LocalAccessible>> mInsertedAccessibles;
|
||||
};
|
||||
|
@ -11,6 +11,11 @@ loadScripts(
|
||||
{ name: "states.js", dir: MOCHITESTS_DIR }
|
||||
);
|
||||
|
||||
const isCacheEnabled = Services.prefs.getBoolPref(
|
||||
"accessibility.cache.enabled",
|
||||
false
|
||||
);
|
||||
|
||||
/**
|
||||
* Test moving Accessibles:
|
||||
* 1. A moved Accessible keeps the same Accessible.
|
||||
@ -53,5 +58,11 @@ addAccessibleTask(
|
||||
// was moved. Ensure it is dead.
|
||||
ok(isDefunct(heading), "heading is dead");
|
||||
},
|
||||
{ chrome: true, topLevel: true, iframe: true, remoteIframe: true }
|
||||
{
|
||||
chrome: true,
|
||||
// Moves cause RemoteAccessible re-creation without the cache enabled.
|
||||
topLevel: isCacheEnabled,
|
||||
iframe: isCacheEnabled,
|
||||
remoteIframe: isCacheEnabled,
|
||||
}
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user