I'm using a new dedicated bundle here so that we ensure that the bundle lines don't change and stay "breakable".
Otherwise the breakpoint wouldn't be hit on reload if the breakpoint become an empty line.
My goal here is to see what happens if the new bundle still hit the breakpoint even if the original source
was removed.
We might later revisit this behavior to remove this breakpoint.
It might be challenging to avoid hitting the breakpoint once on the first load.
It would require the server to know about sourcemap in order to ignore the breakpoint on early page load sequence.
Differential Revision: https://phabricator.services.mozilla.com/D138920
This helps stop doing a loose search and avoid bugs where
findSource("original.js") would match both original.js and replace-original.js.
I had to keep full URL support in order to match a source without any filename.
It might only be browser_markup_shadowdom_open_debugger.js and lots of sourcemap tests
using webpack:// URL and many source files with the same filename.
We could also have a distinct helper for these tests.
I tried to remove all cases where we were doing findSource(dbg, source.url)
and instead fo findSource(dbg, source).
Differential Revision: https://phabricator.services.mozilla.com/D138934
Since TRRService::MaybeSetPrivateURI() is the only case that can triggers a new confirmation when TRRService::ReadPrefs() is called, making ConfirmationContext::Handle() returns a boolean value should be enough for this case.
Differential Revision: https://phabricator.services.mozilla.com/D139107
So the issue here is that GTK's nsLookAndFeel doesn't know about the
effective value of the pref, and thus ends up potentially choosing the
wrong GTK theme (and thus choosing light system colors, but thinking
that we can paint the textfield background natively with GTK, which
would have a dark background, for example).
The right fix here is treating the pref as a stronger hint than the
ColorSchemePreference that we compute from DBUS for the same purpose.
This makes us follow the same code-path as if the system had specified
dark mode itself, fixing the contrast issue.
While at it, fix dynamic changes to this pref, which need to update
system colors.
Differential Revision: https://phabricator.services.mozilla.com/D139093
This is necessary to avoid erroneously displaying the infobar in situations such as bug 1691706 - all search engines should have a name, so if there is no name for the current engine, this is likely to be an error situation.
Differential Revision: https://phabricator.services.mozilla.com/D139200
The problem is that when the block button is keyboard selected, the input
becomes empty, and when the input is empty the controller does not allow tabbing
through results.
To fix this, I added another check so we allow tabbing when an element in the
view is already selected. This fix is more broad than it needs to be to fix this
bug, but I can't think of a case where we wouldn't want to allow tabbing when
the view already has a selection.
I added a test for the tab key and also the arrow keys while I was here.
Differential Revision: https://phabricator.services.mozilla.com/D139201
When the `focus` event listener of editors which is in the system group runs,
a preceding `focus` event listener may have already blurred the focused element,
but it may have not been applied to the DOM tree yet. In this case, checking
whether the editor still has focus or has already blurred without flushing the
pending things does not make sense. Therefore, this patch makes the `Focus`
do it first.
Note that this patch adds 3 crash tests, but only the `<textarea>` case crashes
without this patch. The others are only for detecting new regressions.
Differential Revision: https://phabricator.services.mozilla.com/D139089
de -> 51fa7772be1a25576ed8385063e5e96b1371c127
kk -> 36397805718512c6195fd8c31e021c6d5481e43d
pl -> f992dad0dacd48b7731cc8f12e8997b50a362a91
tg -> cb366e394549b6e46cde1994dc715e91d2462c85
vi -> c323741527d8e7727991d79ed2d3dbb6aa3db5d3
* Add support for local scale factors to a surface, allowing it to
be rasterized in root coordinate space. This allows snapping to
work across surfaces where the surface transform is a fractional
offset.
* Calculate scaling factors per rasterized surface and propagate
them. Ensures correct scale factor calculations when dealing with
nested preserve-3d contexts with 90-degree axis rotations.
* Support determining exact surface device rect for 2d surfaces
with fractional surface transforms.
* Fix line decoration cache key size calculations based on world
scaling factor.
* Remove `get_clipped_device_rect` usage for calculating clip-mask
surface allocations, use `surface.get_surface_rect` instead. The
prior method doesn't correctly account for expanded local regions
from the current dirty rect, resulting in invalidation issues in
some animated edge cases. Also unifies the way clip-mask surface
allocations work with the way general render target surface
allocations work.
Differential Revision: https://phabricator.services.mozilla.com/D138982
This patch introduces a number of subtle but important changes
to how we deal with off-screen surfaces. The overall goals are:
- Improve rendering correctness in a number of edge cases.
- Begin reducing complexity related to surfaces, scaling
factors, surface size adjustments and clipping.
- Improve CPU performance by removing some per-primitive work.
- Simplify implementation of future SVG and CSS filters by
having explicit support for picture rects + inflation regions.
- Lay the groundwork for caching child picture surfaces,
reduction of per-primitive work during visibility pass,
simplifying picture code.
Unfortunately, the nature of the changes make it impossible to
split up in to small isolated patches. Details below:
* Introduce `LocalRectKind` concept. This allows us to separate
out the bounding rect of the surface (a group of primitives
backed by a texture) from the bounding rect of the picture
compositing that surface (e.g. a drop-shadow which draws the
surface once at the local origin and once at a specific offset
+ blur-radius). This fixes a number of correctness bugs we have
related to culling, clipping, invalidation regions of complex
primitives such as drop-shadows and blur filters. Importantly,
it makes it simpler to implement (or fix) SVG filter chains,
backdrop-filter implementations.
* Establish raster roots for all off-screen surfaces. Every off-screen
surface uses the spatial node of the enclosing stacking context as
a coordinate system root, ensuring that each off-screen surface is
drawn in a 2D coordinate system, with appropriate scaling factors
applied to ensure high quality rendering. The primary goal is to make
it possible to correctly inflate and clip off-screen surfaces, removing
some correctness issues we currently have with complex filters interacting
with transforms. The initial work here doesn't reduce complexity a huge
amount, but will allow us to simplify large parts of the picture/surface
handling code in future, as well as simplify a number of shaders that
currently must handle arbitrarily complex transform matrices. This will
also allow us to simplify the implementation of features such as
mix-blend-mode and backdrop-filter, which rely on readback and UV mapping
from the parent surface.
* Remove concepts of `estimated` and `precise` local rects for pictures. This
is both a performance optimization and a code simplification. Instead, we
only determine the estimated local rect during bounding rect propagation,
and rely on the clipping regions from the tile dirty regions to reduce which
parts of the picture we allocate if drawing to an off-screen surface. This
removes some per-primitive work during the visibility pass, and also means
we can rely on the final picture bounding rect from the start of the visibility
pass. This also removes much of the complexity in `take_context` where we
previously determined surface scale factors and device pixel ratio - instead
these can be determined earlier during `propagate_bounding_rects`.
* Remove some complexity in `update_prim_visibility`. This is still recursive,
but follow up patches will aim to remove this recursion and integrate this
pass with the picture graph (similar to how `propagate_bounding_rects` works).
* Remove `PictureOptions` struct. Instead, store `inflate_if_required` with
the Blur filter enum, which is the only place that uses it.
* Remove `root_scaling_factor` from text runs - this is handled implicitly
by the surface device-pixel scale.
* Skip calling `update_clip_task` for pass-through pictures (since they have
no defined local rect).
* Improve scaling factors used for determining the render task cache size for
complex line decorations.
Differential Revision: https://phabricator.services.mozilla.com/D137569
If elements added to the doc were not visible, context-click on
the element would fail because composedTarget.ownerDocument is null.
Differential Revision: https://phabricator.services.mozilla.com/D138190