Browsers can switch at runtime from remote to non-remote and vice versa,
which on the C++ side is detected from a XBL binding change which causes
nsIRemoteBrowser to either be implemented or not. Custom Elements can't
change at runtime in the same way, so unifying on a single [implements]
will allow browser (both remote and non-remote) to be migrated to a single
Custom Element.
To keep current functionality, this updates Qi calls into nsIRemoteBrowser
to instead Qi into nsIBrowser and check isRemoteBrowser.
Differential Revision: https://phabricator.services.mozilla.com/D3346
--HG--
extra : moz-landing-system : lando
This patch goes through and changes a bunch of places in our tree which mention
this bug to use the new feature, making the methods more strongly typed.
There are probably more places in tree which could be changed, but I didn't try
to find them.
This changes the `relatedBrowser` property which held a <xul:browser> to the
more explicit `sameProcessAsFrameLoader` which takes an nsIFrameLoader.
This clarifies the purpose of the property and also (by switching to the frame
loader) makes it easier to set in some contexts.
MozReview-Commit-ID: LnEvSP8zkto
--HG--
extra : rebase_source : f9f4c07995ef39f1ccd5042e9ae3df37879423b6
This adds a single flag, SWAP_KEEP_PERMANENT_KEY, which tells the
browser that when it performs the swap, the permanent key should stick
with the browser, rather than following the frameLoader.
This patch also adds the implementation of tabbrowser.swapBrowsers,
which was previously absent, despite being referenced.
MozReview-Commit-ID: CLwJYzpY8Pp
Add swapBrowsers() for frameloader or other platform components to swap frameloaders
and <xul:browser> listeners.
Add closeBrowser() for chrome process top-level frameloader to correctly remove /
close a tab.
MozReview-Commit-ID: KzM0xL8goUN
--HG--
extra : rebase_source : 87fe1a611b8d5094b0cdc09d503e6793799bab03
nsIBrowser looks not strictly related to IPC but more like an XPCOM
representation of <xul:browser>. Since even nsIRemoteBrowser which is
for <xul:remote-browser> lives in dom/interfaces, moving nsIBrowser
to dom/interfaces makes more sense.
MozReview-Commit-ID: 5DnWaBrkzaJ
--HG--
rename : dom/ipc/nsIBrowser.idl => dom/interfaces/base/nsIBrowser.idl
extra : rebase_source : 68fed039fda73b60683b3297d14b2bad78e07483