gecko-dev/accessible/ipc
James Teh e7f4ed385b Bug 1570848: When an OuterDocAccessible is constructed, send it as the parent COM proxy for its remote document (if any). r=MarcoZ
Normally, the OuterDocAccessible is created first and the DocAccessibleParent for a remote document is created after that.
So, we get the OuterDocAccessible and call DocAccessibleParent::SendParentCOMProxy when the DocAccessibleParent is constructed (BrowserParent::RecvPDocAccessibleConstructor).
However, sometimes, the OuterDocAccessible is created *after* the DocAccessibleParent.
This sometimes happens for extension popups, for example.
In that case, we previously never sent the parent COM proxy.
Aside from leaving the remote document with a null parent, this also meant we never sent any events for the document, since events are buffered for remote documents until the parent COM proxy is received.
This effectively left the remote document (e.g. extension popup) inaccessible.

Now, we also call SendParentCOMProxy in the OuterDocAccessible constructor.
Note that this doesn't result in duplicates because if the OuterDocAccessible was created first, there won't be a DocAccessibleParent for the remote document yet, so this code won't run.

That said, if the OuterDocAccessible is recreated (e.g. due to frame reconstruction), we may call SendParentCOMProxy again.
This should be okay, but it required an assertion in DocAccessibleChild::RecvParentCOMProxy to be tweaked.

Differential Revision: https://phabricator.services.mozilla.com/D40358

--HG--
extra : moz-landing-system : lando
2019-08-02 04:24:54 +00:00
..
other Bug 1499041 - Remove libFuzzer flags from ipc/chromium/. r=froydnj 2019-07-24 14:13:30 +00:00
win Bug 1570848: When an OuterDocAccessible is constructed, send it as the parent COM proxy for its remote document (if any). r=MarcoZ 2019-08-02 04:24:54 +00:00
DocAccessibleChildBase.cpp Bug 1523969 part 1 - Move method definition inline comments to new line in accessible/. r=jamie 2019-02-25 16:02:26 -06:00
DocAccessibleChildBase.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
DocAccessibleParent.cpp Bug 1570038: When sending the parent COM proxy for a remote document, return early if the parent COM proxy can't be retrieved. r=yzen 2019-08-02 03:40:14 +00:00
DocAccessibleParent.h Bug 1570848: When an OuterDocAccessible is constructed, send it as the parent COM proxy for its remote document (if any). r=MarcoZ 2019-08-02 04:24:54 +00:00
IPCTypes.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
ProxyAccessibleBase.cpp Bug 1534395 - Rename TabParent to BrowserParent. r=nika 2019-04-09 16:38:15 -05:00
ProxyAccessibleBase.h Bug 1520611 - Consolidate ProxyAccessible::MustPruneChildren into nsAccUtils. r=Jamie 2019-01-24 00:23:30 +00:00
ProxyAccessibleShared.h Bug 1525980 - Make announcement events work over IPC. r=Jamie 2019-02-14 17:42:47 +00:00
moz.build Bug 1528651 - Re-enable warnings-as-errors on Windows in some directories. r=dmajor 2019-02-17 15:03:02 +09:00