This changes the way that the principal for a Blob URL is inferred to instead
be based on the URL within the BlobURL, unless the URL's origin part is
"null".
In order to continue to support system-principal Blobs without needing to
broadcast the principal around, they are given a special origin part of
"system". This changes some tests which were specifically looking for the
"blob:null" prefix.
Differential Revision: https://phabricator.services.mozilla.com/D276055
This reverts commit 47367770c3.
Revert "Bug 2005247 - Part 3: Always read BlobURL info over IPC, r=asuth"
This reverts commit df37ac38f8.
Revert "Bug 2005247 - Part 2: Validate BlobURL ContentLength header during channel fetch, r=asuth,necko-reviewers,valentin"
This reverts commit 45e63e6920.
Revert "Bug 2005247 - Part 1: Get the BlobImpl from the BlobURLChannel, r=asuth,media-playback-reviewers,padenot"
This reverts commit 440a33211b.
Revert "Bug 2005002 - Part 5: sec-fetch-storage-access not implemented for workers, r=manuel"
This reverts commit 5654faf8a0.
Revert "Bug 2005002 - Part 4: Fix devtools tests for blob: URL dedicated worker changes, r=devtools-reviewers,ochameau"
This reverts commit 9c9c197990.
Revert "Bug 2005002 - Part 3: Extension content scripts for Blob URLs no longer match with full paths, r=extension-reviewers,robwu"
This reverts commit 55f399175f.
Revert "Bug 2005002 - Part 2: Infer Blob URL principal from URL when possible, r=asuth,extension-reviewers,necko-reviewers,home-newtab-reviewers,robwu,mconley,kershaw,bvandersloot"
This reverts commit d3022ec470.
Revert "Bug 2005002 - Part 1: Support do_QueryObject for nsSimpleURI and subclasses, r=necko-reviewers,valentin,asuth"
This reverts commit 3d1199b4d4.
This changes the way that the principal for a Blob URL is inferred to instead
be based on the URL within the BlobURL, unless the URL's origin part is
"null".
In order to continue to support system-principal Blobs without needing to
broadcast the principal around, they are given a special origin part of
"system". This changes some tests which were specifically looking for the
"blob:null" prefix.
Differential Revision: https://phabricator.services.mozilla.com/D276055
Add a Hash() method to OriginAttributes that combines all fields using
AddToHash/HashString, and use it in CookieKey::HashKey(),
OriginAttributesHashKey::HashKey(), and BuildOriginFrameHashKey(),
replacing CreateSuffix()-based hashing with direct field hashing.
Differential Revision: https://phabricator.services.mozilla.com/D290377
Policies support matching based on site (eTLD + 1) with exceptions and apply based on the top-level
site loaded in a tab. When any site can have its JIT disabled all shared and service workers load
with their JIT disabled since they can be used from multiple tabs which may have different JIT
states.
Differential Revision: https://phabricator.services.mozilla.com/D281617
The decision to include the port predated the spec definition of Site.
So with all partiitoning aligning on Site between browsers, we should
conform.
When we enable this pref, suddenly contexts with a top level with non
standard port have a different partition key. This means that when
computing the partition key to grab their data, the place they reach to
may be different. This is acceptable due to the low prevalence of top
level non-standard ports. That data will still be there and accessible
if we flip the pref back in the case of a critical incident.
Differential Revision: https://phabricator.services.mozilla.com/D252386
The decision to include the port predated the spec definition of Site.
So with all partiitoning aligning on Site between browsers, we should
conform.
When we enable this pref, suddenly contexts with a top level with non
standard port have a different partition key. This means that when
computing the partition key to grab their data, the place they reach to
may be different. This is acceptable due to the low prevalence of top
level non-standard ports. That data will still be there and accessible
if we flip the pref back in the case of a critical incident.
Differential Revision: https://phabricator.services.mozilla.com/D252386
Sorry for the massive patch but I found it hard to split without
introducing a bunch of copies around...
This mostly makes necko and DOM agree on which strings to use, which
should result on less copies and conversions.
Differential Revision: https://phabricator.services.mozilla.com/D205601
This patch is a no-op for observable functionality. All it does is add a bit to the partitionKey for OA, and then adds plumbing to be able to set it, and where it is required, sets it to false.
This is serialized identically to the absence of the bit, so nothing changes at all.
Differential Revision: https://phabricator.services.mozilla.com/D203155
This patch is a no-op for observable functionality. All it does is add a bit to the partitionKey for OA, and then adds plumbing to be able to set it, and where it is required, sets it to false.
This is serialized identically to the absence of the bit, so nothing changes at all.
Differential Revision: https://phabricator.services.mozilla.com/D203155
This patch is a no-op for observable functionality. All it does is add a bit to the partitionKey for OA, and then adds plumbing to be able to set it, and where it is required, sets it to false.
This is serialized identically to the absence of the bit, so nothing changes at all.
Differential Revision: https://phabricator.services.mozilla.com/D203155
This patch is a no-op for observable functionality. All it does is add a bit to the partitionKey for OA, and then adds plumbing to be able to set it, and where it is required, sets it to false.
This is serialized identically to the absence of the bit, so nothing changes at all.
Differential Revision: https://phabricator.services.mozilla.com/D203155
If we don't preserve the precursor principal in this case, we'll end up
doing an unnecessary process switch in some cases, which lead to a
test failure.
This patch also cleans up some logic around the first party origin
attribute with null principals, as the logic was only used in one place
and generally added some unnecessary complexity to NullPrincipal
itself.
Differential Revision: https://phabricator.services.mozilla.com/D155277
The remaining methods in ns[T]StringObsolete are all find+replace methods for
nsTSubstring. These were migrated in a similar way to the find methods, and
partially updated to avoid using methods from nsStringObsolete.cpp.
This change removes the ns[T]StringObsolete.cpp files completely, as they are
no longer necessary.
Differential Revision: https://phabricator.services.mozilla.com/D148301
The remaining methods in ns[T]StringObsolete are all find+replace methods for
nsTSubstring. These were migrated in a similar way to the find methods, and
partially updated to avoid using methods from nsStringObsolete.cpp.
This change removes the ns[T]StringObsolete.cpp files completely, as they are
no longer necessary.
Differential Revision: https://phabricator.services.mozilla.com/D148301
The URL query stripping doesn't want the URLParams::Serialize() to
encode the result because it will encode the unstripped parameters. This
will change the unstripped parameters once stripping was happened.
Therefore, we introduce an parameter to URLParams::Serialize() to
disable encoding.
Differential Revision: https://phabricator.services.mozilla.com/D131964