Soon, support will be added to resolve accessibility object frames off the main-thread. To avoid the need to recalculate the frame of every object every time a scroll happens, we need to be able to compute renderer position offsets that exclude scroll offsets.
<rdar://problem/106125806>
Created attachment 465256 [details] Patch
(In reply to Tyler Wilcock from comment #2) > Created attachment 465256 [details] > Patch --- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h +++ b/Source/WebCore/accessibility/AccessibilityObjectInterface.h - virtual LayoutRect boundingBoxRect() const = 0; + virtual LayoutRect boundingBoxRect(OptionSet<MapCoordinatesMode> = { }) const = 0; Why do we need to expose this in the AXCoreObject interface? I would think that this is only relevant in the AccessibilityRenderObject class hierarchy, maybe in AccessibilityNodeObject, but don't think it has to be all the way to the interface and thus to the AXIsolatedObjects.
(In reply to Andres Gonzalez from comment #3) > (In reply to Tyler Wilcock from comment #2) > > Created attachment 465256 [details] > > Patch > > --- a/Source/WebCore/accessibility/AccessibilityObjectInterface.h > +++ b/Source/WebCore/accessibility/AccessibilityObjectInterface.h > > - virtual LayoutRect boundingBoxRect() const = 0; > + virtual LayoutRect boundingBoxRect(OptionSet<MapCoordinatesMode> = { }) > const = 0; > > Why do we need to expose this in the AXCoreObject interface? I would think > that this is only relevant in the AccessibilityRenderObject class hierarchy, > maybe in AccessibilityNodeObject, but don't think it has to be all the way > to the interface and thus to the AXIsolatedObjects. We don't :) my larger patch actually moved boundingBoxRect to be virtual on AccessibilityObject rather than AXCoreObject. But I wanted to make this patch as straight-forward and atomic as possible, so I excluded that change from this patch.
Created attachment 465290 [details] Patch