Bug 85747 - [WK2] Push wheel events if there are too many in queue
: [WK2] Push wheel events if there are too many in queue
Product: WebKit
Classification: Unclassified
Component: WebKit2
: 528+ (Nightly build)
: Macintosh Mac OS X 10.7
: P2 Normal
Assigned To: Jon Lee
: InRadar
Depends on:
  Show dependency treegraph
Reported: 2012-05-06 14:25 PDT by Jon Lee
Modified: 2012-05-08 16:50 PDT (History)
4 users (show)

See Also:

Patch (13.70 KB, patch)
2012-05-06 14:39 PDT, Jon Lee
no flags Details | Formatted Diff | Diff
Patch (12.53 KB, patch)
2012-05-06 22:23 PDT, Jon Lee
andersca: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jon Lee 2012-05-06 14:25:33 PDT
It is possible that a whole bunch of messages added to the message queue, or a series of long-running messages, cause unresponsiveness. The reason for this is that we have a scroll event waiting for acknowledgment from the web process before it sends the next event. And in the time between the user has scrolled, causing a large backlog of scroll events to be held in the UI process.

Comment 1 Jon Lee 2012-05-06 14:39:50 PDT
Created attachment 140435 [details]
Comment 2 Sam Weinig 2012-05-06 16:34:27 PDT
Comment on attachment 140435 [details]

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

> Source/WebKit2/UIProcess/WebPageProxy.h:1031
> +    class CoalescedWheelEvent : public RefCounted<CoalescedWheelEvent> {
> +    public:
> +        static PassRefPtr<CoalescedWheelEvent> create();
> +        CoalescedWheelEvent();
> +        virtual ~CoalescedWheelEvent();
> +        Vector<NativeWebWheelEvent> events;
> +    };

Is it necessary for this whole class to be public?  It seems like at the very least, the constructor should be private.  I'm also not clear on why this needs to be RefCounted.
Comment 3 Jon Lee 2012-05-06 22:23:50 PDT
Created attachment 140475 [details]
Comment 4 Jon Lee 2012-05-06 22:24:51 PDT
Comment on attachment 140475 [details]

Originally had some problems using just the Vector but figured it out! Got rid of the internal class.
Comment 5 Jon Lee 2012-05-08 16:50:02 PDT
Committed r116466: <http://trac.webkit.org/changeset/116466>