Commit Graph
151 Commits
Author SHA1 Message Date
Alex Jakobi 1328bd57c1 Bug 1733509 - Use TryInferEnclosingResolution for event retargeting. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D205378
2024-04-17 18:47:01 +00:00
Sandor Molnar aca279e8f8 Backed out changeset 6affdb4f3016 (bug 1733509) for causing gv-junit crashes @ TryInferEnclosingResolution CLOSED TREE 2024-04-16 03:37:01 +03:00
Alex Jakobi b176ebfb29 Bug 1733509 - Use TryInferEnclosingResolution for event retargeting. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D205378
2024-04-15 22:59:32 +00:00
Artur Iunusov 69470f6b4e Bug 1770944 - Remove nsGkAtoms::mozbrowser. r=smaug
Depends on D175898

Differential Revision: https://phabricator.services.mozilla.com/D183229
2024-03-07 13:04:22 +00:00
Narcis Beleuzu 197b39f007 Backed out 16 changesets (bug 1770944) as req by asuth.
Backed out changeset 61af32f40777 (bug 1770944)
Backed out changeset 4ff0c45db93b (bug 1770944)
Backed out changeset 8a217eff7bcd (bug 1770944)
Backed out changeset 6435f48c96bf (bug 1770944)
Backed out changeset 0d2432765ca0 (bug 1770944)
Backed out changeset 58e02566db85 (bug 1770944)
Backed out changeset 0a8c4c2460ee (bug 1770944)
Backed out changeset 9416bafd9982 (bug 1770944)
Backed out changeset 79de4f83fe2e (bug 1770944)
Backed out changeset 63ac518aceb0 (bug 1770944)
Backed out changeset 14952f872b77 (bug 1770944)
Backed out changeset f65e0967ad75 (bug 1770944)
Backed out changeset bd53c42038f7 (bug 1770944)
Backed out changeset 36c378ba8212 (bug 1770944)
Backed out changeset 9ba54ab06348 (bug 1770944)
Backed out changeset fb5a54b3cbe9 (bug 1770944)
2024-02-23 21:11:08 +02:00
Artur Iunusov c37653d8b7 Bug 1770944 - Remove nsGkAtoms::mozbrowser. r=smaug
Depends on D175898

Differential Revision: https://phabricator.services.mozilla.com/D183229
2024-02-22 10:13:14 +00:00
Sandor Molnar 6699491437 Backed out 16 changesets (bug 1770944) for causing asan failures @ dom/base/InProcessBrowserChildMessageManager.cpp
Backed out changeset b73885731e73 (bug 1770944)
Backed out changeset 23d0dc98eb51 (bug 1770944)
Backed out changeset 15661e24d8e1 (bug 1770944)
Backed out changeset 97aa839dc200 (bug 1770944)
Backed out changeset 0d4318bf3239 (bug 1770944)
Backed out changeset be28bb62e9f3 (bug 1770944)
Backed out changeset 708b2671410e (bug 1770944)
Backed out changeset 0a138f3b56b9 (bug 1770944)
Backed out changeset 3a149ef794c2 (bug 1770944)
Backed out changeset 4b6ae7dd0e69 (bug 1770944)
Backed out changeset e3960ad85182 (bug 1770944)
Backed out changeset 9ea253525227 (bug 1770944)
Backed out changeset 1828b66c2f7c (bug 1770944)
Backed out changeset 55b0886f9025 (bug 1770944)
Backed out changeset a4197071d10a (bug 1770944)
Backed out changeset 9b18524f541e (bug 1770944)
2024-02-20 20:34:55 +02:00
Artur Iunusov a79d7549bc Bug 1770944 - Remove nsGkAtoms::mozbrowser. r=smaug
Depends on D175898

Differential Revision: https://phabricator.services.mozilla.com/D183229
2024-02-20 16:53:23 +00:00
Emilio Cobos Álvarez 529c9ee321 Bug 1839922 - Remove usage of {Has,Get}Attr(kNameSpaceID_None, ..). r=edgar
We have more readable and faster versions (that just omit the namespace
arg).

Mostly done via sed, with a couple helpers to use the faster lookups
where possible.

Differential Revision: https://phabricator.services.mozilla.com/D181795
2023-06-23 10:01:32 +00:00
Makoto Kato fca0649181 Bug 1683747 - Don't use retarget when target is in <textarea>. r=botond,emilio
When using apz-retarget, hit test area is expanded. So if this area includes
previous line in <textarea>, we will select previous line. But when hit test
area is empty area of <textarea>, we should set caret to last character.

So I think that we should be disable apz-retarget if target is in <textarea>.

Differential Revision: https://phabricator.services.mozilla.com/D107441
2023-05-30 04:46:56 +00:00
Emilio Cobos Álvarez 1c58e2a928 Bug 1773070 - Unify Gecko and Servo EventState/ElementState bits. r=smaug
Add a dom/base/rust crate called just "dom" where we can share these.

Most of the changes are automatic:

  s/mozilla::EventStates/mozilla::dom::ElementState/
  s/EventStates/ElementState/
  s/NS_EVENT_STATE_/ElementState::/
  s/NS_DOCUMENT_STATE_/DocumentState::/

And so on. This requires a new cbindgen version to avoid ugly casts for
large shifts.

Differential Revision: https://phabricator.services.mozilla.com/D148537
2022-06-07 23:09:52 +00:00
Emilio Cobos Álvarez e4291f8aba Bug 1761493 - Make Gecko internally consistent wrt what a link is. r=smaug
This is mostly edge-casey, but see bug 1757156 for an example where it's
causing some issues (granted, they could use `href="#"` or something
instead of an empty href).

It feels weird if a link looks like a link (because the CSS definition
of a link matches, which is "has an href") but then mostly doesn't
behave as a link.

We can't navigate anywhere if we don't have a valid URI but maybe JS
handles the relevant events as in bug 1757156.

Use the CSS definition (has href) since that's interoperable across
browsers. This should also make some stuff much faster (since checking
'is link' is now just a bit check instead of a virtual call).

(Awaiting try results, if no tests need adjustments then I need to write
some)

Differential Revision: https://phabricator.services.mozilla.com/D142107
2022-03-30 17:34:31 +00:00
Emilio Cobos Álvarez 3fad129a52 Bug 1733384 - Make inert not modify the computed style. r=sefeng,layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D127422
2021-10-07 17:00:36 +00:00
Butkovits Atila 64999a3215 Backed out 4 changesets (bug 1733384) for causing failures at browser_windowPrompt.js. CLOSED TREE
Backed out changeset fa609fadac26 (bug 1733384)
Backed out changeset dd1936d9fe17 (bug 1733384)
Backed out changeset 1a073e40ab1a (bug 1733384)
Backed out changeset 65708a4c708f (bug 1733384)
2021-10-07 17:52:51 +03:00
Emilio Cobos Álvarez 671a086845 Bug 1733384 - Make inert not modify the computed style. r=sefeng,layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D127422
2021-10-07 11:47:34 +00:00
Botond Ballo e8d07db92c Bug 1704062 - Fix include-what-you-use error in PositionedEventTargeting.cpp. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D116061
2021-05-27 04:32:10 +00:00
Edgar Chen 49c76bf979 Bug 1688105 - Part 2: Get rid of dom.w3c_pointer_events.enabled; r=smaug
Depends on D102668

Differential Revision: https://phabricator.services.mozilla.com/D102669
2021-01-25 16:22:44 +00:00
Kartikaya Gupta 90ea1bb5fe Bug 1686002 - Don't retarget touches if they land inside a clickable element. r=botond
Touches that land on a descendant of a clickable element should
not get retargeted to other nearby elements because the descendant
itself can react to those touch events.

Differential Revision: https://phabricator.services.mozilla.com/D102827
2021-01-23 06:00:21 +00:00
Simon Giesecke 46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Kartikaya Gupta 9ba6995eac Bug 1668870 - Ignore touch listeners in the system group for event retargeting. r=smaug
The audio/video controls element has touch listeners on the scrubber, which
steals events when we don't want it to. So let's ignore those listeners.

Ignoring system group listeners for the purposes of event retargeting seems
reasonable in the general case, because those listeners are coming from the
browser itself. If we're relying on the event retargeting to make those browser
elements easy to hit, then we should not be doing that and instead just make
them bigger.

Test coverage for this change is provided by the android-components tests that
failed in bug 1668112. The next patch re-enables touch event retargeting and
exercises this code in the context of those tests.

Depends on D92436

Differential Revision: https://phabricator.services.mozilla.com/D92437
2020-10-06 18:03:25 +00:00
Kartikaya Gupta caff9015a6 Bug 1666792 - Don't allow events to get retargeted outside the nearest z-index container. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D92157
2020-10-02 18:08:12 +00:00
Emilio Cobos Álvarez 96d2c59b95 Bug 1668156 - Make PositionedEventTargeting code not violate TransformRectToAncestor invariants. r=kats
And enable the assertion for the same-document case.

Without this patch, the assertion would fire in tests like
gfx/layers/apz/test/mochitest/test_group_zoom.html, where stuff like
MaybeHandleEventWithAccessibleCaret, which passes a non-root-frame down
here, and a target, which ends up violating the preconditions of
ClipToFrame, etc.

Enable the assertion for the same-document case, there are other
violations when fission is enabled in the cross-document case.

Differential Revision: https://phabricator.services.mozilla.com/D91966
2020-09-30 17:20:21 +00:00
Kartikaya Gupta 997b354950 Bug 1667656 - Replace AppendToString of nsRegion with ostream usage. r=mattwoodrow
Apparently a bunch of Stringify(nsRect) sites were getting converted to
Stringify(nsRegion(nsRect)) due to the the nsRegion implicit constructor, so
this updates those too.

Depends on D91524

Differential Revision: https://phabricator.services.mozilla.com/D91525
2020-09-28 01:14:00 +00:00
Kartikaya Gupta 79a7cd4e62 Bug 1667176 - Use ostream operator instead of AppendToString for nsPoint. r=mattwoodrow
Depends on D91338

Differential Revision: https://phabricator.services.mozilla.com/D91339
2020-09-25 08:57:24 +00:00
Kartikaya Gupta 996a33b90d Bug 1637908 - Introduce a touchable heuristic and use it for retargeting touch events. r=snorp
The existing heuristics in GetClickableAncestor have evolved over time to be
quite specific to mouse/click events, because those are the ones that we have
enabled by default. The heuristics we want for touch events are different and
should generally be very conservative, because we almost never want to retarget
the raw touch events. This patch introduces a new GetTouchableAncestor
function that implements this new conservative heuristic function and uses it
for determining the retargeting destination for touch events.

Differential Revision: https://phabricator.services.mozilla.com/D91027
2020-09-22 20:40:06 +00:00
Kartikaya Gupta 8283eeec29 Bug 1637908 - Minor cleanup. r=snorp
Depends on D91025

Differential Revision: https://phabricator.services.mozilla.com/D91026
2020-09-22 20:42:52 +00:00
Kartikaya Gupta e3b79a9c34 Bug 1637908 - Move the clickableAncestor computation further down. r=snorp
There's a few early-return conditions where we don't need to do this computation
at all. So this patch just moves the computation to after the early-returns. No
functional changes intended.

Differential Revision: https://phabricator.services.mozilla.com/D91025
2020-09-22 20:43:02 +00:00
lonocvb 4b3b2dc064 Bug 1662655 - Elements with pointer event are considered clickable. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D89236
2020-09-03 08:03:32 +00:00
Nicholas Nethercote b36ad5fb29 Bug 1572508 - Convert ui.touch.* and ui.mouse.* VarCache prefs to static prefs. r=KrisWright,kats,geckoview-reviewers,agi.
This is a weird conversion because the existing VarCache mirror prefs are in a
two static structs, one for touch prefs and one for the equivalent mouse prefs,
and we dynamically select the appropriate struct in `GetPrefsFor()`.

(But note that `ui.mouse.radius.reposition` and
`ui.mouse.radius.inputSource.touchOnly` do not have corresponding `touch`
prefs! For touch events they are always considered to be false.)

The commit make the following changes.
- It makes the prefs into static prefs.
- It moves the code in `GetPrefsFor()` into a constructor for
  `EventRadiusPrefs`, and copies the pref values into a temporary object of
  that type. Those copied values are then used by the subsequent code.
- It removes the two static `EventRadiusPrefs` structs.
- It renames some fields in `EventRadiusPrefs` to make them more closely match
  the pref names.

Differential Revision: https://phabricator.services.mozilla.com/D79405
2020-06-15 06:23:48 +00:00
Botond Ballo 4e0a9be574 Bug 1638594 - Log the viewport type in FindFrameTargetedByInputEvent(). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D79588
2020-06-13 03:12:19 +00:00
Botond Ballo df4f0fd392 Bug 1637135 - Don't assume visual coordinates in event retargeting helpers. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D76996
2020-05-27 06:54:35 +00:00
Sylvestre Ledru f3c69f480a Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D73347
2020-05-09 14:51:53 +00:00
Botond Ballo 6748fc1cb3 Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-05-05 15:24:12 +00:00
Botond Ballo 9703b5367d Bug 1556556 - Miscellaneous fixes related to event coordinate transformations. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D69639
2020-05-05 19:28:15 +00:00
Botond Ballo 320621dab4 Bug 1556556 - Perform app unit to milimetre conversion correctly in PositionedEventTargeting. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D68922
2020-05-05 19:27:52 +00:00
Botond Ballo b3354ab1ca Bug 1556556 - Use FrameForPointOption::IsRelativeToLayoutViewport when passing layout-relative coordinates to GetFrameForPoint(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D71455
2020-05-05 19:26:50 +00:00
Botond Ballo 731c9522be Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-05-05 19:26:38 +00:00
Kartikaya Gupta 0efcb452cb Bug 1632941 - Treat elements with cursor:pointer CSS as event fluffing targets. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D73068
2020-04-29 15:56:08 +00:00
Csoregi Natalia bdf8849001 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo 953fb069fa Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-04-28 01:44:43 +00:00
Botond Ballo 6ae11be824 Bug 1556556 - Miscellaneous fixes related to event coordinate transformations. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D69639
2020-04-28 01:42:26 +00:00
Botond Ballo aa8df6bb99 Bug 1556556 - Perform app unit to milimetre conversion correctly in PositionedEventTargeting. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D68922
2020-04-28 01:42:19 +00:00
Botond Ballo 301662f2df Bug 1556556 - Use FrameForPointOption::IsRelativeToLayoutViewport when passing layout-relative coordinates to GetFrameForPoint(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D71455
2020-04-28 01:40:52 +00:00
Botond Ballo 69b3b241f8 Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-04-28 01:40:35 +00:00
Sylvestre Ledru 3ce73036e5 Bug 1519636 - Reformat recent changes to the Google coding style r=jgilbert
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D67574
2020-04-05 13:34:58 +00:00
Kartikaya Gupta 046d1d1888 Bug 1233272 - Suppress event retargeting for mouse events generated via longpress. r=snorp
Instead of just special-casing the eContextMenu and eMouseLongTap events in
PositionedEventTargeting, this adds a mechanism to suppress retargeting for
any events dispatched from a particular code block. This allows us to also
suppress retargeting the mousemove that precedes the eContextMenu, while still
retargeting any other mousemove events (e.g. the one that precedes a click).
Doing this is important because if the mousemove is retargeted, it can trigger
the hover pseudoclass CSS on an element when that element is not actually
going to be activated at all, and can be confusing to the user.

Depends on D65211

Differential Revision: https://phabricator.services.mozilla.com/D65212
2020-03-04 20:24:55 +00:00
Kartikaya Gupta 09a9f04058 Bug 1233272 - Modernize log statement. r=snorp
Differential Revision: https://phabricator.services.mozilla.com/D65211
2020-03-04 20:24:57 +00:00
Kartikaya Gupta 05a5e7c187 Bug 1618545 - Delete obsolete/unused code relating to Fennec's experimental ui.zoomedview feature. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D65022
2020-03-03 15:27:50 +00:00
Mihai Alexandru Michis ed20a79a78 Backed out changeset 469d7894f720 (bug 1618545) for causing bustages in src/layout/base/PositionedEventTargeting.cpp
CLOSED TREE
2020-03-03 14:52:13 +02:00
Kartikaya Gupta 904e843df9 Bug 1618545 - Delete obsolete/unused code relating to Fennec's experimental ui.zoomedview feature. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D65022
2020-03-02 21:53:50 +00:00