@@ -441,30 +441,16 @@ ContentPrincipal::GetBaseDomain(nsACString& aBaseDomain) {
441
441
442
442
NS_IMETHODIMP
443
443
ContentPrincipal::GetSiteOriginNoSuffix (nsACString& aSiteOrigin) {
444
- nsresult rv = GetOriginNoSuffix (aSiteOrigin);
445
- NS_ENSURE_SUCCESS (rv, rv);
446
-
447
- // It is possible for two principals with the same origin to have different
448
- // mURI values. In order to ensure that two principals with matching origins
449
- // also have matching siteOrigins, we derive the siteOrigin entirely from the
450
- // origin string and do not rely on mURI at all here.
451
- nsCOMPtr<nsIURI> origin;
452
- if (NS_FAILED(NS_NewURI(getter_AddRefs (origin), aSiteOrigin))) {
453
- // We got an error parsing the origin as a URI? siteOrigin == origin
454
- // aSiteOrigin was already filled with `OriginNoSuffix`
455
- return NS_OK;
456
- }
457
-
458
444
// Handle some special URIs first.
459
445
nsAutoCString baseDomain;
460
446
bool handled;
461
- rv = GetSpecialBaseDomain (origin , &handled, baseDomain);
447
+ nsresult rv = GetSpecialBaseDomain (mURI , &handled, baseDomain);
462
448
NS_ENSURE_SUCCESS (rv, rv);
463
449
464
450
if (handled) {
465
451
// This is a special URI ("file:", "about:", "view-source:", etc). Just
466
452
// return the origin.
467
- return NS_OK ;
453
+ return GetOriginNoSuffix (aSiteOrigin) ;
468
454
}
469
455
470
456
// For everything else, we ask the TLD service. Note that, unlike in
@@ -479,7 +465,7 @@ ContentPrincipal::GetSiteOriginNoSuffix(nsACString& aSiteOrigin) {
479
465
}
480
466
481
467
bool gotBaseDomain = false ;
482
- rv = tldService->GetBaseDomain (origin , 0 , baseDomain);
468
+ rv = tldService->GetBaseDomain (mURI , 0 , baseDomain);
483
469
if (NS_SUCCEEDED(rv)) {
484
470
gotBaseDomain = true ;
485
471
} else {
@@ -494,7 +480,7 @@ ContentPrincipal::GetSiteOriginNoSuffix(nsACString& aSiteOrigin) {
494
480
// NOTE: Calling `SetHostPort` with a portless domain is insufficient to clear
495
481
// the port, so an extra `SetPort` call has to be made.
496
482
nsCOMPtr<nsIURI> siteUri;
497
- NS_MutateURI mutator (origin );
483
+ NS_MutateURI mutator (mURI );
498
484
mutator.SetUserPass (" " _ns).SetPort (-1 );
499
485
if (gotBaseDomain) {
500
486
mutator.SetHost (baseDomain);
@@ -503,7 +489,6 @@ ContentPrincipal::GetSiteOriginNoSuffix(nsACString& aSiteOrigin) {
503
489
MOZ_ASSERT (NS_SUCCEEDED(rv), " failed to create siteUri" );
504
490
NS_ENSURE_SUCCESS (rv, rv);
505
491
506
- aSiteOrigin.Truncate ();
507
492
rv = GenerateOriginNoSuffixFromURI (siteUri, aSiteOrigin);
508
493
MOZ_ASSERT (NS_SUCCEEDED(rv), " failed to create siteOriginNoSuffix" );
509
494
return rv;
0 commit comments