diff --git a/caps/NullPrincipalURI.cpp b/caps/NullPrincipalURI.cpp deleted file mode 100644 index 02176f1ea324..000000000000 --- a/caps/NullPrincipalURI.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * vim: sw=2 ts=2 sts=2 expandtab - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "NullPrincipalURI.h" - -#include "mozilla/DebugOnly.h" -#include "mozilla/MemoryReporting.h" - -#include "mozilla/ipc/URIParams.h" - -#include "nsEscape.h" -#include "nsCRT.h" - -#include "mozilla/GkRustUtils.h" - -using namespace mozilla; - -//////////////////////////////////////////////////////////////////////////////// -//// NullPrincipalURI - -NullPrincipalURI::NullPrincipalURI() { - GkRustUtils::GenerateUUID(mPath); - MOZ_ASSERT(mPath.Length() == NSID_LENGTH - 1); - MOZ_ASSERT(strlen(mPath.get()) == NSID_LENGTH - 1); -} - -NullPrincipalURI::NullPrincipalURI(const NullPrincipalURI& aOther) { - mPath.Assign(aOther.mPath); -} - -static NS_DEFINE_CID(kNullPrincipalURIImplementationCID, - NS_NULLPRINCIPALURI_IMPLEMENTATION_CID); - -NS_IMPL_ADDREF(NullPrincipalURI) -NS_IMPL_RELEASE(NullPrincipalURI) - -NS_INTERFACE_MAP_BEGIN(NullPrincipalURI) - NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIURI) - if (aIID.Equals(kNullPrincipalURIImplementationCID)) - foundInterface = static_cast(this); - else - NS_INTERFACE_MAP_ENTRY(nsIURI) - NS_INTERFACE_MAP_ENTRY(nsISizeOf) -NS_INTERFACE_MAP_END - -//////////////////////////////////////////////////////////////////////////////// -//// nsIURI - -NS_IMETHODIMP -NullPrincipalURI::GetAsciiHost(nsACString& _host) { - _host.Truncate(); - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::GetAsciiHostPort(nsACString& _hostport) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetAsciiSpec(nsACString& _spec) { - nsAutoCString buffer; - // Ignore the return value -- NullPrincipalURI::GetSpec() is infallible. - Unused << GetSpec(buffer); - // This uses the infallible version of |NS_EscapeURL| as |GetSpec| is - // already infallible. - NS_EscapeURL(buffer, esc_OnlyNonASCII | esc_AlwaysCopy, _spec); - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::GetHost(nsACString& _host) { - _host.Truncate(); - return NS_OK; -} - -nsresult NullPrincipalURI::SetHost(const nsACString& aHost) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetHostPort(nsACString& _host) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetHostPort(const nsACString& aHost) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetPassword(nsACString& _password) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetPassword(const nsACString& aPassword) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetPathQueryRef(nsACString& _path) { - _path = mPath; - return NS_OK; -} - -nsresult NullPrincipalURI::SetPathQueryRef(const nsACString& aPath) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetFilePath(nsACString& aFilePath) { - aFilePath.Truncate(); - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetFilePath(const nsACString& aFilePath) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetQuery(nsACString& aQuery) { - aQuery.Truncate(); - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetQuery(const nsACString& aQuery) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetQueryWithEncoding(const nsACString& aQuery, - const Encoding* aEncoding) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetRef(nsACString& _ref) { - _ref.Truncate(); - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetRef(const nsACString& aRef) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetPrePath(nsACString& _prePath) { - _prePath = nsLiteralCString(NS_NULLPRINCIPAL_SCHEME ":"); - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::GetPort(int32_t* _port) { return NS_ERROR_NOT_IMPLEMENTED; } - -nsresult NullPrincipalURI::SetPort(int32_t aPort) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetScheme(nsACString& _scheme) { - _scheme = nsLiteralCString(NS_NULLPRINCIPAL_SCHEME); - return NS_OK; -} - -nsresult NullPrincipalURI::SetScheme(const nsACString& aScheme) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetSpec(nsACString& _spec) { - _spec = nsLiteralCString(NS_NULLPRINCIPAL_SCHEME ":") + mPath; - return NS_OK; -} - -// result may contain unescaped UTF-8 characters -NS_IMETHODIMP -NullPrincipalURI::GetSpecIgnoringRef(nsACString& _result) { - return GetSpec(_result); -} - -NS_IMETHODIMP -NullPrincipalURI::GetHasRef(bool* _result) { - *_result = false; - return NS_OK; -} - -nsresult NullPrincipalURI::SetSpecInternal(const nsACString& aSpec) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetUsername(nsACString& _username) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetUsername(const nsACString& aUsername) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -NullPrincipalURI::GetUserPass(nsACString& _userPass) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::SetUserPass(const nsACString& aUserPass) { - return NS_ERROR_NOT_IMPLEMENTED; -} - -nsresult NullPrincipalURI::Clone(nsIURI** _newURI) { - nsCOMPtr uri = new NullPrincipalURI(*this); - uri.forget(_newURI); - return NS_OK; -} - -NS_IMPL_ISUPPORTS(NullPrincipalURI::Mutator, nsIURISetters, nsIURIMutator) - -NS_IMETHODIMP -NullPrincipalURI::Mutate(nsIURIMutator** aMutator) { - RefPtr mutator = new NullPrincipalURI::Mutator(); - nsresult rv = mutator->InitFromURI(this); - if (NS_FAILED(rv)) { - return rv; - } - mutator.forget(aMutator); - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::Equals(nsIURI* aOther, bool* _equals) { - *_equals = false; - RefPtr otherURI; - nsresult rv = aOther->QueryInterface(kNullPrincipalURIImplementationCID, - getter_AddRefs(otherURI)); - if (NS_SUCCEEDED(rv)) { - *_equals = mPath == otherURI->mPath; - } - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::EqualsExceptRef(nsIURI* aOther, bool* _equals) { - // GetRef/SetRef not supported by NullPrincipalURI, so - // EqualsExceptRef() is the same as Equals(). - return Equals(aOther, _equals); -} - -NS_IMETHODIMP -NullPrincipalURI::Resolve(const nsACString& aRelativePath, - nsACString& _resolvedURI) { - _resolvedURI = aRelativePath; - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::SchemeIs(const char* aScheme, bool* _schemeIs) { - *_schemeIs = (0 == nsCRT::strcasecmp(NS_NULLPRINCIPAL_SCHEME, aScheme)); - return NS_OK; -} - -NS_IMETHODIMP -NullPrincipalURI::GetDisplaySpec(nsACString& aUnicodeSpec) { - return GetSpec(aUnicodeSpec); -} - -NS_IMETHODIMP -NullPrincipalURI::GetDisplayHostPort(nsACString& aUnicodeHostPort) { - return GetHostPort(aUnicodeHostPort); -} - -NS_IMETHODIMP -NullPrincipalURI::GetDisplayHost(nsACString& aUnicodeHost) { - return GetHost(aUnicodeHost); -} - -NS_IMETHODIMP -NullPrincipalURI::GetDisplayPrePath(nsACString& aPrePath) { - return GetPrePath(aPrePath); -} - -void NullPrincipalURI::Serialize(mozilla::ipc::URIParams& aParams) { - aParams = mozilla::ipc::NullPrincipalURIParams(); -} - -bool NullPrincipalURI::Deserialize(const mozilla::ipc::URIParams& aParams) { - if (aParams.type() != mozilla::ipc::URIParams::TNullPrincipalURIParams) { - MOZ_ASSERT_UNREACHABLE("unexpected URIParams type"); - return false; - } - return true; -} - -//////////////////////////////////////////////////////////////////////////////// -//// nsISizeOf - -size_t NullPrincipalURI::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const { - return mPath.SizeOfExcludingThisIfUnshared(aMallocSizeOf); -} - -size_t NullPrincipalURI::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const { - return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf); -} diff --git a/caps/NullPrincipalURI.h b/caps/NullPrincipalURI.h deleted file mode 100644 index 905f233ff241..000000000000 --- a/caps/NullPrincipalURI.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * vim: sw=2 ts=2 sts=2 expandtab - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/** - * This wraps nsSimpleURI so that all calls to it are done on the main thread. - */ - -#ifndef mozilla_NullPrincipalURI_h -#define mozilla_NullPrincipalURI_h - -#include "nsIURI.h" -#include "nsISizeOf.h" -#include "nsString.h" -#include "mozilla/Attributes.h" -#include "mozilla/MemoryReporting.h" -#include "NullPrincipal.h" -#include "nsID.h" -#include "nsIURIMutator.h" - -// {51fcd543-3b52-41f7-b91b-6b54102236e6} -#define NS_NULLPRINCIPALURI_IMPLEMENTATION_CID \ - { \ - 0x51fcd543, 0x3b52, 0x41f7, { \ - 0xb9, 0x1b, 0x6b, 0x54, 0x10, 0x22, 0x36, 0xe6 \ - } \ - } - -namespace mozilla { - -class Encoding; - -class NullPrincipalURI final : public nsIURI, public nsISizeOf { - public: - NS_DECL_THREADSAFE_ISUPPORTS - NS_DECL_NSIURI - - NullPrincipalURI(); - - // nsISizeOf - virtual size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const override; - virtual size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const override; - - private: - NullPrincipalURI(const NullPrincipalURI& aOther); - void operator=(const NullPrincipalURI& aOther) = delete; - - ~NullPrincipalURI() {} - - nsAutoCStringN mPath; - - nsresult Clone(nsIURI** aURI); - nsresult SetSpecInternal(const nsACString& input); - nsresult SetScheme(const nsACString& input); - nsresult SetUserPass(const nsACString& input); - nsresult SetUsername(const nsACString& input); - nsresult SetPassword(const nsACString& input); - nsresult SetHostPort(const nsACString& aValue); - nsresult SetHost(const nsACString& input); - nsresult SetPort(int32_t port); - nsresult SetPathQueryRef(const nsACString& input); - nsresult SetRef(const nsACString& input); - nsresult SetFilePath(const nsACString& input); - nsresult SetQuery(const nsACString& input); - nsresult SetQueryWithEncoding(const nsACString& input, - const Encoding* encoding); - bool Deserialize(const mozilla::ipc::URIParams&); - - public: - class Mutator final : public nsIURIMutator, - public BaseURIMutator { - NS_DECL_ISUPPORTS - NS_FORWARD_SAFE_NSIURISETTERS_RET(mURI) - - NS_IMETHOD Deserialize(const mozilla::ipc::URIParams& aParams) override { - return InitFromIPCParams(aParams); - } - - NS_IMETHOD Finalize(nsIURI** aURI) override { - mURI.forget(aURI); - return NS_OK; - } - - NS_IMETHOD SetSpec(const nsACString& aSpec, - nsIURIMutator** aMutator) override { - if (aMutator) { - nsCOMPtr mutator = this; - mutator.forget(aMutator); - } - return NS_ERROR_NOT_IMPLEMENTED; - } - - explicit Mutator() {} - - private: - virtual ~Mutator() {} - - friend class NullPrincipalURI; - }; - - friend class BaseURIMutator; -}; - -} // namespace mozilla - -#endif // mozilla_NullPrincipalURI_h diff --git a/caps/moz.build b/caps/moz.build index e35debe6dac6..7fbc71f16923 100644 --- a/caps/moz.build +++ b/caps/moz.build @@ -33,7 +33,6 @@ EXPORTS.mozilla = [ "ContentPrincipal.h", "ExpandedPrincipal.h", "NullPrincipal.h", - "NullPrincipalURI.h", "OriginAttributes.h", "PrincipalHashKey.h", "SystemPrincipal.h", @@ -52,7 +51,6 @@ UNIFIED_SOURCES += [ "nsJSPrincipals.cpp", "nsScriptSecurityManager.cpp", "NullPrincipal.cpp", - "NullPrincipalURI.cpp", "OriginAttributes.cpp", "SystemPrincipal.cpp", ] diff --git a/ipc/glue/URIParams.ipdlh b/ipc/glue/URIParams.ipdlh index 16aaea257dd6..4fea966a8924 100644 --- a/ipc/glue/URIParams.ipdlh +++ b/ipc/glue/URIParams.ipdlh @@ -69,11 +69,6 @@ struct IconURIParams int32_t iconState; }; -struct NullPrincipalURIParams -{ - // Purposefully empty. Null principal URIs do not round-trip. -}; - struct HostObjectURIParams { SimpleURIParams simpleParams; @@ -86,7 +81,6 @@ union URIParams StandardURLParams; JARURIParams; IconURIParams; - NullPrincipalURIParams; JSURIParams; SimpleNestedURIParams; HostObjectURIParams; diff --git a/ipc/glue/URIUtils.cpp b/ipc/glue/URIUtils.cpp index e34c8f67af7d..9bb4a5e7e420 100644 --- a/ipc/glue/URIUtils.cpp +++ b/ipc/glue/URIUtils.cpp @@ -11,7 +11,6 @@ #include "mozilla/dom/BlobURL.h" #include "mozilla/net/DefaultURI.h" #include "mozilla/net/SubstitutingURL.h" -#include "mozilla/NullPrincipalURI.h" #include "nsAboutProtocolHandler.h" #include "nsComponentManagerUtils.h" #include "nsDebug.h" @@ -86,10 +85,6 @@ already_AddRefed DeserializeURI(const URIParams& aParams) { mutator = do_CreateInstance(kIconURIMutatorCID); break; - case URIParams::TNullPrincipalURIParams: - mutator = new NullPrincipalURI::Mutator(); - break; - case URIParams::TSimpleNestedURIParams: mutator = new net::nsSimpleNestedURI::Mutator(); break;