From cc2e379edae31aa41eee2e22bdee8d233769d85b Mon Sep 17 00:00:00 2001 From: "blakeross%telocity.com" Date: Mon, 4 Nov 2002 23:36:46 +0000 Subject: [PATCH] Port over more trunk fixes. git-svn-id: svn://10.0.0.236/trunk@132957 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/browser/base/content/pageInfo.js | 58 +++++++++------- mozilla/browser/base/content/pageInfo.xul | 3 +- mozilla/browser/base/locale/pageInfo.dtd | 68 +++++++++---------- .../browser/base/locale/pageInfo.properties | 1 + 4 files changed, 71 insertions(+), 59 deletions(-) diff --git a/mozilla/browser/base/content/pageInfo.js b/mozilla/browser/base/content/pageInfo.js index 522cb960aac..be3f45e1117 100644 --- a/mozilla/browser/base/content/pageInfo.js +++ b/mozilla/browser/base/content/pageInfo.js @@ -36,7 +36,7 @@ # the terms of any one of the NPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** - +# //******** define a js object to implement nsITreeView function pageInfoTreeView(columnids, copycol) { @@ -176,7 +176,7 @@ var metaView = new pageInfoTreeView(["meta-name","meta-content"], COPYCOL_META_C var formView = new pageInfoTreeView(["form-name","form-method","form-action","form-node"], COPYCOL_FORM_ACTION); var fieldView = new pageInfoTreeView(["field-label","field-field","field-type","field-value"], COPYCOL_NONE); var linkView = new pageInfoTreeView(["link-name","link-address","link-type"], COPYCOL_LINK_ADDRESS); -var imageView = new pageInfoTreeView(["image-address","image-type","image-alt","image-node"], COPYCOL_IMAGE_ADDRESS); +var imageView = new pageInfoTreeView(["image-address","image-type","image-alt","image-node", "image-bg"], COPYCOL_IMAGE_ADDRESS); // localized strings (will be filled in when the document is loaded) // this isn't all of them, these are just the ones that would otherwise have been loaded inside a loop @@ -245,6 +245,7 @@ function onLoadPageInfo() gStrings.linkRev = theBundle.getString("linkRev"); gStrings.linkX = theBundle.getString("linkX"); gStrings.mediaImg = theBundle.getString("mediaImg"); + gStrings.mediaBGImg = theBundle.getString("mediaBGImg"); gStrings.mediaApplet = theBundle.getString("mediaApplet"); gStrings.mediaObject = theBundle.getString("mediaObject"); gStrings.mediaEmbed = theBundle.getString("mediaEmbed"); @@ -445,7 +446,7 @@ function makeTabs(aDocument, aWindow) { var num = aWindow.frames.length; for (var i = 0; i < num; i++) - makeTab(aWindow.frames[i].document, aWindow.frames[i]); // recurse through the frames + makeTabs(aWindow.frames[i].document, aWindow.frames[i]); // recurse through the frames } var formTree = document.getElementById("formtree"); @@ -477,9 +478,17 @@ function makeTabs(aDocument, aWindow) function grabAll(elem) { + var linktext; + + // check for background images, any node may have one + var url = elem.ownerDocument.defaultView.getComputedStyle(elem, "").getPropertyCSSValue("background-image"); + if (url && url.primitiveType == CSSPrimitiveValue.CSS_URI) + { + imageView.addRow([url.getStringValue(), gStrings.mediaBGImg, gStrings.notSet, elem, true]); + } + // one switch to rule them all // XXX: these tests should use regexes to be a little more lenient wrt whitespace, see bug 177047 - var linktext; switch (elem.nodeName.toLowerCase()) { // form tab @@ -501,10 +510,10 @@ function grabAll(elem) case "link": if (elem.rel) { - var rel = elem.rel.toLowerCase(); - // should this test use regexes to be a little more lenient wrt whitespace? - if (rel == "icon") { - imageView.addRow([elem.href, gStrings.mediaLink, "", elem]); + var rel = elem.rel.toLowerCase(); + if (rel == "icon") + { + imageView.addRow([elem.href, gStrings.mediaLink, "", elem]); break; } if (rel == "stylesheet" || rel == "alternate stylesheet") @@ -720,25 +729,26 @@ function onImageSelect() if (tree.treeBoxObject.selection.count == 1) { - makePreview(getSelectedImage(tree)); + makePreview(tree.treeBoxObject.selection.currentIndex); saveAsButton.setAttribute("disabled", "false"); } else saveAsButton.setAttribute("disabled", "true"); } -function makePreview(item) +function makePreview(row) { - var url = ("src" in item && item.src) || ("code" in item && item.code) - || ("data" in item && item.data) || ("href" in item && item.href) - || gStrings.unknown; // it better have at least one of those... + var item = getSelectedImage(document.getElementById("imagetree")); + var url = imageView.getCellText(row, "image-address"); + var isBG = imageView.getCellText(row, "image-bg"); + document.getElementById("imageurltext").value = url; document.getElementById("imagetitletext").value = item.title || gStrings.notSet; var altText = null; if (item.hasAttribute("alt") && ("alt" in item)) altText = item.alt; - else if (item.hasChildNodes()) + else if (!isBG) altText = getValueText(item); if (altText == null) altText = gStrings.notSet; @@ -759,8 +769,10 @@ function makePreview(item) // find out the mime type var mimeType = gStrings.unknown; if (item.nodeName.toLowerCase() != "input") - mimeType = ("type" in item && item.type) || ("codeType" in item && item.codeType) - || ("contentType" in item && item.contentType) || gStrings.unknown; + mimeType = ("type" in item && item.type) || + ("codeType" in item && item.codeType) || + ("contentType" in item && item.contentType) || + gStrings.unknown; document.getElementById("imagetypetext").value = mimeType; // get cache info @@ -834,21 +846,16 @@ function makePreview(item) document.getElementById("imageexpirestext").value = expirationText; document.getElementById("imagesizetext").value = sizeText; - var width = ("width" in item && item.width) || ""; - var height = ("height" in item && item.height) || ""; - document.getElementById("imagewidth").value = theBundle.getFormattedString("mediaWidth", [width]); - document.getElementById("imageheight").value = theBundle.getFormattedString("mediaHeight", [height]); - var imageContainer = document.getElementById("theimagecontainer"); var oldImage = document.getElementById("thepreviewimage"); var nn = item.nodeName.toLowerCase(); var regex = new RegExp("^(https?|ftp|file|gopher)://"); - var absoluteURL = getAbsoluteURL(getSource(item), item); + var absoluteURL = getAbsoluteURL(url, item); var isProtocolAllowed = regex.test(absoluteURL); var newImage = new Image(); newImage.setAttribute("id", "thepreviewimage"); - if ((nn == "link" || nn == "input" || nn == "img") && + if ((nn == "link" || nn == "input" || nn == "img" || isBG) && isProtocolAllowed) { newImage.src = absoluteURL; @@ -866,6 +873,11 @@ function makePreview(item) newImage.height = 40; } + var width = ("width" in item && item.width) || ("width" in newImage && newImage.width) || "0"; + var height = ("height" in item && item.height) || ("height" in newImage && newImage.height) || "0"; + document.getElementById("imagewidth").value = theBundle.getFormattedString("mediaWidth", [width]); + document.getElementById("imageheight").value = theBundle.getFormattedString("mediaHeight", [height]); + imageContainer.removeChild(oldImage); imageContainer.appendChild(newImage); } diff --git a/mozilla/browser/base/content/pageInfo.xul b/mozilla/browser/base/content/pageInfo.xul index 0fcc521437f..28923cc46a8 100644 --- a/mozilla/browser/base/content/pageInfo.xul +++ b/mozilla/browser/base/content/pageInfo.xul @@ -22,7 +22,6 @@ # Chris McAfee # Daniel Brooks # Gervase Markham - -