Opens this Help window displaying information that can help Internet Explorer users transition to &brandShortName;.
-Opens a web page that gives you information on how to promote - &brandShortName;.
+Provides information about installing, uninstalling and configuring &brandShortName;, + as well as other important information and late breaking notices. Requires an + active Internet connection.
Displays a dialog box with information about &brandShortName;, including
diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd
index e4deaf7a5687..f80654fbf977 100644
--- a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd
@@ -40,6 +40,8 @@
+
+
diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/update.dtd b/toolkit/locales/en-US/chrome/mozapps/extensions/update.dtd
index 60983667e76a..33d1545235f5 100644
--- a/toolkit/locales/en-US/chrome/mozapps/extensions/update.dtd
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/update.dtd
@@ -1,5 +1,87 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/update.properties b/toolkit/locales/en-US/chrome/mozapps/extensions/update.properties
new file mode 100755
index 000000000000..e656f3d733b1
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/update.properties
@@ -0,0 +1,52 @@
+mismatchCheckNow=Check Now
+mismatchCheckNowAccesskey=C
+mismatchDontCheck=Don't Check
+mismatchDontCheckAccesskey=D
+installButtonText=Install Now
+installButtonTextAccesskey=I
+nextButtonText=Next >
+nextButtonTextAccesskey=N
+cancelButtonText=Cancel
+cancelButtonTextAccesskey=C
+app.update.url=https://aus.mozilla.org/update/firefox/en-US.rdf
+
+updatesAvailableTitle=New Updates Available
+updatesAvailableText=Click Here to View
+
+checkingPrefix=Checking for Updates to %S ...
+downloadingPrefix=Downloading: %S
+installingPrefix=Installing: %S
+closeButton=Close
+
+installErrorDescription=The following components could not be installed due to errors (the file could not be downloaded, was corrupt, or for some other reason).
+checkingErrorDescription=%S could not check for updates to the following components (either the update server(s) did not respond, or the update service(s) were not found).
+installErrorItemFormat=%S (%S)
+
+versionUpdateComplete=Version Compatibility Update Complete
+
+updatesAvailableTooltip-0=Update(s) Available
+updatesAvailableTooltip-1=Update(s) Available
+updatesAvailableTooltip-2=Critical Update(s) Available
+
+updatesCheckForUpdatesTooltip=Double-click here to check for updates
+
+installTextNoFurtherActions=Choose the ones you want to install and click Install Now to install them.
+installTextFurtherCations=Choose the ones you want to install and click Next to continue.
+
+appNameAndVersionFormat=%S %S
+updateTypePatches=Critical Updates (%S)
+updateTypeComponents=Optional Components (%S)
+updateTypeExtensions=Extensions and Themes (%S)
+updateTypeLangPacks=Language Packs (%S)
+
+foundAppLabel=%S %S is available. We strongly recommend that you install this upgrade as soon as possible.
+foundAppFeatures=%S %S features:
+foundAppInfoLink=More information about %S %S ...
+foundInstructions=Choose the ones you want to install and click Install Now to install them.
+foundInstructionsAppComps=Choose the ones you want to install and click Next to continue.
+
+appupdateperformedtitle=Restart Required
+appupdateperformedmessage=%S has been updated this session. Please restart %S before performing any more updates.
+
+updatesdisabledtitle=Update Disabled
+updatesdisabledmessage=Update has been disabled by your Administrator.
diff --git a/toolkit/locales/en-US/chrome/mozapps/update/incompatible.dtd b/toolkit/locales/en-US/chrome/mozapps/update/incompatible.dtd
new file mode 100755
index 000000000000..9d1e224523a3
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/update/incompatible.dtd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/toolkit/locales/en-US/chrome/mozapps/update/update.dtd b/toolkit/locales/en-US/chrome/mozapps/update/update.dtd
deleted file mode 100644
index ff1c5f9c9aa6..000000000000
--- a/toolkit/locales/en-US/chrome/mozapps/update/update.dtd
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/toolkit/locales/en-US/chrome/mozapps/update/updates.dtd b/toolkit/locales/en-US/chrome/mozapps/update/updates.dtd
new file mode 100755
index 000000000000..ac6e5201bc54
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/update/updates.dtd
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/toolkit/locales/en-US/chrome/mozapps/update/updates.properties b/toolkit/locales/en-US/chrome/mozapps/update/updates.properties
new file mode 100755
index 000000000000..91b818fcaf4e
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/update/updates.properties
@@ -0,0 +1,5 @@
+updateName=%S %S
+updateType_major=New Version
+updateType_minor=Security Update
+introType_minor=An important Security Update for %S is available:
+introType_major=A new version of %S is available:
diff --git a/toolkit/locales/jar.mn b/toolkit/locales/jar.mn
index b14032ad41fc..3dfeda39c102 100644
--- a/toolkit/locales/jar.mn
+++ b/toolkit/locales/jar.mn
@@ -76,6 +76,8 @@
locale/@AB_CD@/mozapps/extensions/extensions.properties (%chrome/mozapps/extensions/extensions.properties)
locale/@AB_CD@/mozapps/extensions/about.dtd (%chrome/mozapps/extensions/about.dtd)
locale/@AB_CD@/mozapps/extensions/finalize.dtd (%chrome/mozapps/extensions/finalize.dtd)
+ locale/@AB_CD@/mozapps/extensions/update.dtd (%chrome/mozapps/extensions/update.dtd)
+ locale/@AB_CD@/mozapps/extensions/update.properties (%chrome/mozapps/extensions/update.properties)
locale/@AB_CD@/mozapps/plugins/plugins.dtd (%chrome/mozapps/plugins/plugins.dtd)
locale/@AB_CD@/mozapps/plugins/plugins.properties (%chrome/mozapps/plugins/plugins.properties)
locale/@AB_CD@/mozapps/preferences/ocsp.dtd (%chrome/mozapps/preferences/ocsp.dtd)
@@ -86,8 +88,9 @@
locale/@AB_CD@/mozapps/profile/createProfileWizard.dtd (%chrome/mozapps/profile/createProfileWizard.dtd)
locale/@AB_CD@/mozapps/profile/profileSelection.properties (%chrome/mozapps/profile/profileSelection.properties)
locale/@AB_CD@/mozapps/profile/profileSelection.dtd (%chrome/mozapps/profile/profileSelection.dtd)
- locale/@AB_CD@/mozapps/update/update.dtd (%chrome/mozapps/update/update.dtd)
- locale/@AB_CD@/mozapps/update/update.properties (%chrome/mozapps/update/update.properties)
+ locale/@AB_CD@/mozapps/update/updates.dtd (%chrome/mozapps/update/updates.dtd)
+ locale/@AB_CD@/mozapps/update/updates.properties (%chrome/mozapps/update/updates.properties)
+ locale/@AB_CD@/mozapps/update/incompatible.dtd (%chrome/mozapps/update/incompatible.dtd)
locale/@AB_CD@/mozapps/update/errors.dtd (%chrome/mozapps/update/errors.dtd)
locale/@AB_CD@/mozapps/xpinstall/xpinstallConfirm.dtd (%chrome/mozapps/xpinstall/xpinstallConfirm.dtd)
locale/@AB_CD@/mozapps/xpinstall/xpinstallConfirm.properties (%chrome/mozapps/xpinstall/xpinstallConfirm.properties)
diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
index 32591b920f57..02adcab81d2e 100644
--- a/toolkit/mozapps/extensions/content/extensions.js
+++ b/toolkit/mozapps/extensions/content/extensions.js
@@ -69,6 +69,8 @@ const OP_NEEDS_UNINSTALL = "needs-uninstall";
const OP_NEEDS_ENABLE = "needs-enable";
const OP_NEEDS_DISABLE = "needs-disable";
+const URI_EXTENSION_UPDATE_DIALOG = "chrome://mozapps/content/extensions/update.xul";
+
///////////////////////////////////////////////////////////////////////////////
// Utility Functions
@@ -517,10 +519,11 @@ function onThemeSelect(aEvent)
var gExtensionContextMenus = ["menuitem_options", "menuitem_homepage", "menuitem_about",
"menuseparator_1", "menuitem_uninstall", "menuitem_update",
"menuitem_enable", "menuitem_disable", "menuseparator_2",
- "menuitem_moveTop", "menuitem_moveUp", "menuitem_moveDn"];
+ "menuitem_moveTop", "menuitem_moveUp", "menuitem_moveDn",
+ "menuseparator_3", "menuitem_showFolder"];
var gThemeContextMenus = ["menuitem_useTheme", "menuitem_homepage", "menuitem_about",
"menuseparator_1", "menuitem_uninstall", "menuitem_update",
- "menuitem_enable"];
+ "menuitem_enable", "menuseparator_3", "menuitem_showFolder"];
function buildContextMenu(aEvent)
{
@@ -761,6 +764,9 @@ var gExtensionsViewController = {
case "cmd_movedn":
var children = gExtensionsView.children;
return selectedItem && (children[children.length-1] != selectedItem);
+ case "cmd_showFolder":
+ return selectedItem &&
+ selectedItem.getAttribute("toBeInstalled") != "true";
#ifndef MOZ_PHOENIX
case "cmd_install":
return true;
@@ -884,11 +890,26 @@ var gExtensionsViewController = {
var id = aSelectedItem ? getIDFromResourceURI(aSelectedItem.id) : null;
var itemType = gWindowState == "extensions" ? nsIUpdateItem.TYPE_EXTENSION : nsIUpdateItem.TYPE_THEME;
var items = id ? [gExtensionManager.getItemForID(id)] : [];
- var updates = Components.classes["@mozilla.org/updates/update-service;1"]
- .getService(Components.interfaces.nsIUpdateService);
- updates.checkForUpdates(items, items.length, itemType,
- Components.interfaces.nsIUpdateService.SOURCE_EVENT_USER,
- window);
+
+ var ary = Components.classes["@mozilla.org/supports-array;1"]
+ .createInstance(Components.interfaces.nsISupportsArray);
+ var updateTypes = Components.classes["@mozilla.org/supports-PRUint8;1"]
+ .createInstance(Components.interfaces.nsISupportsPRUint8);
+ updateTypes.data = itemType;
+ ary.AppendElement(updateTypes);
+ var sourceEvent = Components.classes["@mozilla.org/supports-PRBool;1"]
+ .createInstance(Components.interfaces.nsISupportsPRBool);
+ sourceEvent.data = false;
+ ary.AppendElement(sourceEvent);
+ for (var i = 0; i < items.length; ++i)
+ ary.AppendElement(items[i]);
+
+ var features = "chrome,centerscreen,dialog,titlebar";
+ // This *must* be modal so as not to break startup! This code is invoked before
+ // the main event loop is initiated (via checkForMismatches).
+ var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
+ .getService(Components.interfaces.nsIWindowWatcher);
+ ww.openWindow(window, URI_EXTENSION_UPDATE_DIALOG, "", features, ary);
},
cmd_uninstall: function (aSelectedItem)
@@ -931,6 +952,15 @@ var gExtensionsViewController = {
gExtensionsView.selected = document.getElementById(nextElement);
},
+ cmd_showFolder: function (aSelectedItem)
+ {
+ var id = getIDFromResourceURI(aSelectedItem.id);
+ var installLocation = gExtensionManager.getInstallLocation(id);
+ var location = installLocation.getItemLocation(id);
+ if (location instanceof Components.interfaces.nsILocalFile)
+ location.reveal();
+ },
+
cmd_disable: function (aSelectedItem)
{
gExtensionManager.disableItem(getIDFromResourceURI(aSelectedItem.id));
diff --git a/toolkit/mozapps/extensions/content/extensions.xul b/toolkit/mozapps/extensions/content/extensions.xul
index 6f4ec4c6416b..781a23acec3f 100644
--- a/toolkit/mozapps/extensions/content/extensions.xul
+++ b/toolkit/mozapps/extensions/content/extensions.xul
@@ -100,6 +100,7 @@