RESOLVED FIXED 209576
[WebAccessibilityObjectWrapper remoteAccessibilityParentObject should be cached to avoid hitting the main thread often.
https://bugs.webkit.org/show_bug.cgi?id=209576
Summary [WebAccessibilityObjectWrapper remoteAccessibilityParentObject should be cach...
Andres Gonzalez
Reported 2020-03-25 18:57:15 PDT
[WebAccessibilityObjectWrapper remoteAccessibilityParentObject should be cached to avoid hitting the main thread often.
Attachments
Patch (7.57 KB, patch)
2020-03-25 19:09 PDT, Andres Gonzalez
no flags
Patch (16.36 KB, patch)
2020-03-28 15:28 PDT, Andres Gonzalez
no flags
Andres Gonzalez
Comment 1 2020-03-25 19:09:21 PDT
chris fleizach
Comment 2 2020-03-25 19:58:53 PDT
Comment on attachment 394568 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394568&action=review > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:906 > + RetainPtr<RemoteAXObjectRef> m_remoteParentObject; should this be a WeakPtr so it goes away on its own?
Andres Gonzalez
Comment 3 2020-03-26 20:00:38 PDT
(In reply to chris fleizach from comment #2) > Comment on attachment 394568 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=394568&action=review > > > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:906 > > + RetainPtr<RemoteAXObjectRef> m_remoteParentObject; > > should this be a WeakPtr so it goes away on its own? RemoteAXObjectRef is an id. WeakPtr does not work with id which is the same as void *. I believe the only way to hold a reference to this id is with RetainPtr. I don't know however if there is another way to do the equivalent to @property (weak) id.
chris fleizach
Comment 4 2020-03-27 00:56:50 PDT
Comment on attachment 394568 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394568&action=review > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:381 > + m_remoteParentObject = object.remoteParentObject(); I think we only want to do this for the top level scroll view... see logic in scrollViewParent Might be good to store it in the attribute hash so that we don't have to burn an ivar memory for every isolated object, when only 1 of them needs it
Andres Gonzalez
Comment 5 2020-03-28 15:28:40 PDT
Andres Gonzalez
Comment 6 2020-03-28 15:33:02 PDT
(In reply to chris fleizach from comment #4) > Comment on attachment 394568 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=394568&action=review > > > Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:381 > > + m_remoteParentObject = object.remoteParentObject(); > > I think we only want to do this for the top level scroll view... see logic in > > scrollViewParent > > Might be good to store it in the attribute hash so that we don't have to > burn an ivar memory for every isolated object, when only 1 of them needs it Cached it in the variant along with all other properties. Also moved the PlatformWidget cached value to the Variant as well. Cache it only for scroll views, however this property can be requested for all objects, so had to return it for all objects as you see in AXIsolatedObjectMac.mm.
EWS
Comment 7 2020-03-30 13:07:17 PDT
Committed r259220: <https://trac.webkit.org/changeset/259220> All reviewed patches have been landed. Closing bug and clearing flags on attachment 394844 [details].
Radar WebKit Bug Importer
Comment 8 2020-03-30 13:08:15 PDT
Note You need to log in before you can comment on or make changes to this bug.