Title: [214875] branches/safari-603-branch/Source/WebCore
- Revision
- 214875
- Author
- [email protected]
- Date
- 2017-04-04 01:00:34 -0700 (Tue, 04 Apr 2017)
Log Message
Cherry-pick r214649. rdar://problem/31407626
Modified Paths
Diff
Modified: branches/safari-603-branch/Source/WebCore/ChangeLog (214874 => 214875)
--- branches/safari-603-branch/Source/WebCore/ChangeLog 2017-04-04 08:00:32 UTC (rev 214874)
+++ branches/safari-603-branch/Source/WebCore/ChangeLog 2017-04-04 08:00:34 UTC (rev 214875)
@@ -1,5 +1,30 @@
2017-04-03 Jason Marcell <[email protected]>
+ Cherry-pick r214649. rdar://problem/31407626
+
+ 2017-03-30 Simon Fraser <[email protected]>
+
+ Ensure that Node::willBeDeletedFrom() always removes touch event handlers from the document
+ https://bugs.webkit.org/show_bug.cgi?id=170323
+ rdar://problem/23647630
+
+ Reviewed by Chris Dumez.
+
+ There are two instances where nodes are registered as touch event handlers without
+ having normal touch event listeners: slider thumb elements, and elements with overflow scrolling,
+ on iOS.
+
+ For such nodes, hasEventTargetData() will be false, but we want to ensure
+ that they are removed from the Document's touchEventHandler set, so move the
+ call to document.removeTouchEventHandler() outside of the conditional block.
+
+ This should be cheap in most cases when the touchEventHandler is empty.
+
+ * dom/Node.cpp:
+ (WebCore::Node::willBeDeletedFrom):
+
+2017-04-03 Jason Marcell <[email protected]>
+
Cherry-pick r214648. rdar://problem/31408453
2017-03-30 Simon Fraser <[email protected]>
Modified: branches/safari-603-branch/Source/WebCore/dom/Node.cpp (214874 => 214875)
--- branches/safari-603-branch/Source/WebCore/dom/Node.cpp 2017-04-04 08:00:32 UTC (rev 214874)
+++ branches/safari-603-branch/Source/WebCore/dom/Node.cpp 2017-04-04 08:00:34 UTC (rev 214875)
@@ -315,12 +315,15 @@
document.didRemoveWheelEventHandler(*this, EventHandlerRemoval::All);
#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
document.removeTouchEventListener(this, true);
- document.removeTouchEventHandler(this, true);
#else
// FIXME: This should call didRemoveTouchEventHandler().
#endif
}
+#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
+ document.removeTouchEventHandler(this, true);
+#endif
+
if (AXObjectCache* cache = document.existingAXObjectCache())
cache->remove(this);
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes