forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var Cu = Components.utils;
 | 
						|
var Cc = Components.classes;
 | 
						|
var Ci = Components.interfaces;
 | 
						|
 | 
						|
Components.utils.import("resource://gre/modules/Services.jsm");
 | 
						|
 | 
						|
// Call a function once initialization of SessionStartup is complete
 | 
						|
function afterSessionStartupInitialization(cb) {
 | 
						|
  do_print("Waiting for session startup initialization");
 | 
						|
  let observer = function() {
 | 
						|
    try {
 | 
						|
      do_print("Session startup initialization observed");
 | 
						|
      Services.obs.removeObserver(observer, "sessionstore-state-finalized");
 | 
						|
      cb();
 | 
						|
    } catch (ex) {
 | 
						|
      do_throw(ex);
 | 
						|
    }
 | 
						|
  };
 | 
						|
 | 
						|
  // We need the Crash Monitor initialized for sessionstartup to run
 | 
						|
  // successfully.
 | 
						|
  Components.utils.import("resource://gre/modules/CrashMonitor.jsm");
 | 
						|
  CrashMonitor.init();
 | 
						|
 | 
						|
  // Start sessionstartup initialization.
 | 
						|
  let startup = Cc["@mozilla.org/browser/sessionstartup;1"].
 | 
						|
    getService(Ci.nsIObserver);
 | 
						|
  Services.obs.addObserver(startup, "final-ui-startup", false);
 | 
						|
  Services.obs.addObserver(startup, "quit-application", false);
 | 
						|
  Services.obs.notifyObservers(null, "final-ui-startup", "");
 | 
						|
  Services.obs.addObserver(observer, "sessionstore-state-finalized", false);
 | 
						|
};
 |