RESOLVED FIXED 38640
[Chromium] Suggestion popup is not closed when view is scrolled
https://bugs.webkit.org/show_bug.cgi?id=38640
Summary [Chromium] Suggestion popup is not closed when view is scrolled
Roman
Reported 2010-05-06 06:36:54 PDT
When suggestion popup is opened and user scrolls the view either by mouse or using the scrollbar, the popup stays in the same position relative to the screen. Expected behavior: popup should close.
Attachments
patch (1008 bytes, patch)
2010-05-06 06:43 PDT, Roman
fishd: review-
fishd: commit-queue-
patch (12.42 KB, patch)
2010-05-13 08:23 PDT, Roman
no flags
patch (1.65 KB, patch)
2010-05-16 01:50 PDT, Roman
no flags
patch (1.62 KB, patch)
2010-05-20 03:14 PDT, Roman
no flags
Patch for landing (1.83 KB, patch)
2010-05-23 02:05 PDT, Jeremy Moskovich
no flags
Patch for landing (1.82 KB, patch)
2010-05-23 06:19 PDT, Jeremy Moskovich
no flags
Roman
Comment 1 2010-05-06 06:43:28 PDT
Evan Martin
Comment 2 2010-05-06 07:46:10 PDT
Needs a comment in the ChangeLog about testing, whether it's possible or why not. Might be good to note in the ChangeLog why this already works properly in Windows/Mac. Might be good to make it clearer that you're talking about suggestion popup.
Darin Fisher (:fishd, Google)
Comment 3 2010-05-06 12:40:23 PDT
Comment on attachment 55231 [details] patch > Index: src/ChromeClientImpl.cpp > =================================================================== > --- src/ChromeClientImpl.cpp (revision 58877) > +++ src/ChromeClientImpl.cpp (working copy) > @@ -507,6 +507,7 @@ void ChromeClientImpl::scroll( scroll is only called when we are doing accelerated scrolling. if the page contains a fixed position element, then invalidateRect will be used to repaint the entire view. so, this patch only solves part of the problem. i think you should really hook into the same thing that triggers the 'scroll' event being dispatched to the page.
Roman
Comment 4 2010-05-13 08:23:20 PDT
Created attachment 55983 [details] patch More explanations were added to the Changlelog. The popup hiding was added to the slow scroll callback as well.
Jeremy Moskovich
Comment 5 2010-05-16 01:22:34 PDT
Comment on attachment 55983 [details] patch Informal review: Changelogs: + I think your editor is stripping trailing whitespaces from files, I don't think you want to do that for the changelog, the diff should only contain your additions. if (m_webView->client()) { WebKit coding style is no curly braces for one line ifs. void ChromeClientImpl::scroll( I'd move the call to hidePopups() to before the dx,dy variable definitions.
Roman
Comment 6 2010-05-16 01:50:50 PDT
Jeremy Moskovich
Comment 7 2010-05-16 01:55:43 PDT
Comment on attachment 56182 [details] patch Informal Review: LGTM
Evan Martin
Comment 8 2010-05-17 06:51:24 PDT
adding some reviewers
Evan Martin
Comment 9 2010-05-17 06:52:24 PDT
I suspect this is still at the wrong level. See comment #3.
Roman
Comment 10 2010-05-17 07:15:26 PDT
I talked to Darin via chat and after inspecting the code he approved my latest change. But I am open for suggestions. Another option would be is to expose a special interface function in ChromeClientImpl just for hiding popups but it seems an overkill for me.
Darin Fisher (:fishd, Google)
Comment 11 2010-05-17 08:56:11 PDT
Comment on attachment 56182 [details] patch > Index: src/ChromeClientImpl.cpp ... > void ChromeClientImpl::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate) > { > + if (m_webView->client()) > + m_webView->hidePopups(); why do you need to null check client before calling hidePopups?
Roman
Comment 12 2010-05-17 10:31:45 PDT
(In reply to comment #11) > (From update of attachment 56182 [details]) > > Index: src/ChromeClientImpl.cpp > ... > > void ChromeClientImpl::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate) > > { > > + if (m_webView->client()) > > + m_webView->hidePopups(); > > why do you need to null check client before calling hidePopups? I am being consistent with the code around. The scroll() function null checks the client so I assumed I need to do this as well.
Roman
Comment 13 2010-05-18 12:51:19 PDT
What needs to be done in order to proceed with this CL?
Darin Fisher (:fishd, Google)
Comment 14 2010-05-18 12:57:50 PDT
> > > + if (m_webView->client()) > > > + m_webView->hidePopups(); > > > > why do you need to null check client before calling hidePopups? > > I am being consistent with the code around. The scroll() function null checks the client so I assumed I need to do this as well. The null checks for m_webView->client() exist to avoid calling methods on a null m_webView->client(). It is not necessary in the case above since you are calling a method on m_webView.
Roman
Comment 15 2010-05-20 03:14:20 PDT
Roman
Comment 16 2010-05-20 03:18:07 PDT
(In reply to comment #14) > > > > + if (m_webView->client()) > > > > + m_webView->hidePopups(); > > > > > > why do you need to null check client before calling hidePopups? > > > > I am being consistent with the code around. The scroll() function null checks the client so I assumed I need to do this as well. > > The null checks for m_webView->client() exist to avoid calling methods on a null m_webView->client(). It is not necessary in the case above since you are calling a method on m_webView. Oops, I was under impression that I am using client() during the call. The fixed patch is uploaded.
WebKit Commit Bot
Comment 17 2010-05-21 07:32:51 PDT
Comment on attachment 56579 [details] patch Rejecting patch 56579 from commit-queue. Failed to run "[u'/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply', u'--reviewer', u'Darin Fisher', u'--force']" exit_code: 1 Last 500 characters of output: file(s). patching file ChangeLog Hunk #1 succeeded at 1 with fuzz 3. can't find file to patch at input line 5 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |Index: src/ChromeClientImpl.cpp |=================================================================== |--- src/ChromeClientImpl.cpp (revision 59826) |+++ src/ChromeClientImpl.cpp (working copy) -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored Full output: http://webkit-commit-queue.appspot.com/results/2272442
Jeremy Moskovich
Comment 18 2010-05-23 02:05:59 PDT
Created attachment 56816 [details] Patch for landing
WebKit Commit Bot
Comment 19 2010-05-23 06:10:07 PDT
Comment on attachment 56816 [details] Patch for landing Rejecting patch 56816 from commit-queue. Unexpected failure when landing patch! Please file a bug against webkit-patch. Failed to run "['./WebKitTools/Scripts/webkit-patch', '--status-host=webkit-commit-queue.appspot.com', 'land-attachment', '--force-clean', '--build', '--non-interactive', '--ignore-builders', '--build-style=both', '--quiet', 56816, '--test', '--parent-command=commit-queue', '--no-update']" exit_code: 1 Last 500 characters of output: ion=edit Fetching: https://bugs.webkit.org/show_bug.cgi?id=38640&ctype=xml Processing 1 patch from 1 bug. Cleaning working directory Processing patch 56816 from bug 38640. NOBODY (OOPS!) found in /Users/eseidel/Projects/CommitQueue/WebKit/chromium/ChangeLog does not appear to be a valid reviewer according to committers.py. ERROR: /Users/eseidel/Projects/CommitQueue/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string "Unreviewed" or "Rubber stamp" (case insensitive).
Jeremy Moskovich
Comment 20 2010-05-23 06:19:49 PDT
Created attachment 56820 [details] Patch for landing
WebKit Commit Bot
Comment 21 2010-05-23 06:32:19 PDT
Comment on attachment 56820 [details] Patch for landing Clearing flags on attachment: 56820 Committed r60044: <http://trac.webkit.org/changeset/60044>
WebKit Commit Bot
Comment 22 2010-05-23 06:32:26 PDT
All reviewed patches have been landed. Closing bug.
Kent Tamura
Comment 23 2012-06-06 23:04:35 PDT
(In reply to comment #21) > (From update of attachment 56820 [details]) > Clearing flags on attachment: 56820 > > Committed r60044: <http://trac.webkit.org/changeset/60044> I'll roll this out because of http://code.google.com/p/chromium/issues/detail?id=114922
Kent Tamura
Comment 24 2012-06-06 23:31:19 PDT
Rolled out by http://trac.webkit.org/changeset/119688. I have filed another bug for the original issue: Bug 88506
Note You need to log in before you can comment on or make changes to this bug.