New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 636290 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocking:
issue 640466



Sign in to add a comment

Ripple effect gets stuck and is not seen properly in chrome://md-settings page.

Reported by mni...@etouch.net, Aug 10 2016

Issue description

Version: 53.0.2785.57 eb80524ecf0d2051a03f126ee5e7193a44a02327-refs/branch-heads/2785@{#546} (64-bit)
OS: Mac OS X(10.10.5, 10.11.4)

What steps will reproduce the problem?
1) Launch chrome and navigate to chrome://md-settings/advanced
2) Scroll down the page to 'Downloads' and click on 'CHANGE' button in RHS and observe the ripple effect

Actual : On clicking CHANGE button ripple effect gets stuck and is not seen properly.
Expected : On clicking CHANGE button ripple effect should not get stuck and should be seen properly

This is a non-regression issue, seen from M-47 series as 'chrome://md-settings' page appears from build # 47.0.2511.3

Kindly review the attached video and screenshot for reference.

Note : Issue is not seen on Linux and Windows OS.
 
Actual_video.mov
3.5 MB Download
Actual_screenshot.png
267 KB View Download
Status: Untriaged (was: Unconfirmed)
Untriaging it so that it gets addressed.
Owner: dbeam@chromium.org
Status: Assigned (was: Untriaged)
MD settings.

Comment 3 by dbeam@chromium.org, Aug 16 2016

Cc: thestig@chromium.org
Labels: -Pri-2 -M-54 Pri-3
this is probably some nested run loop / constrained window voodoo
Are you sure that's a constrained window, and not a file select dialog/sheet? You should ask Mac folks instead. I'm probably not useful here.

Comment 5 by dbeam@chromium.org, Aug 16 2016

Labels: -OS-Mac OS-Windows

Comment 6 by dbeam@chromium.org, Aug 16 2016

Cc: -thestig@chromium.org rsesek@chromium.org shrike@chromium.org
Labels: -OS-Windows OS-Mac
whoops, wrong bug, sorry

either way, they're probably blocking something from continuing to render/animate

Comment 7 by rsesek@chromium.org, Aug 17 2016

The message loop is getting starved, but I don't think there's anything we can do about that. A portion of the relevant sample for opening the sheet per the repro steps:

  385 settings::DownloadsHandler::HandleSelectDownloadLocation(base::ListValue const*)  (in Google Chrome Framework)  load address 0x10a616000 + 0x376b0ae  [downloads_handler.cc:48]
    374 ui::SelectFileDialogImpl::SelectFileImpl(ui::SelectFileDialog::Type, base::string16> const&, NSWindow*, void*)  (in Google Chrome Framework)  load address 0x10a616000 + 0x2e5eb9e  [
    + 349 -[NSSavePanel beginSheetModalForWindow:completionHandler:]  (in AppKit) + 617  [0x7fff8f563387]
    + ! 343 -[NSApplication _commonBeginModalSessionForWindow:relativeToWindow:modalDelegate:didEndSelector:contextInfo:]  (in AppKit) + 1045  [0x7fff8f14c8af]
    + ! : 326 -[NSApplication _orderFrontModalWindow:relativeToWindow:]  (in AppKit) + 270  [0x7fff8f14cd3a]
    + ! : | 326 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:]  (in AppKit) + 894  [0x7fff8f021f5f]
    + ! : |   318 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:]  (in AppKit) + 1849  [0x7fff8f0237aa]
    + ! : |   + 317 -[NSWindow(NSSheets) _orderFrontRelativeToWindow:]  (in AppKit) + 200  [0x7fff8f154301]
    + ! : |   + ! 316 -[NSMoveHelper(NSSheets) _moveParent:andOpenSheet:]  (in AppKit) + 1736  [0x7fff8f154a1e]
    + ! : |   + ! : 275 -[NSMoveHelper _doAnimation]  (in AppKit) + 1630  [0x7fff8f1566bc]
    + ! : |   + ! : | 275 CFRunLoopRunSpecific  (in CoreFoundation) + 296  [0x7fff9fde6ed8]
    + ! : |   + ! : |   164 __CFRunLoopRun  (in CoreFoundation) + 1841  [0x7fff9fde7871]

Looking at -[NSMoveHelper _doAnimation], we can see that AppKit is spinning the runloop in a private mode that will starve the CommonModes and DefaultMode, which is why we don't pump tasks to repaint the WebContents.

__text:0000000000247B9A                 mov     rdi, cs:classRef_NSDisplayLink
__text:0000000000247BA1                 mov     rsi, cs:selRef_currentTimestamp
__text:0000000000247BA8                 call    cs:_objc_msgSend_ptr
__text:0000000000247BAE                 mov     r14, cs:_OBJC_IVAR_$_NSMoveHelper__startTime ; double _startTime;
__text:0000000000247BB5                 movsd   qword ptr [rbx+r14], xmm0
__text:0000000000247BBB                 mov     rdi, cs:classRef_NSRunLoop
__text:0000000000247BC2                 mov     rsi, cs:selRef_currentRunLoop
__text:0000000000247BC9                 call    cs:_objc_msgSend_ptr
__text:0000000000247BCF                 mov     rsi, cs:selRef_addToRunLoop_forMode_
__text:0000000000247BD6                 lea     rcx, cfstr__nsmovetimerru ; "_NSMoveTimerRunLoopMode"
__text:0000000000247BDD                 mov     rdi, r15
__text:0000000000247BE0                 mov     rdx, rax
__text:0000000000247BE3                 call    cs:_objc_msgSend_ptr
__text:0000000000247BE9                 mov     [rbp+var_B8], r15
__text:0000000000247BF0                 mov     [rbp+var_AC], r13d
__text:0000000000247BF7                 mov     rax, cs:_OBJC_IVAR_$_NSMoveHelper__done ; char _done;
__text:0000000000247BFE                 cmp     byte ptr [rbx+rax], 0
__text:0000000000247C02                 jnz     short loc_247C80
__text:0000000000247C04                 mov     r12, cs:_OBJC_IVAR_$_NSMoveHelper__totalTime ; double _totalTime;
__text:0000000000247C0B                 mov     r15, cs:selRef_currentTimestamp
__text:0000000000247C12                 lea     r13, cfstr__nsmovetimerru ; "_NSMoveTimerRunLoopMode"
__text:0000000000247C19
__text:0000000000247C19 loc_247C19:                             ; CODE XREF: -[NSMoveHelper _doAnimation]+692j
__text:0000000000247C19                                         ; -[NSMoveHelper _doAnimation]+6B0j
__text:0000000000247C19                 movsd   xmm0, qword ptr [rbx+r12]
__text:0000000000247C1F                 mov     esi, 1
__text:0000000000247C24                 mov     rdi, r13
__text:0000000000247C27                 call    _CFRunLoopRunInMode
__text:0000000000247C2C                 mov     rdi, cs:classRef_NSDisplayLink
__text:0000000000247C33                 mov     rsi, r15
__text:0000000000247C36                 call    cs:_objc_msgSend_ptr
__text:0000000000247C3C                 subsd   xmm0, qword ptr [rbx+r14]

Comment 8 by dbeam@chromium.org, Aug 17 2016

Status: WontFix (was: Assigned)
yeah, this is what I figured.  thanks for the detailed analysis, rsesek (completely with fancy ascii art stacks!).

i don't see this as being a particularly big deal.  i'm just going to wontfix.

Comment 9 by sdy@chromium.org, Aug 24 2016

Blockedon: 640466
Cc: dbeam@chromium.org
Labels: Hotlist-Polish
Owner: ----
Status: Available (was: WontFix)
I'm going to at leave it as a hotlist polish bug - it doesn't stop the software from working, but it doesn't look good either.

I assume dbeam@ that the Change button triggers the dropdown of the open/save panel and simultaneously starts the ripple effect - would it be the end of the world to trigger the dropdown once the ripple effect has completed?

If I can get the ripple effect removed from web-ui MD in the Harmony revision, that would also address this problem.

Comment 11 by sdy@chromium.org, Feb 23 2017

Blockedon: -640466

Comment 12 by sdy@chromium.org, Feb 23 2017

Blocking: 640466
Blocking: -640466
Blockedon: 640466

Comment 15 by dbeam@chromium.org, May 30 2017

btw, this CL is probably relevant
https://codereview.chromium.org/2769593002
Project Member

Comment 16 by sheriffbot@chromium.org, May 31 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Fixed (was: Untriaged)
Mac triage: marking fixed per #15.
Blocking: 640466
Blockedon: -640466

Sign in to add a comment