Commit Graph
60 Commits
Author SHA1 Message Date
Sylvestre Ledru ab7784e3d4 Bug 2023419 - Remove Emacs/Vim modelines from caps/ r=emilio
replaced by .editorconfig
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D287837
2026-03-17 09:23:27 +00:00
Emilio Cobos Álvarez 89fc1ca8e3 Bug 1955775 - Don't include domain in ContentPrincipal::GetHashValue. r=nika,ckerschb
As it can mutate over the lifetime of the principal.

Differential Revision: https://phabricator.services.mozilla.com/D242653
2025-04-01 12:57:21 +00:00
Tooru Fujisawa eeaeb03fc7 Bug 1861819 - Use JS::ParseJSONWithHandler in BasePrincipal. r=peterv
This avoid intermediate object tree for "JSON to principal" case.

Differential Revision: https://phabricator.services.mozilla.com/D192146
2024-01-26 15:39:39 +00:00
Tooru Fujisawa feee305c2d Bug 1861787 - Use mfbt/JSONWriter.h in BasePrincipal. r=peterv
This avoid intermediate object tree for "principal to JSON" case.
Bug 1861819 will handle the opposite case.

Differential Revision: https://phabricator.services.mozilla.com/D192145
2024-01-26 15:39:38 +00:00
june wilde 76134654de Bug 1776755 - Skip ordering ExpandedPrincipals to speed up creation; r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D161450
2023-03-13 14:52:04 +00:00
Butkovits Atila 364c41d201 Backed out changeset 3cdcc72baa6e (bug 1776755) for causing failures at test_ext_contentscript_triggeringPrincipal.js. 2023-02-14 19:30:16 +02:00
june wilde 3fcf2fe7f4 Bug 1776755 - Skip ordering ExpandedPrincipals to speed up creation; r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D161450
2023-02-14 15:03:40 +00:00
Peter Van der Beken 37b19ffb8b Bug 1795312 - Optimize serializing enums as JSON string keys for principals. r=farre
Depends on D166953

Differential Revision: https://phabricator.services.mozilla.com/D166954
2023-02-14 10:17:17 +00:00
Peter Van der Beken b56879106c Bug 1795312 - Avoid a Json::Value copy. r=farre
Depends on D166810

Differential Revision: https://phabricator.services.mozilla.com/D166953
2023-02-14 10:17:17 +00:00
Andreas Farre 04070c95dc Bug 1795312 - Don't Base64 encode principals when serializing. r=peterv
Base64 encoding is done to top-level principal and the sub-principals
of expanded principals. Getting rid of the Base64 encoding entirely
also lets us use jsoncpp consider expanded principals to be entirely
serialized as JSON.

Differential Revision: https://phabricator.services.mozilla.com/D166783
2023-02-14 10:17:16 +00:00
Cristina Horotan 235d59573c Backed out 5 changesets (bug 1795312) for causing build bustage at BasePrincipal.h on a CLOSED TREE
Backed out changeset c4f9e74d6164 (bug 1795312)
Backed out changeset 2594a213283c (bug 1795312)
Backed out changeset bc1c5b1c2d85 (bug 1795312)
Backed out changeset 38f9e767cc32 (bug 1795312)
Backed out changeset a732c5bcc392 (bug 1795312)
2023-02-08 19:33:48 +02:00
Peter Van der Beken 39b2b4cf3b Bug 1795312 - Optimize serializing enums as JSON string keys for principals. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D166954
2023-02-08 12:57:10 +00:00
Peter Van der Beken 537f9ec7ad Bug 1795312 - Avoid a Json::Value copy. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D166953
2023-02-08 12:57:10 +00:00
Andreas Farre bb73ba66de Bug 1795312 - Don't Base64 encode principals when serializing. r=peterv
Base64 encoding is done to top-level principal and the sub-principals
of expanded principals. Getting rid of the Base64 encoding entirely
also lets us use jsoncpp consider expanded principals to be entirely
serialized as JSON.

Differential Revision: https://phabricator.services.mozilla.com/D166783
2023-02-08 12:57:09 +00:00
Cristian Tuns 1d428077a8 Backed out changeset 2b1d90490648 (bug 1776755) for causing xpcshells failures CLOSED TREE 2023-02-07 12:53:31 -05:00
june wilde 1d546e474c Bug 1776755 - Skip ordering ExpandedPrincipals to speed up creation; r=nika,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D161450
2023-02-07 16:47:29 +00:00
Andrew McCreight 4f887b4632 Bug 961019 - Remove nsIClassInfo::MAIN_THREAD_ONLY. r=peterv,necko-reviewers
XPConnect has been single threaded for a long time, so this
flag doesn't do anything.

Differential Revision: https://phabricator.services.mozilla.com/D168442
2023-02-01 21:45:44 +00:00
Nika Layzell f1f8e09577 Bug 1443925 - Part 10: Use AddonPolicyCore rather than AddonPolicy for principals, r=ckerschb,extension-reviewers,kmag
This changes out almost all places `AddonPolicy()` is used within nsIPrincipal
implementations, replacing it with the threadsafe `AddonPolicyCore()` method
and `WebExtensionPolicyCore` type.

Differential Revision: https://phabricator.services.mozilla.com/D163040
2022-12-02 00:53:53 +00:00
Nika Layzell 56e111f24f Bug 1443925 - Part 2: Make basic manipulation of nsIPrincipal threadsafe, r=ckerschb
This patch only makes the very basics of nsIPrincipal manipulation threadsafe,
such as reference counting, and some trivial methods. The more complex methods
will be made threadsafe in following parts.

Differential Revision: https://phabricator.services.mozilla.com/D163032
2022-12-02 00:53:50 +00:00
Luca Greco 4735d307aa Bug 1741600 - Fix ExpandedPrincipal and nsCSPContext leaks triggered by ApplyAddonContentScriptCSP. r=ckerschb,robwu
This patch is meant to be a proposed short run fix to prevent ApplyAddonContentScriptCSP
from leaking the ExpandedPrincipal and nsCSPContext instance because they keep a reference
to each other.
This patch prevent that leak by creating a clone of the ExpandedPrincipal and then use
that cloned instance in the call to nsCSPContext::SetRequestContextWithPrincipal.

Once Bug 1548468 will move the CSP off the ExpandedPrincipal class, cloning the expanded
principal to prevent that leak should not be necessary anymore.

Differential Revision: https://phabricator.services.mozilla.com/D132144
2021-11-26 15:51:13 +00:00
Andrew McCreight 3924f8bf5d Bug 1731645 - Fix non-unified build errors in caps/. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D126135
2021-09-21 15:42:01 +00:00
Nika Layzell 8fe0b1faf0 Bug 1711078 - Part 2: Mark immutable fields in principal types as const, r=ckerschb
This is a step towards separating the mutable state on principals from const
state which can be made threadsafe. The remaining mutable fields will either
need to be moved off of nsIPrincipal or made threadsafe to destroy (e.g. using
nsMainThreadPtrHandle) and stored behind a mutex.

Serialization is handled for most types using a separate Deserializer class,
like how it was handled with `nsIURI` mutators. SystemPrincipal wasn't changed
as the `Read` method is a no-op for that class.

Differential Revision: https://phabricator.services.mozilla.com/D115092
2021-05-17 20:50:09 +00:00
Simon Giesecke fdd0be071c Bug 1583109 - Use StringJoin(Append) where easily possible. r=nika
Bug 1583109 introduced new function templates StringJoin and StringJoinAppend.
These are now used to replace several custom loops across the codebase that
implement string-joining algorithms to simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D98750
2020-12-17 14:58:18 +00:00
Csoregi Natalia 51401405eb Backed out changeset 16d174e7c342 (bug 1583109) for bustage on nsReadableUtils.h. CLOSED TREE 2020-12-16 22:51:26 +02:00
Simon Giesecke 8db61da8b6 Bug 1583109 - Use StringJoin(Append) where easily possible. r=nika
Bug 1583109 introduced new function templates StringJoin and StringJoinAppend.
These are now used to replace several custom loops across the codebase that
implement string-joining algorithms to simplify the code.

Differential Revision: https://phabricator.services.mozilla.com/D98750
2020-12-16 19:38:23 +00:00
Simon Giesecke a8062966f9 Bug 1659923 - Avoid unnecessary copies around Base64Encode. r=xpcom-reviewers,necko-reviewers,froydnj,valentin
This also adds some more variants of Base64Encode and Base64EncodeAppend.

Differential Revision: https://phabricator.services.mozilla.com/D87559
2020-08-19 17:45:16 +00:00
Andrea Marchesini eac96062f1 Bug 1641905 - ThirdPartyUtil::IsThirdPartyWindow for fission - webExtension, r=robwu,ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D80035
2020-06-23 11:52:57 +00:00
Andrea Marchesini cbb552877d Bug 1635490 - Implement ExpandedPrincipal::IsThirdPartyURI() to consider any sub principal's URI, r=robwu
Differential Revision: https://phabricator.services.mozilla.com/D74163
2020-05-13 16:50:19 +00:00
Jonathan Kingston c5c35ad38c Bug 1547707 - Add in origin attributes to ExpandedPrincipal serialization. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D33613
2019-06-05 11:27:16 +00:00
Jonathan Kingston 9ae59de314 Bug 1508939 - cpp serialization r=ckerschb,mccr8,mikedeboer
Migrating to pure Cpp

Differential Revision: https://phabricator.services.mozilla.com/D29221
2019-06-03 12:37:12 +00:00
Christoph Kerschbaumer 29451e9f5e Bug 965637: Move CSP from Principal into Client, part 1: backend changes. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D27654
2019-05-21 23:14:27 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Boris Zbarsky b5c6678235 Bug 1507540 part 1. Use more notxpcom attributes in caps/. r=mrbkap 2018-11-19 20:17:52 -05:00
Jonathan Kingston b3d010794f Bug 1502743 - Replace black/whitelist within caps to block/allowlist r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D10013
2018-10-31 17:56:43 +00:00
Jan de Mooij a64bc6a119 Bug 1487032 - Store origin/site info in CompartmentPrivate. r=bholley
This will let us answer the following questions (in a performant way):

1) What's the compartment's origin? Necessary to implement compartment-per-origin.
2) What's the origin's site? Necessary for the new Wrap() algorithm.
3) Has any realm in the compartment set document.domain? Necessary for the new Wrap() algorithm.

Differential Revision: https://phabricator.services.mozilla.com/D5423
2018-09-11 09:01:14 +00:00
Emilio Cobos Álvarez 4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Boris Zbarsky a8ac1b3df0 Bug 1452666. Implement nsISerializable on expanded principals. r=kmag 2018-05-24 02:43:14 -04:00
Tomislav Jovanovic e7ddf817a7 Bug 1441336 - Use addon permissions for PerformanceTiming properties r=bz,kmag
We need to side-step existing cross-origin checks in Performance Timing code
when the caller is a web extension content script that otherwise has permission
to access the cross-origin resource.

MozReview-Commit-ID: 8IgtqZgPWgY
2018-04-04 16:54:26 +02:00
Kris Maglione cc90e529d4 Bug 1415352: Part 5b - Use the last component principal as principal to inherit for data: URLs. r=bz,krizsa
The logic for choosing the principal here was originally written before
loadInfo had a separate principalToInherit field, and we needed to specify it
via the triggeringPrincipal instead. At that point, we had to choose a
component principal with permission to load the URI at the start of the
request.

However, now that we have a separate field for the principal to inherit, it's
only needed after access checks have passed and we know that we have a URI
which inherits a principal. In that case, the current logic causes us to
always inherit the first principal in the whitelist (which is the page
principal) for URIs (such as data: URIs) that always inherit, where we really
want to inherit the last (which is the extension principal).

MozReview-Commit-ID: EPoUNuOCwrH
2017-11-22 14:20:26 -08:00
Kris Maglione 46d7b2c8f3 Bug 1412345: Downgrade expanded principals before inheriting. r=bz,krizsa
There are several ways that expanded principals can be used as triggering
principals for requests. While that works fine for security checks, it also
sometimes causes them to be inherited, and used as result principals in
contexts where expanded principals aren't allowed.

This patch changes our inheritance behavior so that expanded principals are
downgraded to the most appropriate constituent principal when they would
otherwise be inherited.

The logic for choosing the most appropriate principal is a bit suspect, and
may eventually need to be changed to always select the last whitelist
principal, but I chose it to preserve the current principal downgrade behavior
used by XMLHttpRequest for the time being.

MozReview-Commit-ID: 9fvAKr2e2fa
2017-11-02 19:56:27 -07:00
Kris Maglione b0f77cbbe3 Bug 1407428: Hand out a const array reference for expanded principal whiteList. r=krizsa
The current API makes the life time and ownership of the result array unclear
without careful reading. The result array is always owned by the principal,
and its lifetime tied to the lifetime of the principal itself. Returning a
const array reference makes this clear, and should prevent callers from
accidentally modifying the returned array.

MozReview-Commit-ID: 3f8mhynkKAj
2017-10-10 15:00:16 -07:00
Sebastian Hengst a6ff7a4821 Backed out changeset 237acf2879f6 (bug 1407428) for frequent crashes, e.g. in xpcshell's test_bug248970_cookie.js. r=backout on a CLOSED TREE 2017-10-16 00:00:15 +02:00
Kris Maglione b373b92d17 Bug 1407428: Hand out a const array reference for expanded principal whiteList. r=krizsa
The current API makes the life time and ownership of the result array unclear
without careful reading. The result array is always owned by the principal,
and its lifetime tied to the lifetime of the principal itself. Returning a
const array reference makes this clear, and should prevent callers from
accidentally modifying the returned array.

MozReview-Commit-ID: 3f8mhynkKAj
2017-10-10 15:00:16 -07:00
Nicholas Nethercote 7dbfdaf890 Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP
2017-10-03 09:05:19 +11:00
Chris Peterson 6137e4ff8b Bug 870698 - Part 2: Replace Append("") with AppendLiteral(""). r=erahm
MozReview-Commit-ID: CrkIP4iHP1U
2017-09-03 22:14:11 -07:00
Chris Peterson 4e9c1d3429 Bug 870698 - Part 1: Replace Assign("") with AssignLiteral(""). r=erahm
MozReview-Commit-ID: A0u9PP49OW3
2017-09-03 22:12:56 -07:00
Kris Maglione fd54e6524a Bug 1396449: Part 2 - Use atoms to test WebExtension permissions. r=krizsa
The extension policy services uses atoms internally for permission names, so
using them directly rather than strings is considerably cheaper.

MozReview-Commit-ID: Io8EuOXHKVy
2017-09-03 18:51:02 -07:00
Andrea Marchesini bbcb9558a8 Bug 1347817 - Principal must always have a valid origin - part 4 - origin passed as argument when a principal is created, r=bholley 2017-03-29 08:24:01 +02:00
Andrea Marchesini 19aafd919a Bug 1347817 - Principal must always have a valid origin - part 3 - move origin to BasePrincipal, r=bholley 2017-03-29 08:22:26 +02:00
Andrea Marchesini 6fe82c7556 Bug 1347817 - Principal must always have a valid origin - part 2 - move OriginAttributes to the BasePrincipal, r=bholley 2017-03-29 08:21:03 +02:00