From 9a23e216ce94eb243fb12dccc9c87eb4ade1b51e Mon Sep 17 00:00:00 2001 From: Valentin Gosu Date: Wed, 31 Jan 2018 03:06:58 +0100 Subject: [PATCH] Bug 1432519 - Make nsIURL attributes readonly r=mayhemer MozReview-Commit-ID: KuPILT7rX6N --- modules/libjar/nsJARURI.cpp | 25 +++++++++---------------- modules/libjar/nsJARURI.h | 4 ++++ netwerk/base/nsIURL.idl | 9 ++++----- netwerk/base/nsStandardURL.cpp | 25 +++++++++---------------- netwerk/base/nsStandardURL.h | 12 ++++++++---- 5 files changed, 34 insertions(+), 41 deletions(-) diff --git a/modules/libjar/nsJARURI.cpp b/modules/libjar/nsJARURI.cpp index 12b96c5d74a31..d87e55d88a785 100644 --- a/modules/libjar/nsJARURI.cpp +++ b/modules/libjar/nsJARURI.cpp @@ -269,7 +269,7 @@ nsJARURI::Mutator::SetFileName(const nsACString& aFileName, nsIURIMutator** aMut nsCOMPtr mutator = this; mutator.forget(aMutator); } - return mURI->SetFileName(aFileName); + return mURI->SetFileNameInternal(aFileName); } NS_IMETHODIMP @@ -282,7 +282,7 @@ nsJARURI::Mutator::SetFileBaseName(const nsACString& aFileBaseName, nsIURIMutato nsCOMPtr mutator = this; mutator.forget(aMutator); } - return mURI->SetFileBaseName(aFileBaseName); + return mURI->SetFileBaseNameInternal(aFileBaseName); } NS_IMETHODIMP @@ -295,7 +295,7 @@ nsJARURI::Mutator::SetFileExtension(const nsACString& aFileExtension, nsIURIMuta nsCOMPtr mutator = this; mutator.forget(aMutator); } - return mURI->SetFileExtension(aFileExtension); + return mURI->SetFileExtensionInternal(aFileExtension); } NS_IMETHODIMP @@ -706,21 +706,14 @@ nsJARURI::GetDirectory(nsACString& directory) return mJAREntry->GetDirectory(directory); } -NS_IMETHODIMP -nsJARURI::SetDirectory(const nsACString& directory) -{ - MOZ_ASSERT_UNREACHABLE("SetDirectory"); - return NS_ERROR_NOT_IMPLEMENTED; -} - NS_IMETHODIMP nsJARURI::GetFileName(nsACString& fileName) { return mJAREntry->GetFileName(fileName); } -NS_IMETHODIMP -nsJARURI::SetFileName(const nsACString& fileName) +nsresult +nsJARURI::SetFileNameInternal(const nsACString& fileName) { return NS_MutateURI(mJAREntry) .Apply(&nsIURLMutator::SetFileName, @@ -735,8 +728,8 @@ nsJARURI::GetFileBaseName(nsACString& fileBaseName) return mJAREntry->GetFileBaseName(fileBaseName); } -NS_IMETHODIMP -nsJARURI::SetFileBaseName(const nsACString& fileBaseName) +nsresult +nsJARURI::SetFileBaseNameInternal(const nsACString& fileBaseName) { return NS_MutateURI(mJAREntry) .Apply(&nsIURLMutator::SetFileBaseName, @@ -751,8 +744,8 @@ nsJARURI::GetFileExtension(nsACString& fileExtension) return mJAREntry->GetFileExtension(fileExtension); } -NS_IMETHODIMP -nsJARURI::SetFileExtension(const nsACString& fileExtension) +nsresult +nsJARURI::SetFileExtensionInternal(const nsACString& fileExtension) { return NS_MutateURI(mJAREntry) .Apply(&nsIURLMutator::SetFileExtension, diff --git a/modules/libjar/nsJARURI.h b/modules/libjar/nsJARURI.h index f7dab671b7c22..793f7294aef8f 100644 --- a/modules/libjar/nsJARURI.h +++ b/modules/libjar/nsJARURI.h @@ -80,6 +80,10 @@ class nsJARURI final : public nsIJARURI, eReplaceRef }; + nsresult SetFileNameInternal(const nsACString& fileName); + nsresult SetFileBaseNameInternal(const nsACString& fileBaseName); + nsresult SetFileExtensionInternal(const nsACString& fileExtension); + // Helper to share code between Equals methods. virtual nsresult EqualsInternal(nsIURI* other, RefHandlingEnum refHandlingMode, diff --git a/netwerk/base/nsIURL.idl b/netwerk/base/nsIURL.idl index 36a84863b03da..504c4132d45bd 100644 --- a/netwerk/base/nsIURL.idl +++ b/netwerk/base/nsIURL.idl @@ -48,7 +48,7 @@ interface nsIURL : nsIURI * * Some characters may be escaped. */ - attribute AUTF8String directory; + readonly attribute AUTF8String directory; /** * Returns the file name portion of a URL. If the URL denotes a path to a @@ -59,8 +59,7 @@ interface nsIURL : nsIURI * * Some characters may be escaped. */ - attribute AUTF8String fileName; - + readonly attribute AUTF8String fileName; /************************************************************************* * The URL filename is broken down even further: @@ -71,7 +70,7 @@ interface nsIURL : nsIURI * * Some characters may be escaped. */ - attribute AUTF8String fileBaseName; + readonly attribute AUTF8String fileBaseName; /** * Returns the file extension portion of a filename in a url. If a file @@ -79,7 +78,7 @@ interface nsIURL : nsIURI * * Some characters may be escaped. */ - attribute AUTF8String fileExtension; + readonly attribute AUTF8String fileExtension; /** * This method takes a uri and compares the two. The common uri portion diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp index d1b5cb1d28f7a..68bb8e461d2a3 100644 --- a/netwerk/base/nsStandardURL.cpp +++ b/netwerk/base/nsStandardURL.cpp @@ -3070,22 +3070,15 @@ nsStandardURL::SetRef(const nsACString &input) return NS_OK; } -NS_IMETHODIMP -nsStandardURL::SetDirectory(const nsACString &input) -{ - MOZ_ASSERT_UNREACHABLE("SetDirectory"); - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -nsStandardURL::SetFileName(const nsACString &input) +nsresult +nsStandardURL::SetFileNameInternal(const nsACString &input) { ENSURE_MUTABLE(); const nsPromiseFlatCString &flat = PromiseFlatCString(input); const char *filename = flat.get(); - LOG(("nsStandardURL::SetFileName [filename=%s]\n", filename)); + LOG(("nsStandardURL::SetFileNameInternal [filename=%s]\n", filename)); if (mPath.mLen < 0) return SetPathQueryRef(flat); @@ -3176,8 +3169,8 @@ nsStandardURL::SetFileName(const nsACString &input) return NS_OK; } -NS_IMETHODIMP -nsStandardURL::SetFileBaseName(const nsACString &input) +nsresult +nsStandardURL::SetFileBaseNameInternal(const nsACString &input) { nsAutoCString extension; nsresult rv = GetFileExtension(extension); @@ -3190,11 +3183,11 @@ nsStandardURL::SetFileBaseName(const nsACString &input) newFileName.Append(extension); } - return SetFileName(newFileName); + return SetFileNameInternal(newFileName); } -NS_IMETHODIMP -nsStandardURL::SetFileExtension(const nsACString &input) +nsresult +nsStandardURL::SetFileExtensionInternal(const nsACString &input) { nsAutoCString newFileName; nsresult rv = GetFileBaseName(newFileName); @@ -3205,7 +3198,7 @@ nsStandardURL::SetFileExtension(const nsACString &input) newFileName.Append(input); } - return SetFileName(newFileName); + return SetFileNameInternal(newFileName); } //---------------------------------------------------------------------------- diff --git a/netwerk/base/nsStandardURL.h b/netwerk/base/nsStandardURL.h index a66848a95bac6..04af0f9e922b5 100644 --- a/netwerk/base/nsStandardURL.h +++ b/netwerk/base/nsStandardURL.h @@ -185,6 +185,10 @@ class nsStandardURL : public nsIFileURL const char *charset, nsIURI *baseURI); nsresult SetDefaultPort(int32_t aNewDefaultPort); + nsresult SetFileNameInternal(const nsACString &input); + nsresult SetFileBaseNameInternal(const nsACString &input); + nsresult SetFileExtensionInternal(const nsACString &input); + int32_t Port() { return mPort == -1 ? mDefaultPort : mPort; } void ReplacePortInSpec(int32_t aNewPort); @@ -406,7 +410,7 @@ class nsStandardURL : public nsIFileURL nsCOMPtr mutator = this; mutator.forget(aMutator); } - return BaseURIMutator::mURI->SetFileName(aFileName); + return BaseURIMutator::mURI->SetFileNameInternal(aFileName); } MOZ_MUST_USE NS_IMETHOD @@ -419,7 +423,7 @@ class nsStandardURL : public nsIFileURL nsCOMPtr mutator = this; mutator.forget(aMutator); } - return BaseURIMutator::mURI->SetFileBaseName(aFileBaseName); + return BaseURIMutator::mURI->SetFileBaseNameInternal(aFileBaseName); } MOZ_MUST_USE NS_IMETHOD @@ -432,7 +436,7 @@ class nsStandardURL : public nsIFileURL nsCOMPtr mutator = this; mutator.forget(aMutator); } - return BaseURIMutator::mURI->SetFileExtension(aFileExtension); + return BaseURIMutator::mURI->SetFileExtensionInternal(aFileExtension); } MOZ_MUST_USE NS_IMETHOD @@ -450,7 +454,7 @@ class nsStandardURL : public nsIFileURL if (NS_FAILED(rv)) { return rv; } - BaseURIMutator::mURI = uri; + BaseURIMutator::mURI.swap(uri); return NS_OK; }