tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit d61558f581f35261dee00d26a1fe2ac56f212148
parent 1f3f9493085b4561507947376fd17afb00e4fc33
Author: Alexandru Marc <amarc@mozilla.com>
Date:   Tue,  4 Nov 2025 22:12:20 +0200

Revert "Bug 1998229 - Push relations cache when dependend IDs change ID. r=morgan." for causing ba failures @ browser_relations_general

This reverts commit a8d63cecdddfc8246f394d2f33ffa3a9c7483c4e.

Diffstat:
Maccessible/generic/DocAccessible.cpp | 22++--------------------
Maccessible/generic/DocAccessible.h | 3+--
Maccessible/tests/browser/relations/head.js | 42++++++++++++------------------------------
3 files changed, 15 insertions(+), 52 deletions(-)

diff --git a/accessible/generic/DocAccessible.cpp b/accessible/generic/DocAccessible.cpp @@ -444,7 +444,7 @@ void DocAccessible::QueueCacheUpdate(LocalAccessible* aAcc, uint64_t aNewDomain, } void DocAccessible::QueueCacheUpdateForDependentRelations( - LocalAccessible* aAcc, const nsAttrValue* aOldId) { + LocalAccessible* aAcc) { if (!mIPCDoc || !aAcc || !aAcc->IsInDocument() || aAcc->IsDefunct()) { return; } @@ -466,24 +466,6 @@ void DocAccessible::QueueCacheUpdateForDependentRelations( QueueCacheUpdate(relatedAcc, CacheDomain::Relations); } - if (aOldId) { - // If we have an old ID, we need to update any accessibles that depended on - // that ID as well. - nsAutoString id; - aOldId->ToString(id); - if (!id.IsEmpty()) { - auto* providers = GetRelProviders(el, id); - if (providers) { - for (auto& provider : *providers) { - if (LocalAccessible* oldRelatedAcc = - GetAccessible(provider->mContent)) { - QueueCacheUpdate(oldRelatedAcc, CacheDomain::Relations); - } - } - } - } - } - if (const nsIFrame* anchorFrame = nsCoreUtils::GetAnchorForPositionedFrame( mPresShell, aAcc->GetFrame())) { // If this accessible is anchored, retrieve the anchor and update its @@ -963,7 +945,7 @@ void DocAccessible::AttributeChanged(dom::Element* aElement, RelocateARIAOwnedIfNeeded(elm); ARIAActiveDescendantIDMaybeMoved(accessible); QueueCacheUpdate(accessible, CacheDomain::DOMNodeIDAndClass); - QueueCacheUpdateForDependentRelations(accessible, aOldValue); + QueueCacheUpdateForDependentRelations(accessible); } // The activedescendant universal property redirects accessible focus events diff --git a/accessible/generic/DocAccessible.h b/accessible/generic/DocAccessible.h @@ -129,8 +129,7 @@ class DocAccessible : public HyperTextAccessible, * We call this when we observe an ID mutation or when an acc is bound * to its document. */ - void QueueCacheUpdateForDependentRelations( - LocalAccessible* aAcc, const nsAttrValue* aOldId = nullptr); + void QueueCacheUpdateForDependentRelations(LocalAccessible* aAcc); /** * Returns true if the instance has shutdown. diff --git a/accessible/tests/browser/relations/head.js b/accessible/tests/browser/relations/head.js @@ -159,32 +159,22 @@ async function testRelated( }, { desc: "Set attribute", - attrs: [{ id: "host", key: attr, value: "dependant1" }], + attrs: [{ key: attr, value: "dependant1" }], expected: [host, null, dependant1], }, { desc: "Change attribute", - attrs: [{ id: "host", key: attr, value: "dependant2" }], + attrs: [{ key: attr, value: "dependant2" }], expected: [null, host, dependant2], }, { desc: "Change attribute to multiple targets", - attrs: [{ id: "host", key: attr, value: "dependant1 dependant2" }], - expected: [host, host, [dependant1, dependant2]], - }, - { - desc: "Change 'dependent2' id to 'invalid'", - attrs: [{ id: "dependant2", key: "id", value: "invalid" }], - expected: [host, host, [dependant1]], - }, - { - desc: "Change 'invalid' id back to 'dependent2'", - attrs: [{ id: "invalid", key: "id", value: "dependant2" }], + attrs: [{ key: attr, value: "dependant1 dependant2" }], expected: [host, host, [dependant1, dependant2]], }, { desc: "Remove attribute", - attrs: [{ id: "host", key: attr }], + attrs: [{ key: attr }], expected: [null, null, null], }, ]; @@ -194,32 +184,24 @@ async function testRelated( tests = tests.concat([ { desc: "Set reflected attribute", - reflectedattr: [ - { id: "host", key: reflectedAttrName, value: ["dependant1"] }, - ], + reflectedattr: [{ key: reflectedAttrName, value: ["dependant1"] }], expected: [host, null, dependant1], }, { desc: "Change reflected attribute", - reflectedattr: [ - { id: "host", key: reflectedAttrName, value: ["dependant2"] }, - ], + reflectedattr: [{ key: reflectedAttrName, value: ["dependant2"] }], expected: [null, host, dependant2], }, { desc: "Change reflected attribute to multiple targets", reflectedattr: [ - { - id: "host", - key: reflectedAttrName, - value: ["dependant2", "dependant1"], - }, + { key: reflectedAttrName, value: ["dependant2", "dependant1"] }, ], expected: [host, host, [dependant1, dependant2]], }, { desc: "Remove reflected attribute", - reflectedattr: [{ id: "host", key: reflectedAttrName, value: null }], + reflectedattr: [{ key: reflectedAttrName, value: null }], expected: [null, null, null], }, ]); @@ -229,12 +211,12 @@ async function testRelated( info(desc); if (attrs) { - for (let { id, key, value } of attrs) { - await invokeSetAttribute(browser, id, key, value); + for (let { key, value } of attrs) { + await invokeSetAttribute(browser, "host", key, value); } } else if (reflectedattr) { - for (let { id, key, value } of reflectedattr) { - await invokeSetReflectedElementsAttribute(browser, id, key, value); + for (let { key, value } of reflectedattr) { + await invokeSetReflectedElementsAttribute(browser, "host", key, value); } }