aboutsummaryrefslogtreecommitdiff
path: root/js/firefox/content-script-proxy.js
blob: c56de296475a450229489adf9ccf88e8d92a339f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// This file listens to messages 

function log(msg) {
	self.port.emit('log', msg);
}

function receiveWindowMessage(message) {
	if (message.data.sender !== 'page') {
		return;
	}

	if (message.data.logMessage) {
		//Special handling for log messages.
		log(message.data.logMessage);
		return;
	}

	log('proxy got page message: ' + JSON.stringify(message.data));

	//Forward the message to the background script
	self.port.emit('message', message.data);
}

window.addEventListener('message', receiveWindowMessage);

function receiveMessage(message) {
	log('proxy got chrome message: ' + JSON.stringify(message));
	window.postMessage(message, '*');
}
self.port.on('message', receiveMessage);

function cleanup() {
	window.removeEventListener('message', receiveWindowMessage);
	self.port.removeListener('message', receiveMessage);
	self.port.removeListener('detach', cleanup);
}

self.port.on('detach', cleanup);