Update JugglerFrameChild.jsm
Signed-off-by: Radeonares32 <56337258+Radeonares32@users.noreply.github.com>
This commit is contained in:
parent
a6b320e362
commit
6e875b51ae
|
|
@ -7,32 +7,32 @@ const Ci = Components.interfaces;
|
||||||
const helper = new Helper();
|
const helper = new Helper();
|
||||||
|
|
||||||
let sameProcessInstanceNumber = 0;
|
let sameProcessInstanceNumber = 0;
|
||||||
|
|
||||||
const topBrowingContextToAgents = new Map();
|
const topBrowingContextToAgents = new Map();
|
||||||
|
|
||||||
class JugglerFrameChild extends JSWindowActorChild {
|
class JugglerFrameChild extends JSWindowActorChild {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this._eventListeners = [];
|
this._eventListeners = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
handleEvent(aEvent) {
|
handleEvent(aEvent) {
|
||||||
const agents = this._agents();
|
const agents = this._agents();
|
||||||
if (!agents)
|
if (!agents) return;
|
||||||
return;
|
|
||||||
if (aEvent.type === 'DOMWillOpenModalDialog') {
|
switch (aEvent.type) {
|
||||||
|
case 'DOMWillOpenModalDialog':
|
||||||
agents.channel.pause();
|
agents.channel.pause();
|
||||||
return;
|
break;
|
||||||
}
|
case 'DOMModalDialogClosed':
|
||||||
if (aEvent.type === 'DOMModalDialogClosed') {
|
|
||||||
agents.channel.resumeSoon();
|
agents.channel.resumeSoon();
|
||||||
return;
|
break;
|
||||||
}
|
default:
|
||||||
if (aEvent.target === this.document) {
|
if (aEvent.target === this.document) {
|
||||||
agents.pageAgent.onWindowEvent(aEvent);
|
agents.pageAgent.onWindowEvent(aEvent);
|
||||||
agents.frameTree.onWindowEvent(aEvent);
|
agents.frameTree.onWindowEvent(aEvent);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_agents() {
|
_agents() {
|
||||||
|
|
@ -46,13 +46,9 @@ class JugglerFrameChild extends JSWindowActorChild {
|
||||||
this._agents()?.pageAgent.onWindowEvent(event);
|
this._agents()?.pageAgent.onWindowEvent(event);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (this.document.documentURI.startsWith('moz-extension://'))
|
if (this._isMozExtension()) return;
|
||||||
return;
|
|
||||||
|
|
||||||
// Child frame events will be forwarded to related top-level agents.
|
|
||||||
if (this.browsingContext.parent)
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
if (!this.browsingContext.parent) {
|
||||||
let agents = topBrowingContextToAgents.get(this.browsingContext);
|
let agents = topBrowingContextToAgents.get(this.browsingContext);
|
||||||
if (!agents) {
|
if (!agents) {
|
||||||
agents = initialize(this.browsingContext, this.docShell);
|
agents = initialize(this.browsingContext, this.docShell);
|
||||||
|
|
@ -61,25 +57,26 @@ class JugglerFrameChild extends JSWindowActorChild {
|
||||||
agents.channel.bindToActor(this);
|
agents.channel.bindToActor(this);
|
||||||
agents.actor = this;
|
agents.actor = this;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
didDestroy() {
|
didDestroy() {
|
||||||
helper.removeListeners(this._eventListeners);
|
helper.removeListeners(this._eventListeners);
|
||||||
|
|
||||||
if (this.browsingContext.parent)
|
if (this.browsingContext.parent) return;
|
||||||
return;
|
|
||||||
|
|
||||||
const agents = topBrowingContextToAgents.get(this.browsingContext);
|
const agents = topBrowingContextToAgents.get(this.browsingContext);
|
||||||
// The agents are already re-bound to a new actor.
|
if (agents.actor !== this) return;
|
||||||
if (agents.actor !== this)
|
|
||||||
return;
|
|
||||||
|
|
||||||
topBrowingContextToAgents.delete(this.browsingContext);
|
topBrowingContextToAgents.delete(this.browsingContext);
|
||||||
|
|
||||||
agents.channel.resetTransport();
|
agents.channel.resetTransport();
|
||||||
agents.pageAgent.dispose();
|
agents.pageAgent.dispose();
|
||||||
agents.frameTree.dispose();
|
agents.frameTree.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_isMozExtension() {
|
||||||
|
return this.document.documentURI.startsWith('moz-extension://');
|
||||||
|
}
|
||||||
|
|
||||||
receiveMessage() {}
|
receiveMessage() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue