first part of fix for #52519 - escape text/x-moz-url URLs when they are dragged r=law@netscape.com (LOTS of review!)

a=ben@netscape.com
(from the N6 branch)


git-svn-id: svn://10.0.0.236/trunk@81473 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alecf%netscape.com
2000-10-19 21:38:25 +00:00
parent 9a39c3cc16
commit 086199e48f

View File

@@ -101,7 +101,7 @@ var personalToolbarObserver = {
var flavourList = { };
flavourList["moz/toolbaritem"] = { width: 2, data: uri };
flavourList["text/x-moz-url"] = { width: 2, data: uri + " " + "[ TEMP TITLE ]" };
flavourList["text/x-moz-url"] = { width: 2, data: escape(uri) + " " + "[ TEMP TITLE ]" };
flavourList["text/html"] = { width: 2, data: htmlString };
flavourList["text/unicode"] = { width: 2, data: uri };
return flavourList;
@@ -288,7 +288,7 @@ var contentAreaDNDObserver = {
}
else
{
dump("didnt get here\n");
dump("dragging DOM node: <" + aEvent.target.localName + ">\n");
switch (aEvent.target.localName)
{
case 'AREA':
@@ -355,11 +355,11 @@ var contentAreaDNDObserver = {
break;
}
}
var flavourList = { };
flavourList["text/html"] = { width: 2, data: htmlstring };
if (isLink)
flavourList["text/x-moz-url"] = { width: 2, data: textstring + " " + "( TEMP TITLE )" };
if (isLink)
flavourList["text/x-moz-url"] = { width: 2, data: escape(textstring) + " " + "( TEMP TITLE )" };
flavourList["text/unicode"] = { width: 2, data: textstring };
return flavourList;
},
@@ -380,7 +380,10 @@ var contentAreaDNDObserver = {
var url = retrieveURLFromData(data);
if (url.length == 0)
return;
// valid urls don't contain spaces ' '; if we have a space it isn't a valid url so bail out
// this is a hacky fix for #40911 so that dragging
// and dropping text from the same window into itself
// does not load that text as a URL.
// see bug #52519 for related problems with this fix
var urlstr = url.toString();
if ( urlstr.indexOf(" ", 0) != -1 )
return;
@@ -433,7 +436,7 @@ var proxyIconDNDObserver = {
var urlBar = document.getElementById("urlbar");
var flavourList = { };
flavourList["text/unicode"] = { width: 2, data: urlBar.value };
flavourList["text/x-moz-url"] = { width: 2, data: urlBar.value + " " + window._content.document.title };
flavourList["text/x-moz-url"] = { width: 2, data: escape(urlBar.value) + " " + window.title };
var htmlString = "<a href=\"" + urlBar.value + "\">" + urlBar.value + "</a>";
flavourList["text/html"] = { width: 2, data: htmlString };
return flavourList;
@@ -472,7 +475,7 @@ var homeButtonObserver = {
setHomepage = true;
if (setHomepage)
{
nsPreferences.setUnicharPref("browser.startup.homepage", url);
nsPreferences.setUnicharPref("browser.startup.homepage", url);
setTooltipText("homebutton", url);
}
},
@@ -499,7 +502,7 @@ var homeButtonObserver = {
{
var homepage = nsPreferences.getLocalizedUnicharPref("browser.startup.homepage", "about:blank");
var flavourList = { };
flavourList["text/x-moz-url"] = { width: 2, data: homepage + " " + "[ TEMP - Home Page ]" };
flavourList["text/x-moz-url"] = { width: 2, data: escape(homepage) + " " + "[ TEMP - Home Page ]" };
flavourList["text/html"] = { width: 2, data: htmlString };
flavourList["text/unicode"] = { width: 2, data: homepage };
var htmlString = "<a href=\"" + homepage + "\">" + homepage + "</a>";
@@ -521,8 +524,9 @@ function retrieveURLFromData (aData)
switch (aData.flavour)
{
case "text/unicode":
case "text/x-moz-url":
return aData.data.data; // XXX this is busted.
case "text/x-moz-url":
return unescape(aData.data.data); // XXX this is busted.
break;
case "application/x-moz-file":
var dataObj = aData.data.data.QueryInterface(Components.interfaces.nsIFile);