Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1256)

Unified Diff: Source/core/html/shadow/MediaControlElements.cpp

Issue 406213002: If the media controls are visible they should always grab clicks (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Test added - now looking for LGTM or detailed comments. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/html/shadow/MediaControlElements.cpp
diff --git a/Source/core/html/shadow/MediaControlElements.cpp b/Source/core/html/shadow/MediaControlElements.cpp
index c5b9b6163c3421a7f6c5a776ce09225e53c32281..1c265f29ad7fa6d6b805891e988a966beaf5f68e 100644
--- a/Source/core/html/shadow/MediaControlElements.cpp
+++ b/Source/core/html/shadow/MediaControlElements.cpp
@@ -147,6 +147,17 @@ void MediaControlPanelElement::setIsDisplayed(bool isDisplayed)
m_isDisplayed = isDisplayed;
}
+bool MediaControlPanelElement::keepEventInShadowDOM(Event* event)
+{
+ const AtomicString& type = event->type();
philipj_slow 2014/07/29 11:31:07 This logic is repeated once, so a static bool isUs
aberent 2014/07/31 10:52:47 Done.
+ return type == EventTypeNames::mousedown
+ || type == EventTypeNames::mouseup
+ || type == EventTypeNames::click
+ || type == EventTypeNames::dblclick
+ || event->isKeyboardEvent()
+ || event->isTouchEvent();
+}
+
// ----------------------------
MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement(MediaControls& mediaControls)
@@ -295,6 +306,17 @@ const AtomicString& MediaControlOverlayPlayButtonElement::shadowPseudoId() const
return id;
}
+bool MediaControlOverlayPlayButtonElement::keepEventInShadowDOM(Event* event)
+{
+ const AtomicString& type = event->type();
+ return type == EventTypeNames::mousedown
+ || type == EventTypeNames::mouseup
+ || type == EventTypeNames::click
+ || type == EventTypeNames::dblclick
+ || event->isKeyboardEvent()
+ || event->isTouchEvent();
+}
+
// ----------------------------
@@ -409,6 +431,16 @@ const AtomicString& MediaControlTimelineElement::shadowPseudoId() const
return id;
}
+bool MediaControlTimelineElement::keepEventInShadowDOM(Event* event)
+{
+ // Capture some additional event types in the shadow DOM when on the slider. Note that MediaControlPanelElement::keepEventInShadowDOM
+ // will also be called in this case, so those events will also be captured.
+ const AtomicString& type = event->type();
philipj_slow 2014/07/29 11:31:07 Same here, maybe isUserInteractionEventForSlider()
aberent 2014/07/31 10:52:47 Done.
+ return type == EventTypeNames::mouseover
+ || type == EventTypeNames::mouseout
+ || type == EventTypeNames::mousemove;
+}
+
// ----------------------------
MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(MediaControls& mediaControls)
@@ -472,6 +504,16 @@ const AtomicString& MediaControlVolumeSliderElement::shadowPseudoId() const
return id;
}
+bool MediaControlVolumeSliderElement::keepEventInShadowDOM(Event* event)
+{
+ // Capture some additional event types in the shadow DOM when on the slider. Note that MediaControlPanelElement::keepEventInShadowDOM
+ // will also be called in this case, so those events will also be captured.
+ const AtomicString& type = event->type();
+ return type == EventTypeNames::mouseover
+ || type == EventTypeNames::mouseout
+ || type == EventTypeNames::mousemove;
+}
+
// ----------------------------
MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(MediaControls& mediaControls)

Powered by Google App Engine
This is Rietveld 408576698