Bug 1433958 - Change code that uses nsIURI.setHostAndPort() to use nsIURIMutator draft
authorValentin Gosu <valentin.gosu@gmail.com>
Mon, 26 Feb 2018 20:43:45 +0100
changeset 759884 50793144c7a54310c43795544bb04cbeeb310984
parent 759883 abe261c4f4aefedfc3dd990a35064f4885b3df46
child 759885 f509d807aa236cf502c31953de331943bd01cef5
push id100504
push uservalentin.gosu@gmail.com
push dateMon, 26 Feb 2018 19:44:44 +0000
bugs1433958
milestone60.0a1
Bug 1433958 - Change code that uses nsIURI.setHostAndPort() to use nsIURIMutator * Removes setHostAndPort from nsIURIMutator as it only has one use * Instead, the consumer sets the port to -1 before calling setHostPort() MozReview-Commit-ID: Jx9UMW440hq
dom/html/nsHTMLDocument.cpp
netwerk/base/nsIURIMutator.idl
--- a/dom/html/nsHTMLDocument.cpp
+++ b/dom/html/nsHTMLDocument.cpp
@@ -24,16 +24,17 @@
 #include "nsPresContext.h"
 #include "nsIDOMNode.h" // for Find
 #include "nsIDOMNodeList.h"
 #include "nsIDOMElement.h"
 #include "nsPIDOMWindow.h"
 #include "nsDOMString.h"
 #include "nsIStreamListener.h"
 #include "nsIURI.h"
+#include "nsIURIMutator.h"
 #include "nsIIOService.h"
 #include "nsNetUtil.h"
 #include "nsIPrivateBrowsingChannel.h"
 #include "nsIContentViewer.h"
 #include "nsDocShell.h"
 #include "nsDocShellLoadTypes.h"
 #include "nsIWebNavigation.h"
 #include "nsIBaseWindow.h"
@@ -921,34 +922,27 @@ nsHTMLDocument::CreateInheritingURIForHo
   }
 
   // Create new URI
   nsCOMPtr<nsIURI> uri = GetDomainURI();
   if (!uri) {
     return nullptr;
   }
 
-  nsCOMPtr<nsIURI> newURI;
-  nsresult rv = uri->Clone(getter_AddRefs(newURI));
+  nsresult rv;
+  rv = NS_MutateURI(uri)
+         .SetUserPass(EmptyCString())
+         .SetPort(-1) // we want to reset the port number if needed.
+         .SetHostPort(aHostString)
+         .Finalize(uri);
   if (NS_FAILED(rv)) {
     return nullptr;
   }
 
-  rv = newURI->SetUserPass(EmptyCString());
-  if (NS_FAILED(rv)) {
-    return nullptr;
-  }
-
-  // We use SetHostAndPort because we want to reset the port number if needed.
-  rv = newURI->SetHostAndPort(aHostString);
-  if (NS_FAILED(rv)) {
-    return nullptr;
-  }
-
-  return newURI.forget();
+  return uri.forget();
 }
 
 already_AddRefed<nsIURI>
 nsHTMLDocument::RegistrableDomainSuffixOfInternal(const nsAString& aNewDomain,
                                                   nsIURI* aOrigHost)
 {
   if (NS_WARN_IF(!aOrigHost)) {
     return nullptr;
--- a/netwerk/base/nsIURIMutator.idl
+++ b/netwerk/base/nsIURIMutator.idl
@@ -144,17 +144,16 @@ interface nsIURISetSpec : nsISupports
 [scriptable, builtinclass, uuid(5403a6ec-99d7-405e-8b45-9f805bbdfcef)]
 interface nsIURISetters : nsIURISetSpec
 {
   [must_use] nsIURIMutator setScheme(in AUTF8String aScheme);
   [must_use] nsIURIMutator setUserPass(in AUTF8String aUserPass);
   [must_use] nsIURIMutator setUsername(in AUTF8String aUsername);
   [must_use] nsIURIMutator setPassword(in AUTF8String aPassword);
   [must_use] nsIURIMutator setHostPort(in AUTF8String aHostPort);
-  [must_use] nsIURIMutator setHostAndPort(in AUTF8String aHostAndPort);
   [must_use] nsIURIMutator setHost(in AUTF8String aHost);
   [must_use] nsIURIMutator setPort(in long aPort);
   [must_use] nsIURIMutator setPathQueryRef(in AUTF8String aPathQueryRef);
   [must_use] nsIURIMutator setRef(in AUTF8String aRef);
   [must_use] nsIURIMutator setFilePath(in AUTF8String aFilePath);
   [must_use] nsIURIMutator setQuery(in AUTF8String aQuery);
   [must_use, noscript] nsIURIMutator setQueryWithEncoding(in AUTF8String query, in Encoding encoding);
 };
@@ -190,22 +189,16 @@ interface nsIURISetters : nsIURISetSpec
   }                                                                           \
   MOZ_MUST_USE NS_IMETHOD                                                     \
   SetHostPort(const nsACString& aHostPort, nsIURIMutator** aMutator) override \
   {                                                                           \
     if (aMutator) NS_ADDREF(*aMutator = this);                                \
     return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostPort(aHostPort);        \
   }                                                                           \
   MOZ_MUST_USE NS_IMETHOD                                                     \
-  SetHostAndPort(const nsACString& aHostAndPort, nsIURIMutator** aMutator) override \
-  {                                                                           \
-    if (aMutator) NS_ADDREF(*aMutator = this);                                \
-    return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostAndPort(aHostAndPort);  \
-  }                                                                           \
-  MOZ_MUST_USE NS_IMETHOD                                                     \
   SetHost(const nsACString& aHost, nsIURIMutator** aMutator) override         \
   {                                                                           \
     if (aMutator) NS_ADDREF(*aMutator = this);                                \
     return !_to ? NS_ERROR_NULL_POINTER : _to->SetHost(aHost);                \
   }                                                                           \
   MOZ_MUST_USE NS_IMETHOD                                                     \
   SetPort(int32_t aPort, nsIURIMutator** aMutator) override                   \
   {                                                                           \
@@ -355,22 +348,16 @@ public:
     return *this;
   }
   NS_MutateURI& SetHostPort(const nsACString& aHostPort)
   {
     NS_ENSURE_SUCCESS(mStatus, *this);
     mStatus = mMutator->SetHostPort(aHostPort, nullptr);
     return *this;
   }
-  NS_MutateURI& SetHostAndPort(const nsACString& aHostAndPort)
-  {
-    NS_ENSURE_SUCCESS(mStatus, *this);
-    mStatus = mMutator->SetHostAndPort(aHostAndPort, nullptr);
-    return *this;
-  }
   NS_MutateURI& SetHost(const nsACString& aHost)
   {
     NS_ENSURE_SUCCESS(mStatus, *this);
     mStatus = mMutator->SetHost(aHost, nullptr);
     return *this;
   }
   NS_MutateURI& SetPort(int32_t aPort)
   {