Page popup needs to support accelerated compositing so we can use css transforms in the calendar picker.
Created attachment 187069 [details] Patch
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.
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 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
jamesr@ could you take a look?
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?
Created attachment 187576 [details] Patch
(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.
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 on attachment 187576 [details] Patch Attachment 187576 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/16491252
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 on attachment 187576 [details] Patch Attachment 187576 [details] did not pass cr-android-ews (chromium-android): Output: http://queues.webkit.org/results/16486355
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.
(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?
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.
(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?
(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.
(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!