Open Bug 1083044 Opened 6 years ago Updated 5 years ago

Application.prototype.__proto__ = extApplication.prototype;

Categories

(Thunderbird :: Untriaged, defect)

31 Branch
x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

UNCONFIRMED

People

(Reporter: info, Unassigned, NeedInfo)

Details

User Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36

Steps to reproduce:

Dopo qualche minuto che apro Thunderbird, si chiude inaspettatamente generando un crach report. Nella console errori mi compare questa scritta evidenziata:
Application.prototype.__proto__ = extApplication.prototype;
qui riportiamo tutto il contenuto del file steelApplication.js
Mi compare inoltre un errore nel file thaskbarProgress.jsm
let taskbarProgress = this._taskbar.getTaskbarProgress(docShell);


Actual results:

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

const Cc = Components.classes;
const Ci = Components.interfaces;

Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");

const APPLICATION_CID = Components.ID("f265021a-7f1d-4b4b-bdc6-9aedca4d8f13");
const APPLICATION_CONTRACTID = "@mozilla.org/steel/application;1";

//=================================================
// Factory - Treat Application as a singleton
// XXX This is required, because we're registered for the 'JavaScript global
// privileged property' category, whose handler always calls createInstance.
// See bug 386535.
var gSingleton = null;
var ApplicationFactory = {
  createInstance: function af_ci(aOuter, aIID) {
    if (aOuter != null)
      throw Components.results.NS_ERROR_NO_AGGREGATION;

    if (gSingleton == null) {
      gSingleton = new Application();
    }

    return gSingleton.QueryInterface(aIID);
  }
};

function Application() {
  this.initToolkitHelpers();
}


Application.prototype = {
  classID: APPLICATION_CID,

  // redefine the default factory for XPCOMUtils
  _xpcom_factory: ApplicationFactory,

  // for nsISupports
  QueryInterface : XPCOMUtils.generateQI([Ci.steelIApplication,
                                          Ci.extIApplication,
					  Ci.nsIObserver,
                                          Ci.nsISupportsWeakReference]),

  classInfo: XPCOMUtils.generateCI({classID: APPLICATION_CID,
				    contractID: APPLICATION_CONTRACTID,
				    interfaces: [Ci.steelIApplication,
						 Ci.extIApplication,
						 Ci.nsIObserver],
				    flags: Ci.nsIClassInfo.SINGLETON}),

  // for steelIApplication
  platformIsMac: "nsILocalFileMac" in Components.interfaces,
  platformIsLinux: "@mozilla.org/gnome-gconf-service;1" in Components.classes,
  platformIsWindows: "@mozilla.org/windows-registry-key;1" in Components.classes
};

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://gre/modules/AddonManager.jsm");

//=================================================
// Console constructor
function Console() {
  this._console = Components.classes["@mozilla.org/consoleservice;1"]
                            .getService(Ci.nsIConsoleService);
}

//=================================================
// Console implementation
Console.prototype = {
  log: function cs_log(aMsg) {
    this._console.logStringMessage(aMsg);
  },

  open: function cs_open() {
    var wMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                              .getService(Ci.nsIWindowMediator);
    var console = wMediator.getMostRecentWindow("global:console");
    if (!console) {
      var wWatch = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
                             .getService(Ci.nsIWindowWatcher);
      wWatch.openWindow(null, "chrome://global/content/console.xul", "_blank",
                        "chrome,dialog=no,all", null);
    } else {
      // console was already open
      console.focus();
    }
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIConsole])
};


//=================================================
// EventItem constructor
function EventItem(aType, aData) {
  this._type = aType;
  this._data = aData;
}

//=================================================
// EventItem implementation
EventItem.prototype = {
  _cancel: false,

  get type() {
    return this._type;
  },

  get data() {
    return this._data;
  },

  preventDefault: function ei_pd() {
    this._cancel = true;
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIEventItem])
};


//=================================================
// Events constructor
function Events(notifier) {
  this._listeners = [];
  this._notifier = notifier;
}

//=================================================
// Events implementation
Events.prototype = {
  addListener: function evts_al(aEvent, aListener) {
    function hasFilter(element) {
      return element.event == aEvent && element.listener == aListener;
    }

    if (this._listeners.some(hasFilter))
      return;

    this._listeners.push({
      event: aEvent,
      listener: aListener
    });

    if (this._notifier) {
      this._notifier(aEvent, aListener);
    }
  },

  removeListener: function evts_rl(aEvent, aListener) {
    function hasFilter(element) {
      return (element.event != aEvent) || (element.listener != aListener);
    }

    this._listeners = this._listeners.filter(hasFilter);
  },

  dispatch: function evts_dispatch(aEvent, aEventItem) {
    var eventItem = new EventItem(aEvent, aEventItem);

    this._listeners.forEach(function(key){
      if (key.event == aEvent) {
        key.listener.handleEvent ?
          key.listener.handleEvent(eventItem) :
          key.listener(eventItem);
      }
    });

    return !eventItem._cancel;
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIEvents])
};

//=================================================
// PreferenceObserver (internal class)
//
// PreferenceObserver is a global singleton which watches the browser's
// preferences and sends you events when things change.

function PreferenceObserver() {
  this._observersDict = {};
}

PreferenceObserver.prototype = {
  /**
   * Add a preference observer.
   *
   * @param aPrefs the nsIPrefBranch onto which we'll install our listener.
   * @param aDomain the domain our listener will watch (a string).
   * @param aEvent the event to listen to (you probably want "change").
   * @param aListener the function to call back when the event fires.  This
   *                  function will receive an EventData argument.
   */
  addListener: function po_al(aPrefs, aDomain, aEvent, aListener) {
    var root = aPrefs.root;
    if (!this._observersDict[root]) {
      this._observersDict[root] = {};
    }
    var observer = this._observersDict[root][aDomain];

    if (!observer) {
      observer = {
        events: new Events(),
        observe: function po_observer_obs(aSubject, aTopic, aData) {
          this.events.dispatch("change", aData);
        },
        QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver,
                                               Ci.nsISupportsWeakReference])
      };
      observer.prefBranch = aPrefs;
      observer.prefBranch.addObserver(aDomain, observer, /* ownsWeak = */ true);

      // Notice that the prefBranch keeps a weak reference to the observer;
      // it's this._observersDict which keeps the observer alive.
      this._observersDict[root][aDomain] = observer;
    }
    observer.events.addListener(aEvent, aListener);
  },

  /**
   * Remove a preference observer.
   *
   * This function's parameters are identical to addListener's.
   */
  removeListener: function po_rl(aPrefs, aDomain, aEvent, aListener) {
    var root = aPrefs.root;
    if (!this._observersDict[root] ||
        !this._observersDict[root][aDomain]) {
      return;
    }
    var observer = this._observersDict[root][aDomain];
    observer.events.removeListener(aEvent, aListener);

    if (observer.events._listeners.length == 0) {
      // nsIPrefBranch objects are not singletons -- we can have two
      // nsIPrefBranch'es for the same branch.  There's no guarantee that
      // aPrefs is the same object as observer.prefBranch, so we have to call
      // removeObserver on observer.prefBranch.
      observer.prefBranch.removeObserver(aDomain, observer);
      delete this._observersDict[root][aDomain];
      if (Object.keys(this._observersDict[root]).length == 0) {
        delete this._observersDict[root];
      }
    }
  }
};

//=================================================
// PreferenceBranch constructor
function PreferenceBranch(aBranch) {
  if (!aBranch)
    aBranch = "";

  this._root = aBranch;
  this._prefs = Components.classes["@mozilla.org/preferences-service;1"]
                          .getService(Ci.nsIPrefService)
                          .QueryInterface(Ci.nsIPrefBranch);

  if (aBranch)
    this._prefs = this._prefs.getBranch(aBranch);

  let prefs = this._prefs;
  this._events = {
    addListener: function pb_al(aEvent, aListener) {
      gPreferenceObserver.addListener(prefs, "", aEvent, aListener);
    },
    removeListener: function pb_rl(aEvent, aListener) {
      gPreferenceObserver.removeListener(prefs, "", aEvent, aListener);
    },
    QueryInterface: XPCOMUtils.generateQI([Ci.extIEvents])
  };
}

//=================================================
// PreferenceBranch implementation
PreferenceBranch.prototype = {
  get root() {
    return this._root;
  },

  get all() {
    return this.find({});
  },

  get events() {
    return this._events;
  },

  // XXX: Disabled until we can figure out the wrapped object issues
  // name: "name" or /name/
  // path: "foo.bar." or "" or /fo+\.bar/
  // type: Boolean, Number, String (getPrefType)
  // locked: true, false (prefIsLocked)
  // modified: true, false (prefHasUserValue)
  find: function prefs_find(aOptions) {
    var retVal = [];
    var items = this._prefs.getChildList("");

    for (var i = 0; i < items.length; i++) {
      retVal.push(new Preference(items[i], this));
    }

    return retVal;
  },

  has: function prefs_has(aName) {
    return (this._prefs.getPrefType(aName) != Ci.nsIPrefBranch.PREF_INVALID);
  },

  get: function prefs_get(aName) {
    return this.has(aName) ? new Preference(aName, this) : null;
  },

  getValue: function prefs_gv(aName, aValue) {
    var type = this._prefs.getPrefType(aName);

    switch (type) {
      case Ci.nsIPrefBranch.PREF_STRING:
        aValue = this._prefs.getComplexValue(aName, Ci.nsISupportsString).data;
        break;
      case Ci.nsIPrefBranch.PREF_BOOL:
        aValue = this._prefs.getBoolPref(aName);
        break;
      case Ci.nsIPrefBranch.PREF_INT:
        aValue = this._prefs.getIntPref(aName);
        break;
    }

    return aValue;
  },

  setValue: function prefs_sv(aName, aValue) {
    var type = aValue != null ? aValue.constructor.name : "";

    switch (type) {
      case "String":
        var str = Components.classes["@mozilla.org/supports-string;1"]
                            .createInstance(Ci.nsISupportsString);
        str.data = aValue;
        this._prefs.setComplexValue(aName, Ci.nsISupportsString, str);
        break;
      case "Boolean":
        this._prefs.setBoolPref(aName, aValue);
        break;
      case "Number":
        this._prefs.setIntPref(aName, aValue);
        break;
      default:
        throw("Unknown preference value specified.");
    }
  },

  reset: function prefs_reset() {
    this._prefs.resetBranch("");
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIPreferenceBranch])
};


//=================================================
// Preference constructor
function Preference(aName, aBranch) {
  this._name = aName;
  this._branch = aBranch;

  var self = this;
  this._events = {
    addListener: function pref_al(aEvent, aListener) {
      gPreferenceObserver.addListener(self._branch._prefs, self._name, aEvent, aListener);
    },
    removeListener: function pref_rl(aEvent, aListener) {
      gPreferenceObserver.removeListener(self._branch._prefs, self._name, aEvent, aListener);
    },
    QueryInterface: XPCOMUtils.generateQI([Ci.extIEvents])
  };
}

//=================================================
// Preference implementation
Preference.prototype = {
  get name() {
    return this._name;
  },

  get type() {
    var value = "";
    var type = this.branch._prefs.getPrefType(this._name);

    switch (type) {
      case Ci.nsIPrefBranch.PREF_STRING:
        value = "String";
        break;
      case Ci.nsIPrefBranch.PREF_BOOL:
        value = "Boolean";
        break;
      case Ci.nsIPrefBranch.PREF_INT:
        value = "Number";
        break;
    }

    return value;
  },

  get value() {
    return this.branch.getValue(this._name, null);
  },

  set value(aValue) {
    return this.branch.setValue(this._name, aValue);
  },

  get locked() {
    return this.branch._prefs.prefIsLocked(this.name);
  },

  set locked(aValue) {
    this.branch._prefs[ aValue ? "lockPref" : "unlockPref" ](this.name);
  },

  get modified() {
    return this.branch._prefs.prefHasUserValue(this.name);
  },

  get branch() {
    return this._branch;
  },

  get events() {
    return this._events;
  },

  reset: function pref_reset() {
    this.branch._prefs.clearUserPref(this.name);
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIPreference])
};


//=================================================
// SessionStorage constructor
function SessionStorage() {
  this._storage = {};
  this._events = new Events();
}

//=================================================
// SessionStorage implementation
SessionStorage.prototype = {
  get events() {
    return this._events;
  },

  has: function ss_has(aName) {
    return this._storage.hasOwnProperty(aName);
  },

  set: function ss_set(aName, aValue) {
    this._storage[aName] = aValue;
    this._events.dispatch("change", aName);
  },

  get: function ss_get(aName, aDefaultValue) {
    return this.has(aName) ? this._storage[aName] : aDefaultValue;
  },

  QueryInterface : XPCOMUtils.generateQI([Ci.extISessionStorage])
};

//=================================================
// ExtensionObserver constructor (internal class)
//
// ExtensionObserver is a global singleton which watches the browser's
// extensions and sends you events when things change.

function ExtensionObserver() {
  this._eventsDict = {};

  AddonManager.addAddonListener(this);
  AddonManager.addInstallListener(this);
}

//=================================================
// ExtensionObserver implementation (internal class)
ExtensionObserver.prototype = {
  onDisabling: function eo_onDisabling(addon, needsRestart) {
    this._dispatchEvent(addon.id, "disable");
  },

  onEnabling: function eo_onEnabling(addon, needsRestart) {
    this._dispatchEvent(addon.id, "enable");
  },

  onUninstalling: function eo_onUninstalling(addon, needsRestart) {
    this._dispatchEvent(addon.id, "uninstall");
  },

  onOperationCancelled: function eo_onOperationCancelled(addon) {
    this._dispatchEvent(addon.id, "cancel");
  },

  onInstallEnded: function eo_onInstallEnded(install, addon) {
    this._dispatchEvent(addon.id, "upgrade");
  },

  addListener: function eo_al(aId, aEvent, aListener) {
    var events = this._eventsDict[aId];
    if (!events) {
      events = new Events();
      this._eventsDict[aId] = events;
    }
    events.addListener(aEvent, aListener);
  },

  removeListener: function eo_rl(aId, aEvent, aListener) {
    var events = this._eventsDict[aId];
    if (!events) {
      return;
    }
    events.removeListener(aEvent, aListener);
    if (events._listeners.length == 0) {
      delete this._eventsDict[aId];
    }
  },

  _dispatchEvent: function eo_dispatchEvent(aId, aEvent) {
    var events = this._eventsDict[aId];
    if (events) {
      events.dispatch(aEvent, aId);
    }
  }
};

//=================================================
// Extension constructor
function Extension(aItem) {
  this._item = aItem;
  this._firstRun = false;
  this._prefs = new PreferenceBranch("extensions." + this.id + ".");
  this._storage = new SessionStorage();

  let id = this.id;
  this._events = {
    addListener: function ext_events_al(aEvent, aListener) {
      gExtensionObserver.addListener(id, aEvent, aListener);
    },
    removeListener: function ext_events_rl(aEvent, aListener) {
      gExtensionObserver.addListener(id, aEvent, aListener);
    },
    QueryInterface: XPCOMUtils.generateQI([Ci.extIEvents])
  };

  var installPref = "install-event-fired";
  if (!this._prefs.has(installPref)) {
    this._prefs.setValue(installPref, true);
    this._firstRun = true;
  }
}

//=================================================
// Extension implementation
Extension.prototype = {
  get id() {
    return this._item.id;
  },

  get name() {
    return this._item.name;
  },

  get enabled() {
    return this._item.isActive;
  },

  get version() {
    return this._item.version;
  },

  get firstRun() {
    return this._firstRun;
  },

  get storage() {
    return this._storage;
  },

  get prefs() {
    return this._prefs;
  },

  get events() {
    return this._events;
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIExtension])
};


//=================================================
// Extensions constructor
function Extensions(addons) {
  this._cache = {};

  addons.forEach(function (addon) {
    this._cache[addon.id] = new Extension(addon);
  }, this);
}

//=================================================
// Extensions implementation
Extensions.prototype = {
  get all() {
    return this.find({});
  },

  // XXX: Disabled until we can figure out the wrapped object issues
  // id: "some@id" or /id/
  // name: "name" or /name/
  // version: "1.0.1"
  // minVersion: "1.0"
  // maxVersion: "2.0"
  find: function exts_find(aOptions) {
    return [e for each (e in this._cache)];
  },

  has: function exts_has(aId) {
    return aId in this._cache;
  },

  get: function exts_get(aId) {
    return this.has(aId) ? this._cache[aId] : null;
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIExtensions])
};

//=================================================
// Application globals

gExtensionObserver = new ExtensionObserver();
gPreferenceObserver = new PreferenceObserver();

//=================================================
// extApplication constructor
function extApplication() {
}

//=================================================
// extApplication implementation
extApplication.prototype = {
  initToolkitHelpers: function extApp_initToolkitHelpers() {
    XPCOMUtils.defineLazyServiceGetter(this, "_info",
                                       "@mozilla.org/xre/app-info;1",
                                       "nsIXULAppInfo");

    this._obs = Cc["@mozilla.org/observer-service;1"].
                getService(Ci.nsIObserverService);
    this._obs.addObserver(this, "xpcom-shutdown", /* ownsWeak = */ true);
    this._registered = {"unload": true};
  },

  classInfo: XPCOMUtils.generateCI({interfaces: [Ci.extIApplication,
                                                 Ci.nsIObserver],
                                    flags: Ci.nsIClassInfo.SINGLETON}),

  // extIApplication
  get id() {
    return this._info.ID;
  },

  get name() {
    return this._info.name;
  },

  get version() {
    return this._info.version;
  },

  // for nsIObserver
  observe: function app_observe(aSubject, aTopic, aData) {
    if (aTopic == "app-startup") {
      this.events.dispatch("load", "application");
    }
    else if (aTopic == "final-ui-startup") {
      this.events.dispatch("ready", "application");
    }
    else if (aTopic == "quit-application-requested") {
      // we can stop the quit by checking the return value
      if (this.events.dispatch("quit", "application") == false)
        aSubject.data = true;
    }
    else if (aTopic == "xpcom-shutdown") {
      this.events.dispatch("unload", "application");
      gExtensionObserver = null;
      gPreferenceObserver = null;
    }
  },

  get console() {
    let console = new Console();
    this.__defineGetter__("console", function () console);
    return this.console;
  },

  get storage() {
    let storage = new SessionStorage();
    this.__defineGetter__("storage", function () storage);
    return this.storage;
  },

  get prefs() {
    let prefs = new PreferenceBranch("");
    this.__defineGetter__("prefs", function () prefs);
    return this.prefs;
  },

  getExtensions: function(callback) {
    AddonManager.getAddonsByTypes(["extension"], function (addons) {
      callback.callback(new Extensions(addons));
    });
  },

  get events() {

    // This ensures that FUEL only registers for notifications as needed
    // by callers. Note that the unload (xpcom-shutdown) event is listened
    // for by default, as it's needed for cleanup purposes.
    var self = this;
    function registerCheck(aEvent) {
      var rmap = { "load": "app-startup",
                   "ready": "final-ui-startup",
                   "quit": "quit-application-requested"};
      if (!(aEvent in rmap) || aEvent in self._registered)
        return;

      self._obs.addObserver(self, rmap[aEvent], /* ownsWeak = */ true);
      self._registered[aEvent] = true;
    }

    let events = new Events(registerCheck);
    this.__defineGetter__("events", function () events);
    return this.events;
  },

  // helper method for correct quitting/restarting
  _quitWithFlags: function app__quitWithFlags(aFlags) {
    let cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]
                               .createInstance(Components.interfaces.nsISupportsPRBool);
    let quitType = aFlags & Components.interfaces.nsIAppStartup.eRestart ? "restart" : null;
    this._obs.notifyObservers(cancelQuit, "quit-application-requested", quitType);
    if (cancelQuit.data)
      return false; // somebody canceled our quit request

    let appStartup = Components.classes['@mozilla.org/toolkit/app-startup;1']
                               .getService(Components.interfaces.nsIAppStartup);
    appStartup.quit(aFlags);
    return true;
  },

  quit: function app_quit() {
    return this._quitWithFlags(Components.interfaces.nsIAppStartup.eAttemptQuit);
  },

  restart: function app_restart() {
    return this._quitWithFlags(Components.interfaces.nsIAppStartup.eAttemptQuit |
                               Components.interfaces.nsIAppStartup.eRestart);
  },

  QueryInterface: XPCOMUtils.generateQI([Ci.extIApplication, Ci.nsISupportsWeakReference])
};
//@line 63 "c:\builds\moz2_slave\tb-rel-c-esr31-w32_bld-0000000\build\mail\steel\steelApplication.js"

Application.prototype.__proto__ = extApplication.prototype;

const NSGetFactory = XPCOMUtils.generateNSGetFactory([Application]);



Expected results:

Ho provato a installare la nuova versione del programma, ad eliminare tutte le applicazioni, ma il problema persiste.
qui riporto tutte le informazioni:


  ATTENZIONE:
  Queste sono informazioni riservate che non dovrebbero essere trasmesse o pubblicate senza autorizzazione.

  Informazioni di base

    Nome: Thunderbird
    Versione: 31.2.0
    User agent: Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
    Cartella del profilo: C:\Documents and Settings\diretta\Dati applicazioni\Thunderbird\Profiles\bq4rlr19.diretta
              (disco locale)
    ID di build dell'applicazione: 20141012121702
    Plugin attivi: about:plugins
    Configurazione build: about:buildconfig
    Utilizzo memoria: about:memory

  Account di posta e news
    account1:
      INCOMING: account1, posta, (none) Local Folders, plain, passwordCleartext

    account3:
      INCOMING: account3, catacchio@tin.it, (pop3) box.tin.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account4:
      INCOMING: account4, radioidea@infinito.it, (pop3) pop3.infinito.it:995, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account6:
      INCOMING: account6, luigi.catacchio@poste.it, (pop3) relay.poste.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account7:
      INCOMING: account7, posta certificata, (imap) mail.postacertificata.gov.it:993, alwaysSTARTTLS, passwordCleartext
      OUTGOING: mail.postacertificata.gov.it:25, plain, passwordCleartext, true

    account9:
      INCOMING: account9, radioidea@tiscali.it, (pop3) pop.tiscali.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account10:
      INCOMING: account10, radioidea@tiscalinet.it, (pop3) pop.tiscalinet.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account12:
      INCOMING: account12, tvnumeriunopuglia@alice.it, (pop3) in.alice.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account13:
      INCOMING: account13, cinemainfm@email.it, (pop3) popmail.email.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account14:
      INCOMING: account14, g.catacchio@radioidea.it, (pop3) pop3.radioidea.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account15:
      INCOMING: account15, info@disconovita.it, (pop3) pop3.disconovita.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account17:
      INCOMING: account17, info@radioidea.it, (pop3) pop3.radioidea.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account18:
      INCOMING: account18, marcogadaleta@alice.it, (pop3) in.alice.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account19:
      INCOMING: account19, info@airplay.it, (pop3) pop3.airplay.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account20:
      INCOMING: account20, mirianacatacchio@radioidea.it, (pop3) pop3.radioidea.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account21:
      INCOMING: account21, mail, (pop3) mailing.airplay.it:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account22:
      INCOMING: account22, info@ideanews.org, (pop3) pop.ideanews.org:110, plain, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

    account23:
      INCOMING: account23, info@cinemainfm.it, (pop3) pop.cinemainfm.it:995, SSL, passwordCleartext
      OUTGOING: out.alice.it:25, plain, none, true

  Segnalazioni di arresto anomalo
    http://crash-stats.mozilla.com/report/index/bp-2fd487eb-9361-4cff-93ab-344122141015 (15/10/2014)
    http://crash-stats.mozilla.com/report/index/bp-0de7528b-cd27-4230-b1e5-dd2882141015 (15/10/2014)
    http://crash-stats.mozilla.com/report/index/bp-880c85d0-074b-46b7-9265-641e52141015 (15/10/2014)
    http://crash-stats.mozilla.com/report/index/bp-4ee99834-f4fd-44f0-8315-3779a2141015 (15/10/2014)
    http://crash-stats.mozilla.com/report/index/bp-573861ff-cab5-413c-9764-3626a2141014 (15/10/2014)

  Estensioni
    Clippings, 4.1.1, true, {91aa5abe-9de4-4347-b7b5-322c38dd9271}
    QuickFolders, 3.14.1, true, quickfolders@curious.be
    Archive This, 1.4.9.0, false, archive-this@roach.at
    ESET Smart Security Extension, 4.2.71.3, false, eplgTb@eset.com
    Google Calendar Tab, 3.9, false, googlecalendartab@momo
    ImportExportTools, 3.1, false, {3ed8cc52-86fc-4613-9026-c1ef969da4c3}
    Lightning Calendar Tabs, 1.3, false, lightningcalendartabs@jlx.84
    Message Archive Options, 5.0.0, false, messagearchiveoptions@eviljeff.com
    mozCleaner, 2.0, false, mozcleaner@divel
    QuickArchiver, 0.2.2, false, quickarchiver@bergerdata.de
    Remove Duplicate Messages (Alternate), 0.3.10, false, {a300a000-5e21-4ee0-a115-9ec8f4eaa92b}
    ThunderPEC, 1.6.0, false, thunderpec@gmail.com
    ThunderPlunger, 2.14, false, {bfec0750-aa6f-11db-abbd-0800200c9a66}
    Unsubscribe from Mailing List, 1.0.6, false, {AF40CC63-C6FE-4510-8F66-3B89E2D06400}
    ViewAbout, 2.0.1, false, viewabout@rumblingedge.com

  Preferenze importanti modificate

    Nome: Valore

      accessibility.typeaheadfind.flashBar: 0
      browser.cache.disk.capacity: 358400
      browser.cache.disk.smart_size.first_run: false
      browser.cache.disk.smart_size.use_old_max: false
      browser.cache.disk.smart_size_cached_value: 358400
      browser.display.background_color: #FFFFCC
      browser.display.foreground_color: #000066
      browser.display.screen_resolution: 96
      dom.max_chrome_script_run_time: 0
      extensions.lastAppVersion: 31.2.0
      font.internaluseonly.changed: false
      font.language.group: x-western
      font.minimum-size.x-unicode: 9
      font.minimum-size.x-user-def: 16
      font.minimum-size.x-western: 9
      font.name.monospace.ja: MS Mincho
      font.name.monospace.x-user-def: Arial
      font.name.sans-serif.ja: MS Mincho
      font.name.sans-serif.x-tamil: Arial Unicode MS
      font.name.sans-serif.x-user-def: Arial
      font.name.sans-serif.x-western: MS Sans Serif
      font.name.serif.ja: MS Mincho
      font.name.serif.x-user-def: Arial
      font.name.serif.x-western: Arial
      font.size.fixed.x-user-def: 16
      font.size.fixed.x-western: 16
      font.size.variable.x-user-def: 16
      mail.openMessageBehavior.version: 1
      mailnews.database.global.datastore.id: 145aa36c-9eb6-4bc2-81a1-819eb4921d9
      mailnews.database.global.indexer.enabled: false
      network.cookie.cookieBehavior: 2
      network.cookie.prefsMigrated: true
      network.http.max-persistent-connections-per-server: 32
      places.database.lastMaintenance: 1412646532
      places.history.expiration.transient_current_max_pages: 80273
      plugin.importedState: true
      plugin.state.flash: 0
      plugin.state.java: 0
      plugin.state.npctrl: 0
      plugin.state.npdeployjava: 0
      plugin.state.npdrmv: 0
      plugin.state.npdsplay: 0
      plugin.state.npgoogleupdate: 0
      plugin.state.nppdf: 0
      plugin.state.npsitesafety: 0
      plugin.state.npvlc: 0
      plugin.state.npwmsdrm: 0
      plugin.state.npwpf: 0
      print.print_printer: Canon S300
      print.printer_Canon_S200.print_bgcolor: false
      print.printer_Canon_S200.print_bgimages: false
      print.printer_Canon_S200.print_evenpages: true
      print.printer_Canon_S200.print_footercenter:
      print.printer_Canon_S200.print_footerleft: &PT
      print.printer_Canon_S200.print_footerright: &D
      print.printer_Canon_S200.print_headercenter:
      print.printer_Canon_S200.print_headerleft: &T
      print.printer_Canon_S200.print_headerright: &U
      print.printer_Canon_S200.print_in_color: true
      print.printer_Canon_S200.print_margin_bottom: 0.5
      print.printer_Canon_S200.print_margin_left: 0.5
      print.printer_Canon_S200.print_margin_right: 0.5
      print.printer_Canon_S200.print_margin_top: 0.5
      print.printer_Canon_S200.print_oddpages: true
      print.printer_Canon_S200.print_orientation: 0
      print.printer_Canon_S200.print_reversed: false
      print.printer_Canon_S200.print_scaling: 1,00
      print.printer_Canon_S200.print_shrink_to_fit: true
      print.printer_Canon_S300.print_bgcolor: false
      print.printer_Canon_S300.print_bgimages: false
      print.printer_Canon_S300.print_command:
      print.printer_Canon_S300.print_downloadfonts: true
      print.printer_Canon_S300.print_evenpages: true
      print.printer_Canon_S300.print_footercenter:
      print.printer_Canon_S300.print_footerleft: &PT
      print.printer_Canon_S300.print_footerright: info@radioidea.it
      print.printer_Canon_S300.print_headercenter:
      print.printer_Canon_S300.print_headerleft: &T
      print.printer_Canon_S300.print_headerright: &U
      print.printer_Canon_S300.print_in_color: true
      print.printer_Canon_S300.print_margin_bottom: 0.5
      print.printer_Canon_S300.print_margin_left: 0.5
      print.printer_Canon_S300.print_margin_right: 0.5
      print.printer_Canon_S300.print_margin_top: 0.5
      print.printer_Canon_S300.print_oddpages: true
      print.printer_Canon_S300.print_orientation: 0
      print.printer_Canon_S300.print_pagedelay: 500
      print.printer_Canon_S300.print_paper_data: 9
      print.printer_Canon_S300.print_paper_height: 11,00
      print.printer_Canon_S300.print_paper_size: 2097257
      print.printer_Canon_S300.print_paper_size_type: 0
      print.printer_Canon_S300.print_paper_size_unit: 1
      print.printer_Canon_S300.print_paper_width: 8,50
      print.printer_Canon_S300.print_printer: Canon S300
      print.printer_Canon_S300.print_reversed: false
      print.printer_Canon_S300.print_scaling: 1,00
      print.printer_Canon_S300.print_shrink_to_fit: false
      print.printer_Canon_S300.print_to_file: false
      security.disable_button.openCertManager: false
      security.disable_button.openDeviceManager: false
      security.OCSP.disable_button.managecrl: false
      security.OCSP.enabled: 2
      security.password_lifetime: 0

  Grafica

      Descrizione scheda grafica: Intel(R) Graphics Media Accelerator 3150
      ID produttore: 0x8086
      ID dispositivo: 0xa001
      RAM scheda grafica: Unknown
      Driver scheda grafica: igxprd32
      Versione driver: 6.14.10.5260
      Data aggiornamento driver: 4-25-2010
      Rendering WebGL: false
      Finestre con accelerazione GPU: 0

      AzureCanvasBackend: skia
      AzureSkiaAccelerated: 0
      AzureFallbackCanvasBackend: cairo
      AzureContentBackend: cairo

  JavaScript

  GC incrementale: 1

  Accessibilità

    Attivato: 0
    Impedisci accessibilità: 0

  Versioni librerie

      Versione minima prevista
      Versione in uso

      NSPR
      4.10.6
      4.10.6

      NSS
      3.16.2.2 Basic ECC
      3.16.2.2 Basic ECC

      NSS Util
      3.16.2.2
      3.16.2.2

      NSS SSL
      3.16.2.2 Basic ECC
      3.16.2.2 Basic ECC

      NSS S/MIME
      3.16.2.2 Basic ECC
      3.16.2.2 Basic ECC
What happens if you reinstall Thunderbird?
https://www.mozilla.org/thunderbird/

If that fails, does the English install also fail from https://www.mozilla.org/en-US/thunderbird/ ?

What if you start in safe mode? https://support.mozilla.org/kb/safe-mode
Flags: needinfo?(info)
Group: core-security
Abbiamo reinstallato il programma, lo abbiamo anche aggiornato. Abbiamo inoltre disabilitato tutte le applicazioni ma il problema persiste sempre.
Inoltre abbiamo provato ad avviarlo in safe-mode ma il programma non si avvia.
Flags: needinfo?(info)
(In reply to radioidea from comment #2)
> Abbiamo reinstallato il programma, lo abbiamo anche aggiornato. Abbiamo
> inoltre disabilitato tutte le applicazioni ma il problema persiste sempre.
> Inoltre abbiamo provato ad avviarlo in safe-mode ma il programma non si
> avvia.

We have reinstalled the program, we've also updated. we also
disabled all applications but the problem still persists.
We also tried to start it in safe mode but the program does not start.

Have you tried getting assistance in the Italian speaking forum?
https://wiki.mozilla.org/Thunderbird/Support/Community_support_based_on_languages#Non_English_Thunderbird_Support_Forums
Flags: needinfo?(info)
anything actionable here?
Flags: needinfo?(acelists)
(In reply to radioidea from comment #0)
> User Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like
> Gecko) Chrome/38.0.2125.101 Safari/537.36
> 
> Steps to reproduce:
> 
> Dopo qualche minuto che apro Thunderbird, si chiude inaspettatamente
> generando un crach report. Nella console errori mi compare questa scritta
> evidenziata:
> Application.prototype.__proto__ = extApplication.prototype;
> qui riportiamo tutto il contenuto del file steelApplication.js
> Mi compare inoltre un errore nel file thaskbarProgress.jsm
> let taskbarProgress = this._taskbar.getTaskbarProgress(docShell);
> 
> 
This seems to translate to:
After a few minutes I open Thunderbird, unexpectedly it closes generating a crach report. Errors in the console this written appears highlighted to me:
Application.prototype .__ proto__ = extApplication.prototype;
Here we list the entire contents of the file steelApplication.js
It also appears an error in the file thaskbarProgress.jsm

Anyway, the _proto_ constructs seem to be changed in that file since the report:
http://mxr.mozilla.org/comm-central/source/mail/steel/steelApplication.js#40
Flags: needinfo?(acelists)
You need to log in before you can comment on or make changes to this bug.