mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-02-13 21:24:00 +00:00
https://github.com/ElectronNET/Electron.NET/issues/442 remove deletes of modules during disconnect add delete of hostHook during disconnect check if modules exist before importing them curring connect move local caches of modules into global scope.
70 lines
2.7 KiB
JavaScript
70 lines
2.7 KiB
JavaScript
"use strict";
|
|
var __assign = (this && this.__assign) || function () {
|
|
__assign = Object.assign || function(t) {
|
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
s = arguments[i];
|
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
t[p] = s[p];
|
|
}
|
|
return t;
|
|
};
|
|
return __assign.apply(this, arguments);
|
|
};
|
|
var electron_1 = require("electron");
|
|
var browserViews = (global['browserViews'] = global['browserViews'] || []);
|
|
var browserView, electronSocket;
|
|
module.exports = function (socket) {
|
|
electronSocket = socket;
|
|
socket.on('createBrowserView', function (options) {
|
|
if (!hasOwnChildreen(options, 'webPreferences', 'nodeIntegration')) {
|
|
options = __assign(__assign({}, options), { webPreferences: { nodeIntegration: true } });
|
|
}
|
|
browserView = new electron_1.BrowserView(options);
|
|
browserViews.push(browserView);
|
|
electronSocket.emit('BrowserViewCreated', browserView.id);
|
|
});
|
|
socket.on('browserView-isDestroyed', function (id) {
|
|
var isDestroyed = getBrowserViewById(id).isDestroyed();
|
|
electronSocket.emit('browserView-isDestroyed-reply', isDestroyed);
|
|
});
|
|
socket.on('browserView-getBounds', function (id) {
|
|
var bounds = getBrowserViewById(id).getBounds();
|
|
electronSocket.emit('browserView-getBounds-reply', bounds);
|
|
});
|
|
socket.on('browserView-setBounds', function (id, bounds) {
|
|
getBrowserViewById(id).setBounds(bounds);
|
|
});
|
|
socket.on('browserView-destroy', function (id) {
|
|
var browserViewIndex = browserViews.findIndex(function (b) { return b.id === id; });
|
|
getBrowserViewById(id).destroy();
|
|
browserViews.splice(browserViewIndex, 1);
|
|
});
|
|
socket.on('browserView-setAutoResize', function (id, options) {
|
|
getBrowserViewById(id).setAutoResize(options);
|
|
});
|
|
socket.on('browserView-setBackgroundColor', function (id, color) {
|
|
getBrowserViewById(id).setBackgroundColor(color);
|
|
});
|
|
function hasOwnChildreen(obj) {
|
|
var childNames = [];
|
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
childNames[_i - 1] = arguments[_i];
|
|
}
|
|
for (var i = 0; i < childNames.length; i++) {
|
|
if (!obj || !obj.hasOwnProperty(childNames[i])) {
|
|
return false;
|
|
}
|
|
obj = obj[childNames[i]];
|
|
}
|
|
return true;
|
|
}
|
|
function getBrowserViewById(id) {
|
|
for (var index = 0; index < browserViews.length; index++) {
|
|
var browserViewItem = browserViews[index];
|
|
if (browserViewItem.id === id) {
|
|
return browserViewItem;
|
|
}
|
|
}
|
|
}
|
|
};
|