зеркало из https://github.com/mozilla/gecko-dev.git
85f5946629
When a BrowsingContext changes from being local to remote, we have to change all window proxies from being local to remote, using transplanting. The actual window proxy becomes a remote window proxy. Cross compartment wrappers (CCWs) to the window proxy also become remote window proxies in their respective compartments, rather than CCWs to a remote proxy in the old compartment of the window proxy, because the window is no longer actually in that compartment. This also avoids having to figure out what Xray behavior for remote window proxies should be. This patch uses the transplanting support I added to GetRemoteOuterWindowProxy() in the previous patch to ensure that the remote proxy map holds the correct value after transplanting finishes. It drops the requirement that both arguments to JS_TransplantObject have the same class, because we need to transplant a window proxy with a remote window proxy. It also deals with this by not adding origobj to the wrapper map unless it is a CCW, to handle transplanting to a remote proxy. The core design here, with the remote window proxies in every compartment, is taken from a patch by peterv. Differential Revision: https://phabricator.services.mozilla.com/D35730 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
ductwork/debugger | ||
examples | ||
ipc | ||
public | ||
rust | ||
src | ||
xpconnect | ||
app.mozbuild | ||
ffi.configure | ||
moz.build | ||
moz.configure | ||
sub.configure |