From 41d567cf1f9d29ecbe54d24f1f6177a1848e756e Mon Sep 17 00:00:00 2001 From: John Schoenick Date: Fri, 2 Mar 2012 14:13:10 -0800 Subject: [PATCH] Bug 406541 - Followup - Handle failed URI creation, fix typo. r=bzbarsky --- content/base/public/nsIObjectLoadingContent.idl | 2 +- content/base/src/nsObjectLoadingContent.cpp | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/content/base/public/nsIObjectLoadingContent.idl b/content/base/public/nsIObjectLoadingContent.idl index 92a15adf1cd4..a30fb8893214 100644 --- a/content/base/public/nsIObjectLoadingContent.idl +++ b/content/base/public/nsIObjectLoadingContent.idl @@ -86,7 +86,7 @@ interface nsIObjectLoadingContent : nsISupports * account. The MIME type is required as some plugins (java) calculate * this differently. */ - nsIURI GetObjectBaseURI(in ACString aMimeType); + nsIURI getObjectBaseURI(in ACString aMimeType); /** * Returns the plugin instance if it has already been instantiated. This diff --git a/content/base/src/nsObjectLoadingContent.cpp b/content/base/src/nsObjectLoadingContent.cpp index 77ee34e91c95..b70dd2aa17bb 100644 --- a/content/base/src/nsObjectLoadingContent.cpp +++ b/content/base/src/nsObjectLoadingContent.cpp @@ -1871,9 +1871,18 @@ nsObjectLoadingContent::GetObjectBaseURI(const nsACString & aMimeType, nsIURI** codebase.AssignLiteral("/"); } - nsContentUtils::NewURIWithDocumentCharset(aURI, codebase, - thisContent->OwnerDoc(), - baseURI); + if (!codebase.IsEmpty()) { + nsresult rv = nsContentUtils::NewURIWithDocumentCharset(aURI, codebase, + thisContent->OwnerDoc(), + baseURI); + if (NS_SUCCEEDED(rv)) + return rv; + NS_WARNING("GetObjectBaseURI: Could not resolve plugin's codebase to a URI, using baseURI instead"); + } + + // Codebase empty or build URI failed, just use baseURI + *aURI = NULL; + baseURI.swap(*aURI); return NS_OK; }