You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
664 B

  1. /* globals Services, sendAsyncMessage, addMessageListener, removeMessageListener, content */
  2. (function() {
  3. 'use strict';
  4. var
  5. app_name = 'ublock',
  6. app_baseURI = 'chrome://' + app_name + '/content/js/',
  7. listeners = {},
  8. _addMessageListener = function(id, fn) {
  9. _removeMessageListener(id);
  10. listeners[id] = function(msg) {
  11. fn(msg.data);
  12. };
  13. addMessageListener(id, listeners[id]);
  14. },
  15. _removeMessageListener = function(id) {
  16. if (listeners[id]) {
  17. removeMessageListener(id, listeners[id]);
  18. }
  19. delete listeners[id];
  20. };
  21. addMessageListener('µBlock:broadcast', function(msg) {
  22. for (var id in listeners) {
  23. listeners[id](msg.data);
  24. }
  25. });
  26. })();