- Made asyncPromptAuth fully async.
- Removed auth prompt queuing from LoginManagerAuthPrompter asyncPromptAuth implementation.
- If there are multiple auth prompts with the same target in a tab, consolidate them.
- Removed unused method asyncPromptAuthBC.
- Fixed an issue with PromptTestUtils#waitForPrompt where it didn't always return
the correct prompt.
- Added test for multi tab auth prompts.
Differential Revision: https://phabricator.services.mozilla.com/D102306
- Made asyncPromptAuth fully async.
- Removed auth prompt queuing from LoginManagerAuthPrompter asyncPromptAuth implementation.
- If there are multiple auth prompts with the same target in a tab, consolidate them.
- Removed unused method asyncPromptAuthBC.
- Fixed an issue with PromptTestUtils#waitForPrompt where it didn't always return
the correct prompt.
- Added test for multi tab auth prompts.
Differential Revision: https://phabricator.services.mozilla.com/D102306
The harmless looking regex
```
uri.matches("(http|blob).*")
```
has a flaw: it will not accept URLs that contain a new line character. In that
case GeckoWebExecutor errors out with "Unsupported URI scheme." when in reality
that's not the problem at all.
Since it has caused a bunch of headaches to the frontend already, let's just
replace that regex with a plain `startsWith` which should work in all cases.
Differential Revision: https://phabricator.services.mozilla.com/D102943
- Made asyncPromptAuth fully async.
- Removed auth prompt queuing from LoginManagerAuthPrompter asyncPromptAuth implementation.
- If there are multiple auth prompts with the same target in a tab, consolidate them.
- Removed unused method asyncPromptAuthBC.
- Fixed an issue with PromptTestUtils#waitForPrompt where it didn't always return
the correct prompt.
- Added test for multi tab auth prompts.
Differential Revision: https://phabricator.services.mozilla.com/D102306
This patch makes the aName in the GeckoViewNavigation.openURIInFrame() to
be set properly to the new opened window when calling window.open() with
'noopener'.
Differential Revision: https://phabricator.services.mozilla.com/D102240
Implement manifest v3 CSP that is compatible with the current chrome implementation.
Support for content_security_policy.isolated_world (a.k.a. content_security_policy.content_scripts)
has been removed for consistency with
345390adf6%5E%21/
Differential Revision: https://phabricator.services.mozilla.com/D100573
As is the case with GTK, Android provides an OS override to display times in
AM/PM or 24 hour format. This moves the code for rewriting skeletons from the
GTK specific code to OSPreferences, and calls it from the Android OSPreferences
implementation.
This was tested manually by visiting the file:/// uri. I don't believe this is
feasible to test from automation, as it would require changing Android OS settings
from within our test code.
Differential Revision: https://phabricator.services.mozilla.com/D101641
One thing I've noticed before going on break last year is that a lot of the
times we don't close out promises when an error occurs. Our code normally does
something like:
```
delegatePromise.then(response -> {
// manipulate response
callback.resolve(manipulatedResponse);
})
```
where `delegatePromise` is the `GeckoResult` from a delegate. The problem here
is that if the `delegatePromise` is rejected, the above never rejects the
callback.
A month ago we introduced `callback.resolveTo(result)` which obviates this
problem a little bit (it will rejects the callback if the result is rejected)
but it's still a little hard to use because you need to then the result to the
right value.
`result.map` sort of closes this gap a little bit and now you can write
something like this:
```
callback.resolveTo(delegatePromise.map(value -> {
// manipulate value to match the response
return manipulatedValue;
});
```
Which is the recommended way to resolve callbacks in GV
Another problem with callback.reject is that we pretty much only support strings but it's not made really clear (some existing code in GV returns an exception there, which doesn't work). resolveTo will take care of that by using the message of the exception passed in
Differential Revision: https://phabricator.services.mozilla.com/D101093
There is only one place where it's used:
config/check_vanilla_allocations.py, which is only executed from
js/src/build/Makefile.in on the condition that the build is targeting
Linux and not LTO. But the LTO test is actually outdated, because we
don't build with `-flto`, but `-flto=thin`, so the exclusion doesn't
work anymore.
There is however no AC_CHECK_PROG, and we currently rely on NM to be
given, or fall back to "nm", which works in most cases, except LTO with
clang. It works on CI because in LTO builds we explicitly set NM to
llvm-nm (which can output symbols from LLVM bitcode objects), but we
could also do that automatically.
So we add a full detection of nm/llvm-nm to python configure, and limit
it to Linux, since we only ever use it there.
Differential Revision: https://phabricator.services.mozilla.com/D101681