This restores menus to their previous state before bug 1645773.
Backgrounds don't disable theming on these widgets on Linux in
particular, so this does the trick for now, I want to dig more.
This is probably worth landing in any case.
Differential Revision: https://phabricator.services.mozilla.com/D84217
I split the switch statement into two: the first switch determines the
MOX target accessible. The second one does all the rest. This makes it more
readable and scalable when we add more events that need to be accompanied with
data.
Differential Revision: https://phabricator.services.mozilla.com/D84053
* Use clearer pref names.
* Default (and only support) IPDL dispatching.
* Make DispatchCommands async-only.
* Sync ipdl command per sync webgl entrypoint.
* Eat the boilerplate cost, since there's not too many.
* Run SerializedSize off same path as Serialize.
* All shmem uploads go through normal DispatchCommands.
* Defer pruning of dead code for now so we can iterate quickly.
* Use Read/Write(begin,end) instead of (begin,size).
* This would have prevented a bug where we read/wrote N*sizeof(T)*sizeof(T).
Differential Revision: https://phabricator.services.mozilla.com/D81495
We do not expose it nor ever style it. Just use the parent style all the
time. This avoids problematic style resolution calls during reflow.
Differential Revision: https://phabricator.services.mozilla.com/D84358
This lays out a Rust crate and statically links it into
`windows-default-agent.exe`. It declares a single-method API (which
will be invoked in the next commit).
Strings cross the C/C++ <-> Rust FFI boundary as null-terminated
UTF-8. (This will matter more if and when we use ETag and
If-None-Match to get 304 results.)
Errors are reported as Windows result codes, with the "customer" bit
set to encode certain classes of failure.
The bulk of the work is in implementing a
[Viaduct](https://github.com/mozilla/application-services/tree/master/components/viaduct)
backend built on top of `wininet.dll`. The motivation is that if and
when this Remote Settings Rust client grows features (say,
Content-Signature: verification), then by using Viaduct there is a
smooth path to consume the client inside Firefox itself, because
Viaduct already has a backend on top of Necko. That makes this
abstraction relatively low friction: it exists, is in-tree already,
and has a path to use in Gecko proper.
It is expected that the layer above this will handle "gracefully
failing", either open or closed; and will mirror Remote Settings
configuration to the registry so that testers can use prod/stage/dev
easily.
For follow-up:
- Configure logging to use the Windows event logger. See [Bug
1648617](https://bugzilla.mozilla.org/show_bug.cgi?id=1648617).
- Consider propagating errors into the Telemetry we send.
Differential Revision: https://phabricator.services.mozilla.com/D78579
The pattern within Firefox is to configure `services.settings.server`
and then build URLs from that. That pattern isn't the easiest for
testing -- we don't have as much control over the final URL -- but
it's what's desired for production.
There's really no reason to do this in native code; it could just as
easily be JavaScript that runs a little after startup, which would
make it lighter to modify. But this location is next to the same
pattern for the launcher process. Trade offs, trade offs.
Differential Revision: https://phabricator.services.mozilla.com/D80767
This is an easy way to expose `MOZ_APP_DISPLAYNAME` to Rust code. A
visibility declaration is required to expose the symbol; the `MOZ_*`
macros follow the model of `/mfbt/Poison.{cpp,h}`.
Differential Revision: https://phabricator.services.mozilla.com/D81408
It has some properties which make it footgunny, especially in the face of
Fission. Callers should use WindowGlobalChild.innerWindowId instead.
Differential Revision: https://phabricator.services.mozilla.com/D82801
The main reason we look at the complete symbols table is that before bug
1541792, we needed to look at that table for _NSModule symbols.
In bug 1516228, we also made everything llvm-objdump to limit the
differences cross-platform, but that's not necessary anymore per the
previous change.
llvm-objdump doesn't support getting only the dynamic symbols table, so
we go back to what we were using before bug 1516228, namely readelf,
while preserving a code path to use the complete symbols table for the
networking test on libgkrust.a, which doesn't have a dynamic symbols
table.
With this change, check_binary goes from 45s to 0.2s on my machine.
Differential Revision: https://phabricator.services.mozilla.com/D84305
The way check_binary currently works is the result of many years of
changes, but some of the more recent ones actually make some of the
earliest ones unnecessary.
For instance, bug 1541792 removed the need to use iter_symbols on
non-Linux platforms. So we remove support for non-Linux (non-ELF,
really) platforms in iter_symbols (and rename the function to reflect
that).
Differential Revision: https://phabricator.services.mozilla.com/D84304
Iterating symbols is actually expensive because of all the line
splitting. So iterating over all symbols 4 times is actually a huge
waste of time.
Instead, iterate over them once, doing all the version checks at once
for each of them.
This brings down the time spent in check_binary from 2:25 to 0:45 on my
machine.
Differential Revision: https://phabricator.services.mozilla.com/D84303
This avoids problems where a foreground tab tries to communicate with a background
tab via `window.opener`, but is unable to because the background tab
is suspended.
Differential Revision: https://phabricator.services.mozilla.com/D83693
Also make sure we distribute the `http3server` binary in the common test archive, and download it for artifact builds.
Differential Revision: https://phabricator.services.mozilla.com/D84421
The rules we create in the backend for generated files use a stub file
for the real file generation, and we do need dependencies on that
specific target for the changes in bug 1264836 to work without races.
Differential Revision: https://phabricator.services.mozilla.com/D84311