Bug 110256 - [BlackBerry] Move posting and scrollbar updates to the page client
Summary: [BlackBerry] Move posting and scrollbar updates to the page client
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit BlackBerry (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Jakob Petsovits
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-19 13:27 PST by Jakob Petsovits
Modified: 2013-02-21 08:51 PST (History)
9 users (show)

See Also:


Attachments
Patch (6.34 KB, patch)
2013-02-19 13:33 PST, Jakob Petsovits
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jakob Petsovits 2013-02-19 13:27:16 PST
In blitVisibleContents(), we were calling the WebKit thread functions BackingStorePrivate::isScrollingOrZooming() and WebPage::isVisible(). This is not the right spot to do it. Furthermore, we want to move away from direct window access in WebKit and leave that kind of dirtywork to the client.

The patch below removes invalidateWindow() as well as the two virtual scrollbar drawing functions and replaces it with one new virtual, WebPageClient::postToSurface(). This clears up threading issues and gets us another step further towards pure WebPageCompositor rendering.
Comment 1 Jakob Petsovits 2013-02-19 13:33:12 PST
Created attachment 189153 [details]
Patch
Comment 2 Arvid Nilsson 2013-02-19 22:31:59 PST
Comment on attachment 189153 [details]
Patch

I feel the "Post" terminology is a QNXism, it should be possible to find a term that makes more sense from a WebKit perspective. The method will eventually call eglSwapBuffers (or a subrect swapping extension). But I guess "Swap" would be an EGLism. So LGTM.
Comment 3 Jakob Petsovits 2013-02-19 23:01:56 PST
I guess "Post" is strong in QNX land, but not exclusive to it. The EGL_NV_post_sub_buffer extension for instance adopted the same nomenclature for the same functionality after also considering "Present" or "Copy" as alternatives.

In my understanding, "Swap" refers more to the concept of replacing the full buffer rather than presenting a portion of the buffer in the target window or parent container. I guess a "Post" will usually flush commands and swap surfaces like eglSwapBuffers() would, but at least the swapping part seems like it could be optional in some implementations and the focus is on propagating the contents to the screen or parent container, which is more the intention of this patch.

Thanks for your input!
Comment 4 Rob Buis 2013-02-21 08:05:03 PST
Comment on attachment 189153 [details]
Patch

Ok.
Comment 5 WebKit Review Bot 2013-02-21 08:51:48 PST
Comment on attachment 189153 [details]
Patch

Clearing flags on attachment: 189153

Committed r143610: <http://trac.webkit.org/changeset/143610>
Comment 6 WebKit Review Bot 2013-02-21 08:51:52 PST
All reviewed patches have been landed.  Closing bug.