Bug 1433958 - Change code that sets nsIURI.username to use nsIURIMutator r=mayhemer

MozReview-Commit-ID: 7E63pAIOZCs

--HG--
extra : rebase_source : 54164efbc967146f4811552498aea5e5db1edfc2
This commit is contained in:
Valentin Gosu 2018-02-26 20:43:46 +01:00
parent 63d237395d
commit 8617010c5f
5 changed files with 14 additions and 7 deletions

View File

@ -462,14 +462,18 @@ Link::SetPassword(const nsAString &aPassword)
void
Link::SetUsername(const nsAString &aUsername)
{
nsCOMPtr<nsIURI> uri(GetURIToMutate());
nsCOMPtr<nsIURI> uri(GetURI());
if (!uri) {
// Ignore failures to be compatible with NS4.
return;
}
uri->SetUsername(NS_ConvertUTF16toUTF8(aUsername));
SetHrefAttribute(uri);
nsresult rv = NS_MutateURI(uri)
.SetUsername(NS_ConvertUTF16toUTF8(aUsername))
.Finalize(uri);
if (NS_SUCCEEDED(rv)) {
SetHrefAttribute(uri);
}
}
void

View File

@ -292,7 +292,9 @@ URLMainThread::GetUsername(nsAString& aUsername, ErrorResult& aRv) const
void
URLMainThread::SetUsername(const nsAString& aUsername, ErrorResult& aRv)
{
mURI->SetUsername(NS_ConvertUTF16toUTF8(aUsername));
Unused << NS_MutateURI(mURI)
.SetUsername(NS_ConvertUTF16toUTF8(aUsername))
.Finalize(mURI);
}
void

View File

@ -524,7 +524,7 @@ function do_test_immutable(aTest) {
var URI = NetUtil.newURI(aTest.spec);
// All the non-readonly attributes on nsIURI.idl:
var propertiesToCheck = ["spec", "scheme", "username", "password",
var propertiesToCheck = ["spec", "scheme", "password",
"host", "port", "query", "ref"];
propertiesToCheck.forEach(function(aProperty) {

View File

@ -625,7 +625,7 @@ function do_test_immutable(aTest) {
var URI = NetUtil.newURI(aTest.spec);
// All the non-readonly attributes on nsIURI.idl:
var propertiesToCheck = ["scheme", "username", "password",
var propertiesToCheck = ["scheme", "password",
"host", "port", "query", "ref"];
propertiesToCheck.forEach(function(aProperty) {

View File

@ -301,7 +301,7 @@ add_test(function test_hugeStringThrows()
let url = stringToURL("http://test:test@example.com");
let hugeString = new Array(maxLen + 1).fill("a").join("");
let properties = ["scheme", "username",
let properties = ["scheme",
"password", "host", "ref",
"query"];
for (let prop of properties) {
@ -312,6 +312,7 @@ add_test(function test_hugeStringThrows()
let setters = [
{ method: "setSpec", qi: Ci.nsIURIMutator },
{ method: "setUsername", qi: Ci.nsIURIMutator },
{ method: "setFilePath", qi: Ci.nsIURIMutator },
{ method: "setHostPort", qi: Ci.nsIURIMutator },
{ method: "setUserPass", qi: Ci.nsIURIMutator },