case "print": var aWindow = getMostRecentBrowserWindow(); var printerName = remoteParams[0]; var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService); var webBrowserPrint = aWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebBrowserPrint); var printSettings = printService.newPrintSettings; printSettings.printSilent = true; if (printerName && printerName != '') { printSettings.printerName = printerName; } else { printSettings.printerName = printService.defaultPrinterName; } printService.initPrintSettingsFromPrinter(printSettings.printerName, printSettings); try { webBrowserPrint.print(printSettings, null); } catch (e) { throw NS_ERROR_ABORT; } break;