[Webkit-unassigned] [Bug 75506] Improve touch handling performance by reusing the hitTest result

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 23 07:43:45 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=75506





--- Comment #12 from Min Qin <qinmin at chromium.org>  2012-01-23 07:43:44 PST ---
Why is it hard to show :active? Since the touchTarget won't change, the last hittest results could be reused as finger moves off the target. So your :active link won't change during a touch down->touch move->touch release

On some pages, doing a hittest on each touchMove can be really expensive. the espn blog page is a good example. It invokes a layout each time when a move happens. each layout could take more than 500 msec to do.

And this change also avoids the problem that finger could move to another element after touchDown. One good example for this is scrolling http://www.nme.com/reviews/young-knives/11931 on android browser. Touch the first paragraph and start scrolling upwards. When finger reaches the video area, flickering will appear as a new hittest will return a different pagePoint as the condition of if statement becomes true.

if (m_frame != doc->frame()) {        
            // pagePoint should always be relative to the target elements contai
ning frame.        
            pagePoint = documentPointForWindowPoint(doc->frame(), point.pos());        
}



(In reply to comment #11)
> We already have code that avoids moving the frame on hittests that are read-only. Was this really necessary in trunk to fix this bug?
> 
> While this patch is still an optimization. It makes it impossible to improve the :active handling to for instance stop showing :active if the finger moves off the target.
> 
> :active is used to show the user what is activated, but once the finger ends off the target this link will no longer be activated, and thus the :active feedback to user will be wrong.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list