RESOLVED FIXED 83474
[Chromium] External popup menus should support early cancelation
https://bugs.webkit.org/show_bug.cgi?id=83474
Summary [Chromium] External popup menus should support early cancelation
Jay Civelli
Reported 2012-04-09 08:57:22 PDT
In Chromium for Mac and Android, we can end up in cases where we end up with 2 select popups showing (if the user presses a select and then quickly presses another before the 1st one has shown). We need a way for the browser to cancel a select popup early to prevent that case.
Attachments
Patch (1.60 KB, patch)
2012-04-09 09:02 PDT, Jay Civelli
no flags
Patch (1.60 KB, patch)
2012-05-15 10:52 PDT, Jay Civelli
no flags
Jay Civelli
Comment 1 2012-04-09 09:02:11 PDT
Ilya Sherman
Comment 2 2012-05-14 13:25:12 PDT
Comment on attachment 136230 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=136230&action=review > Source/WebKit/chromium/src/ExternalPopupMenu.cpp:75 > + // The client might refuse to create a popup (when there is already one pending to be shown for example). Hmm, can you point me to the code that might refuse to create a popup? The implementation that I found for createExternalPopupMenu() [1] looks like it will always create a new one, but sometimes destroy the old one (if the DCHECK fails). Does this patch assume a Chromium change as well? [1] https://code.google.com/searchframe#OAMlx_jo-ck/src/content/renderer/render_view_impl.cc&l=1577-1583
Jay Civelli
Comment 3 2012-05-14 15:56:34 PDT
Yes there is an CL on the Chromium side to make this work: https://chromiumcodereview.appspot.com/10392093/
Ilya Sherman
Comment 4 2012-05-14 16:27:33 PDT
Ok, looks good when coupled with the Chromium CL. tkent, can you double check for an official review, since I'm not a reviewer?
Kent Tamura
Comment 5 2012-05-14 22:41:26 PDT
Comment on attachment 136230 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=136230&action=review > Source/WebKit/chromium/src/ExternalPopupMenu.cpp:76 > + else > + // The client might refuse to create a popup (when there is already one pending to be shown for example). > + didCancel(); nit: This else clause contains two physical lines. So we need to enclose it with {}.
Jay Civelli
Comment 6 2012-05-15 10:52:19 PDT
Jay Civelli
Comment 7 2012-05-23 10:42:19 PDT
tkent, I fixed the nit, could you R+ CQ+ this? Thanks!
WebKit Review Bot
Comment 8 2012-05-23 15:27:39 PDT
Comment on attachment 142003 [details] Patch Clearing flags on attachment: 142003 Committed r118258: <http://trac.webkit.org/changeset/118258>
WebKit Review Bot
Comment 9 2012-05-23 15:27:43 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.