Open Bug 1702897 Opened 3 years ago Updated 3 years ago

[Ubuntu 20.20] Enabling "Show Tabbing Order" from devTools slows Firefox on large sites

Categories

(DevTools :: Accessibility Tools, defect, P2)

Firefox 88
defect

Tracking

(Not tracked)

People

(Reporter: vlad.piersec, Unassigned)

Details

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0

Steps to reproduce:

Visit https://reddit.com
Open DevTools,
Go to Accessibility Tab,
Click Show Tabbing Order,

Actual results:

Firefeox was very slow. Current tab was freezing. Opening a new tab took about 30 seconds. Eventually it crashed.

Expected results:

Show me the order of the tabbing.
Be able to open/close tabs.

Group: firefox-core-security
Component: Untriaged → Accessibility Tools
Product: Firefox → DevTools
Flags: needinfo?(jdescottes)

Wanted to check if the feature was enabled on all channels. It is the case, setting P2 / S3.

Considering that the feature will attempt to highlight each and every focusable element, it can take a long time on pages with many elements.
First to retrieve the elements and then to render the overlays.

We might want to limit the number of elements we accept to highlight, or disable the feature on huge pages, or highlight elements in batches.

Severity: -- → S3
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jdescottes)
Priority: -- → P2
Summary: [Ubuntu 20.20] Enabling "Show Tabbing Orderd" from devTools slows Firefox on large sites → [Ubuntu 20.20] Enabling "Show Tabbing Order" from devTools slows Firefox on large sites

here's a profile while turning this on: https://share.firefox.dev/31Z44H6
Most of the time is spent on getAdjustedQuads, which is called from https://searchfox.org/mozilla-central/rev/21110f35dbb95d3c41c8c5bd363ec689900af30f/devtools/server/actors/highlighters/auto-refresh.js#207 , where we only want to know if a node has moved. We might try to come with a better heuristic to check such things, or at least trigger it only after the highlighter was rendered so the delay doesn't feel so bad.

You need to log in before you can comment on or make changes to this bug.