Bug 140243

Summary: [CoordinatedGraphics] Non-overlay scrollbar is not rendered
Product: WebKit Reporter: Gwang Yoon Hwang <yoon>
Component: New BugsAssignee: Gwang Yoon Hwang <yoon>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, esprehn+autocc, glenn, gyuyoung.kim, kondapallykalyan, mcatanzaro, mrobinson, ryuan.choi, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 147725    
Attachments:
Description Flags
Patch
none
Patch
none
Patch thorton: review-

Description Gwang Yoon Hwang 2015-01-08 06:18:15 PST
[CoordinatedGraphics] Non-overlay scrollbar is not rendered
Comment 1 Gwang Yoon Hwang 2015-01-08 06:21:21 PST
Created attachment 244256 [details]
Patch
Comment 2 Gwang Yoon Hwang 2015-01-08 06:26:54 PST
RenderLayerCompositor::mainFrameBackingIsTiled is checking the
RenderLayerBacking uses tiledbacking dynamically.  In the Coordinated
Graphics, the main frame backing is always uses tiled backing store. So
it should return true.

I think we should refactor TILED_BACKING_STORE to match with Apple's tiledBacking at some point, and remove the TILED_BACKING_STORE guard in separated task.
Comment 3 Ryuan Choi 2015-05-12 15:53:30 PDT
I added gyuyoung to take a look.

Informally looks good to me.
Comment 4 Ryuan Choi 2015-05-12 17:45:16 PDT
Comment on attachment 244256 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=244256&action=review

> Source/WebCore/rendering/RenderLayerCompositor.cpp:2927
> +#if USE(TILED_BACKING_STORE)

I removed WTF_USE_TILED_BACKING_STORE since r183529

Please change this to USE(COORDINATED_GRAPHICS)
Comment 5 Gyuyoung Kim 2015-05-12 18:02:07 PDT
Comment on attachment 244256 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=244256&action=review

>> Source/WebCore/rendering/RenderLayerCompositor.cpp:2927
>> +#if USE(TILED_BACKING_STORE)
> 
> I removed WTF_USE_TILED_BACKING_STORE since r183529
> 
> Please change this to USE(COORDINATED_GRAPHICS)

The mainFrameBackingIsTiled() was changed to documentUsesTiledBacking() in r183943. This patch needs to be updated.
Comment 6 Simon Fraser (smfr) 2015-05-12 18:21:59 PDT
Comment on attachment 244256 [details]
Patch

r- since the patch is old. But are you sure the callers of documentUsesTiledBacking() are expecting this to return true for coordinated graphics?
Comment 7 Gwang Yoon Hwang 2015-07-07 19:30:22 PDT
Created attachment 256346 [details]
Patch
Comment 8 Gwang Yoon Hwang 2015-07-07 19:33:57 PDT
Created attachment 256347 [details]
Patch
Comment 9 Gwang Yoon Hwang 2015-07-07 19:37:34 PDT
ryuan, gyuyoung thanks for pointing out.
I just updated to match current codebase.
Comment 10 Gwang Yoon Hwang 2015-07-07 19:39:14 PDT
(In reply to comment #6)
> Comment on attachment 244256 [details]
> Patch
> 
> r- since the patch is old. But are you sure the callers of
> documentUsesTiledBacking() are expecting this to return true for coordinated
> graphics?

Patch is updated. In Coordinated Graphics, we are just support overlay scrollbar at this point. To support non-overlay scrollbar, Coordinated Graphics should get true from documentUsesTiledBacking.
And I'm pretty sure about it. :)
Comment 11 Gyuyoung Kim 2015-07-07 19:40:43 PDT
Comment on attachment 256347 [details]
Patch

LGTM for EFL port which uses the coordinated graphics. However I would delegate this review to Simon.
Comment 12 Tim Horton 2015-07-09 01:21:13 PDT
Comment on attachment 256347 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=256347&action=review

> Source/WebCore/rendering/RenderLayerCompositor.cpp:2948
> +    return true;

This is pretty weird. Why does backing->usingTiledBacking() not return true? Why would you want this and that to return different things? Seems wrong.
Comment 13 Gwang Yoon Hwang 2015-07-14 15:57:46 PDT
(In reply to comment #12)
> Comment on attachment 256347 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=256347&action=review
> 
> > Source/WebCore/rendering/RenderLayerCompositor.cpp:2948
> > +    return true;
> 
> This is pretty weird. Why does backing->usingTiledBacking() not return true?
> Why would you want this and that to return different things? Seems wrong.

Thanks for review.

First of all, it is because CoordinatedGraphics uses TiledBackingStore, not a TiledBacking. Coordinated Graphics manages tiles in GraphicsLayer, but TiledBacking is used in RenderLayer.

There are several logics in RenderLayerBacking and RenderLayerCompositor which are specific TiledBacking implementation. 
So if we just return true in RenderLayerBacking::usingTiledBacking, it will introduce undesirable behavior in CoordinatedGraphics.

That's why I want to add it this way.

In a long-term, it is desirable to merge TiledBackingStore in to TiledBacking.
It is weird that we have two similar implementation with similar name.
And it will solve these weird stuffs.

I'll do this work after turning threaded-compositor on in GTK+ port.
Comment 14 Michael Catanzaro 2016-09-14 09:01:13 PDT
Pretty sure this bug is obsolete now!