Skip to content

Commit

Permalink
https://github.com/AdguardTeam/AdguardBrowserExtension/issues/138
Browse files Browse the repository at this point in the history
  • Loading branch information
atropnikov committed Feb 10, 2016
1 parent 1f3d52a commit 070b3d6
Show file tree
Hide file tree
Showing 4 changed files with 434 additions and 658 deletions.
196 changes: 93 additions & 103 deletions Extension/browser/firefox/data/content/content-script/content-script.js
Expand Up @@ -23,103 +23,96 @@
*/
var contentPage = (function (api) {

//var CONTENT_TO_BACKGROUND_CHANNEL = 'content-background-channel';
//var BACKGROUND_TO_CONTENT_CHANNEL = 'background-content-channel';
//
//var listenerRegistered = false;
//var callbacks = Object.create(null);
//var callbackId = 0;
//
///**
// * Called when response is received from the chrome process
// *
// * @param response Response object got from the chrome process
// * @private
// */
//var onResponseReceived = function(response) {
// if ('callbackId' in response) {
// var callbackId = response.callbackId;
// var callback = callbacks[callbackId];
// callback(response);
// delete callbacks[callbackId];
// }
//};
//
///**
// * Sends message to the chrome process
// *
// * @param message Message to send
// * @param callback Method that will be called in response
// * @public
// */
//var sendMessage = function (message, callback) {
//
// if (callback) {
// var messageCallbackId = (callbackId += 1);
// message.callbackId = messageCallbackId;
// callbacks[messageCallbackId] = callback;
// }
//
// if (!listenerRegistered) {
// listenerRegistered = true;
//
// if (typeof addFrameEventListener != 'undefined') {
// addFrameEventListener(CONTENT_TO_BACKGROUND_CHANNEL, onResponseReceived);
// } else {
// // TODO: Remove, deprecated
// self.port.on(CONTENT_TO_BACKGROUND_CHANNEL, onResponseReceived);
// }
// }
//
// if (typeof sendFrameEvent != 'undefined') {
// sendFrameEvent(CONTENT_TO_BACKGROUND_CHANNEL, message);
// } else {
// // TODO: Remove, deprecated
// self.port.emit(CONTENT_TO_BACKGROUND_CHANNEL, message);
// }
//};
//
//var onMessage = (function(onMessage) {
// var listeners = null;
//
// /**
// * This method is getting called when we get an event from the chrome process.
// */
// var onMessageReceived = function(message) {
// for (var i = 0; i < listeners.length; i++) {
// var listener = listeners[i];
// listener(message);
// }
// };
//
// var addListener = function (listener) {
//
// if (!listeners) {
// listeners = [];
//
// if (typeof addFrameEventListener != 'undefined') {
// addFrameEventListener(BACKGROUND_TO_CONTENT_CHANNEL, onMessageReceived);
// } else {
// // TODO: Remove, deprecated
// self.port.on(BACKGROUND_TO_CONTENT_CHANNEL, onMessageReceived);
// }
// }
//
// listeners.push(listener);
// };
//
// /**
// * Expose onMessage API
// */
// onMessage.addListener = addListener;
// return onMessage;
//})(onMessage || {});
var sendMessage;
if (typeof sendMessageToChrome != 'undefined') {
sendMessage = function (message, callback) {
var wrapper;
if (callback) {
wrapper = function (msg) {
return callback(JSON.parse(msg));
}
}
return sendMessageToChrome(message, wrapper);
};
} else {
// TODO: Remove, deprecated
sendMessage = (function () {

var CONTENT_TO_BACKGROUND_CHANNEL = 'content-background-channel';

var listenerRegistered = false;
var callbacks = Object.create(null);
var callbackId = 0;

var onResponseReceived = function (response) {
if ('callbackId' in response) {
var callbackId = response.callbackId;
var callback = callbacks[callbackId];
callback(response);
delete callbacks[callbackId];
}
};

return function (message, callback) {

if (callback) {
var messageCallbackId = (callbackId += 1);
message.callbackId = messageCallbackId;
callbacks[messageCallbackId] = callback;
}

if (!listenerRegistered) {
listenerRegistered = true;
self.port.on(CONTENT_TO_BACKGROUND_CHANNEL, onResponseReceived);
}

self.port.emit(CONTENT_TO_BACKGROUND_CHANNEL, message);
};

})();
}

var addMessageListener;
if (typeof addChromeMessageListener != 'undefined') {
addMessageListener = function (listener) {
var wrapper = function (msg) {
return listener(JSON.parse(msg));
};
return addChromeMessageListener(wrapper);
};
} else {
// TODO: Remove, deprecated
addMessageListener = (function () {

var BACKGROUND_TO_CONTENT_CHANNEL = 'background-content-channel';

var listeners = null;

var onMessageReceived = function (message) {
for (var i = 0; i < listeners.length; i++) {
var listener = listeners[i];
listener(message);
}
};

return function (listener) {
if (!listeners) {
listeners = [];
self.port.on(BACKGROUND_TO_CONTENT_CHANNEL, onMessageReceived);
}
listeners.push(listener);
};
})();
}

/**
* Expose contentPage public API
*/
api.sendMessage = sendMessageApi;
api.onMessage = onMessageApi;
api.sendMessage = sendMessage;
api.onMessage = {
addListener: addMessageListener
};

return api;

})(contentPage || {});
Expand All @@ -133,20 +126,17 @@ var i18n = (function (api) {
* Expose i18n public API
*/
api.getMessage = function (messageId, args) {
//if (typeof getI18nMessage != 'undefined') {
var message = i18nMessageApi(messageId);
var message;
if (typeof i18nMessageApi != 'undefined') {
message = i18nMessageApi(messageId);
} else {
// TODO: Remove, deprecated
message = self.options.i18nMessages[messageId];
}
if (!message) {
throw 'Message ' + messageId + ' not found';
}
return I18nHelper.replacePlaceholders(message, args);
//} else {
// // TODO: Remove, deprecated
// var message = self.options.i18nMessages[messageId];
// if (!message) {
// throw 'Message ' + messageId + ' not found';
// }
// return I18nHelper.replacePlaceholders(message, args);
//}
};
return api;
})(i18n || {});

0 comments on commit 070b3d6

Please sign in to comment.