Bug 278772 - Various Firefox code incorrectly constructs URIs. patch by Gavin Sharp <gavin.sharp@gmail.com> r=mconnor sr=darin

git-svn-id: svn://10.0.0.236/trunk@170015 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mozilla.mano%sent.com
2005-02-28 23:09:24 +00:00
parent b3a4381f6b
commit 14a7553ffe
5 changed files with 45 additions and 38 deletions

View File

@@ -325,9 +325,12 @@ const gPopupBlockerObserver = {
showBlockedPopup: function (aEvent)
{
var requestingWindowURI = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(Components.interfaces.nsIURI);
requestingWindowURI.spec = aEvent.target.getAttribute("requestingWindowURI");
var requestingWindow = aEvent.target.getAttribute("requestingWindowURI");
var requestingWindowURI =
Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(requestingWindow, null, null);
var popupWindowURI = aEvent.target.getAttribute("popupWindowURI");
var features = aEvent.target.getAttribute("popupWindowFeatures");
@@ -3394,10 +3397,12 @@ nsBrowserAccess.prototype =
.getInterface(nsCI.nsIDOMWindow);
try {
if (aOpener) {
referrer = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(nsCI.nsIURI);
referrer.spec = Components.lookupMethod(aOpener,"location")
.call(aOpener);
var location = Components.lookupMethod(aOpener,"location")
.call(aOpener);
var referrer =
Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(location, null, null);
}
newWindow.QueryInterface(nsCI.nsIInterfaceRequestor)
.getInterface(nsCI.nsIWebNavigation)
@@ -3411,10 +3416,13 @@ nsBrowserAccess.prototype =
if (aOpener) {
newWindow = Components.lookupMethod(aOpener,"top")
.call(aOpener);
referrer = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(nsCI.nsIURI);
referrer.spec = Components.lookupMethod(aOpener,"location")
.call(aOpener);
var location = Components.lookupMethod(aOpener,"location")
.call(aOpener);
var referrer =
Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(location, null, null);
newWindow.QueryInterface(nsCI.nsIInterfaceRequestor)
.getInterface(nsIWebNavigation)
.loadURI(url, nsIWebNavigation.LOAD_FLAGS_NONE, referrer,
@@ -3875,8 +3883,7 @@ nsContextMenu.prototype = {
if (this.onImage) {
var blockImage = document.getElementById("context-blockimage");
var uri = Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI);
uri.spec = this.imageURL;
var uri = this.target.QueryInterface(Components.interfaces.nsIImageLoadingContent).currentURI;
var shortenedUriHost = uri.host.replace(/^www\./i,"");
if (shortenedUriHost.length > 15)
@@ -4251,10 +4258,10 @@ nsContextMenu.prototype = {
var nsIPermissionManager = Components.interfaces.nsIPermissionManager;
var permissionmanager =
Components.classes["@mozilla.org/permissionmanager;1"]
.getService(nsIPermissionManager);
var uri = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(Components.interfaces.nsIURI);
uri.spec = this.imageURL;
.getService(nsIPermissionManager);
var uri = this.target.QueryInterface(Components.interfaces.nsIImageLoadingContent).currentURI;
permissionmanager.add(uri, "image",
aBlock ? nsIPermissionManager.DENY_ACTION : nsIPermissionManager.ALLOW_ACTION);
},
@@ -4263,9 +4270,9 @@ nsContextMenu.prototype = {
var permissionmanager =
Components.classes["@mozilla.org/permissionmanager;1"]
.getService(Components.interfaces.nsIPermissionManager);
var uri = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(Components.interfaces.nsIURI);
uri.spec = this.imageURL;
var uri = this.target.QueryInterface(Components.interfaces.nsIImageLoadingContent).currentURI;
return permissionmanager.testPermission(uri, "image") == nsIPermissionManager.DENY_ACTION;
},
// Generate email address and put it on clipboard.
@@ -5480,10 +5487,8 @@ function AddKeywordForSearchField()
var node = document.popupNode;
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var uri = Components.classes["@mozilla.org/network/standard-url;1"]
.getService(Components.interfaces.nsIURI);
uri.spec = node.ownerDocument.URL;
var uri = ioService.newURI(node.ownerDocument.URL, node.ownerDocument.characterSet, null);
var keywordURL = ioService.newURI(node.form.action, node.ownerDocument.characterSet, uri);
var spec = keywordURL.spec;
var postData = "";

View File

@@ -126,12 +126,10 @@ function urlSecurityCheck(url, doc)
// URL Loading Security Check
var focusedWindow = doc.commandDispatcher.focusedWindow;
var sourceURL = getContentFrameURI(focusedWindow);
var sourceURI = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(Components.interfaces.nsIURI);
sourceURI.spec = sourceURL;
var destURI = Components.classes["@mozilla.org/network/standard-url;1"]
.createInstance(Components.interfaces.nsIURI);
destURI.spec = url;
var sourceURI = makeURI(sourceURL);
var destURI = makeURI(url);
const nsIScriptSecurityManager = Components.interfaces.nsIScriptSecurityManager;
var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(nsIScriptSecurityManager);

View File

@@ -92,8 +92,10 @@ function whitelistSite()
var selectedIndex = gSiteBox.getIndexOfItem(selectedItem);
var uri = Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI);
uri.spec = selectedItem.label;
var uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(selectedItem.label, null, null);
permissionmanager.add(uri, "popup", nsIPermissionManager.ALLOW_ACTION);
gSiteBox.removeChild(selectedItem);

View File

@@ -239,9 +239,10 @@
# if the search box is empty, let''s load the host
if (!this.value) {
var uri = Components.classes['@mozilla.org/network/standard-url;1']
.createInstance(Components.interfaces.nsIURI);
uri.spec = searchURL;
var uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(searchURL, null, null);
searchURL = uri.host;
if (!searchURL)
return;

View File

@@ -154,9 +154,10 @@ function handleHistoryClick(aEvent)
function checkURLSecurity(aURL)
{
var uri = Components.classes["@mozilla.org/network/standard-url;1"].
createInstance(Components.interfaces.nsIURI);
uri.spec = aURL;
var uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(aURL, null, null);
if (uri.schemeIs("javascript") || uri.schemeIs("data")) {
var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);