Title: [91333] trunk/Source/WebCore
Revision
91333
Author
[email protected]
Date
2011-07-19 21:46:35 -0700 (Tue, 19 Jul 2011)

Log Message

REGRESSION(r89004): Video pauses and never resumes playing if scrubbed during playback.
https://bugs.webkit.org/show_bug.cgi?id=64314

Reviewed by Sam Weinig.

No new tests because it's hard to make a non-flaky test for this behavior.

* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
Don't call SliderThumbElement::dragFrom() for events on the thumb.
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::defaultEventHandler):
Do not call setDefaultHandled() for mouse events in order to
propagate them to ancestor elements.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (91332 => 91333)


--- trunk/Source/WebCore/ChangeLog	2011-07-20 04:24:40 UTC (rev 91332)
+++ trunk/Source/WebCore/ChangeLog	2011-07-20 04:46:35 UTC (rev 91333)
@@ -1,3 +1,20 @@
+2011-07-19  Kent Tamura  <[email protected]>
+
+        REGRESSION(r89004): Video pauses and never resumes playing if scrubbed during playback.
+        https://bugs.webkit.org/show_bug.cgi?id=64314
+
+        Reviewed by Sam Weinig.
+
+        No new tests because it's hard to make a non-flaky test for this behavior.
+
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::handleMouseDownEvent):
+        Don't call SliderThumbElement::dragFrom() for events on the thumb.
+        * html/shadow/SliderThumbElement.cpp:
+        (WebCore::SliderThumbElement::defaultEventHandler):
+        Do not call setDefaultHandled() for mouse events in order to
+        propagate them to ancestor elements.
+
 2011-07-19  Matthew Delaney  <[email protected]>
 
         Add fast path for ImageBuffer::draw

Modified: trunk/Source/WebCore/html/RangeInputType.cpp (91332 => 91333)


--- trunk/Source/WebCore/html/RangeInputType.cpp	2011-07-20 04:24:40 UTC (rev 91332)
+++ trunk/Source/WebCore/html/RangeInputType.cpp	2011-07-20 04:46:35 UTC (rev 91333)
@@ -156,10 +156,10 @@
     Node* targetNode = event->target()->toNode();
     if (event->button() != LeftButton || !targetNode || (targetNode != element() && !targetNode->isDescendantOf(element()->shadowRoot())))
         return;
-
     SliderThumbElement* thumb = sliderThumbElementOf(element());
+    if (targetNode == thumb)
+        return;
     thumb->dragFrom(event->absoluteLocation());
-    event->setDefaultHandled();
 }
 
 void RangeInputType::handleKeydownEvent(KeyboardEvent* event)

Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (91332 => 91333)


--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2011-07-20 04:24:40 UTC (rev 91332)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2011-07-20 04:46:35 UTC (rev 91333)
@@ -279,18 +279,18 @@
     bool isLeftButton = mouseEvent->button() == LeftButton;
     const AtomicString& eventType = event->type();
 
+    // We intentionally do not call event->setDefaultHandled() here because
+    // MediaControlTimelineElement::defaultEventHandler() wants to handle these
+    // mouse events.
     if (eventType == eventNames().mousedownEvent && isLeftButton) {
         startDragging();
-        event->setDefaultHandled();
         return;
     } else if (eventType == eventNames().mouseupEvent && isLeftButton) {
         stopDragging();
-        event->setDefaultHandled();
         return;
     } else if (eventType == eventNames().mousemoveEvent) {
         if (m_inDragMode)
             setPositionFromPoint(mouseEvent->absoluteLocation());
-        event->setDefaultHandled();
         return;
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to