Beispiel #1
0
 mvelo.tabs.getActive(function(tab) {
   if (tab) {
     // reset scanned hosts buffer
     scannedHosts.length = 0;
     var options = {};
     options.contentScriptFile = [];
     options.contentScriptFile.push("common/dep/jquery.min.js");
     options.contentScriptFile.push("common/ui/inline/mvelo.js");
     if (!mvelo.crx) {
       options.contentScriptFile.push("ui/messageAdapter.js");
     }
     options.contentScript = scanScript;
     options.onMessage = handleMessageEvent;
     // inject scan script
     mvelo.tabs.attach(tab, options, function() {
       if (scannedHosts.length === 0) return;
       // remove duplicates and add wildcards
       var hosts = reduceHosts(scannedHosts);
       var site = model.getHostname(tab.url);
       scannedHosts.length = 0;
       mvelo.tabs.loadOptionsTab('', handleMessageEvent, function(old, tab) {
         sendToWatchList(tab, site, hosts, old);
       });
     });
   }
 });
Beispiel #2
0
 mvelo.tabs.loadOptionsTab('', handleMessageEvent, function(old, tab) {
   mvelo.tabs.sendMessage(tab, {
     event: "remove-watchlist-item",
     site: site,
     old: old
   });
 });
Beispiel #3
0
 mvelo.tabs.loadOptionsTab(hash, handleMessageEvent, function(old, tab) {
   if (old) {
     mvelo.tabs.sendMessage(tab, {
       event: "reload-options",
       hash: hash
     })
   }
 });
Beispiel #4
0
 function sendToWatchList(tab, site, hosts, old) {
   mvelo.tabs.sendMessage(tab, {
     event: "add-watchlist-item",
     site: site,
     hosts: hosts,
     old: old
   });
 }
Beispiel #5
0
 function handleMessageEvent(request, sender, sendResponse) {
   //console.log('controller: handleMessageEvent', request.event);
   switch (request.event) {
     case 'viewmodel':
       var response = {};
       var callback = function(error, result) {
         sendResponse({error: error, result: result});
       };
       request.args = request.args || [];
       if (!Array.isArray(request.args)) {
         request.args = [request.args];
       }
       request.args.push(callback);
       try {
         response.result = model[request.method].apply(model, request.args);
       } catch (e) {
         console.log('error in viewmodel: ', e);
         response.error = e;
       }
       if (response.result !== undefined || response.error || request.callback) {
         sendResponse(response);
       }
       break;
     case 'browser-action':
       onBrowserAction(request.action);
       break;
     case 'iframe-scan-result':
       scannedHosts = scannedHosts.concat(request.result);
       break;
     case 'set-watch-list':
       model.setWatchList(request.message.data);
       specific.initScriptInjection();
       break;
     case 'send-by-mail':
       var link = encodeURI('mailto:?subject=Public OpenPGP key of ');
       link += encodeURIComponent(request.message.data.name);
       link += '&body=' + encodeURIComponent(request.message.data.armoredPublic);
       link += encodeURIComponent('\n*** exported with www.mailvelope.com ***');
       mvelo.tabs.create(link);
       break;
     case 'get-prefs':
       sendResponse(prefs.data);
       break;
     case 'set-prefs':
       prefs.update(request.message.data);
       sendResponse(true);
       break;
     case 'get-security-token':
       sendResponse({code: prefs.data.security.secure_code, color: prefs.data.security.secure_color});
       break;
     case 'get-version':
       sendResponse(defaults.getVersion());
       break;
     default:
       console.log('unknown event:', msg.event);
   }
 }
Beispiel #6
0
 mvelo.tabs.attach(tab, options, function() {
   if (scannedHosts.length === 0) return;
   // remove duplicates and add wildcards
   var hosts = reduceHosts(scannedHosts);
   var site = model.getHostname(tab.url);
   scannedHosts.length = 0;
   mvelo.tabs.loadOptionsTab('', handleMessageEvent, function(old, tab) {
     sendToWatchList(tab, site, hosts, old);
   });
 });
Beispiel #7
0
 mvelo.tabs.getActive(function(tab) {
   if (tab) {
     var site = model.getHostname(tab.url);
     mvelo.tabs.loadOptionsTab('', handleMessageEvent, function(old, tab) {
       mvelo.tabs.sendMessage(tab, {
         event: "remove-watchlist-item",
         site: site,
         old: old
       });
     });
   }
 });
Beispiel #8
0
  function addToWatchList() {
    var scanScript = " \
        var hosts = $('iframe').get().map(function(element) { \
          return $('<a/>').attr('href', element.src).prop('hostname'); \
        }); \
        hosts.push(document.location.hostname); \
        mvelo.extension.sendMessage({ \
          event: 'iframe-scan-result', \
          result: hosts \
        }); \
      ";

    mvelo.tabs.getActive(function(tab) {
      if (tab) {
        // reset scanned hosts buffer
        scannedHosts.length = 0;
        var options = {};
        options.contentScriptFile = [];
        options.contentScriptFile.push("common/dep/jquery.min.js");
        options.contentScriptFile.push("common/ui/inline/mvelo.js");
        if (!mvelo.crx) {
          options.contentScriptFile.push("ui/messageAdapter.js");
        }
        options.contentScript = scanScript;
        options.onMessage = handleMessageEvent;
        // inject scan script
        mvelo.tabs.attach(tab, options, function() {
          if (scannedHosts.length === 0) return;
          // remove duplicates and add wildcards
          var hosts = reduceHosts(scannedHosts);
          var site = model.getHostname(tab.url);
          scannedHosts.length = 0;
          mvelo.tabs.loadOptionsTab('', handleMessageEvent, function(old, tab) {
            sendToWatchList(tab, site, hosts, old);
          });
        });
      }
    });

  }