To enable the Open In Sidebar action, we were retrieving the
actor id of the root node of an object inspector.
But in the case of error, we don't use the object inspector
to render them, only the reps.
We still have a reference to the actor id though, so when
there's no object inspector, but that we have an actor id
ref, we enable the action.
A test case is added in a mochitest to ensure this works as
expected for an error object, and that we can observe custom
properties that are not displayed in the error rep.
This also reveiled an issue with React keys in the Error rep,
which we fix in this patch.
Differential Revision: https://phabricator.services.mozilla.com/D73301
Unify two separate codepaths that do conceptually identical things. That is,
instead of having the widget code directly dispatch wheel and pinch gesture
events to Gecko, allow APZ to do it as part of it's handling of pinch inputs
when zooming is disabled.
The main difference is that the WidgetSimpleGestureEvent delta values come out
different, because they are based on the macOS event's magnification value,
rather than the (now deprecated) deltaZ value. This is actually better since it
makes the values consistent across platforms and allows removal of some ifdefs.
Differential Revision: https://phabricator.services.mozilla.com/D74640
In the Browser toolbox destroy function, we now wait for
any pending connection initialization promise.
In the test we close the browser toolbox at the end.
We also need to guard a few method in the connection proxy
to ensure the instances we use are still alive before using
them.
Differential Revision: https://phabricator.services.mozilla.com/D71171
The user-observed behaviour should be unchanged, but for testing purposes
this produces more consistent results between WR and non-WR. It also seems
conceptually more correct so I think it's worth doing.
Depends on D74789
Differential Revision: https://phabricator.services.mozilla.com/D74790
Now that branchValueIsNurseryCell is as efficient as branchValueIsNurseryObject
we no longer need branchValueIsNurseryObject.
Depends on D74649
Differential Revision: https://phabricator.services.mozilla.com/D74650
It's more efficient now to check for all GC things with a single branch instead of
checking for object/string/BigInt separately. This generates more compact code with
fewer branches and is also more maintainable.
Depends on D74648
Differential Revision: https://phabricator.services.mozilla.com/D74649
If a label contains a dynamic string that's too long (512 characters or more), instead of just replacing it with "(too long)", we now cut it down to the maximum size, with an ellipsis at the end.
Added test for that in gtest. Also added nearby test for empty strings.
Differential Revision: https://phabricator.services.mozilla.com/D74378
On some pages, primitives other than rectangles may have their
clip rect affected by the display port, which was causing incorrect
invalidations and extra rasterization work.
Remove clip_by_tile check, and clamp clip rect to tile boundaries
for all primitive types. Also switch to a more efficient min/max
representation of the clip rect for primitive dependencies.
Differential Revision: https://phabricator.services.mozilla.com/D74582
Reverts part of a change from bug 1632705 to allow close buttons
to be shown in Win7 under certain themes with WR enabled.
If it turns out that we need to support the clear rect + rounded
clip case, that can be implemented as a follow up - this is an
improvement for now though.
Differential Revision: https://phabricator.services.mozilla.com/D74752
This patch removes some old code for non-restartless addons. When the code was
written, it was still possible to call `cancel()` on an addon after the addon
was installed and before it had persisted in the database.
This case is not possible anymore, and calling `cancel()` on a
`STATE_INSTALLED` install object doesn't actually do much (but makes the
calling code think it actually canceled successfully, since it doesn't throw).
After this patch, calling `cancel()` on a `STATE_INSTALLED` install will throw
an exception.
There is one spot where we still keep around the install object because we
don't call `_cleanup()`, i.e. when installing an already present disabled
addon. For this case, we can just call `_cleanup()` at the end of the
enablement process.
There are quite a few tests that exploit calling `cancel()` to mean
`uninstall()`, for those actually calling `uninstall()` works fine.
This fixes a GeckoView bug where calling `cancel()` doesn't throw (so GV thinks
the cancellation went through successfully) but then we receive an addon object
from the successfull installation.
Differential Revision: https://phabricator.services.mozilla.com/D74305
By returning false (or not adding results to `context.results`), the muxer
signals that it needs more results in order to decide how to sort them and to
sort them without flickering. After the providers manager calls each provider's
`startQuery`, it removes the provider from `context.activeProviders` and calls
`_notifyResultsFromProvider` one more time so that the muxer can resort if
necessary given the new `context.activeProviders`.
We can also be a little faster and more efficient by making only two passes over
the results, and by keeping a `context.heuristicResult` property that's updated
by the providers manager.
This also fixes a bug with the search suggestions provider, where it didn't
include a suggestion that matched the user's search string even if the heuristic
result was not a search result (e.g., if it's an autofill). That deduping logic
should be done in the muxer.
Finally this removes browser_restyleSearches.js since the muxer changes removed
part of the restyling functionality. I'll file a follow-up to remove other parts
of restyling.
Differential Revision: https://phabricator.services.mozilla.com/D74192
If a mouse is over a remote target A, and then moves to remote target B,
we'd deliver the event directly to remote target B after the moving, A would
never get notified that the mouse left. And A would synthesizes mousemove event
on an incorrect point which then generates an unexpected mouseleave.
Differential Revision: https://phabricator.services.mozilla.com/D67408