Skip to content

Commit

Permalink
Fix for JavaScript namespace pollution in overlay
Browse files Browse the repository at this point in the history
  • Loading branch information
Roy Kokkelkoren committed Aug 1, 2017
1 parent 0461fef commit dacfad8
Showing 1 changed file with 28 additions and 25 deletions.
53 changes: 28 additions & 25 deletions chrome/content/overlay.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ window.addEventListener("load", function(e) {
AddonManager.addAddonListener({
onUninstalling: function(addon) {
if (addon.id == "todo.txt@xseth.nl")
removeCal(calManager);
todoOverlay.removeCal(calManager);
todotxtLogger.debug("overlay.js","Uninstalling");
},
});
Expand All @@ -28,42 +28,45 @@ window.addEventListener("load", function(e) {
}

if(!found)
createCal(calManager);
todoOverlay.createCal(calManager);

// if todo.txt & done.txt loc is not set, show properties
let prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch("extensions.todotxt.");
prefs = prefs.getBranch("extensions.todotxt.");

if(!prefs.prefHasUserValue('todo-txt') || !prefs.prefHasUserValue('done-txt')){
Services.wm.getMostRecentWindow('navigator:browser')
.BrowserOpenAddonsMgr('addons://detail/todotxt/preferences');
}
}, false);

function createCal(calManager){
todotxtLogger.debug("overlay.js","Create calendar");
let url = makeCalendarURI();
let newCal = calManager.createCalendar('todotxt',url);
newCal.name = "Todo.txt";
calManager.registerCalendar(newCal);
}
var todoOverlay = {

function removeCal(calManager){
let ID = "{00C350E2-3F65-11E5-8E8B-FBF81D5D46B0}";
let calendars = calManager.getCalendars({});
for (let i=0; i < calendars.length; i++){
calendar = calendars[i];
if(calendar.providerID == ID){
calManager.removeCalendar(calendar);
todotxtLogger.debug("overlay.js","Calendar found and removed");
break;
createCal: function(calManager){
todotxtLogger.debug("overlay.js","Create calendar");
let url = this.makeCalendarURI();
let newCal = calManager.createCalendar('todotxt',url);
newCal.name = "Todo.txt";
calManager.registerCalendar(newCal);
},

removeCal: function(calManager){
let ID = "{00C350E2-3F65-11E5-8E8B-FBF81D5D46B0}";
let calendars = calManager.getCalendars({});
for (let i=0; i < calendars.length; i++){
calendar = calendars[i];
if(calendar.providerID == ID){
calManager.removeCalendar(calendar);
todotxtLogger.debug("overlay.js","Calendar found and removed");
break;
}
}
}
}
},

function makeCalendarURI(aURL, aOriginCharset, aBaseURI) {
let ioService = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
return ioService.newURI('todotxt://_unused', null, null);
makeCalendarURI: function(aURL, aOriginCharset, aBaseURI) {
let ioService = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
return ioService.newURI('todotxt://_unused', null, null);
}
}

0 comments on commit dacfad8

Please sign in to comment.