Commit graph

4,336 commits

Author SHA1 Message Date
Moonchild
b83d024efb [network] Hold mutex when accessing mSecurityInfo. 2021-01-27 21:03:07 +08:00
Moonchild
202ef2a56a [DOM] Store weak pointer to next parents. 2021-01-27 21:03:05 +08:00
Moonchild
8630e4f6dc [DOM] Try to avoid slow shrinking GC during sync calls 2021-01-27 21:03:02 +08:00
Moonchild
1835a24351 [webaudio] Fix up ReverbInputBuffer's writeIndex. 2021-01-27 21:03:00 +08:00
Moonchild
2cb1162b7f [WebRTC] Improve SDP parser error handling. 2021-01-27 21:02:58 +08:00
Moonchild
5d2fea0dac [js] Add AutoEnterOOMUnsafeRegion to JS_TransplantObject.
Transplanting objects is inherently oom-unsafe, so add
`AutoEnterOOMUnsafeRegion` to `JS_TransplantObject()` and annotate crashes
accordingly if they do happen.
2021-01-27 21:02:55 +08:00
Moonchild
9b6e17cf34 Fix rooting hazard in ImageBitmap::CreateInternal by avoiding movable data. 2021-01-27 21:02:53 +08:00
Moonchild
ef906c715e [layout, XUL] Avoid accessing invalidated frame. 2021-01-27 21:02:50 +08:00
Matt A. Tobin
d4324dc064 Issue #1390 - Clean up presentation api leftovers 2021-01-27 21:01:56 +08:00
Moonchild
a828a5f321 Issue #1719 - Make <menuitem> pref-controlled and disable by default.
Resolves #1719
2021-01-27 21:01:54 +08:00
Moonchild
74680d59a1 Issue #1319 - Resolve RELEASE_OR_BETA questions in all.js
- Enabled SVG transform-box property. I've tested this extensively including the
bug that prevented Mozilla from shipping until 55 which does not seem to apply
to us (most likely a stylo issue). Should be good to go.
- Moved the getRootNode pref to a better place (no change)
- Enabled inputmode property for forms. This is n/a for physical keyboards but
should improve the experience for soft keyboards that can pop up various forms
of input (e.g. numeric) depending on the mode indicated. According to BZ this is
feature complete at our level but was problematic for Android which we don't
have support for anyway.
- Restricted crashing on insecure input of text to debug only.
- Enabled shutting down the async OSFile worker if not used for 30 seconds to
be more conscientious about resource use.
- Enabled blocking of autoplay of media in the background by default, since it
is a saner default to have for the OOBE and is commonly a desired setting by
users (see forum).
- Disabled the storage manager API by default. This fine-grained control over
stored website data is already handled by various extensions and we don't have
the front-end support for it. Assuming this was necessary for Mozilla due to
limited access of WebExtensions to this kind of data.
2021-01-27 21:01:51 +08:00
Moonchild
78599bd818 [Basilisk] [SSUAO] Updates for "mainstream" sniffers. 2021-01-21 14:42:11 +08:00
Moonchild
07ca4f6f03 Issue #1630 - Enable W3C pointer events by default.
Resolves #1630
2021-01-21 14:31:52 +08:00
Matt A. Tobin
1f54cfa658 [Media] Enable AV1 by default if built 2021-01-21 14:31:50 +08:00
Moonchild
82994ebc15 Issue #1715 - Handle errors when initializing print settings from the printer
fails due to a bad printer name or O.S. error.

Resolves #1715
2021-01-21 14:31:48 +08:00
Moonchild
de53821109 Issue #1689 - Part 5: Enable DOM Animations API except the preffed-off parts.
This enables the DOM Animations API core functions with the exception of those
parts that are either unimplemented or not ready for use, which have been
preffed off in this issue's previous parts.

Also tag #1319 for enabling a previous RELEASE_OR_BETA shielded API.
2021-01-21 14:31:25 +08:00
Moonchild
15feed4c00 Issue #1689 - Part 4: Add a preference for {Document,Element}.getAnimations()
This is probably the last thing we will ship (if ever) since it needs the most
spec and implementation work for arbitrary use that is pretty far into a corner.
2021-01-21 14:31:23 +08:00
Moonchild
fdeb68f0b8 Issue #1689 - Part 3: Add a preference for animation composite modes.
This feature should not be shipped until the various definitions of addition for
each additive property are properly specified and then implemented accordingly.

Unlike other patches in this series, compositing is not frequently used
internally so there is no need to enable this by default for chrome callers.
2021-01-21 14:31:22 +08:00
Moonchild
d9693c298c Issue #1689 - Part 2: Add a preference for implicit keyframes
This preference controls whether authors are allowed to specify animations
without a 0% or 100% keyframe.

We intend to ship this but it isn't implemented yet (needs a follow-up) but this
preference acts as a safeguard in case we discover we need to disable it once
it's implemented.
2021-01-21 14:31:20 +08:00
Moonchild
ad1e2abea1 Issue #1689 - Part 1: Add pref for DOM Animation timelines API
Default false, no intent to ship for web content. Always enabled for Chrome.
2021-01-21 14:31:18 +08:00
Moonchild
29963d81bd Bump platform version for added features. 2021-01-21 14:31:00 +08:00
Moonchild
9afad4faa9 [Basilisk] [Tabbed browser] Pref detach&tear-off of tabs.
See MoonchildProductions/Pale-Moon#1845
2021-01-14 22:39:17 +08:00
Moonchild
7827259c9f [Basilisk] [SSUAO] Update overrides for YouTube 2021-01-14 22:38:12 +08:00
Moonchild
ef13be6ef8 [Pale-Moon] Issue #1845 - Pref detach&tear-off tab handling.
Resolves #1845
2021-01-14 22:33:04 +08:00
Moonchild
6ee59c813d [Pale-Moon] [SSUAO] Update overrides for YouTube 2021-01-14 22:32:38 +08:00
Moonchild
4461ea7a07 Issue #1705 - Part 9b: Revert overzealous changes on Mac (cocoa). 2021-01-14 22:20:05 +08:00
Moonchild
b523c3be80 Issue #1705 - Part 9: Implement scrollbar-width:thin on Mac (cocoa). 2021-01-14 22:20:03 +08:00
Moonchild
2d99d18c21 Issue #1705 - Part 8: Implement scrollbar-width:thin on GTK. 2021-01-14 22:20:01 +08:00
Moonchild
32df94bf3b Issue #1705 - Part 7: Implement scrollbar-width:thin on Windows. 2021-01-14 22:20:00 +08:00
Moonchild
953cd5b6b2 Issue #1705 - Part 6: Remove scrollbarbutton min-{width|height} rule from theme.
This would interfere with implementing thin scrollbars.

Almost all widgets provide a non-overridable size for scrollbar buttons, so it
makes no sense to specify min size for them. It is probably(?) a layout bug that
min size properties can override the value returned by GetMinimumWidgetSize
even if aIsOverridable is set to false, but removing this rule is simpler than
locating and fixing the issue in layout code ;)
2021-01-14 22:19:58 +08:00
Moonchild
7060aae250 Issue #1705 - Part 5: Implement scrollbar-width:none for all target platforms. 2021-01-14 22:19:56 +08:00
Moonchild
8e08d8bfd3 Issue #1705 - Part 4: Add scrollbar-width CSS keyword to CSS parser.
This should be all parts needed to add a brand new enum keyword including
getting the computed style from it...
2021-01-14 22:19:55 +08:00
Moonchild
21f707390d Issue #1705 - Part 3: Rename ScrollbarStyles to ScrollStyles.
ScrollbarStyles contains values of overflow, (over)scroll-behavior, etc.
The only one which is marginally related to scroll _bars_ is overflow, which can
be used to hide scrollbar (by making an element not scrollable) or enforce the
scrollbar to display.

It makes more sense to be called ScrollStyles as it's mainly concerning behavior
of scrolling, not scrollbars. Also, with the addition of scrollbar width
properties, the current name can be confusing.
2021-01-14 22:19:53 +08:00
Moonchild
3765010635 Issue #1705 - Part 2: Add a ShowScrollbar enum to be used in ScrollReflowInput.
Overflow properties have two purposes:
1. controlling whether the scrollbar should be shown;
2. controlling whether the content is scrollable.

However, with the scrollbar-width property being added, scrollability and
presence of a scrollbar are no longer tied together.
This patch makes a separation between the value of overflow and the presence of
a scrollbar by making it clear that for ScrollReflowInput, we only care about
whether scrollbar should be shown.
This should make it easier to write the logic involving presence of the
scrollbar based on webdev choice.
2021-01-14 22:19:51 +08:00
Moonchild
e993607a88 Issue #1705 - Part 1: Rename nsChangeHint_CSSOverflowChange to *ScrollbarChange.
Prepare for scrollbar-width which should trigger the same kind of change.
2021-01-14 22:19:49 +08:00
Matt A. Tobin
325e57e916 Issue #1624 - Fix slot access intrinsics for objects with > 16 reserved slots
Also flips ion inlining pref back on
2021-01-14 22:19:19 +08:00
Moonchild
3caca43d30 Issue #1710 - Check for triggering principal URI in FTP subresource check.
Resolves #1710
2021-01-14 22:19:17 +08:00
Olivier Certner
24391cb707 Issue #1699 - Part 3c: mozjemalloc: FreeBSD: Ensure early initialization
This guarantees that initialization is done in a single-thread context.
2021-01-08 17:40:55 +08:00
Olivier Certner
b7e6f5fd45 Issue #1699 - Part 3b: mozjemalloc: Bootstrap allocator, early diversion for FreeBSD
Coded a simple memory allocator meant to be used during jemalloc bootstrap
(malloc_init_hard()). Although protected by "#ifdef __FreeBSD__", it is not
FreeBSD-specific: Any POSIX platform could use it.

Hook it so that it is used in place of jemalloc's own routines while
malloc_init_hard() is executing or memory for mutexes is being
allocated. Currently, 'malloc', 'calloc', '*memalign' and 'free' are diverted
during init or lock initializations.

Details are quite complex, see the big comment block starting with "There are
several problematic interactions between FreeBSD's libthr and this jemalloc."
for more explanations.

Also replaced ad-hoc BSD code to determine the number of CPUs with 'sysconf',
which is POSIX-compliant (and supported on modern BSDs).
2021-01-08 17:40:53 +08:00
Olivier Certner
208a992fe9 Issue #1699 - Part 2: libevent: Remove 'evutil_secure_rng_add_bytes'
In fact, this is a security threat.

This function calls 'arc4random_addrandom', which was removed from the
reference implementation 7 years go [1], on the ground that this was in fact an
internal interface which is almost impossible to use correctly. This update has
since then been propagated to other implementations (e.g., FreeBSD, IllumOS,
Android).

Do this for all platforms, since 'evutil_secure_rng_add_bytes' is not even used
in the current tree, and for the reason stated above, should never be.

Related bugs at Mozilla and libevent: Links [2] and [3] below.

[1] http://marc.info/?l=openbsd-cvs&m=138238762705209&w=2
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=931354
[3] https://sourceforge.net/p/levent/bugs/320/
2021-01-08 17:40:51 +08:00
Olivier Certner
729af0b142 Issue #1699 - Part 1: python/psutil: Support recent FreeBSD versions
'sysctl' interface to currently opened connections changed in FreeBSD 12.

Drop support for FreeBSD < 9, these are very old and unsupported versions.
2021-01-08 17:40:50 +08:00
Moonchild
926243b406 [Basilisk] Update comment. 2021-01-06 13:25:43 +08:00
Moonchild
2e38cc1da9 [Basilisk] Update about box link to point to rpmo. 2021-01-06 13:25:23 +08:00
Moonchild
04df8ca786 [Pale-Moon] [SSUAO] Add netteller to UA overrides.
See: https://forum.palemoon.org/viewtopic.php?f=70&t=25906
2021-01-01 10:03:06 +08:00
Moonchild
89823dc87b Issue #1053 - Part 2b: Remove android from /layout reftests
Also cleans up some other obsolete checks and stylo reftest lists.
2021-01-01 10:02:18 +08:00
Moonchild
787b0a52a3 Issue #1053 - Part 3b: Remove AndroidSurfaceTexture and Android media decoder
interface.
2021-01-01 10:01:11 +08:00
Moonchild
753251e54c Issue #1053 - Part 3a: Remove Android conditionals from /gfx 2021-01-01 10:01:09 +08:00
Moonchild
7167c960d0 Issue #1053 - Part 2a: Remove android from /layout (partial)
This removes android code from base, build, forms, generic, inspector, style,
printing, tools and xul.
2021-01-01 10:01:05 +08:00
Moonchild
b21588597c Issue #1053 - Part 1c: Remove references to mobile/android targets and paths 2021-01-01 09:59:58 +08:00
Moonchild
659441da45 Issue #1681 - Hard-code FLAC media type association for .flac
We don't support AAC outside of OMX at the moment, so oops.
2020-12-26 06:58:05 +08:00