diff --git a/mozilla/xpfe/browser/resources/content/navigatorDD.js b/mozilla/xpfe/browser/resources/content/navigatorDD.js
index 923635219c9..894343def16 100644
--- a/mozilla/xpfe/browser/resources/content/navigatorDD.js
+++ b/mozilla/xpfe/browser/resources/content/navigatorDD.js
@@ -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 = "" + urlBar.value + "";
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 = "" + homepage + "";
@@ -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);