Bug 448630 - Make audio and video show up in Page Info > Media. r=dao

This commit is contained in:
Tanner M. Young 2010-04-17 11:08:12 +02:00
parent c28dd3ef6d
commit f2944f1de0
2 changed files with 45 additions and 3 deletions

View File

@ -278,6 +278,10 @@ function onLoadPageInfo()
gStrings.mediaEmbed = gBundle.getString("mediaEmbed");
gStrings.mediaLink = gBundle.getString("mediaLink");
gStrings.mediaInput = gBundle.getString("mediaInput");
#ifdef MOZ_MEDIA
gStrings.mediaVideo = gBundle.getString("mediaVideo");
gStrings.mediaAudio = gBundle.getString("mediaAudio");
#endif
var args = "arguments" in window &&
window.arguments.length >= 1 &&
@ -621,6 +625,14 @@ function grabAll(elem)
addImage(href, gStrings.mediaImg, "", elem, false);
} catch (e) { }
}
#endif
#ifdef MOZ_MEDIA
else if (elem instanceof HTMLVideoElement) {
addImage(elem.currentSrc, gStrings.mediaVideo, "", elem, false);
}
else if (elem instanceof HTMLAudioElement) {
addImage(elem.currentSrc, gStrings.mediaAudio, "", elem, false);
}
#endif
else if (elem instanceof HTMLLinkElement) {
if (elem.rel && /\bicon\b/i.test(elem.rel))
@ -813,6 +825,7 @@ function makePreview(row)
var item = getSelectedImage(imageTree);
var url = gImageView.data[row][COL_IMAGE_ADDRESS];
var isBG = gImageView.data[row][COL_IMAGE_BG];
var isAudo = false;
setItemValue("imageurltext", url);
@ -914,8 +927,8 @@ function makePreview(row)
if (/^data:/.test(url) && /^image\//.test(mimeType))
isProtocolAllowed = true;
var newImage = new Image();
newImage.setAttribute("id", "thepreviewimage");
var newImage = new Image;
newImage.id = "thepreviewimage";
var physWidth = 0, physHeight = 0;
var width = 0, height = 0;
@ -956,6 +969,33 @@ function makePreview(row)
document.getElementById("theimagecontainer").collapsed = false
document.getElementById("brokenimagecontainer").collapsed = true;
}
#ifdef MOZ_MEDIA
else if (item instanceof HTMLVideoElement && isProtocolAllowed) {
newImage = document.createElementNS("http://www.w3.org/1999/xhtml", "video");
newImage.id = "thepreviewimage";
newImage.mozLoadFrom(item);
newImage.controls = true;
physWidth = item.videoWidth;
physHeight = item.videoHeight;
width = item.width != -1 ? item.width : physWidth;
height = item.height != -1 ? item.height : physHeight;
newImage.width = width;
newImage.height = height;
document.getElementById("theimagecontainer").collapsed = false;
document.getElementById("brokenimagecontainer").collapsed = true;
}
else if (item instanceof HTMLAudioElement && isProtocolAllowed) {
newImage = new Audio;
newImage.id = "thepreviewimage";
newImage.src = url;
newImage.controls = true;
isAudo = true;
document.getElementById("theimagecontainer").collapsed = false;
document.getElementById("brokenimagecontainer").collapsed = true;
}
#endif
else {
// fallback image for protocols not allowed (e.g., data: or javascript:)
// or elements not [yet] handled (e.g., object, embed).
@ -964,7 +1004,7 @@ function makePreview(row)
}
var imageSize = "";
if (url) {
if (url && !isAudo) {
if (width != physWidth || height != physHeight) {
imageSize = gBundle.getFormattedString("mediaDimensionsScaled",
[formatNumber(physWidth),

View File

@ -48,6 +48,8 @@ yes=Yes
no=No
mediaImg=Image
mediaVideo=Video
mediaAudio=Audio
mediaBGImg=Background
mediaObject=Object
mediaEmbed=Embed