yavsc/Yavsc/wwwroot/desktopCaptureExtension/content-script.js

32 lines
1.0 KiB
JavaScript

'use strict';
// https://chromeextensionsdocs.appspot.com/apps/content_scripts#host-page-communication
// - 'content_script' and execution env are isolated from each other
// - In order to communicate we use the DOM (window.postMessage)
//
// app.js | |content-script.js | |background.js
// window.postMessage|------->|port.postMessage |----->| port.onMessage
// | window | | port |
// webkitGetUserMedia|<------ |window.postMessage|<-----| port.postMessage
//
var port = chrome.runtime.connect(chrome.runtime.id);
port.onMessage.addListener(function(msg) {
window.postMessage(msg, '*');
});
window.addEventListener('message', function(event) {
// We only accept messages from ourselves
if (event.source !== window) {
return;
}
if (event.data.type && ((event.data.type === 'SS_UI_REQUEST') ||
(event.data.type === 'SS_UI_CANCEL'))) {
port.postMessage(event.data);
}
}, false);
window.postMessage({ type: 'SS_PING', text: 'start' }, '*');