yavsc/Yavsc/wwwroot/desktopCaptureExtension/background.js

42 lines
1.2 KiB
JavaScript

'use strict';
var dataSources = ['screen', 'window'];
var desktopMediaRequestId = '';
chrome.runtime.onConnect.addListener(function(port) {
port.onMessage.addListener(function(msg) {
if (msg.type === 'SS_UI_REQUEST') {
requestScreenSharing(port, msg);
}
if (msg.type === 'SS_UI_CANCEL') {
cancelScreenSharing(msg);
}
});
});
function requestScreenSharing(port, msg) {
// https://developer.chrome.com/extensions/desktopCapture
// params:
// - 'dataSources' Set of sources that should be shown to the user.
// - 'targetTab' Tab for which the stream is created.
// - 'streamId' String that can be passed to getUserMedia() API
desktopMediaRequestId =
chrome.desktopCapture.chooseDesktopMedia(dataSources, port.sender.tab,
function(streamId) {
if (streamId) {
msg.type = 'SS_DIALOG_SUCCESS';
msg.streamId = streamId;
} else {
msg.type = 'SS_DIALOG_CANCEL';
}
port.postMessage(msg);
});
}
function cancelScreenSharing() {
if (desktopMediaRequestId) {
chrome.desktopCapture.cancelChooseDesktopMedia(desktopMediaRequestId);
}
}