Chromium Code Reviews (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out

Unified Diff: Source/WebCore/ChangeLog

Side-by-side diff isn't available for this file because of its large size.
Issue 11612021: Revert 137939 (Closed) Base URL:
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: Source/WebCore/ChangeLog
--- Source/WebCore/ChangeLog (revision 138019)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,79 +1,3 @@
-2012-12-17 Levi Weintraub <>
- Add support for tracking hit test rectangles to enable fast event rejection in the compositor
- Reviewed by James Robinson.
- Adding support for tracking hit test target regions for the purpose of performing initial hit testing
- in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
- aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
- thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
- region. This patch includes the implementation to turn this on in Chromium.
- To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
- instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
- when new touch event handlers are registered or removed, or after layout much like how
- nonFastScrollableRegions are currently tracked.
- This implementation will not properly update the hit test rects when the renderers are inside a sub-
- tree that scrolls.
- This change was initially rolled out due to stale Node pointers in Document's touchEventTargets. This
- patch adds a callback to remove the Node from that structure to Node's destructor. This is covered
- by the touch-target-removed-crash.html test case which is also added.
- Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
- platform/chromium/fast/events/touch/touch-target-removed-crash.html
- * dom/Document.cpp:
- (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
- are stored as the Document they point to.
- (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
- to update the ScrollingCoordinator with the change.
- (WebCore::Document::didRemoveTouchEventHandler): Ditto.
- * dom/Document.h:
- (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
- expose whether there are any or not.
- (WebCore::Document::touchEventTargets):
- * dom/Node.cpp:
- (WebCore::Node::didMoveToNewDocument):
- (WebCore::tryAddEventListener):
- (WebCore::tryRemoveEventListener):
- * history/CachedFrame.cpp:
- (WebCore::CachedFrameBase::restore):
- * html/HTMLInputElement.cpp:
- (WebCore::HTMLInputElement::~HTMLInputElement):
- (WebCore::HTMLInputElement::updateType):
- * page/DOMWindow.cpp:
- (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
- (WebCore::DOMWindow::removeEventListener):
- * page/EventHandler.cpp:
- (WebCore::EventHandler::handleTouchEvent):
- * page/Frame.cpp:
- (WebCore::Frame::setDocument):
- * page/scrolling/ScrollingCoordinator.cpp:
- (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
- nodes and generate the absolute hit testing rects.
- * page/scrolling/ScrollingCoordinator.h:
- (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
- the scrolling tree/compositor.
- (ScrollingCoordinator):
- * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
- (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
- (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
- (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
- (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
- * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
- (ScrollingCoordinatorChromium):
- * testing/Internals.cpp:
- (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
- it's no longer stored as an int in Document.
- (WebCore::Internals::touchEventTargetClientRects):
- * testing/Internals.h:
- (Internals):
- * testing/Internals.idl:
2012-12-17 Avi Drissman <>
Dragging a .jpg to Finder saves it as .jpeg
« no previous file with comments | « LayoutTests/platform/chromium/fast/events/touch/touch-target-removed-crash-expected.txt ('k') | Source/WebCore/dom/Document.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698