22 lines
867 B
JavaScript
22 lines
867 B
JavaScript
import {Views} from 'resource://vulpes/host/Views.sys.mjs';
|
|
import {Runtime} from 'resource://vulpes/host/Runtime.sys.mjs';
|
|
|
|
export class WebInputParent extends JSWindowActorParent {
|
|
receiveMessage(message) {
|
|
if (message.name === 'Vulpes:WebActivate') {
|
|
if (Runtime.identity(this) || !Runtime.inputIdentity(this)) return;
|
|
for (const entry of Views.entries.values()) {
|
|
if (entry.browser.browsingContext === this.browsingContext.top &&
|
|
entry.browser.ownerDocument.hasFocus()) {
|
|
entry.browser.focus();
|
|
break;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (message.name !== 'Vulpes:InputFocus') throw Error('METHOD_NOT_SUPPORTED');
|
|
if (Runtime.identity(this)) return; // Bundled apps already use VulpesChild.
|
|
Runtime.input.changed(this, message.data);
|
|
}
|
|
didDestroy() { Runtime.input.cleanup(this); }
|
|
}
|