We know that some GV installations (particularly but not exlcusively Focus) are
failing to load `libxul.so` during early Gecko bootstrapping. Unfortunately
a boolean pass/fail result is not giving us sufficient information to be able to
properly troubleshoot this problem.
This patch adds `mozilla::Result`-based return values to `XPCOMGlueLoad` and
`GetBootstrap` in an effort to produce more actionable information about these
failures.
We include either a `nsresult` or, if the failure is rooted in a dynamic linker
failure, appropriate platform-specific error information:
* On Unix-based platforms, a `UniqueFreePtr<char>` containing the string from `dlerror(3)`;
* On Windows, the Win32 `DWORD` error code from `GetLastError()`.
For non-Android platforms, I updated them to handle the new return type, but
otherwise did not make any further changes.
For Android, we include the error information in the message string that we pass
into the Java `Exception` that is subsequently thrown.
Differential Revision: https://phabricator.services.mozilla.com/D104263
`appearance` CSS rules allow elements to take on system appearance. For UI elements that we want to take on system styling, we set `appearance: auto` combined with platform-specific rules like `-moz-default-appearance: -moz-mac-vibrant-titlebar-light;`
macOS sidebar vibrancy broke because a background-color was being applied to `root`. That colour appeared under elements with `appearance: auto` set, so we wouldn't see the platform-specific styling. This patch moves the root background-color to `#navigator-toolbox`, so that it does not appear under `#sidebar-box`.
We still want a background colour applied to sidebars when a lwtheme includes one. We only want `appearance: auto` applied to sidebars when the active theme does not have sidebar styling rules. That's why `#sidebar-box:not(:-moz-lwtheme)` is changed to `#sidebar-box:not([lwt-sidebar])`.
This patch also removes the rule
```
:root:-moz-lwtheme {
appearance: none;
}
```
from osx/global/global.css. There's no corresponding addition of a `#navigator-toolbox { appearance:none; }` rule because that rule already exists in [osx/browser.css](https://searchfox.org/mozilla-central/rev/7067bbd8194f4346ec59d77c33cd88f06763e090/browser/themes/osx/browser.css#45).
Differential Revision: https://phabricator.services.mozilla.com/D104416
### Story
When a COOP+COEP page is opened, we change the remoteness of the tab. After
changing the remoteness, the tab is then restored by its TabState. However,
we haven't collected userContextId through the current mechanism.
To fix that, this patch changes the way to collect userContextId.
### Test Plan
Test: D98296
Depends on D98296
Differential Revision: https://phabricator.services.mozilla.com/D98468
Reduces the uneven spacing from the icons, and the weight of the shadow (while keeping some of it, so it still looks over like part of browser chrome).
Differential Revision: https://phabricator.services.mozilla.com/D106070
- Only bootstrap sccache when building with --with-ccache=sccache or
CCACHE=sccache
- Don't bootstrap dump_syms or nasm on builds that don't compile
Differential Revision: https://phabricator.services.mozilla.com/D105704
We also remove the dependency on the check for GNU as, because all the
build environments we support for arm use GNU as, and the dependency
causes complications.
Differential Revision: https://phabricator.services.mozilla.com/D105427
Instead of preemptively check for it, and then check if it's good enough to
build AV1, only check for (and bootstrap) nasm when building AV1 requires
it.
At the same time, we future-proof the code to be able to handle multiple
things requiring nasm, which we're going to add shortly.
Differential Revision: https://phabricator.services.mozilla.com/D105425
Since MOZ_LIBAV_FFT doesn't need the flags, we simplify the libav_fft
function to return true in the conditions it used to return flags for,
which is clearer.
We then move all these flags to the ffvpx function, and rearrange the
tests to be less convoluted, and with hope, more readable.
This has been verified to not change the outcomes on the following
targets:
- i686-pc-linux-gnu
- x86_64-pc-linux-gnu
- aarch64-unknown-linux-gnu
- arm-unknown-linux-gnueabi
- s390x-unknown-linux-gnu
- i686-apple-darwin
- x86_64-apple-darwin
- aarch64-apple-darwin
- i686-pc-mingw32
- x86_64-pc-mingw32
- aarch64-pc-mingw32
Differential Revision: https://phabricator.services.mozilla.com/D105400
Bug 1476231 actually removed libav, so we don't build it, and don't need
neither the yasm check nor the LIBAV_FFT_ASFLAGS variable.
However, we still have checks, both in moz.build and code, for
MOZ_LIBAV_FFT, so we need to keep that.
Differential Revision: https://phabricator.services.mozilla.com/D105399
This passes around the "are we external" bit of load information a bunch,
such that the external protocol handling code has access to it.
In this bug and bug 1667468, I think ideally I would have used a check
if we're the OS default for a given protocol before continuing. However,
this information is currently unavailable on Linux (bug 1599713), and
worse, I believe is likely to remain unavailable in flatpak and other
such restricted environments (cf. bug 1618094 - we aren't able to find
out anything about protocol handlers from the OS).
So instead, we prompt the user if we are about to open a link passed
to us externally. There is a small chance this will be Breaking People's
Workflows, where I don't know whether anyone relies on Firefox happily
passing these URIs along to the relevant application (more convenient
than doing all the registry/API work yourself in scripts!) or anything
like that. To help with that, there's a pref,
`network.protocol-handler.prompt-from-external`, that can be created and
set to false to avoid prompting in this case.
Differential Revision: https://phabricator.services.mozilla.com/D103967
This allows us to separate general TRR performance issues from "this user's
custom DoH server is slow or malfunctioning".
Any DoH servers domains that are not shipped by Firefox are reported as (other).
Differential Revision: https://phabricator.services.mozilla.com/D105602
It should be called "Get" rather than "Lookup" because it returns
UserDataType. "Add" is called "Insert" in the other methods.
Differential Revision: https://phabricator.services.mozilla.com/D105470
The telemetry is triggered either when the user is shown the tab crashed page, or when the subframe notification is displayed and the crash occurs in an active tab, or when the user switches to a tab that has a subframe crash notification displayed. The telemetry only applies the first time the tab is switched to. The unsubmitted crashes notification bar appears after 10 minutes or so and is shown in the top-most browser window, if one exists, and telemetry applies once when this occurs.
Differential Revision: https://phabricator.services.mozilla.com/D100349
PDF files can embed some js code in order to validate, format, ... the data entered by a user in a PDF form.
So in order to safely execute this js code, we create a Cu.Sandbox with only what we need/want to expose to the scripts.
Differential Revision: https://phabricator.services.mozilla.com/D91746
PDF files can embed some js code in order to validate, format, ... the data entered by a user in a PDF form.
So in order to safely execute this js code, we create a Cu.Sandbox with only what we need/want to expose to the scripts.
Differential Revision: https://phabricator.services.mozilla.com/D91746