diff --git a/browser/base/content/metaData.js b/browser/base/content/metaData.js
index 1c3216754492..3409c5eaaf16 100644
--- a/browser/base/content/metaData.js
+++ b/browser/base/content/metaData.js
@@ -207,7 +207,7 @@ function checkForImage(elem, htmllocalname)
}
if (imgType == "img") {
- setInfo("image-desc", getAbsoluteURL(img.longDesc, img));
+ setInfo("image-desc", img.longDesc);
} else {
setInfo("image-desc", "");
}
@@ -267,8 +267,15 @@ function checkForLink(elem, htmllocalname)
onLink = true;
}
- else if (elem.getAttributeNS(XLinkNS,"href") != "") {
- setInfo("link-url", getAbsoluteURL(elem.getAttributeNS(XLinkNS,"href"),elem));
+ else if (elem.getAttributeNS(XLinkNS, "href") != "") {
+ var ioService = Components.classes["@mozilla.org/network/io-service;1"]
+ .getService(Components.interfaces.nsIIOService);
+ var url = elem.getAttributeNS(XLinkNS, "href");
+ try {
+ var baseURI = ioService.newURI(elem.baseURI, elem.ownerDocument.characterSet, null);
+ url = ioService.newURI(url, elem.ownerDocument.characterSet, baseURI).spec;
+ } catch (e) {}
+ setInfo("link-url", url);
setInfo("link-lang", "");
setInfo("link-type", "");
setInfo("link-rel", "");
@@ -302,7 +309,7 @@ function checkForInsDel(elem, htmllocalname)
{
if ((htmllocalname === "ins" || htmllocalname === "del") &&
(elem.cite || elem.dateTime)) {
- setInfo("insdel-cite", getAbsoluteURL(elem.cite, elem));
+ setInfo("insdel-cite", elem.cite);
setInfo("insdel-date", elem.dateTime);
onInsDel = true;
}
@@ -312,7 +319,7 @@ function checkForInsDel(elem, htmllocalname)
function checkForQuote(elem, htmllocalname)
{
if ((htmllocalname === "q" || htmllocalname === "blockquote") && elem.cite) {
- setInfo("quote-cite", getAbsoluteURL(elem.cite, elem));
+ setInfo("quote-cite", elem.cite);
onQuote = true;
}
}
@@ -427,51 +434,6 @@ function getImageForMap(map)
return img;
}
-/*
- * Takes care of XMLBase and
- * url is the possibly relative url.
- * node is the node where the url was given (needed for XMLBase)
- *
- * This function is called in many places as a workaround for bug 72524
- * Once bug 72522 is fixed this code should use the Node.baseURI attribute
- *
- * for node==null or url=="", empty string is returned
- */
-function getAbsoluteURL(url, node)
-{
- if (!url || !node)
- return "";
-
- var urlArr = new Array(url);
- var doc = node.ownerDocument;
-
- if (node.nodeType == Node.ATTRIBUTE_NODE)
- node = node.ownerElement;
-
- while (node && node.nodeType == Node.ELEMENT_NODE) {
- if (node.getAttributeNS(XMLNS, "base") != "")
- urlArr.unshift(node.getAttributeNS(XMLNS, "base"));
-
- node = node.parentNode;
- }
-
- // Look for a .
- var baseTags = getHTMLElements(doc,"base");
- if (baseTags && baseTags.length) {
- urlArr.unshift(baseTags[baseTags.length - 1].getAttribute("href"));
- }
-
- // resolve everything from bottom up, starting with document location
- var ioService = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
- var URL = ioService.newURI(doc.location.href, null, null);
- for (var i=0; i