Closed Bug 692123 Opened 8 years ago Closed 8 years ago

Back system button not working on context menu

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set

Tracking

(firefox9 unaffected, firefox10 fixed)

VERIFIED FIXED
Firefox 10
Tracking Status
firefox9 --- unaffected
firefox10 --- fixed

People

(Reporter: andreea.pod, Assigned: mbrubeck)

References

Details

(Keywords: regression)

Attachments

(2 files)

Mozilla /5.0 (Android;Linux armv7l;rv:9.0a1) Gecko/20111003 Firefox/10.0a1 Fennec/10.0a1
Device" LG Optimus 2X

Steps to reproduce:
1. go to any page 
2. long tap on a link or an image
3. after the context menu appears hit the system back button

Actual results:
nothing happens 

Expected results:
the context menu should close
Keywords: regression
Perhaps the patch in bug 692071 might fix this, Lucas?
Assignee: nobody → mbrubeck
Regression from bug 691175.  If I can't find a simple fix for this, I'm starting to think we should back the whole mess out (bug 682017 and its dependencies).
Blocks: 691175, 682017
tracking-fennec: --- → ?
Attached patch patchSplinter Review
So, we removed our custom JavaScript key event forwarding, and started letting the platform forward key events for us (bug 682017).

This broke keyboard shortcuts, so we restored part of our JavaScript code to pass key events back from content to chrome and re-dispatch them (bug 683736).

The re-dispatching caused handleEscape to get called twice for the same key press in some cases.  We fixed this by making handleEscape wait for events to bubble up to the window, instead of capturing them on the way down.  Then we could stop forwarded events from bubbling (bug 684558).

But this broke cases where the events don't bubble, like in the awesomescreen.  We fixed that by going back to capturing, but ignoring the event the first time, when it's headed toward the browser (bug 691175).

But that doesn't work for cases where the event is heading toward the browser but isn't forwarded to content; then we won't handle the event at all.  So this patch instead handles the event the first time, but ignores it the second time when it's redispatched by KeyFilter.

This fixes the bug, and does not regress any of the related bugs or tests, and is not any hackier than what was here before.  I'll write a new test for this regression before checking in the patch, and I'm still working on understanding the platform logic here and how we need to work with it or fix it.
Attachment #564959 - Flags: review?(mark.finkle)
Comment on attachment 564959 [details] [diff] [review]
patch

Thanks for the summary.

It's the gift that keeps on giving...
Attachment #564959 - Flags: review?(mark.finkle) → review+
Attached patch testSplinter Review
This browser-chrome test catches the regression in the bug, and passes on desktop (with the fix applied).  Pushed to Try:
https://tbpl.mozilla.org/?tree=Try&rev=482fc583a674
Attachment #564973 - Flags: review?(mark.finkle)
Attachment #564973 - Flags: review?(mark.finkle) → review+
Status: NEW → ASSIGNED
Whiteboard: [pushed to try]
https://hg.mozilla.org/mozilla-central/rev/0e2a6ed2d6c0
https://hg.mozilla.org/mozilla-central/rev/4831f64bc4ad
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Whiteboard: [pushed]
Retested bug with:
Mozilla /5.0 (Android;Linux armv7l;rv:10.0a1) Gecko/20111012 Firefox/10.0a1 Fennec/10.0a1
Device: Motorola DROID 2 (Android 2.3)

Bug is no longer reproducible. Context menu is closed properly from system back button.

Verifying bug.
Status: RESOLVED → VERIFIED
tracking-fennec: ? → ---
You need to log in before you can comment on or make changes to this bug.