зеркало из https://github.com/mozilla/gecko-dev.git
43f890d3a4
Previously, DocAccessibleParent::AddChildDoc used the presence of a BrowserBridgeParent to determine whether the child document was in a different process to the parent document. While this is normally the case, there can be a point while the embedded document is loading where there is a temporary document in the same (embedder) process. In this case, we tried to get the COM proxy for the child document. For a child document in the same process, this isn't available yet, so this caused infinite recursion (stack overflow) in ProxyAccessible::GetCOMInterface. Instead of using the presence of BrowserBridgeParent, first check whether the child document is at the top level of its content process. If it isn't, the document is in the same process as its parent. Also, add a DIAGNOSTIC_ASSERT to ProxyAccessible::GetCOMInterface which will fire if no COM proxy or MSAA child id has been set. Previously, we just recursed infinitely and overflowed the stack in this case, which is painful to debug. Differential Revision: https://phabricator.services.mozilla.com/D37344 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
android | ||
aom | ||
atk | ||
base | ||
generic | ||
html | ||
interfaces | ||
ipc | ||
jsat | ||
mac | ||
other | ||
tests | ||
windows | ||
xpcom | ||
xul | ||
moz.build |