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

Reply via email to