This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.
As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.
Differential Revision: https://phabricator.services.mozilla.com/D122183
Chrome has removed 3DES completely[0], but we're still seeing some uses of it
in telemetry. Our assumption is that this is either due to old devices that
can't be upgraded, and hence probably use TLS 1.0, or servers that bafflingly
choose 3DES when there are other, better, ciphersuites in common.
This patch allows 3DES to only be enabled when deprecated versions of TLS are
enabled. This should protect users against the latter case (where 3DES is
unnecessary) while allowing them to use it in the former case (where it may be
necessary).
NB: The only 3DES ciphersuite gecko makes possible to enable is
TLS_RSA_WITH_3DES_EDE_CBC_SHA. This patch also changes the preference
corresponding to this ciphersuite from "security.ssl3.rsa_des_ede3_sha" to
"security.ssl3.deprecated.rsa_des_ede3_sha".
[0] https://www.chromestatus.com/feature/6678134168485888
Differential Revision: https://phabricator.services.mozilla.com/D121797
The build system assumes the target compiler is of the same type as the
wasm compiler, but that's not true for wasm32-wasi, which we compile
with clang, while targeting windows, which we compile with clang-cl.
We handle the duality for host/target in a compiler-specific way, but
here, the wasm compiler is always going to be clang.
Differential Revision: https://phabricator.services.mozilla.com/D123041
RTL flags are flags that chooses which C/C++ runtime library to use
(multi-threaded, debug, etc.). They're only relevant when targeting
Windows, not when targeting wasi.
Frame pointer flags are not relevant to wasm (as a matter of fact,
the same wasm code is generated whether using -fomit-frame-pointer
or -fno-omit-frame-pointer)
Differential Revision: https://phabricator.services.mozilla.com/D123040
Sampling overheads are very rarely useful, but they occupy some space during profiling, but also a lot of space in the final JSON profile.
So now they will only be recorded if the environment variable "MOZ_PROFILER_RECORD_OVERHEADS" is set to any non-empty value.
Differential Revision: https://phabricator.services.mozilla.com/D123303
This adds preview localizations for remaining Firefox Suggest strings.
I removed support for `payload.helpTitle` and `sponsoredText`. The `helpTitle`
code comment says it's useful for experiments with hardcoded strings, but we're
not shipping experiments as extensions anymore, and in-tree experimental/
in-development features should use preview localizations AFAICT.
Covered by existing tests:
* browser/components/urlbar/tests/browser/browser_helpUrl.js
* browser/components/urlbar/tests/browser/browser_quickSuggest*
* browser/components/preferences/tests/browser_searchQuickSuggest.js
Depends on D122550
Differential Revision: https://phabricator.services.mozilla.com/D123032
This adds strings for the "Firefox Suggest" and "{ $engine } Suggestions"
labels.
I ran into a pop-in/flickering problem described in the bug due to the async
nature of the Fluent lookup. IMO it wasn't acceptable. The labels not only pop
in, they also change the height of the panel and push all the results below them
downward since they take up an entire row of horizontal space themselves. To
work around it, I added a whole system for caching strings so they can be used
synchronously. On a cache miss, we just fall back to the usual Fluent lookup
via `document.l10n.setAttributes`.
While I was working on this and making screen recordings to check the flicker, I
noticed some of our existing strings pop in too due to our use of
`document.l10n.setAttributes` when the view is open, like the "Search with
{$engine}" string in results and the "Switch to Tab" chiclet text. That existing
pop-in isn't nearly as noticeable as the Firefox Suggest label because it
doesn't disrupt the view as much. We could potentially use this caching system
for these other strings to reduce overall flicker.
The new strings/labels are tested by the existing browser_groupLabels.js.
Differential Revision: https://phabricator.services.mozilla.com/D122550
Compared to bug 1725214, this failure affects all desktop platforms. On Linux,
the annotation to only skip if the application is 64-bit gets removed because
the test suite always only runs for 64-bit.
The failures started after the changes in bug 1722911 made the tests
https-first compliant.
Differential Revision: https://phabricator.services.mozilla.com/D123369
This commit allows Android to use the login storage for HTTP auth by migrating
some common toolkit code to promptUsernameAndPassword and promptPassword which
use the login storage.
Differential Revision: https://phabricator.services.mozilla.com/D122508
Historically, only session delegates have been allowed in GeckoSessionTestRule
utilities like delegateUntilTestEnd or delegateDuringNextWait.
There's no reason it has to be that way though, and allowing runtime delegates
to use the same utilities removes a lot of boilerplate code that we don't need.
Differential Revision: https://phabricator.services.mozilla.com/D122507
Almost all delegates have getters except for these two. These are also helpful
when implementing delegateUntilTestEnd for runtime delegates.
Differential Revision: https://phabricator.services.mozilla.com/D122505
This change adds a new API that allows Gecko to dismiss a prompt automatically.
This will be used to dismiss prompts when they shouldn't be displayed anymore,
e.g. when using basic auth, we hide the prompt if the server rejects the login
information, as we know that the login info is not correct, so there's no point
in saving it.
We will also dismiss prompts automatically when they become stale, e.g. if a
permission prompt is raised and then the user navigates away.
To be able to dismiss a prompt we need to keep track of existing prompt
instances for a Session. We assign each prompt a unique, randomly generated,
UUID that is used to match the javascript prompt instance with the java
counterpart.
The prompts are stored in PromptHolder. Because the PromptController is owned
by the GeckoSession, whenever the session is GC'd we will also release the
prompts associated to it (if any).
Differential Revision: https://phabricator.services.mozilla.com/D122504
The sheet in here is added as an user agent sheet so it matches also
anonymous content.
It can cause some invariants we rely on for scrollbar caching to break.
In particular, we assert that the style we cache and the style we get
match, but this rule causes it to not match.
Make sure to reset transition to the initial value so that scrollbar
styles don't change. This shouldn't change behavior since
transition-duration is zero anyways, but should avoid the assertion
firing.
An alternative would be to use something like
`:not(:-moz-native-anonymous)` or such instead.
Differential Revision: https://phabricator.services.mozilla.com/D123319