-// This code is heavily inspired by Chris Pederick (useragentswitcher) install.js\r
-// Contributors: Philip Chee, deathburger\r
-//\r
-// Philip Chee: Added installation of prefs, components, and locales.\r
-// deathburger: Refactored to move all changable items to the top of the file.\r
-\r
-// Editable Items Begin\r
-var displayName = "ViewSourceWith";\r
-var version = "0.0.9";\r
-var name = "viewsourcewith";\r
-\r
-// The following three sets of variables tell this installer script how your\r
-// extension directory structure looks.\r
-// If your jar file contains content/packagename use the second packageDir\r
-// variable. Same rule applies for skinDir and localeDir. I set them up\r
-// independent of each other just in case an extension layout is wacky.\r
-//var packageDir = "/"\r
-var packageDir = "/" + name + "/"\r
-//var skinDir = "/"\r
-var skinDir = "/" + name + "/"\r
-//var localeDir = "/"\r
-var localeDir = "/" + name + "/"\r
-\r
-var locales = new Array("en-US", "it-IT", "fr-FR", "es-ES", \r
- "pl-PL", "ja-JP", "zh-TW", "pt-BR",\r
- "de-DE", "ru-RU", "nl-NL", "es-AR",\r
- "cs-CZ", "zh-CN", "tr-TR", "sk-SK",\r
- "az-AZ", "da-DK", "fa-IR", "hr-HR",\r
- "af-ZA", "th-TH");\r
-var skins = new Array( "classic", "modern");\r
-var prefs = new Array( "vsw.js" );\r
-var components = new Array( );\r
-var searchPlugins = new Array( );\r
-\r
-// Mozilla Suite/Seamonkey stores all pref files in a single directory\r
-// under the application directory. If the name of the preference file(s)\r
-// is/are not unique enough, you may override other extension preferences.\r
-// set this to true if you need to prevent this.\r
-var disambiguatePrefs = true;\r
-\r
-// Editable Items End\r
-\r
-var jarName = name + ".jar";\r
-var jarFolder = "content" + packageDir\r
-var error = null;\r
-\r
-var folder = getFolder("Profile", "chrome");\r
-var prefFolder = getFolder(getFolder("Program", "defaults"), "pref");\r
-var compFolder = getFolder("Components");\r
-var searchFolder = getFolder("Plugins");\r
-\r
-var existsInApplication = File.exists(getFolder(getFolder("chrome"), jarName));\r
-var existsInProfile = File.exists(getFolder(folder, jarName));\r
-\r
-var contentFlag = CONTENT | PROFILE_CHROME;\r
-var localeFlag = LOCALE | PROFILE_CHROME;\r
-var skinFlag = SKIN | PROFILE_CHROME;\r
-\r
-// If the extension exists in the application folder or it doesn't exist\r
-// in the profile folder and the user doesn't want it installed to the\r
-// profile folder\r
-if(existsInApplication ||\r
- (!existsInProfile &&\r
- !confirm( "Do you want to install the " + displayName +\r
- " extension into your profile folder?\n" +\r
- "(Cancel will install into the application folder)")))\r
-{\r
- contentFlag = CONTENT | DELAYED_CHROME;\r
- folder = getFolder("chrome");\r
- localeFlag = LOCALE | DELAYED_CHROME;\r
- skinFlag = SKIN | DELAYED_CHROME;\r
-}\r
-\r
-initInstall(displayName, name, version);\r
-setPackageFolder(folder);\r
-error = addFile(name, version, "chrome/" + jarName, folder, null);\r
-\r
-// If adding the JAR file succeeded\r
-if(error == SUCCESS)\r
-{\r
- folder = getFolder(folder, jarName);\r
-\r
- registerChrome(contentFlag, folder, jarFolder);\r
- for (var i = 0; i < locales.length; i++) {\r
- registerChrome(localeFlag, folder, "locale/" + locales[i] + localeDir);\r
- }\r
-\r
- for (var i = 0; i < skins.length; i++) {\r
- registerChrome(skinFlag, folder, "skin/" + skins[i] + skinDir);\r
- }\r
-\r
- for (var i = 0; i < prefs.length; i++) {\r
- if (!disambiguatePrefs) {\r
- addFile(name + " Defaults", version, "defaults/preferences/" + prefs[i],\r
- prefFolder, prefs[i], true);\r
- } else {\r
- addFile(name + " Defaults", version, "defaults/preferences/" + prefs[i],\r
- prefFolder, name + "-" + prefs[i], true);\r
- }\r
- }\r
-\r
- for (var i = 0; i < components.length; i++) {\r
- addFile(name + " Components", version, "components/" + components[i],\r
- compFolder, components[i], true);\r
- }\r
-\r
- for (var i = 0; i < searchPlugins.length; i++) {\r
- addFile(name + " searchPlugins", version, "searchplugins/" + searchPlugins[i],\r
- searchFolder, searchPlugins[i], true);\r
- }\r
-\r
- error = performInstall();\r
-\r
- // If the install failed\r
- if(error != SUCCESS && error != REBOOT_NEEDED)\r
- {\r
- displayError(error);\r
- cancelInstall(error);\r
- }\r
- else\r
- {\r
- alert("The installation of the " + displayName + " extension succeeded.");\r
- }\r
-}\r
-else\r
-{\r
- displayError(error);\r
- cancelInstall(error);\r
-}\r
-\r
-// Displays the error message to the user\r
-function displayError(error)\r
-{\r
- // If the error code was -215\r
- if(error == READ_ONLY)\r
- {\r
- alert("The installation of " + displayName +\r
- " failed.\nOne of the files being overwritten is read-only.");\r
- }\r
- // If the error code was -235\r
- else if(error == INSUFFICIENT_DISK_SPACE)\r
- {\r
- alert("The installation of " + displayName +\r
- " failed.\nThere is insufficient disk space.");\r
- }\r
- // If the error code was -239\r
- else if(error == CHROME_REGISTRY_ERROR)\r
- {\r
- alert("The installation of " + displayName +\r
- " failed.\nChrome registration failed.");\r
- }\r
- else\r
- {\r
- alert("The installation of " + displayName +\r
- " failed.\nThe error code is: " + error);\r
- }\r
-}\r
-\r