nsresult sbAlbumArtService::GetAlbumArtFileExtension(const nsACString& aMimeType, nsACString& aFileExtension) { TRACE(("sbAlbumArtService[0x%8.x] - GetAlbumArtFileExtension", this)); nsresult rv; // Look up the file extension from the MIME type. rv = mMIMEService->GetPrimaryExtension(aMimeType, NS_LITERAL_CSTRING(""), aFileExtension); if (NS_FAILED(rv)) aFileExtension.Truncate(); // Extract the file extension from the MIME type. if (aFileExtension.IsEmpty()) { PRInt32 mimeSubTypeIndex = aMimeType.RFind("/"); if (mimeSubTypeIndex >= 0) { aFileExtension.Assign(nsDependentCSubstring(aMimeType, mimeSubTypeIndex + 1)); } else { aFileExtension.Assign(aMimeType); } } // Convert file extension to lower-case. ToLowerCase(aFileExtension); // Validate the extension. if (!mValidExtensionList.Contains(aFileExtension)) return NS_ERROR_FAILURE; return NS_OK; }