Closed
Description
Take BrowserAccessibilityManager (https://cs.chromium.org/chromium/src/content/browser/accessibility/browser_accessibility_manager.h?sq=package:chromium&g=0&l=127)
It inherits from two virtual classes, ui::AXTreeObserver and ui::AXTreeManager. If you have a pointer to an AXTreeManager, you need to adjust the pointer to get to a BrowserAccessibilityManager (at least with the way that gcc lays out these classes in memory). Note the different addresses:
(rr) p (ui::AXTreeManager*) 0x000055ea418a02f8
$36 = (content::BrowserAccessibilityManagerAuraLinux *) 0x55ea418a02e0
However, JsDbg will just try to look up the vtable through the address, notice a nonzero displacement, and throw an error.
(This breaks the ax-tree extension on Linux. I'm not sure why it works on Windows?)