diff options
author | Andre de la Rocha <andre.rocha@qt.io> | 2019-08-30 20:02:58 +0200 |
---|---|---|
committer | Andre de la Rocha <andre.rocha@qt.io> | 2019-09-02 13:53:56 +0200 |
commit | 1c55a6caf1fc2b8a73a9a756bcf6894c5d4e4398 (patch) | |
tree | e36947565b20f9870a40456e4d1243a9580e98ab /header.LGPL3-COMM | |
parent | 364b9c80de069ff2c5970d0a9591c00c71e871cf (diff) |
Windows QPA: Fix crash in UI Automation with Youdao Dictionary
Unlike other accessibility classes, QAccessibleTree is returning a
different instance, with a different ID, every time child()/childAt()
are called for the same child elements. This causes
ElementProviderFromPoint to return different IRawElementProviderSimple
instances every time, for the same coordinates, which causes the
NetEase Youdao Dictionary to call it in an infinite loop, allocating
new QAccessibleTableCell instances, until the application crashes.
The crash happened, for instance, just by using the mouse over
Qt Creator's project tree while Youdao Dictionary was running. While
the root cause seems to be QAccessibleTree not caching and reusing
objects, this change adds a layer of safety to the UI Automation
classes in the Windows QPA, to avoid causing a crash until
QAccessibleTree, and possibly other accessibility classes, are fixed.
Fixes: QTBUG-77974
Change-Id: I9b0c8174bc0fd9ef7f5626ee0b72c8a9626520ee
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'header.LGPL3-COMM')
0 files changed, 0 insertions, 0 deletions