It's nearly impossible to close browser app tabs with edge gestures enabled

RESOLVED FIXED in 1.3 Sprint 6 - 12/6

Status

defect
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: etienne, Assigned: vingtetun)

Tracking

unspecified
1.3 Sprint 6 - 12/6
All
Gonk (Firefox OS)
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

Looks like the sendTouchEvent/sendMouseEvent API doesn't work well for in-procress apps.
Vivien do you have a patch I can try?
Flags: needinfo?(21)
Is this critical enough to block the edge gestures feature? If so, please nominate for 1.3?
(In reply to Etienne Segonzac (:etienne) from comment #1)
> Vivien do you have a patch I can try?

I think https://bug802237.bugzilla.mozilla.org/attachment.cgi?id=672864 should help.
Flags: needinfo?(21)
Summary: It's nearly impossible to close browswer app tabs with edge gestures enabled → It's nearly impossible to close browser app tabs with edge gestures enabled
Here's a rebased version of the patch, looks like it works very nicely!
Confirmed that the patch works!
I'll let you take it from here Vivien :)
Assignee: nobody → 21
Posted patch bug940420 (obsolete) — Splinter Review
Smaug, let me now if you're not the correct reviewer for that.
Attachment #8336899 - Attachment is obsolete: true
Attachment #8341183 - Flags: review?(bugs)
Seems like I forgot to change the UUID of nsIDOMWindowUtils.idl in the attached patch. Sorry for the noise.
Attachment #8341183 - Attachment is obsolete: true
Attachment #8341183 - Flags: review?(bugs)
Attachment #8341188 - Flags: review?(bugs)
Comment on attachment 8341188 [details] [diff] [review]
add a sendTouchEventToWindow method to nsIDOMWindowUtils.idl


>+nsDOMWindowUtils::SendTouchEventToWindow(const nsAString& aType,
>+                                         uint32_t *aIdentifiers,
>+                                         int32_t *aXs,
>+                                         int32_t *aYs,
>+                                         uint32_t *aRxs,
>+                                         uint32_t *aRys,
>+                                         float *aRotationAngles,
>+                                         float *aForces,
>+                                         uint32_t aCount,
>+                                         int32_t aModifiers,
>+                                         bool aIgnoreRootScrollFrame,
>+                                         bool *aPreventDefault)
* goes with the type, not param name (old code may use wrong style).

>+NS_IMETHODIMP
>+nsDOMWindowUtils::SendTouchEventCommon(const nsAString& aType,
>+                                       uint32_t *aIdentifiers,
>+                                       int32_t *aXs,
>+                                       int32_t *aYs,
>+                                       uint32_t *aRxs,
>+                                       uint32_t *aRys,
>+                                       float *aRotationAngles,
>+                                       float *aForces,
>+                                       uint32_t aCount,
>+                                       int32_t aModifiers,
>+                                       bool aIgnoreRootScrollFrame,
>+                                       bool aToWindow,
>+                                       bool *aPreventDefault)
ditto

>   nsEventStatus status;
>+  if (aToWindow) {
>+    nsCOMPtr<nsIPresShell> presShell = presContext->PresShell();
>+    if (!presShell)
>+      return NS_ERROR_FAILURE;
{} with if. Same also elsewhere.

>+  NS_IMETHOD SendTouchEventCommon(const nsAString& aType,
>+                                  uint32_t *aIdentifiers,
>+                                  int32_t *aXs,
>+                                  int32_t *aYs,
>+                                  uint32_t *aRxs,
>+                                  uint32_t *aRys,
>+                                  float *aRotationAngles,
>+                                  float *aForces,
>+                                  uint32_t aCount,
>+                                  int32_t aModifiers,
>+                                  bool aIgnoreRootScrollFrame,
>+                                  bool aToWindow,
>+                                  bool *aPreventDefault);
* goes with the type


Yeah, I think this makes sense, r=me
We have similar method for mouseevents.
Attachment #8341188 - Flags: review?(bugs) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/4771c427c785
Status: NEW → ASSIGNED
OS: Linux → Gonk (Firefox OS)
Hardware: x86_64 → All
Target Milestone: --- → 1.3 Sprint 6 - 12/6
https://hg.mozilla.org/mozilla-central/rev/4771c427c785
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.