mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
var { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
|
|
const { Services } = Cu.import('resource://gre/modules/Services.jsm');
|
|
const { SystemAppProxy } = Cu.import('resource://gre/modules/SystemAppProxy.jsm');
|
|
|
|
var processId;
|
|
|
|
function peekChildId(aSubject, aTopic, aData) {
|
|
Services.obs.removeObserver(peekChildId, 'recording-device-events');
|
|
Services.obs.removeObserver(peekChildId, 'recording-device-ipc-events');
|
|
let props = aSubject.QueryInterface(Ci.nsIPropertyBag2);
|
|
if (props.hasKey('childID')) {
|
|
processId = props.get('childID');
|
|
}
|
|
}
|
|
|
|
addMessageListener('init-chrome-event', function(message) {
|
|
// listen mozChromeEvent and forward to content process.
|
|
let type = message.type;
|
|
SystemAppProxy.addEventListener('mozChromeEvent', function(event) {
|
|
let details = event.detail;
|
|
if (details.type === type) {
|
|
sendAsyncMessage('chrome-event', details);
|
|
}
|
|
}, true);
|
|
|
|
Services.obs.addObserver(peekChildId, 'recording-device-events', false);
|
|
Services.obs.addObserver(peekChildId, 'recording-device-ipc-events', false);
|
|
});
|
|
|
|
addMessageListener('fake-content-shutdown', function(message) {
|
|
let props = Cc["@mozilla.org/hash-property-bag;1"]
|
|
.createInstance(Ci.nsIWritablePropertyBag2);
|
|
if (processId) {
|
|
props.setPropertyAsUint64('childID', processId);
|
|
}
|
|
Services.obs.notifyObservers(props, 'recording-device-ipc-events', 'content-shutdown');
|
|
});
|