RESOLVED FIXED 217745
Fix for multiple accessibility layout tests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=217745
Summary Fix for multiple accessibility layout tests in isolated tree mode.
Andres Gonzalez
Reported 2020-10-14 19:05:06 PDT
Fix for multiple accessibility layout tests in isolated tree mode.
Attachments
Patch (10.02 KB, patch)
2020-10-14 19:16 PDT, Andres Gonzalez
no flags
Andres Gonzalez
Comment 1 2020-10-14 19:16:24 PDT
chris fleizach
Comment 2 2020-10-14 22:41:09 PDT
Comment on attachment 411394 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411394&action=review > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:1142 > + auto* axObject = associatedAXObject(); I think we would need to retrieve this on the main thread > Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1971 > + auto* backingObject = self.axBackingObject; so are we no longer able to use a cached frame?
Andres Gonzalez
Comment 3 2020-10-15 04:11:03 PDT
(In reply to chris fleizach from comment #2) > Comment on attachment 411394 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=411394&action=review > > > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:1142 > > + auto* axObject = associatedAXObject(); > > I think we would need to retrieve this on the main thread The caller needs to dispatch this call the main thread because it returns a SimpleRange. So it doesn't make sense to dispatch here. in Debug mode this is enforced with the assert in associatedAXObject. > > > Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1971 > > + auto* backingObject = self.axBackingObject; > > so are we no longer able to use a cached frame? At least not to compute the position. It seems that the only rect we are able to cache is the elementRect, which in my understanding is the intrinsic coordinates of the element in the layout. Coordinates relative to a view or to the screen need to be corrected by their corresponding offsets and that cannot be cached in the isolated object.
Andres Gonzalez
Comment 4 2020-10-15 04:16:18 PDT
Caching the layout coordinates and making the necessary transformation to other coordinate system on demand, will also eliminate the need of special casing the handling of the returned coordinates in Appkit when in isolated tree mode.
chris fleizach
Comment 5 2020-10-15 11:31:18 PDT
Comment on attachment 411394 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411394&action=review >>> Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:1142 >>> + auto* axObject = associatedAXObject(); >> >> I think we would need to retrieve this on the main thread > > The caller needs to dispatch this call the main thread because it returns a SimpleRange. So it doesn't make sense to dispatch here. in Debug mode this is enforced with the assert in associatedAXObject. should we put an assert mainThread() here just in case? it wasn't clear to me this method would require main thread usage already
EWS
Comment 6 2020-10-15 11:43:34 PDT
Committed r268541: <https://trac.webkit.org/changeset/268541> All reviewed patches have been landed. Closing bug and clearing flags on attachment 411394 [details].
Radar WebKit Bug Importer
Comment 7 2020-10-15 11:44:18 PDT
Note You need to log in before you can comment on or make changes to this bug.