From 5db6be34ed24b215dc0f6bd8ea158a6db95dcabe Mon Sep 17 00:00:00 2001 From: "ben%bengoodger.com" Date: Tue, 4 May 2004 10:04:34 +0000 Subject: [PATCH] 170006 adjust install api a little --- .../extensions/public/nsIExtensionManager.idl | 4 ++-- .../extensions/src/nsExtensionManager.js.in | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/toolkit/mozapps/extensions/public/nsIExtensionManager.idl b/toolkit/mozapps/extensions/public/nsIExtensionManager.idl index 5466b3362f4..83ab20fc517 100644 --- a/toolkit/mozapps/extensions/public/nsIExtensionManager.idl +++ b/toolkit/mozapps/extensions/public/nsIExtensionManager.idl @@ -38,7 +38,7 @@ #include "nsISupports.idl" -interface nsIZipReader; +interface nsIFile; interface nsIRDFDataSource; interface nsIUpdateItem; @@ -48,7 +48,7 @@ interface nsIExtensionManager : nsISupports const unsigned long FLAG_INSTALL_PROFILE = 0x01; const unsigned long FLAG_INSTALL_GLOBAL = 0x02; - void installExtensionFromXPI(in nsIZipReader aZipReader, in unsigned long aFlags); + void installExtensionFromXPI(in nsIFile aXPIFile, in unsigned long aFlags); void uninstallExtension(in string aExtensionID); void enableExtension(in string aExtensionID); diff --git a/toolkit/mozapps/extensions/src/nsExtensionManager.js.in b/toolkit/mozapps/extensions/src/nsExtensionManager.js.in index 30ff1d16331..4337672a01c 100644 --- a/toolkit/mozapps/extensions/src/nsExtensionManager.js.in +++ b/toolkit/mozapps/extensions/src/nsExtensionManager.js.in @@ -667,14 +667,8 @@ nsExtensionManager.prototype = { catch (e) { /* can't handle this */ } } - if (file.exists()) { - var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] - .createInstance(Components.interfaces.nsIZipReader); - zipReader.init(file); - zipReader.open(); - this.installExtensionFromXPI(zipReader, nsIExtensionManager.FLAG_INSTALL_GLOBAL); - zipReader.close(); - } + if (file.exists()) + this.installExtensionFromXPI(file, nsIExtensionManager.FLAG_INSTALL_GLOBAL); else { printf("Invalid XPI Path: " + aPath + "\n"); } @@ -919,7 +913,7 @@ nsExtensionManager.prototype = { ///////////////////////////////////////////////////////////////////////////// // nsIExtensionManager - installExtensionFromXPI: function (aZipReader, aFlags) + installExtensionFromXPI: function (aXPIFile, aFlags) { // Since we're installing a "new type" extension, we assume a file layout // within the XPI like so: @@ -929,10 +923,15 @@ nsExtensionManager.prototype = { // components/ // defaults/ // prefs/ + var zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"] + .createInstance(Components.interfaces.nsIZipReader); + zipReader.init(aXPIFile); + zipReader.open(); + var installProfile = aFlags & nsIExtensionManager.FLAG_INSTALL_PROFILE; var tempManifest = getFile(getDirKey(installProfile), [DIR_EXTENSIONS, DIR_TEMP, FILE_EXTENSION_MANIFEST]); - aZipReader.extract(FILE_EXTENSION_MANIFEST, tempManifest); + zipReader.extract(FILE_EXTENSION_MANIFEST, tempManifest); var rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"] .getService(Components.interfaces.nsIRDFService); @@ -950,8 +949,9 @@ nsExtensionManager.prototype = { this._ds._emL("true"), installProfile); // Then we stage the extension's XPI into a temporary directory so we // can extract them after the next restart. - this._stageExtensionXPI(aZipReader, extensionID, installProfile); + this._stageExtensionXPI(zipReader, extensionID, installProfile); } + zipReader.close(); tempManifest.remove(false); this._writeAutoReg(installProfile);