Commit graph

6,003 commits

Author SHA1 Message Date
Moonchild
af227c4574 Issue #2534 - Part 2: Update tests 2024-06-24 23:11:39 +08:00
Moonchild
fb16b1b4ae Issue #2534 - Part 1: window.postMessage should provide a trusted MessageEvent 2024-06-24 23:11:25 +08:00
Moonchild
22f745761b Issue #2536 - Re-implement plugin enumeration shuffle.
Resolves #2536
2024-06-24 23:11:06 +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
1db268ef50 Issue #2532 - Align dialog submission triggered by form.submit() with the spec.
Submission in click handler of submit button should not be deferred
per https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submit-dialog

See Bug 1719872
2024-06-17 16:12:14 +08:00
Moonchild
b6d077bbbb Issue #2532 - Prevent unwanted text selection when backdrop is clicked. 2024-06-17 16:12:00 +08:00
Moonchild
368ee51d86 Issue #2532 - Don't do PreventDefault for escape key if <select> dropdown is not shown
We always use PreventDefault for <select> element, which is problematic if modal
dialog is on as it prevents cancelling the dialog. We fix it by not blocking the
default action if <select> is not shown.

See Bug 1649278
2024-06-17 16:11:45 +08:00
Moonchild
f50948c82a Issue #2532 - Fix a null pointer crash while doing dialog form submission
See Bug 1652699
2024-06-17 16:11:29 +08:00
Moonchild
f598fe63cd Issue #2532 - Default pref check to true 2024-06-17 16:11:07 +08:00
Moonchild
6ee3f46900 Issue #2532 - Implement form[method=dialog]
See bug 1557303
2024-06-17 16:10:50 +08:00
Richard-Rogalski
b73f500c04 PR #2530 - Fix altivec code, fix building for PPC
Altivec code was previously uncompilable, and the altivec accelerations
also could not be disabled with a build flag or env variable, leading
to pale moon not being buildable on any altivec supported CPU ( all
PPC CPUs ever almost ). Why? I don't know, 'inline' in C is cursed
and making it static makes it significantly less so.

Closes: https://forum.palemoon.org/viewtopic.php?f=5&t=31108&p=252462#p252462
Signed-off-by: Richard Rogalski <rrogalski@firemail.cc>
2024-06-17 16:10:19 +08:00
Daniel Holbert
0e05cb9630 [layout] Initialize PerSpanData members mBaseline and mReflowInput.
We null-initialize all of the other pointer members in NewPerSpanData; we should
do the same for these ones, for consistency & robustness.

(In practice, the callers end up initializing these members before reading them
anyway, so it's been benign that we weren't initializing them. But better for
safety & futureproofing to have them reliably initialized.)
2024-06-13 11:31:46 +08:00
Moonchild
9c8bd37fe5 [uri] Implement additional filename checks. 2024-06-13 11:31:03 +08:00
Moonchild
40c9102d6d [js gc] Suppress GC during JSObject::swap
We already suppressed GC for part of this, but we may sweep before the pre-write
barrier is established.
The simplest and safest thing is to suppress GC for the whole method.
2024-06-13 11:30:25 +08:00
Moonchild
b4caa69a9c [toolkit] Close autocomplete popup when window is resized. 2024-06-13 11:29:32 +08:00
Moonchild
a2417d573b [DOM] Clone video info properly. 2024-06-13 11:28:58 +08:00
Moonchild
a09accc204 [uri] Fix issues with external protocol handlers.
Remove early return in nsExternalProtocolHandler::NewChannel when handler doesn't exist.
Fix devtools expectation that newChannel throws for unsupported external handlers
2024-06-12 15:41:01 +08:00
Moonchild
bcdf7dc845 [network] Avoid accessing raw pointers in nsTransportEventSinkProxy. 2024-06-12 15:12:37 +08:00
Moonchild
bfb171c783 [network] Perform a case-insensitive match on special cookie prefixes. 2024-06-12 15:11:50 +08:00
FranklinDM
2ba31f4e97 Issue #2522 - Part 2: Implement support for logical viewport units 2024-06-11 10:14:40 +08:00
FranklinDM
5c06335c5b Issue #2522 - Part 1: Alias small, large, and dynamic viewport units to base viewport 2024-06-11 10:14:27 +08:00
Moonchild
359a4a2069 Issue #2524 - Implement smart granularity for canvas poisoning.
User-configurable time interval between 1s and 8h. Default 5 minutes.
Resolves #2524
2024-06-11 10:14:09 +08:00
Moonchild
91fc5614ec Issue #1749 - Remove restriction of SVG width/height element attributes.
According to the original SVG spec, the SVG element in documents had to follow
special rules as to what was allowed for width/height attributes. This is no
longer the case, so we can decouple it from whatever internal units SVG/XML
language uses and allow all units like every other element.
2024-06-06 14:11:31 +08:00
Martok
2128ac642e Issue #2519 - Use parser error reporter to report missing module exports 2024-06-04 10:16:36 +08:00
Moonchild
7381521cf7 Issue #2518 - Make various arguments optional in XPathEvaluator/XPathExpression.
Resolves #2518
2024-06-04 10:16:17 +08:00
Moonchild
7d2ecc13dd [gfx] Use calloc for cairo font-creation functions. 2024-05-22 15:22:50 +08:00
Moonchild
7672f932f7 [gfx] Ensure font entry's unitsPerEm and font extents are initialized when gfxFont is created. 2024-05-22 15:22:23 +08:00
Moonchild
22830d18cf [DOM] Clean up ReportLoadError and normalize error messages. 2024-05-22 15:21:54 +08:00
Moonchild
552cd74b08 [gfx] Clear mSharedBlobData if blob creation failed. 2024-05-22 15:21:23 +08:00
Moonchild
f3413e94b9 [network] Make http digest auth cnonce length configurable. 2024-05-22 15:20:46 +08:00
Basilisk-Dev
4a95f9d418 [Basilisk] fix bug with preferences not working 2024-05-16 22:53:06 +08:00
Andy
52d7e4f3db PR #2514 - Don't split up happy emoji sequences
Loosely based on https://phabricator.services.mozilla.com/D25101
Includes changes to `GetEmojiPresentation`, added in e38b57ca.
The `EmojiComponent` response includes hair color, skin tone, ZWJ, VS16, Combining Enclosing Keycap, and the Tag unicode characters used for subdivision flag emojis.
This means that `IsClusterExtender` should support all these characters, and be forward compatible with any future Unicode changes.
This also lets us restructure `ClusterIterator::Next` to check for EmojiComponents after a TextDefault character, without any stupid constants.
2024-05-16 22:50:32 +08:00
Basilisk-Dev
3fface9c03 [Basilisk] MoonchildProductions/UXP#2510 - Unprefix -moz-fit-content CSS keyword in Basilisk frontend 2024-05-08 21:24:12 +08:00
Basilisk-Dev
51091fd760 [Basilisk] Add error handling to MIME type processing in prefs.
Port of MoonchildProductions/Pale-Moon#1959
2024-05-08 21:23:30 +08:00
Brian Smith
de8213f561 Issue #2472 - Part 8: Fix conflicting defines on Mac. 2024-05-08 10:03:58 +08:00
Moonchild
c77b4b0bad Issue #2510 - Unprefix -moz-fit-content
No aliasing since this has been out for a while.
Devtools db regenerated with `mach devtools-css-db`

Resolves #2510
2024-05-08 09:59:34 +08:00
Moonchild
a3826565a7 No issue - Regenerate devtools css database
We were missing ::slotted, apparently.
2024-05-08 09:58:09 +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
Moonchild
7d34b285e0 Issue #2472 - Part 5: Make modal versions of <dialog> work, and tune styles.
This adds a pseudo-class `:-moz-modal-dialog` to be able to track whether the
dialog is in the top layer in CSS.
This implements default styling for modal dialogs following the HTML standard.
Slightly off-extreme color scheme chosen for unstyled <dialog> elements.
2024-05-08 09:57:29 +08:00
Moonchild
7a04afab4a Issue #2472 - Part 4: Make TopLayer{Push|Pop} part of nsIDocument. 2024-05-08 09:55:38 +08:00
Moonchild
79c7489bb0 Issue #2472 - Part 3: Refactor Fullscreen stack to Top Layer stack
Fullscreen stack isn't part of the spec anymore; it's been changed to a more
generic version called Top Layer stack, which is being used by both full-screen
APIs and dialog elements.

This patch refactors it to Top Layer stack so that it can be reused for dialog
elements.

Top Layer stack spec: https://fullscreen.spec.whatwg.org/#new-stacking-layer
2024-05-08 09:55:18 +08:00
Moonchild
1f4152a5ac Issue #2472 - Part 2: Add FunctionRef callable type
Prerequisite for top layer refactor.

FunctionRef is a generic callable type that can be initialized from any
compatible callable, suitable for use as a function argument for the duration of
the function call (and no longer).
2024-05-08 09:53:29 +08:00
Moonchild
3058bef840 Issue #2472 - Part 1: Add helper method to directly dispatch events to widgets. 2024-05-08 09:53:11 +08:00
Moonchild
9eaee03eb4 [dom media] Avoid a potential issue when assigning a media data buffer. 2024-04-19 09:35:53 +08:00
Moonchild
9b6c2f36f1 [gfx] Pull several OTS fixes from upstream to improve data safety.
- Don't check STAT designAxisSize if the designAxisCount is zero.
- Avoid potential arithmetic overflow during Buffer read operations.
- Use more careful range checks in STAT parsing.
2024-04-19 09:35:17 +08:00
Moonchild
dc52303799 [js] Simplify tracing of arguments in MarkThisAndArguments. 2024-04-19 09:34:45 +08:00
Moonchild
1ddd3ea76b [network] Keep track of and check HTTP/2 header sizes. 2024-04-19 09:34:14 +08:00
Moonchild
f6204a7ca8 [XPCOM] Warn about .xrm-ms files on Windows (treat as executable) 2024-04-19 09:33:28 +08:00
Moonchild
407a79e79f Issue #2503 - Part 3: Add CPU capabilities to about:support. 2024-04-16 15:16:01 +08:00
Moonchild
baf98e0dde Issue #2503 - Part 2b: Fix missing navigator in UpdateUtils. 2024-04-16 14:59:13 +08:00