address v0.4.4 reviewer comments about namespace pollution

This commit is contained in:
foudfou 2012-12-20 13:38:38 +01:00
parent 6c4d21d4b3
commit 2215aa43d1
2 changed files with 18 additions and 16 deletions

View File

@ -1,4 +1,5 @@
/* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
"use strict";
Components.utils.import("resource://firetray/commons.js"); Components.utils.import("resource://firetray/commons.js");
Components.utils.import("resource://firetray/FiretrayHandler.jsm"); Components.utils.import("resource://firetray/FiretrayHandler.jsm");
@ -8,7 +9,7 @@ if ("undefined" == typeof(Ci)) var Ci = Components.interfaces;
if ("undefined" == typeof(Cu)) var Cu = Components.utils; if ("undefined" == typeof(Cu)) var Cu = Components.utils;
// can't use 'log': don't pollute global (chrome) namespace // can't use 'log': don't pollute global (chrome) namespace
let ftlog = firetray.Logging.getLogger("firetray.Chrome"); let firetray_log = firetray.Logging.getLogger("firetray.Chrome");
// https://groups.google.com/group/mozilla.dev.extensions/browse_thread/thread/e89e9c2a834ff2b6# // https://groups.google.com/group/mozilla.dev.extensions/browse_thread/thread/e89e9c2a834ff2b6#
var firetrayChrome = { // each new window gets a new firetrayChrome ! var firetrayChrome = { // each new window gets a new firetrayChrome !
@ -19,15 +20,15 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
onLoad: function(win) { onLoad: function(win) {
this.strings = document.getElementById("firetray-strings"); // chrome-specific this.strings = document.getElementById("firetray-strings"); // chrome-specific
ftlog.debug("Handler initialized: "+firetray.Handler.initialized); firetray_log.debug("Handler initialized: "+firetray.Handler.initialized);
let init = firetray.Handler.initialized || firetray.Handler.init(); let init = firetray.Handler.initialized || firetray.Handler.init();
ftlog.debug("ONLOAD"); firetray.Handler.dumpWindows(); firetray_log.debug("ONLOAD"); firetray.Handler.dumpWindows();
this.winId = firetray.Handler.registerWindow(win); this.winId = firetray.Handler.registerWindow(win);
win.addEventListener('close', firetrayChrome.onClose, true); win.addEventListener('close', firetrayChrome.onClose, true);
ftlog.debug('Firetray LOADED: ' + init); firetray_log.debug('Firetray LOADED: ' + init);
return true; return true;
}, },
@ -37,8 +38,8 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
icon) */ icon) */
onQuit: function(win) { onQuit: function(win) {
firetray.Handler.unregisterWindow(win); firetray.Handler.unregisterWindow(win);
ftlog.info("windowsCount="+firetray.Handler.windowsCount+", visibleWindowsCount="+firetray.Handler.visibleWindowsCount); firetray_log.info("windowsCount="+firetray.Handler.windowsCount+", visibleWindowsCount="+firetray.Handler.visibleWindowsCount);
ftlog.debug('Firetray UNLOADED !'); firetray_log.debug('Firetray UNLOADED !');
}, },
/* until we find a fix (TODO), we need to set browser.tabs.warnOnClose=false /* until we find a fix (TODO), we need to set browser.tabs.warnOnClose=false
@ -47,23 +48,24 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
use trying to set warnOnClose=false temporarily in onClose, since onClose is use trying to set warnOnClose=false temporarily in onClose, since onClose is
called *after* the popup */ called *after* the popup */
onClose: function(event) { onClose: function(event) {
ftlog.debug('Firetray CLOSE'); firetray_log.debug('Firetray CLOSE');
let win = event.originalTarget; let win = event.originalTarget;
if (!win instanceof ChromeWindow) if (!win instanceof ChromeWindow)
throw new TypeError('originalTarget not a ChromeWindow'); throw new TypeError('originalTarget not a ChromeWindow');
let hides_on_close = firetray.Utils.prefService.getBoolPref('hides_on_close'); let hides_on_close = firetray.Utils.prefService.getBoolPref('hides_on_close');
ftlog.debug('hides_on_close: '+hides_on_close); firetray_log.debug('hides_on_close: '+hides_on_close);
if (hides_on_close) { if (hides_on_close) {
let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window'); let hides_single_window = firetray.Utils.prefService.getBoolPref('hides_single_window');
let hides_last_only = firetray.Utils.prefService.getBoolPref('hides_last_only'); let hides_last_only = firetray.Utils.prefService.getBoolPref('hides_last_only');
ftlog.debug('hides_single_window='+hides_single_window+', windowsCount='+firetray.Handler.windowsCount); firetray_log.debug('hides_single_window='+hides_single_window+', windowsCount='+firetray.Handler.windowsCount);
if (hides_last_only && (firetray.Handler.windowsCount > 1)) return; if (hides_last_only && (firetray.Handler.windowsCount > 1)) return;
if (hides_single_window) { if (hides_single_window)
firetray.Handler.hideWindow(firetrayChrome.winId); firetray.Handler.hideWindow(firetrayChrome.winId);
} else else
firetray.Handler.hideAllWindows(); firetray.Handler.hideAllWindows();
event && event.preventDefault(); event && event.preventDefault();
} }
} }
@ -74,12 +76,12 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
// https://developer.mozilla.org/en/XUL_School/JavaScript_Object_Management.html // https://developer.mozilla.org/en/XUL_School/JavaScript_Object_Management.html
// https://developer.mozilla.org/en/Extensions/Performance_best_practices_in_extensions#Removing_Event_Listeners // https://developer.mozilla.org/en/Extensions/Performance_best_practices_in_extensions#Removing_Event_Listeners
window.addEventListener( window.addEventListener(
'load', function (e) { 'load', function removeOnloadListener(e) {
removeEventListener('load', arguments.callee, true); removeEventListener('load', removeOnloadListener, true);
firetrayChrome.onLoad(this); }, firetrayChrome.onLoad(this); },
false); false);
window.addEventListener( window.addEventListener(
'unload', function (e) { 'unload', function removeOnUnloadListener(e) {
removeEventListener('unload', arguments.callee, true); removeEventListener('unload', removeOnUnloadListener, true);
firetrayChrome.onQuit(this); }, firetrayChrome.onQuit(this); },
false); false);

View File

@ -9,7 +9,7 @@
</stringbundleset> </stringbundleset>
<keyset> <keyset>
<key id="key_debug" key="P" modifiers="control alt shift" <key id="firetray_key_debug" key="P" modifiers="control alt shift"
oncommand="window.openDialog('chrome://firetray/content/options.xul', oncommand="window.openDialog('chrome://firetray/content/options.xul',
'', 'chrome,titlebar,toolbar,centerscreen', 'pane3');" /> '', 'chrome,titlebar,toolbar,centerscreen', 'pane3');" />
</keyset> </keyset>