Closed Bug 1735955 Opened 3 years ago Closed 3 years ago

Cached bounds all 0s for many (most?) elements on Google search

Categories

(Core :: Disability Access APIs, task)

task

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox97 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

Details

(Whiteboard: [ctw-m0])

Attachments

(1 file)

While trying to get NVDA vbufs to work with CTW, I discovered that bounds for many (if not most) elements on google.com return all 0s! As examples, the About, Store, Gmail, Images, Sign in, Advertising, Business, How Search works, Privacy and Terms links, as well as the search box, the Google Search button and the I'm Feeling Lucky buttons, all return all 0s. This seems bad. 😢

Assignee: nobody → mreschenberg

Huh... I can reproduce this sometimes but not always, and not always on the same elements.

It looks like, though, when it does happen its because querying the cache fails to return bounds. We end up returning IntRect() at the end of Bounds() which is 0,0,0,0

More often than not, I can't reproduce on an initial page load of google.com, but can reproduce on a subsequent refresh.

Oh! That's helpful. It led me to a hypothesis.

I wonder if the accessibles in question are being moved, but not re-created as in bug 1739050. That means we'd have the same LocalAccessible in the content process, but get a new RemoteAccessible in the parent process. It looks like LocalAccessible::BundleFieldsForCache skips bounds if mBounds is equal. That normally makes sense, but in this case, we're doing a full initial cache update (not ideal, but currently unavoidable). We may be able to avoid this in future, but for now, ignoring mBounds for CacheUpdateType::Initial should hopefully fix this.

Ooh interesting. ni'ing myself to look at this more tomorrow

Flags: needinfo?(mreschenberg)

I decided to just fix this since I'd already identified the fix. :)

Assignee: mreschenberg → jteh
Flags: needinfo?(mreschenberg)
Whiteboard: [ctw-m0]
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9a9894f6d4ad Always push bounds for an initial cache push, irrespective of LocalAccessible::mBounds. r=morgan
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 97 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: