Bug 1454441 - 4. Fix Fennec remote debugging; r=esawin

Currently Fennec remote debugging has a bug where custom tabs / PWA can
permanently override debugging of Fennec tabs. Fix that bug by switching
between the browser/geckoview  window types depending on if the Fennec
window is gaining or losing focus.

MozReview-Commit-ID: KEXPwAfl32X

--HG--
extra : rebase_source : c9dd78aa426f2fe27e58ca0fe329e970c1485c35
This commit is contained in:
Jim Chen 2018-04-20 15:51:30 -04:00
Родитель 51abedf496
Коммит f5ad336d62
2 изменённых файлов: 24 добавлений и 2 удалений

Просмотреть файл

@ -12,9 +12,30 @@ XPCOMUtils.defineLazyGetter(this, "DebuggerServer", () => {
});
var RemoteDebugger = {
init() {
init(aWindow) {
this._windowType = "navigator:browser";
USBRemoteDebugger.init();
WiFiRemoteDebugger.init();
const listener = (event) => {
if (event.target !== aWindow) {
return;
}
const newType = (event.type === "activate") ? "navigator:browser"
: "navigator:geckoview";
if (this._windowType === newType) {
return;
}
this._windowType = newType;
if (this.isAnyEnabled) {
this.initServer();
}
};
aWindow.addEventListener("activate", listener, { mozSystemGroup: true });
aWindow.addEventListener("deactivate", listener, { mozSystemGroup: true });
},
get isAnyEnabled() {
@ -184,6 +205,7 @@ var RemoteDebugger = {
// Allow debugging of chrome for any process
DebuggerServer.allowChromeProcess = true;
DebuggerServer.chromeWindowType = this._windowType;
}
};

Просмотреть файл

@ -428,7 +428,7 @@ var BrowserApp = {
XPInstallObserver.init();
CharacterEncoding.init();
ActivityObserver.init();
RemoteDebugger.init();
RemoteDebugger.init(window);
DesktopUserAgent.init();
Distribution.init();
Tabs.init();