diff --git a/mozilla/toolkit/mozapps/extensions/content/about.js b/mozilla/toolkit/mozapps/extensions/content/about.js
index 5406e95d118..d24a692ea10 100644
--- a/mozilla/toolkit/mozapps/extensions/content/about.js
+++ b/mozilla/toolkit/mozapps/extensions/content/about.js
@@ -74,7 +74,15 @@ function init()
if (homepage) {
homepage = homepage.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
// only allow http(s) homepages
- if (!/^https?:/.test(homepage))
+ var scheme = "";
+ var uri = null;
+ try {
+ uri = makeURI(homepage);
+ scheme = uri.scheme;
+ } catch (ex) {}
+ if (uri && (scheme == "http" || scheme == "https"))
+ homepage = uri.spec;
+ else
homepage = null;
}
diff --git a/mozilla/toolkit/mozapps/extensions/content/about.xul b/mozilla/toolkit/mozapps/extensions/content/about.xul
index 0850747ad33..5558bae2674 100644
--- a/mozilla/toolkit/mozapps/extensions/content/about.xul
+++ b/mozilla/toolkit/mozapps/extensions/content/about.xul
@@ -48,6 +48,7 @@
buttons="accept" onload="init();" onaccept="close();">
+
diff --git a/mozilla/toolkit/mozapps/extensions/content/extensions.js b/mozilla/toolkit/mozapps/extensions/content/extensions.js
index 9a2efeab4b6..19fe4f1d955 100644
--- a/mozilla/toolkit/mozapps/extensions/content/extensions.js
+++ b/mozilla/toolkit/mozapps/extensions/content/extensions.js
@@ -1002,8 +1002,15 @@ var gExtensionsViewController = {
{
if (!aSelectedItem) return;
var homepageURL = aSelectedItem.getAttribute("homepageURL");
- if (/^https?:/.test(homepageURL))
- openURL(homepageURL);
+ // only allow http(s) homepages
+ var scheme = "";
+ var uri = null;
+ try {
+ uri = makeURI(homepageURL);
+ scheme = uri.scheme;
+ } catch (ex) {}
+ if (uri && (scheme == "http" || scheme == "https"))
+ openURL(uri.spec);
},
cmd_about: function (aSelectedItem)
diff --git a/mozilla/toolkit/mozapps/extensions/content/extensions.xul b/mozilla/toolkit/mozapps/extensions/content/extensions.xul
index 5e357e8bc1f..ee604a7b464 100644
--- a/mozilla/toolkit/mozapps/extensions/content/extensions.xul
+++ b/mozilla/toolkit/mozapps/extensions/content/extensions.xul
@@ -59,6 +59,7 @@
onclose="return closeWindow(false);">
+