Eliding Bookmark Name/URL in Bookmark Bar 'tooltip' in every MouseEvent freezes browser/ui |
|||||||||||||||
Issue description
Chrome Version: 52.0.2727.0
Chrome OS Version: 8302.0.0
Chrome OS Platform: peach_pi (also reproduced on oak and cyan)
Steps To Reproduce:
(1) Enable the bookmark bar
(2) Navigate to:
https://en.wikipedia.org/wiki/List_of_law_clerks_of_the_Supreme_Court_of_the_United_States
(3) Add the URL to the bookmark bar, and ensure it is visible
(4) Navigate to any page with animation, for example:
http://webglsamples.org/aquarium/aquarium.html
(5) Use Mouse/Trackpad to move pointer over top of the "US Law Clerks" bookmark button
(6) Bonus: Wiggle mouse on top of button
Expected Result:
UI continues to animate smoothly as mouse enters/moves/crosses bookmark buttons.
Actual Result:
UI animation pauses/stutters when mouse enters bookmark.
Bonus: UI animation will grind to a halt.
How frequently does this problem reproduce? (Always, sometimes, hard to
reproduce?)
Always.
What is the impact to the user, and is there a workaround? If so, what is
it?
Strange UI hiccups when mousing over bookmark bar.
Please provide any additional information below. Attach a screen shot or
log if possible.
Two attachemnts:
[0] trace_peach_pi-mouse-thumbnail-elide.json.gz
[1] trace_z620-mouse-thumbnail-elide.json.gz
For [0], it is pretty obvious from the trace what is happening:
The pointer first enters the bookmark button at 2,557.063 ms
(search for EventFactoryEvdev::DispatchMouseMoveEvent).
It takes 23.173 ms to process this event.
Considering input events arrive every ~3.8 ms, the machine can't keep up and
consumes 100% CPU processing input events, freezing the UI.
The "RenderText::Elide" operation alone takes ~8.69 ms, probably because
each (long) call to RenderTextHarfBuzz::EnsureLayoutRunList() takes > 1 ms
(compare this to the result below).
ssww
Note: I can see similar traces on desktop linux (50.0.2661.102).
For [1], this is taken on a z620 running desktop chrome.
The mouse events w/ Elide start @ 1,910.858 ms (search for "RenderText::Elide").
On the z620, the RenderTextHarfBuzz::EnsureLayoutRunList() is < ~400 us,
and the total DesktopWindowTreeHostX11::Dispatch wall time is < ~8 ms.
Since the Dispatch calls (ie X11 mouse move events) are ~8.5 ms apart, the UI
still has time to do some other work, and the UI does not appear to pause/hang.
Adding a bunch of labels, since this effect seems to be caused by a combination of event handling, the bookmark bar, UI, and Text processing (harfbuzz).
,
May 27 2016
The current text eliding impl is known to be show. I made a few improvements last year, but it's still slow. I don't have time to fix this complete (the best way would be to migrate to the text renderer that blink is using), but I'll take a look and see if we can mitigate this.
,
Jun 16 2016
Issue 597261 has been merged into this issue.
,
Nov 7 2016
Tooltip no longer updates per move, so it should be much better now.
,
Nov 10 2016
In which version is this fixed? It is still pretty bad in ToT (56.0.2915.0).
,
Nov 16 2016
I'm on 55.0.2883.42, and it no longer updates the tooltip per mouse move, which this bug is about. Please see attached video. If your issue is about slow eliding (which is true), please file a separate bug. If that's not the case, please upload the video.
,
Nov 16 2016
The behavior is still the same on my device: Google Chrome 55.0.2883.42 (Official Build) beta (32-bit) Platform 8872.44.0 (Official Build) beta-channel elm
,
Nov 16 2016
Every MouseMoveEvent still takes 11.5 ms, because it is calling RenderText:Elide.
,
Nov 16 2016
Thanks, there is another path that isn't tooltip code itself. I'll take a look.
,
Nov 17 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e1b6ed732fb14986aa4d1db97de7208356b861f7 commit e1b6ed732fb14986aa4d1db97de7208356b861f7 Author: oshima <oshima@chromium.org> Date: Thu Nov 17 14:53:20 2016 Update the bookmark tooltip text only when necessary BUG= 612682 TEST=manual. see bug for repro step. Review-Url: https://codereview.chromium.org/2507743002 Cr-Commit-Position: refs/heads/master@{#432874} [modify] https://crrev.com/e1b6ed732fb14986aa4d1db97de7208356b861f7/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc [modify] https://crrev.com/e1b6ed732fb14986aa4d1db97de7208356b861f7/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h [modify] https://crrev.com/e1b6ed732fb14986aa4d1db97de7208356b861f7/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
,
Nov 17 2016
,
Nov 18 2016
Shall we merge to M-55 (and did the fixes land in time for M-56)?
,
Nov 18 2016
Your change meets the bar and is auto-approved for M55 (branch: 2883)
,
Nov 18 2016
Your change meets the bar and is auto-approved for M56 (branch: 2924)
,
Nov 22 2016
,
Nov 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6a4d6d8670c5b9da20f522f21eabfdf0c62dd803 commit 6a4d6d8670c5b9da20f522f21eabfdf0c62dd803 Author: Mitsuru Oshima <oshima@chromium.org> Date: Tue Nov 22 15:42:46 2016 Update the bookmark tooltip text only when necessary BUG= 612682 TEST=manual. see bug for repro step. Review URL: https://codereview.chromium.org/2524773002 . Cr-Commit-Position: refs/branch-heads/2883@{#648} Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768} [modify] https://crrev.com/6a4d6d8670c5b9da20f522f21eabfdf0c62dd803/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc [modify] https://crrev.com/6a4d6d8670c5b9da20f522f21eabfdf0c62dd803/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h [modify] https://crrev.com/6a4d6d8670c5b9da20f522f21eabfdf0c62dd803/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
,
Nov 22 2016
,
Nov 29 2016
Fix for 55 is in 55.0.2883.64 / 8872.64.0 Fix landed just before 57 branch, in: 56.0.2924.0 / 9000.2.0. Verified on 57.0.2926.0 / 9015.0.
,
Nov 30 2016
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Dec 4 2016
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Dec 17
|
|||||||||||||||
►
Sign in to add a comment |
|||||||||||||||
Comment 1 by tkent@chromium.org
, May 24 2016Labels: -OS-Linux