From 3525c76b27291223251c92fc1a523530665cffb4 Mon Sep 17 00:00:00 2001 From: "neil%parkwaycc.co.uk" Date: Fri, 18 Mar 2005 10:38:52 +0000 Subject: [PATCH] Bug 175074 Element Properties not showing some URIs correctly p=bugzilla.mozilla.org@chsc.dk (Christian Schmidt) r=db48x sr=me --- xpfe/browser/resources/content/metadata.js | 62 +++++----------------- 1 file changed, 12 insertions(+), 50 deletions(-) diff --git a/xpfe/browser/resources/content/metadata.js b/xpfe/browser/resources/content/metadata.js index 35ffe1a8adb0..39ae17e49c5a 100644 --- a/xpfe/browser/resources/content/metadata.js +++ b/xpfe/browser/resources/content/metadata.js @@ -210,7 +210,7 @@ function checkForImage(elem, htmllocalname) } if (imgType == "img") { - setInfo("image-desc", getAbsoluteURL(img.longDesc, img)); + setInfo("image-desc", img.longDesc); } else { setInfo("image-desc", ""); } @@ -268,8 +268,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