mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1619745: Remove GetUri usage in nsSyncLoadService.cpp r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D65201 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
c15cc3a5c0
commit
7f6af6cae2
@ -978,4 +978,18 @@ bool SiteIdentifier::Equals(const SiteIdentifier& aOther) const {
|
||||
return mPrincipal->FastEquals(aOther.mPrincipal);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
BasePrincipal::CreateReferrerInfo(mozilla::dom::ReferrerPolicy aReferrerPolicy,
|
||||
nsIReferrerInfo** _retval) {
|
||||
nsCOMPtr<nsIURI> prinURI;
|
||||
nsresult rv = GetURI(getter_AddRefs(prinURI));
|
||||
if (NS_FAILED(rv) || !prinURI) {
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
RefPtr<dom::ReferrerInfo> info =
|
||||
new dom::ReferrerInfo(prinURI, aReferrerPolicy);
|
||||
info.forget(_retval);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
||||
|
@ -150,6 +150,8 @@ class BasePrincipal : public nsJSPrincipals {
|
||||
NS_IMETHOD GetLocalStorageQuotaKey(nsACString& aRes) override;
|
||||
NS_IMETHOD AllowsRelaxStrictFileOriginPolicy(nsIURI* aURI,
|
||||
bool* aRes) override;
|
||||
NS_IMETHOD CreateReferrerInfo(mozilla::dom::ReferrerPolicy aReferrerPolicy,
|
||||
nsIReferrerInfo** _retval) override;
|
||||
nsresult ToJSON(nsACString& aJSON);
|
||||
static already_AddRefed<BasePrincipal> FromJSON(const nsACString& aJSON);
|
||||
// Method populates a passed Json::Value with serializable fields
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "nsIContentSecurityPolicy.idl"
|
||||
#include "nsISerializable.idl"
|
||||
#include "nsIAboutModule.idl"
|
||||
#include "nsIReferrerInfo.idl"
|
||||
|
||||
%{C++
|
||||
struct JSPrincipals;
|
||||
@ -45,6 +46,7 @@ interface nsIURI;
|
||||
[ptr] native JSPrincipals(JSPrincipals);
|
||||
[ref] native PrincipalArray(const nsTArray<nsCOMPtr<nsIPrincipal>>);
|
||||
[ref] native const_OriginAttributes(const mozilla::OriginAttributes);
|
||||
native ReferrerPolicy(mozilla::dom::ReferrerPolicy);
|
||||
|
||||
[scriptable, builtinclass, uuid(f75f502d-79fd-48be-a079-e5a7b8f80c8b)]
|
||||
interface nsIPrincipal : nsISerializable
|
||||
@ -323,6 +325,12 @@ interface nsIPrincipal : nsISerializable
|
||||
*/
|
||||
uint32_t getAboutModuleFlags();
|
||||
|
||||
/**
|
||||
* Creates and Returns a new ReferrerInfo with the
|
||||
* Principals URI
|
||||
*/
|
||||
nsIReferrerInfo createReferrerInfo(in ReferrerPolicy aReferrerPolicy);
|
||||
|
||||
/**
|
||||
* The base part of |origin| without the concatenation with |originSuffix|.
|
||||
* This doesn't have the important invariants described above with |origin|,
|
||||
|
@ -136,11 +136,10 @@ nsresult nsSyncLoader::LoadDocument(nsIChannel* aChannel, bool aChannelIsSync,
|
||||
false);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv));
|
||||
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->LoadInfo();
|
||||
nsCOMPtr<nsIURI> loaderUri;
|
||||
loadInfo->TriggeringPrincipal()->GetURI(getter_AddRefs(loaderUri));
|
||||
if (loaderUri) {
|
||||
nsCOMPtr<nsIReferrerInfo> referrerInfo =
|
||||
new ReferrerInfo(loaderUri, aReferrerPolicy);
|
||||
nsCOMPtr<nsIReferrerInfo> referrerInfo;
|
||||
loadInfo->TriggeringPrincipal()->CreateReferrerInfo(
|
||||
aReferrerPolicy, getter_AddRefs(referrerInfo));
|
||||
if (referrerInfo) {
|
||||
rv = http->SetReferrerInfoWithoutClone(referrerInfo);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user