Commit graph

1,425 commits

Author SHA1 Message Date
Moonchild
60ad5b2ffd Issue #2736 - Part 12: Re-work style <link> href attribute.
Use subject principal as triggering principal in style <link> "href"
attribute.
2025-05-14 14:33:26 +08:00
Moonchild
dde21838de Issue #2736 - Part 11: Re-work <input> src attribute.
Use subject principal as triggering principal in <input> "src" attribute.
2025-05-14 14:33:09 +08:00
Moonchild
faf4f2c23f Issue #2736 - Part 10: Re-work <source> srcset attribute.
Use subject principal as triggering principal in <source> "srcset"
attribute for <picture>.
2025-05-14 14:32:54 +08:00
Moonchild
b1b5062dc4 Issue #2736 - Part 9: Re-work <source> src attribute.
Use subject principal as triggering principal in <source> "src" attribute
for <audio>/<video> elements.
2025-05-14 14:32:39 +08:00
Moonchild
b6bdce6f98 Issue #2736 - Part 8: Re-work <video> and <audio> src attribute.
Use subject principal as triggering principal in <video>/<audio> "src"
attribute. We deviate from Mozilla here because we do not worry
about content isolation principals in Page Info.
2025-05-14 14:32:24 +08:00
Moonchild
2416e71cd3 Issue #2736 - Part 7: Re-work <frame> and <iframe> src attribute.
Use subject principal as triggering principal in <iframe>/<frame> "src" attribute.
2025-05-14 14:26:23 +08:00
Moonchild
1f638b22ec Issue #2736 - Part 6: Re-work <script> src attribute.
Use subject principal as triggering principal in <script> "src" attribute.
2025-05-14 14:26:06 +08:00
Moonchild
2bdb9f3d85 Issue #2736 - Part 5: Re-work img <srcset> attribute.
Use subject principal as triggering principal in <img> "srcset" attribute.
2025-05-14 14:23:33 +08:00
Moonchild
c8db9efb3c Issue #2736 - Part 4: Re-work img <src> attribute.
Use subject principal as triggering principal in <img> "src" attribute.
Also get rid of the `BeforeMaybeChangeAttr`/`AfterMaybeChangeAttr` dance:
It makes more logical sense for these effects to happen _after_ the
attribute has actually been changed.
2025-05-14 14:23:17 +08:00
Moonchild
824d0cad58 Issue #2736 - Part 2: Pass subject principal to SetAttribute and friends.
In order to tailor certain security checks to the caller that is
attempting to load a particular piece of content, we need to be able to
attach an appropriate triggering principal to the corresponding requests.

Since most HTML content is loaded based on attribute values, this means
capturing the subject principal of the caller who sets those attributes,
which in turn means we need to make it available to `AfterSetAttr` hooks
on all relevant element types.
2025-05-14 14:22:13 +08:00
Moonchild
9ad680cfc4 Issue #2736 - Part 1: Provide more consistent principals to CSP.
We're currently fairly vague and inconsistent about the values we provide to
content policy implementations for requestOrigin and requestPrincipal. In some
cases they're the triggering principal, sometimes the loading principal,
sometimes the channel principal.

Our existing content policy implementations which require or expect a
loading principal currently retrieve it from the context node.
Since no current callers require the principal to be the loading
principal, and some already expect it to be the triggering principal
(which there's currently no other way to retrieve), a choice was made
to pass the triggering principal whenever possible, but use the loading
principal to determine the origin URL.
2025-05-14 14:21:46 +08:00
Moonchild
fd4a224d1d Issue #2737 - Part 1: Base implementation of SVGGeometryElement.
Mostly mechanical changes to generalize path geometry for all SVG draw
elements. No user-exposed changes.
2025-04-30 23:02:16 +08:00
Moonchild
0331e633bd Issue #2728 - Remove obsolete CSP referrer policy.
This has been superseded by the dedicated Referrer-policy header.
Resolves #2728
2025-04-30 22:58:43 +08:00
Moonchild
8bacedc9a9 Issue #2729 - Add missing jsonifier interfaces to DOM{Matrix|Rect|Point}
Resolves #2729
Resolves #2705
2025-04-18 10:31:48 +08:00
Moonchild
0113b2715d [DOM] Check state before compiling/transforming. 2025-04-03 09:47:35 +08:00
Moonchild
f1c456c625 Issue #2713 - Check for NaN before std::min/max() in DOMQuad and DOMRect.
If there is a NaN involved we should not return 0 here.
2025-03-23 12:52:03 +08:00
Moonchild
6411abd43c Issue #2711 - Apply pattern transforms when using text-rendering on canvas.
Resolves #2711
2025-03-23 12:26:21 +08:00
Moonchild
6449b7514b No issue - Fix some deprot 2025-03-23 12:25:55 +08:00
Moonchild
2e4620b5af Issue #2692 - Part 6: Don't #include js/SourceBufferHolder.h in jsapi.h.
Instead, require users to do so. This is a minor translation-unit size
improvement for anyone who never has to use SourceBufferHolder other than
by reference.
2025-03-13 23:01:46 +08:00
Shadow
c318657acd Explicitly use javascript: instead of URI_INHERITS_SECURITY_CONTEXT within subjectToCSP() (#2696)
Bug 1330035

Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2696
Co-authored-by: Shadow <shadow@no-reply.palemoon.org>
Co-committed-by: Shadow <shadow@no-reply.palemoon.org>
2025-03-12 10:31:54 +08:00
Shadow
a2c6127832 No Issue - Make nsCSPService cancel the channel if a redirect is blocked by CSP
Bug 1338304
2025-03-12 10:31:37 +08:00
Moonchild
afefd0731b No Issue - NULL crash fix in nsExternalResourceMap::PendingLoad::OnDataAvailable
Curiously, we should have had this at our fork point (as it was backported
by Mozilla to 52.5.2) by apparently Tobin's import wasn't actually 52.6.0.
:-/
2025-03-07 21:44:02 +08:00
Moonchild
c41c1c63d5 [DOM] Honor security.csp.reporting.enabled pref in more places. 2025-02-18 19:11:24 +08:00
Moonchild
5141227896 Issue #2690 - Remove additional incorrect syntax error result values. 2025-02-06 09:28:11 +08:00
Moonchild
e1e7a0c5bc Issue #2690 - Allow 0-length keys/empty passwords for PBKDF2. 2025-02-06 09:27:57 +08:00
Moonchild
3d7a95ab44 Issue #2690 - Convert error from non-existing convenience function.
Didn't check that the convenience function existed for this. Throw the
error manually, instead.
TO-DO: Add these convenience functions for one-shot errors.
2025-02-06 09:27:43 +08:00
Moonchild
263bf279a7 Issue #2690 - Throw a NotSupportedError in case of unknown algorithm name.
Syntax error is incorrect for this case.
2025-02-06 09:27:25 +08:00
Moonchild
7039b5a95d Issue #2690 - Replace SyntaxError with TypeError for derive_bits_keys. 2025-02-06 09:27:11 +08:00
Moonchild
4da1b56b6a Issue #2690 - Add AES-KW purposed keys to list of allowable keys to unwrap. 2025-02-06 09:26:58 +08:00
Moonchild
9d8a3f0848 [DOM] Reset mCompileResult in txMozillaXSLTProcessor::ImportStylesheet. 2025-02-06 09:21:54 +08:00
Moonchild
511449e134 Issue #2557 - Remove URL Constructor(DOMString url, URL base).
URL Constructor(DOMString url, URL base) doesn't exist anymore in the spec.

Resolves #2557
2025-02-06 09:20:35 +08:00
Martok
0590764f1f Issue #2686 - Don't rely on return value of ExecutionContext::Compile when the context may forbid running scripts
This is relevant if scripting is terminated due to execution timeout but there are setTimeout/Interval callbacks pending
or if scripting is disabled altogether.
2025-01-29 12:23:50 +08:00
FranklinDM
41eb02d1e1 No issue - Turn worker runnable assertion into something harmless in debug builds
It's annoying.
2025-01-23 09:37:42 +08:00
Moonchild
139e7a7ac6 Issue #2678 - Remove NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED
This no longer does anything at this point, except add indirection.
2025-01-20 21:12:18 +08:00
Moonchild
85f8f23a23 Issue #2678 - Make QIing to a few often-used CCed classes faster.
QIing to CC interfaces is a hot path for a few widely-used classes.
Presumably there are many of these objects being created and destroyed.
By making these classes check first for the CC interfaces directly, rather
than going up the inheritance chain, the resulting overhead is reduced.
2025-01-20 21:09:23 +08:00
Moonchild
c37e68d59f Issue #2678 - Use a new macro for CC isupports in some locations.
There are many more places that could be converted to use these new macros.
If anyone feels so inclined... ;)
2025-01-20 21:08:55 +08:00
Moonchild
33a120eb9f Issue #2678 - Clean up some uses of the table-to-map segue. 2025-01-20 21:08:25 +08:00
Moonchild
0121aefb61 Issue #2678 - Remove now-unnecessary ClearExternalRefsForWrapperRelease.
All DOMProxyHandler::ClearExternalRefsForWrapperRelease now does is clear
a backpointer to the expando, and that's handled during reflector
finalization already, making it redundant.
2025-01-20 21:07:31 +08:00
Moonchild
c9c941f321 Issue #2678 - Stop using EnsureExpandoObject in codegen code when we just want to preserver the wrapper for a DOM proxy. 2025-01-20 21:07:17 +08:00
Moonchild
45bb4cb8b4 Issue #2678 - Switch DOMProxyHandler::EnsureExpandoObject to using normal wrapper preservation instead of RegisterDOMExpandoObject. 2025-01-20 21:06:46 +08:00
Moonchild
14c84e22a9 Issue #2676 - Implement AbortSignal.timeout()
This is a stub implementation because of the considerable abuse risk and
bad web code risk causing DoS, e.g. when using bad timeout values and
callbacks on the AbortSignal (e.g. recursive).
Considering the abort-ability of these signals otherwise there is never
a guarantee to websites that these signals will be triggered anyway, so
it should be considered an optional signal - meaning we can safely just
ignore the timeout, which allows us to avoid a ton of complexity and
potential sec/privacy issues.

Primary use in the wild seems to be detailed profiling/ad metrics anyway;
we don't really want to encourage that!
2025-01-20 21:06:19 +08:00
Moonchild
9fa4b6fd5d Issue #2676 - Implement AbortSignal.abort() 2025-01-20 21:06:05 +08:00
Moonchild
949e3f0ac6 Issue #2676 - Don't keep AbortController alive for AbortSignal 2025-01-20 21:05:47 +08:00
Moonchild
5ea8de0262 [DOM] Convert cleanup of FlushCurrentWord() to a ScopeExit task.
Ensures consistent cleanup even if early exit due to OOM.
2025-01-10 22:31:52 +08:00
Moonchild
e60e1266e9 [DOM] Slightly extend lifetime of data in Structured Clone operations. 2025-01-10 22:30:58 +08:00
Moonchild
8f52da3288 Issue #2673 - Part 2b: Improve ADTS format sniffer's performance.
Also avoids false positives.
2025-01-10 22:29:13 +08:00
Moonchild
e25b285ca7 Issue #2673 - Part 2: Add ADTS format sniffer. 2025-01-10 22:28:30 +08:00
Moonchild
0c2130e615 Issue #2673 - Part 1: Minor ADTSDemuxer cleanup. 2025-01-10 22:28:10 +08:00
Martok
d9dbae4aa9 No issue - Follow-up: fix compilation 2024-12-20 13:42:47 +08:00
Moonchild
1bdfca3920 No issue - Cloned <audio>/<video> elements should respect muted attribute. 2024-12-20 13:42:32 +08:00