Last Comment Bug 692123 - Back system button not working on context menu
: Back system button not working on context menu
: regression
Product: Fennec Graveyard
Classification: Graveyard
Component: General (show other bugs)
: Trunk
: ARM Android
-- normal (vote)
: Firefox 10
Assigned To: Matt Brubeck (:mbrubeck)
Depends on:
Blocks: 682017 691175
  Show dependency treegraph
Reported: 2011-10-05 08:42 PDT by Andreea Pod
Modified: 2011-10-13 06:29 PDT (History)
9 users (show)
See Also:
QA Whiteboard:
Iteration: ---
Points: ---

patch (2.63 KB, patch)
2011-10-05 12:31 PDT, Matt Brubeck (:mbrubeck)
mark.finkle: review+
Details | Diff | Splinter Review
test (1.17 KB, patch)
2011-10-05 13:06 PDT, Matt Brubeck (:mbrubeck)
mark.finkle: review+
Details | Diff | Splinter Review

Description User image Andreea Pod 2011-10-05 08:42:52 PDT
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
Comment 1 User image Aaron Train [:aaronmt] 2011-10-05 09:07:18 PDT
Perhaps the patch in bug 692071 might fix this, Lucas?
Comment 2 User image Matt Brubeck (:mbrubeck) 2011-10-05 10:37:03 PDT
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).
Comment 3 User image Matt Brubeck (:mbrubeck) 2011-10-05 12:31:40 PDT
Created attachment 564959 [details] [diff] [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.
Comment 4 User image Mark Finkle (:mfinkle) (use needinfo?) 2011-10-05 12:52:48 PDT
Comment on attachment 564959 [details] [diff] [review]

Thanks for the summary.

It's the gift that keeps on giving...
Comment 5 User image Matt Brubeck (:mbrubeck) 2011-10-05 13:06:17 PDT
Created attachment 564973 [details] [diff] [review]

This browser-chrome test catches the regression in the bug, and passes on desktop (with the fix applied).  Pushed to Try:
Comment 8 User image Carla Nadastean 2011-10-13 02:34:58 PDT
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.

Note You need to log in before you can comment on or make changes to this bug.