The build always uses them anyways, but configure tests don't, and some
of them fail as a consequence in some cases (example: when UBsan is
enabled, all AC_LANG_CPLUSPLUS + AC_CHECK_FUNCS tests fail). We also had
similar problems in the past, such as bug 1513605.
By adding the PIC flags to CFLAGS and CXXFLAGS, we ensure old-configure
tests use the flags as well.
While here, we also remove DSO_CFLAGS, which was always empty, and we
stop passing -fPIC to wasm compiles, because it has no effect there.
Differential Revision: https://phabricator.services.mozilla.com/D108560
In the case of FramePointerStackwalk, the caller gives a pointer to the
top-most frame to walk from. There isn't really a reason to give a
number of frames to skip, as the right frame pointer could be given in
the first place if that was really necessary. And in practice, it's
hasn't been used so far.
In the case of MozStackWalkThread, the caller presumably doesn't know
what the thread the stack is being walked for is doing, and it would be
a guesswork to pass a valid number of frames to skip. In practice, it's
also not used.
The aSkipFrames is already a footgun on MozStackWalk (and we're going to
change that in bug 1515229), we don't need to keep a footgun on these
other stack walking methods.
Differential Revision: https://phabricator.services.mozilla.com/D108563
This patch doesn't change behavior; GetCrossDocParentFrameInProcess() is just a
wrapper for GetCrossDocParentFrame(), which is what we were calling before.
The "InProcess" version of this API (which we're migrating to in this patch) is
used to annotate GetCrossDocParentFrame() callsites that have been vetted as
being OK with the fact that this API returns null at the boundary of a
cross-origin iframe, if fission is enabled.
In this patch, the two calls that I'm migrating are inside of
EndSwapDocShellsForViews, which gets called when a tab is dragged between
windows. I'm annotating these two calls as OK, because:
- the first call is about maintaining the NS_FRAME_IN_POPUP state, which is
used for things like the menulist-dropdown popup. This bit doesn't need to
be propagated across process boundaries.
- the second call is about propagating a "needs-paint" notification up to
ancestor documents. I think we already handle paint invalidation for
cross-process iframes properly, independent of the explicit invalidation that
we're doing here.
Differential Revision: https://phabricator.services.mozilla.com/D108704
This patch doesn't change behavior; GetCrossDocParentFrameInProcess() is just a
wrapper for GetCrossDocParentFrame(), which is what we were calling before.
The "InProcess" version of this API (which we're migrating to in this patch) is
used to annotate GetCrossDocParentFrame() callsites that have been vetted as
being OK with the fact that this API returns null at the boundary of a
cross-origin iframe, if fission is enabled.
In this patch, the one call that I'm migrating is inside of XUL code
(specifically for the rendering of XUL trees); and we only expect to be
rendering XUL in a single process: Firefox's parent process. So this code
should be entirely OK with the fact that this API doesn't cross process
boundaries.
Differential Revision: https://phabricator.services.mozilla.com/D108708
The matching logic can be simplified since we want exact matches and not prefix
matches. There's no need to confirm that the query string is in a candidate
result's list of keywords because by its nature the process of looking up the
query in the tree confirms that the query is equal to some keyword. If the
lookup finds a result, then necessarily the query matches a keyword.
I changed lookup from recursive to iterative. It might be a little faster and
it's not really harder to understand.
I also moved the full keyword computation out of the keyword tree and into
UrlbarQuickSuggest. It was a little hacky how KeywordTree accessed
`UrlbarQuickSuggest._results` during its lookup, and it forced the test to have
to set up `UrlbarQuickSuggest._results`. And big picture, it's not the keyword
tree's job to compute the full keyword/suggestion.
While working on all of this, `test_flatten` started failing when it calls
`basicChecks` because the flattened tree wasn't correct, so I rewrote and
simplified the flatten routine. It's no longer necessary for `RESULT_KEY` to be
in a map all by itself. Instead, it's treated like an ordinary char in the
context of flattening, so now it's more like a sentinel or suffix than a key.
Finally, I removed the "test1" and "test2" data in the test because I added them
when I thought they tested bug 1697678, but they don't actually. I don't think
they're testing anything useful.
Depends on D108683
Differential Revision: https://phabricator.services.mozilla.com/D108564
The root cause of this bug is that we're now accidentally using the
native theme for the spinners because GetNumberControlFrameForSpinButton
broke with my changes.
These pseudos are not exposed to content, and there's just one user of
this pseudo-class (the print.css one).
So just disable native appearance explicitly and remove that check.
Differential Revision: https://phabricator.services.mozilla.com/D108653
Careless of me to not have tested this more thoroughly. I guess this is hidpi
only because automation has aScale = 1.0, which is why automation didn't catch
this? That's sad :(
Differential Revision: https://phabricator.services.mozilla.com/D108696
The method unexpectedly assert when the given range is in native anonymous
subtree and the range is disconnected from the subtree.
This is caused by that `RangeUtils::ComputeRootNode()` returns parent element
of the native anonymous subtree root when the range is connected. However,
otherwise, it returns the subtree root which is a content node.
Therefore, they are what we should check when updating a range is,
* Given range boundaries are in same subtree at least.
* Given range's computed root node should be same as given root node except
when the range is in a native anonymous subtree and disconnected from the
subtree.
This change fixes the following new permanent oranges caused by the previous
patch:
* browser/components/places/tests/browser/browser_sidebarpanels_click.js
* browser/base/content/test/keyboard/browser_toolbarKeyNav.js
* devtools/client/inspector/test/browser_inspector_breadcrumbs_visibility.js
* layout/base/tests/marionette/test_accessiblecaret_cursor_mode.py
Differential Revision: https://phabricator.services.mozilla.com/D108399
With this change, at least in `CharacterDataChanged` and `ContentRemoved`
causes hitting this assertion:
```
MOZ_ASSERT(aStartBoundary.Container()->IsInclusiveDescendantOf(aRootNode));
```
The reason is, they call it with `mRoot`, but the range has already been
disconnected from `mRoot`. The following patch fixes this.
Differential Revision: https://phabricator.services.mozilla.com/D108398
According to the source code of Chromium, we should throw exceptions from
them only when the document is not for HTML nor XHTML. For the other reasons,
we should not throw any exceptions even if it's unknown command.
Differential Revision: https://phabricator.services.mozilla.com/D108573
On low powered android devices it has been observed that we are GPU
bound on many pages. The composite shader, despite being relatively
simple, can account for a large proportion of these cycles due to the
large number of fragments it touches.
On Mali-T GPUs, the composite fragment shader is bound by loading the
varyings (for example, this takes 3 cycles on a Mali-T830). This patch
adds a fast path variant of the shader which removes the vColor and
vUVBounds varyings, reducing the number of cycles per fragment to 1 on
this GPU. This variant can only be used where the shader does not need
to modulate the output by a color (ie aColor is white), and when the
UV coordinates do not need to be clamped (eg because the entire
texture is being composited). Fortunately both of these conditions are
true in the common case of compositing picture cache tiles.
Differential Revision: https://phabricator.services.mozilla.com/D108686
Currently, printf_stderr doesn't show up when running with ./mach run.
This is because we run with -attach-console and that redirects stderr
to a different file descriptor using freopen in UseParentConsole.
The change from just using stderr directly happened in bug 340443 and was done
to avoid some linking issues. That problem doesn't seem to apply anymore so you'd
expect we'd be able to go back to the straightforward implemention that works even
if stderr has been redirected. Unfortunately, Windows takes not buffering
stderr very seriously and fprintf will write out the results character
by character. This can cause log output lines to be intermixed which
breaks log parsing in CI. We keep using fdopen to create a new FILE*
that's buffered but instead of hard coding fd 2, we get the actual fd
that corresponds to stderr using fileno.
The mozglue implementation was cargo culted from xpcom, so we update it
as well.
Differential Revision: https://phabricator.services.mozilla.com/D98550
When Sentry slurps context, it doesn't normalize os path separators for
us. So, we adapt our path aliasing to always catch both forward slashes
and backslashes.
Removed the `needle is None` guard because it because obsolete after
1695366, which removed the case where `topsrcdir` was `None`.
Differential Revision: https://phabricator.services.mozilla.com/D108667
The reason why this doesn't work is because these styles come from
datetimebox.css, which is really an author style.
We could special-case these elements, but the approach that the CSSWG resolved
on for the new forced-colors spec is to respect system colors specified by
authors, see:
https://drafts.csswg.org/css-color-adjust-1/#forced-colors-properties
So this moves us towards that, and fixes the issue nicely.
Differential Revision: https://phabricator.services.mozilla.com/D108321
Simplify code and improve performance by adding
lazy getters for checks that will be constant
for the whole lifetime of the application process.
Differential Revision: https://phabricator.services.mozilla.com/D107645
If there is no active WebDriver session the code
related to deleting a session, and resetting other
state should not be run again.
This could actually happen when the
"Marionette:Quit" command is called, which itself
destroys the session, and the follwing socket
connection drop tries to run it again.
Differential Revision: https://phabricator.services.mozilla.com/D108169
This patch creates a new module for the WebDriver session
specific implementation. It no longer requires session data
like capabilities to be directly bound to the GeckoDriver class.
Differential Revision: https://phabricator.services.mozilla.com/D107552
This parsing is hidden behind the pref layout.css.page-size.enabled.
It isn't ideal that we parse this as a property, but we can't treat it as a
descriptor because of compatibility issues with other browsers. There are also
outstanding spec issues related to how descriptors like page-size are cascaded,
and whether the !important specifier is valid or not.
Differential Revision: https://phabricator.services.mozilla.com/D103958
To know the valid rules for each property, we need to put this information
into the Servo prop list and add an appropriate getter to Longhand/Shorthand.
Differential Revision: https://phabricator.services.mozilla.com/D105825
These tasks all vary in their 'fission-run-on-projects'. So while this looks
like more complexity in isolation, it will greatly simplify the configs (and
the diff) later on in the stack.
Differential Revision: https://phabricator.services.mozilla.com/D108681
pip-tools 6.0.0 breaks due to a missing importlib-metadata in <py38, plus it removes --index and --no-index from pip-compile. Let's pin our pip-tools version to avoid future bustage like this.
Differential Revision: https://phabricator.services.mozilla.com/D108485