diff --git a/content/html/document/src/nsImageDocument.cpp b/content/html/document/src/nsImageDocument.cpp index 4f69ec073ef7..28ca43fa5eae 100644 --- a/content/html/document/src/nsImageDocument.cpp +++ b/content/html/document/src/nsImageDocument.cpp @@ -506,6 +506,7 @@ nsresult nsImageDocument::UpdateTitle( void ) nsAutoString widthStr; nsAutoString heightStr; nsXPIDLString fileStr; + nsAutoString typeStr; PRUint32 width = 0, height = 0; nsCOMPtr url = do_QueryInterface(mDocumentURL); @@ -535,30 +536,44 @@ nsresult nsImageDocument::UpdateTitle( void ) widthStr.AppendInt(width); heightStr.AppendInt(height); + + nsXPIDLCString mimeType; + mImageRequest->GetMimeType(getter_Copies(mimeType)); + ToUpperCase(mimeType); + nsXPIDLCString::const_iterator start, end; + mimeType.BeginReading(start); + mimeType.EndReading(end); + nsXPIDLCString::const_iterator iter = end; + if (FindInReadable(NS_LITERAL_CSTRING("IMAGE/"), start, iter) && iter != end) { + CopyASCIItoUCS2(Substring(iter, end), typeStr); + } else { + CopyASCIItoUCS2(mimeType, typeStr); + } } // If we got a filename, display it - if(!fileStr.IsEmpty()) { + if (!fileStr.IsEmpty()) { // if we got a valid size (sometimes we do not) then display it if (width != 0 && height != 0){ - const PRUnichar *formatStrings[3] = {fileStr.get(), widthStr.get(), heightStr.get()}; - rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithDimensionsAndFile").get(), formatStrings, 3, getter_Copies(valUni)); + const PRUnichar *formatStrings[4] = {fileStr.get(), typeStr.get(), widthStr.get(), heightStr.get()}; + rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithDimensionsAndFile").get(), formatStrings, 4, getter_Copies(valUni)); } else { - const PRUnichar *formatStrings[1] = {fileStr.get()}; - rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithoutDimensions").get(), formatStrings, 1, getter_Copies(valUni)); + const PRUnichar *formatStrings[2] = {fileStr.get(), typeStr.get()}; + rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithoutDimensions").get(), formatStrings, 2, getter_Copies(valUni)); } } else { // if we got a valid size (sometimes we do not) then display it if (width != 0 && height != 0){ - const PRUnichar *formatStrings[2] = {widthStr.get(), heightStr.get()}; - rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithDimensions").get(), formatStrings, 2, getter_Copies(valUni)); + const PRUnichar *formatStrings[3] = {typeStr.get(), widthStr.get(), heightStr.get()}; + rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithDimensions").get(), formatStrings, 3, getter_Copies(valUni)); } else { - rv = bundle->GetStringFromName(NS_LITERAL_STRING("ImageTitleWithoutDimensionsAndFile").get(), getter_Copies(valUni)); + const PRUnichar *formatStrings[1] = {typeStr.get()}; + rv = bundle->FormatStringFromName(NS_LITERAL_STRING("ImageTitleWithNeitherDimensionsNorFile").get(), formatStrings, 1, getter_Copies(valUni)); } } if (NS_SUCCEEDED(rv) && valUni) { // set it on the document - SetTitle(nsDependentString(valUni)); + SetTitle(valUni); } } return NS_OK; diff --git a/layout/html/forms/src/ImageDocument.properties b/layout/html/forms/src/ImageDocument.properties index c00b7f1c42a7..af15efe5f697 100644 --- a/layout/html/forms/src/ImageDocument.properties +++ b/layout/html/forms/src/ImageDocument.properties @@ -19,10 +19,11 @@ # Blake Ross (Original Author) # Morten Nilsen -#LOCALIZATION NOTE (ImageTitleWithDimensionsAndfile): first %S is filename, second %S is width and third %S is height -#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename -#LOCALIZATION NOTE (ImageTitleWithDimensions): first %S is width and second %S is height -ImageTitleWithDimensionsAndFile=%S (Image %Sx%S pixels) -ImageTitleWithoutDimensions=%S (Image) -ImageTitleWithDimensions=(Image %Sx%S pixels) -ImageTitleWithoutDimensionsAndFile=(Image) +#LOCALIZATION NOTE (ImageTitleWithDimensionsAndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height +#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type +#LOCALIZATION NOTE (ImageTitleWithDimensions): first %S is type, second %S is width and third %S is height +#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type +ImageTitleWithDimensionsAndFile=%S (%S Image, %Sx%S pixels) +ImageTitleWithoutDimensions=%S (%S Image) +ImageTitleWithDimensions=(%S Image, %Sx%S pixels) +ImageTitleWithNeitherDimensionsNorFile=(%S Image)