Bug 109169 - [Chromium] Page popup needs to support accelerated compositing
Summary: [Chromium] Page popup needs to support accelerated compositing
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: Forms (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Keishi Hattori
URL:
Keywords:
Depends on:
Blocks: 109439
  Show dependency treegraph
 
Reported: 2013-02-07 03:46 PST by Keishi Hattori
Modified: 2013-02-12 11:07 PST (History)
10 users (show)

See Also:


Attachments
Patch (80.54 KB, patch)
2013-02-07 05:24 PST, Keishi Hattori
no flags Details | Formatted Diff | Diff
Patch (22.73 KB, patch)
2013-02-11 08:01 PST, Keishi Hattori
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Keishi Hattori 2013-02-07 03:46:06 PST
Page popup needs to support accelerated compositing so we can use css transforms in the calendar picker.
Comment 1 Keishi Hattori 2013-02-07 05:24:52 PST
Created attachment 187069 [details]
Patch
Comment 2 WebKit Review Bot 2013-02-07 05:29:07 PST
Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.
Comment 3 WebKit Review Bot 2013-02-07 05:29:23 PST
Attachment 187069 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/chromium/ChangeLog', u'Source/WebKit/chromium/WebKit.gyp', u'Source/WebKit/chromium/public/WebViewClient.h', u'Source/WebKit/chromium/public/WebWidgetClient.h', u'Source/WebKit/chromium/src/ChromeClientImpl.cpp', u'Source/WebKit/chromium/src/ChromeClientImpl.h', u'Source/WebKit/chromium/src/LinkHighlight.cpp', u'Source/WebKit/chromium/src/NonCompositedContentHost.cpp', u'Source/WebKit/chromium/src/NonCompositedContentHost.h', u'Source/WebKit/chromium/src/PageOverlay.cpp', u'Source/WebKit/chromium/src/PageWidgetLayerTree.cpp', u'Source/WebKit/chromium/src/PageWidgetLayerTree.h', u'Source/WebKit/chromium/src/WebPagePopupImpl.cpp', u'Source/WebKit/chromium/src/WebPagePopupImpl.h', u'Source/WebKit/chromium/src/WebViewBenchmarkSupportImpl.cpp', u'Source/WebKit/chromium/src/WebViewImpl.cpp', u'Source/WebKit/chromium/src/WebViewImpl.h']" exit_code: 1
Source/WebKit/chromium/src/WebPagePopupImpl.h:55:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 Build Bot 2013-02-07 08:31:47 PST
Comment on attachment 187069 [details]
Patch

Attachment 187069 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16418216

New failing tests:
http/tests/cache/cached-main-resource.html
Comment 5 Keishi Hattori 2013-02-08 07:40:52 PST
​jamesr@ could you take a look?
Comment 6 James Robinson 2013-02-08 17:59:11 PST
Interesting.  I wish you would have reached out to me sooner, I'm midway through some significant changes in this area that will collide heavily with this work.  I'm deleting about half the functions you are patching.

Is there a crbug or something tracking the requirement for 3D CSS in the calendar picker?
Comment 7 Keishi Hattori 2013-02-11 08:01:22 PST
Created attachment 187576 [details]
Patch
Comment 8 Keishi Hattori 2013-02-11 08:10:36 PST
(In reply to comment #6)
> Interesting.  I wish you would have reached out to me sooner, I'm midway through some significant changes in this area that will collide heavily with this work.  I'm deleting about half the functions you are patching.
> 
> Is there a crbug or something tracking the requirement for 3D CSS in the calendar picker?

If your significant changes are going to take a while, could we do something like this(https://bugs.webkit.org/attachment.cgi?id=187576) where I don't touch WebViewImpl and add just the bare minimum methods to WebPagePopupImpl?

I filed Bug 109439 which I will use as a meta bug to track the requirements for the new calendar picker UI.
Comment 9 WebKit Review Bot 2013-02-11 08:12:33 PST
Attachment 187576 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/chromium/ChangeLog', u'Source/WebKit/chromium/src/NonCompositedContentHost.cpp', u'Source/WebKit/chromium/src/NonCompositedContentHost.h', u'Source/WebKit/chromium/src/WebPagePopupImpl.cpp', u'Source/WebKit/chromium/src/WebPagePopupImpl.h', u'Source/WebKit/chromium/src/WebViewImpl.cpp', u'Source/WebKit/chromium/src/WebViewImpl.h']" exit_code: 1
Source/WebKit/chromium/src/WebPagePopupImpl.h:58:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 10 WebKit Review Bot 2013-02-11 08:14:27 PST
Comment on attachment 187576 [details]
Patch

Attachment 187576 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16491252
Comment 11 WebKit Review Bot 2013-02-11 08:15:52 PST
Comment on attachment 187576 [details]
Patch

Attachment 187576 [details] did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16491253
Comment 12 Peter Beverloo (cr-android ews) 2013-02-11 08:19:50 PST
Comment on attachment 187576 [details]
Patch

Attachment 187576 [details] did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16486355
Comment 13 James Robinson 2013-02-11 09:43:52 PST
I definitely want to be able to use compositing mode for popups (and all widgets), the question is how exactly to wire it up.  Are page popups widgets scrollable?  One of the primary reasons for the way NCCH works is to get good performance when scrolling, without that constraint something much simpler would work.  Perhaps we could use a simpler interface for popups and other widget types.
Comment 14 Keishi Hattori 2013-02-11 15:31:17 PST
(In reply to comment #13)
> I definitely want to be able to use compositing mode for popups (and all widgets), the question is how exactly to wire it up.  Are page popups widgets scrollable?  One of the primary reasons for the way NCCH works is to get good performance when scrolling, without that constraint something much simpler would work.  Perhaps we could use a simpler interface for popups and other widget types.

Here is the mock of what I want to implement. https://googledrive.com/host/0B4aiM9jljUy8T19WQkJVMTFTd1E/
You can open the mock calendar picker by focusing the bottom field. (Clicking on the black triangle opens the current popup)

I use a custom scroll view implemented with JS for the grid of days. And I used CSS 3D transform so I can get 60fps. When I run it without changing anything the elements with CSS 3D transform are not shown.

The <datalist> suggestion picker uses overflow:scroll but I haven't noticed low scrolling performance.

Is there some way to make things simpler by just enabling CSS 3D transforms and not accelerated scrolling?
Comment 15 James Robinson 2013-02-11 19:11:24 PST
I don't see any 3D, just normal 2D transitions.  Are they not performing as well as you would like when using the normal non-3D properties?  For this size animation I'd expect software to do just fine.
Comment 16 Keishi Hattori 2013-02-11 20:39:43 PST
(In reply to comment #15)
> I don't see any 3D, just normal 2D transitions.  Are they not performing as well as you would like when using the normal non-3D properties?  For this size animation I'd expect software to do just fine.

You're right! 2D transforms was fast enough. I will use 2D transforms.

By the way, do you think software will be fast enough for lower spec PCs?
Comment 17 James Robinson 2013-02-11 21:36:46 PST
(In reply to comment #16)
> (In reply to comment #15)
> > I don't see any 3D, just normal 2D transitions.  Are they not performing as well as you would like when using the normal non-3D properties?  For this size animation I'd expect software to do just fine.
> 
> You're right! 2D transforms was fast enough. I will use 2D transforms.
> 
> By the way, do you think software will be fast enough for lower spec PCs?

I would tend to think so at this resolution, but of course it's impossible to know for certain.  Keep in mind on lower spec PCs the GPUs will tend to be worse (or potentially unusable) as well.
Comment 18 Keishi Hattori 2013-02-12 11:07:32 PST
(In reply to comment #17)
> (In reply to comment #16)
> > (In reply to comment #15)
> > > I don't see any 3D, just normal 2D transitions.  Are they not performing as well as you would like when using the normal non-3D properties?  For this size animation I'd expect software to do just fine.
> > 
> > You're right! 2D transforms was fast enough. I will use 2D transforms.
> > 
> > By the way, do you think software will be fast enough for lower spec PCs?
> 
> I would tend to think so at this resolution, but of course it's impossible to know for certain.  Keep in mind on lower spec PCs the GPUs will tend to be worse (or potentially unusable) as well.

Great! Thanks!