Bug 62383

Summary: [Chromium] Overlay scrollbars leave glitches on web content
Product: WebKit Reporter: Sailesh Agrawal <sail>
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: eric, jamesr, mihaip, thakis, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Description Sailesh Agrawal 2011-06-09 10:22:48 PDT
Scrolling a page with overlay scrollbars leaves trailing artifacts on web content.

This needs to be fixed before overlay scrollbars are enabled.
Comment 1 Sailesh Agrawal 2011-06-14 17:30:07 PDT
Created attachment 97201 [details]
Patch
Comment 2 Sailesh Agrawal 2011-06-14 17:30:57 PDT
This doesn't fix the root cause, any suggestions appreciated.
Comment 3 Sailesh Agrawal 2011-06-14 18:29:52 PDT
Created attachment 97213 [details]
Patch
Comment 4 Nico Weber 2011-06-14 18:35:41 PDT
Comment on attachment 97213 [details]
Patch

don't set r? on work-in-progress patches
Comment 5 James Robinson 2011-06-14 18:38:36 PDT
Comment on attachment 97213 [details]
Patch

How does the PLATFORM(MAC) port handle this in the non-composited case?

Whatever the answer is here it does not belong in ScrollView.cpp
Comment 6 Sailesh Agrawal 2011-06-14 20:02:30 PDT
(In reply to comment #5)
> (From update of attachment 97213 [details])
> How does the PLATFORM(MAC) port handle this in the non-composited case?

I think that on PLATFORM(MAC) this is handled by the native host scroll view. Our RenderWidget just blindly copies the scrollrect even for overlay scrollbars.

> Whatever the answer is here it does not belong in ScrollView.cpp

What do you think of fixing this in RenderWidget. This would be a little more complicated because I'd have to pipe more information about scrollbars to RenderWidget.
Comment 7 Nico Weber 2011-06-14 20:06:54 PDT
sail: What was the file where you removed the ?: earlier today? Did that help?
Comment 8 Sailesh Agrawal 2011-06-14 20:27:05 PDT
(In reply to comment #7)
> sail: What was the file where you removed the ?: earlier today? Did that help?

That was in ScrollView.cpp ScrollView::rectToCopyOnScroll(). Changing it didn't help.
Comment 9 James Robinson 2011-06-14 20:44:17 PDT
The mac port doesn't use platform widgets for scrolling in WebKit2
Comment 10 Sailesh Agrawal 2011-06-14 20:47:46 PDT
(In reply to comment #9)
> The mac port doesn't use platform widgets for scrolling in WebKit2

Hm... how can I tell if I'm running Safar in composited or non-composited mode? Maybe they have this bug too.
Comment 11 Sailesh Agrawal 2011-06-15 15:13:25 PDT
Created attachment 97369 [details]
Patch
Comment 12 Sailesh Agrawal 2011-06-15 15:14:39 PDT
(In reply to comment #9)
> The mac port doesn't use platform widgets for scrolling in WebKit2

K, I think I got it. WebChromeClient::scroll() intersects the scroll rect with the clip rect. This excludes the scrollbars when overlay scrollbars are enabled.

I'm running try bots now.
Comment 14 James Robinson 2011-06-15 17:41:50 PDT
What about the layout tests trybots? (mac_layout, win_layout, linux_layout and the same with _rel for release).
Comment 15 Sailesh Agrawal 2011-06-15 17:45:23 PDT
(In reply to comment #14)
> What about the layout tests trybots? (mac_layout, win_layout, linux_layout and the same with _rel for release).

Damn, forgot. Layout try bots pending.
Comment 17 Sailesh Agrawal 2011-06-15 22:08:22 PDT
Yay, an empty change has the same failures:
http://build.chromium.org/p/tryserver.chromium/builders/mac_layout_rel/builds/207
Comment 18 Mihai Parparita 2011-06-16 13:24:09 PDT
Comment on attachment 97369 [details]
Patch

Rubber-stamping since James is out.
Comment 19 WebKit Review Bot 2011-06-16 14:18:49 PDT
Comment on attachment 97369 [details]
Patch

Clearing flags on attachment: 97369

Committed r89065: <http://trac.webkit.org/changeset/89065>
Comment 20 WebKit Review Bot 2011-06-16 14:18:54 PDT
All reviewed patches have been landed.  Closing bug.