Commit graph

535 commits

Author SHA1 Message Date
MeladJM
4cdfb9e16b Issue #2790 - Part 3: Address BZ bug 1849122 and resolve build issues 2025-07-29 10:14:48 +08:00
MeladJM
d99eab0d9d Issue #2790 - Part 2: Address BZ bugs: 1355438 and 1341230 2025-07-29 10:14:23 +08:00
Francis Dominic Fajardo
03f29e75ec Issue #2828 - Part 3: Refactor selector matching and rule cascade data into separate files/classes 2025-07-25 20:47:06 +08:00
Moonchild
f902d2ad0e [DOM] Make object loading use an explicit scheme whitelist. 2025-07-25 07:33:16 +08:00
Andy
b11affbdf3 Issue #2106 - Clean-up: Un-prefix -moz-user-select in Comments 2025-07-08 10:01:21 +08:00
Andy
abb891ff26 Issue #2106 - Follow-up: Un-prefix DOM Attribute MozUserSelect 2025-07-08 10:00:32 +08:00
Andy
1a5b3dcae6 Issue #2106 - Follow-up: Additional Un-prefixing 2025-07-08 10:00:02 +08:00
Andy
4cc014cb6b Unprefix -moz-read-write / -moz-read-only 2025-07-04 22:27:22 +08:00
Moonchild
0c2770ff7b [DOM] Update YouTube embed rewrites.
Youtube's usage patterns have changed regarding video embeds, so we can
remove special handling for the enablejsapi flag.
Applies YouTube embed URL replacement to the path component only.
2025-06-27 23:30:17 +08:00
Moonchild
3c2c7ce1e2 No issue - Escape < and > in element attribute values.
Per spec, extend escaping of attribute value characters to include
`<` and `>`. We already did this for text fragments, and it makes sense
to apply the same to attribute values. We are at parity with mainstream
that default-escape attribute values this way in current releases.
2025-06-27 23:29:12 +08:00
Moonchild
2782cded29 Issue #2752 - Change DOMMatrix Rotate{Self}() to the current spec.
This changes Rotate{Self}(angle, translateX, translateY) to
Rotate{Self}(rotateX, rotateY, rotateZ) per the spec.
The resulting matrix will be a 3DMatrix

Resolves #2752
2025-06-17 09:26:52 +08:00
Moonchild
c3f1c0cdba Issue #2721 - Remove nsILinkHandler.
This interface inly has a single implementation behind it, which is also
only used in 2 places after the previous commit. That's a lot of
additional complexity and compiler indirection for no good reason.
This change removes the interface and uses direct nsDocShell::Cast calls
instead of going through the interface in the few places left now that
we no longer build on a presentation context for links.
2025-06-17 09:25:00 +08:00
Moonchild
37de431ac0 Issue #2721 - Create special case exception for <A>.Click() outside of DOM
This removes the requirement for there to be a non-null PresShell to
dispatch `Click()` events on `<A>` elements (only), since the exception
to the rule has propagated to the spec.

With these changes it should now be possible do create an anchor and
`Click()` on it from JS without actually first attaching it to the DOM
of the presented document, as abused by scripted downloads in pages
(instead of using the A attribute to custom-name downloads).
2025-06-17 09:24:44 +08:00
Moonchild
53a6f6349d Issue #2736 - Part 14: Make CSP-enabled available to workers. 2025-05-14 14:35:35 +08:00
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
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
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
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
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
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
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
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
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
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
ff89fee91d Issue #1787 - Remove nsIAppsService, mozIApplication and mozapp data cleanup. 2024-11-21 21:09:05 +08:00
Moonchild
53cab0f8ce Issue #2653 - Part 4: Remove isApp from quota manager and its clients 2024-11-21 21:02:50 +08:00
Moonchild
7f086f216c Issue #2653 - Part 3: Remove support for packaged apps from asmjscache 2024-11-21 21:02:19 +08:00
Moonchild
7b6e3a2d4a Issue #2653 - Part 1: Initial cleanup of AppId and isolated mozbrowser.
This removes a lot of the plumbing for having the platform embed itself
through IPC which was required for B2G running the browser as both
shell and browser application.
2024-11-21 21:01:27 +08:00
Moonchild
7d978ccd71 Issue #2641 - Update Fetch to adhere to the updated spec (pass refpolicy)
Resolves #2641
2024-10-24 07:37:31 +08:00
Moonchild
f6f046930d Issue #2641 - Speculative load changes for referrerpolicy 2024-10-24 07:37:15 +08:00
FranklinDM
97a40adc75 Issue #2251 - Expose ghost window unlinking to release builds. 2024-09-22 20:43:48 +08:00
Moonchild
71bd54891a Issue #1810 - Implement {get|set}Transform with DOMMatrix arguments.
We already had part of the plumbing for other canvas manipulations, so
this is somewhat simplified.

This excludes the interface as that is breaking the build at this stage.
Some more research is required.
2024-08-21 10:48:06 +08:00
Moonchild
314ba652f4 [DOM] Pass error up the chain in SetColorValue. 2024-08-09 15:16:03 +08:00
Moonchild
ec7351a5d4 Issue #1925 - Remove use of NS_SIDE_* macros. 2024-08-05 10:31:46 +08:00
Moonchild
7e3f0d53a2 Issue #2515 - Remove mForceContentDispatch and mNoContentDispatch 2024-08-05 10:29:26 +08:00
Moonchild
d0e568577f Issue #2547 - Remove hidden network.dns.disablePrefetchFromHTTPS pref.
Resolves #2547
2024-07-18 22:31:03 +08:00
Moonchild
2b8d75e136 Issue #2546 - Part 2: Remove special FoxEye CreateImageBitmap method. 2024-07-10 14:50:16 +08:00
Moonchild
60fbaa2155 Issue #2546 - Part 1: Remove BufferSource support in CreateImageBitmap. 2024-07-10 14:50:00 +08:00
Moonchild
fb16b1b4ae Issue #2534 - Part 1: window.postMessage should provide a trusted MessageEvent 2024-06-24 23:11:25 +08:00
Moonchild
6a200d5284 No Issue - Add navigator.webdriver attribute.
This patch adds an enumerable, configurable, readonly attribute "webdriver" to
the Navigator object. The attribute is always false because we do not support
WebDriver or scripted automation.

The navigator.webdriver attribute is meant as an indication to web authors that
a document is visited by WebDriver. It is important to stress that it is not
meant as a way to detect that a website is being visited by a browser automation
tool or bot, but as a tool for web documents to take alternate code paths.

On the off-chance exposing navigator.webdriver turns out to be catastrophic,
we put it behind a new preference dom.webdriver.enabled that controls its
exposure.
2024-06-17 16:14:48 +08:00
Moonchild
87a7cf7332 Issue #2472 - Part 6: Fire cancel event and close modal <dialog> on [ESC]
This implementation is different than Mozilla, not indirectly queueing cancel
tasks to be arbitrarily ordered, but rather synchronously close in reverse
top layer order.
2024-05-08 09:57:53 +08:00