Bug 284491
| Summary: | AX: When Safari is full-screen, AXIsolatedObject::screenRelativePosition() hits the main-thread unnecessarily | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Tyler Wilcock <tyler_w> |
| Component: | Accessibility | Assignee: | Tyler Wilcock <tyler_w> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | andresg_22, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 18 | ||
| Hardware: | All | ||
| OS: | All | ||
Tyler Wilcock
This happens because after https://bugs.webkit.org/show_bug.cgi?id=267957, AXIsolatedObject::screenRelativePosition() uses the cached root screen relative position to compute the screen relative position for every other object. But because we intentionally don't cache properties that are in their default-value state, we wouldn't cache AXPropertyName::ScreenRelativePosition {0, 0} for the root (which is the right value when Safari is full-screen). Thus, this:
if (auto rootPoint = rootNode->optionalAttributeValue<FloatPoint>(AXPropertyName::ScreenRelativePosition))
Fails to evaluate to true, and we hit the main-thread.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/141314514>
Tyler Wilcock
Pull request: https://github.com/WebKit/WebKit/pull/37818
EWS
Committed 287754@main (969b96235a07): <https://commits.webkit.org/287754@main>
Reviewed commits have been landed. Closing PR #37818 and removing active labels.