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

Side by Side 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: Fix layout test - was hitting overlay play button. Created 6 years, 4 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 unified diff | Download patch
« no previous file with comments | « Source/core/html/shadow/MediaControlElements.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2012 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 using namespace HTMLNames; 52 using namespace HTMLNames;
53 53
54 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d(); 54 static const AtomicString& getMediaControlCurrentTimeDisplayElementShadowPseudoI d();
55 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId(); 55 static const AtomicString& getMediaControlTimeRemainingDisplayElementShadowPseud oId();
56 56
57 // If you change any of the following fade durations, then also update the 57 // If you change any of the following fade durations, then also update the
58 // corresponding values in LayoutTests/media/media-controls.js. 58 // corresponding values in LayoutTests/media/media-controls.js.
59 static const double fadeInDuration = 0.1; 59 static const double fadeInDuration = 0.1;
60 static const double fadeOutDuration = 0.3; 60 static const double fadeOutDuration = 0.3;
61 61
62 static bool isUserInteractionEvent(Event* event)
63 {
64 const AtomicString& type = event->type();
65 return type == EventTypeNames::mousedown
66 || type == EventTypeNames::mouseup
67 || type == EventTypeNames::click
68 || type == EventTypeNames::dblclick
69 || event->isKeyboardEvent()
70 || event->isTouchEvent();
71 }
72
73 // Sliders (the volume control and timeline) need to capture some additional eve nts used when dragging the thumb.
74 static bool isUserInteractionEventForSlider(Event* event)
75 {
76 const AtomicString& type = event->type();
77 return type == EventTypeNames::mousedown
78 || type == EventTypeNames::mouseup
79 || type == EventTypeNames::click
80 || type == EventTypeNames::dblclick
81 || type == EventTypeNames::mouseover
82 || type == EventTypeNames::mouseout
83 || type == EventTypeNames::mousemove
84 || event->isKeyboardEvent()
85 || event->isTouchEvent();
86 }
87
88
62 MediaControlPanelElement::MediaControlPanelElement(MediaControls& mediaControls) 89 MediaControlPanelElement::MediaControlPanelElement(MediaControls& mediaControls)
63 : MediaControlDivElement(mediaControls, MediaControlsPanel) 90 : MediaControlDivElement(mediaControls, MediaControlsPanel)
64 , m_isDisplayed(false) 91 , m_isDisplayed(false)
65 , m_opaque(true) 92 , m_opaque(true)
66 , m_transitionTimer(this, &MediaControlPanelElement::transitionTimerFired) 93 , m_transitionTimer(this, &MediaControlPanelElement::transitionTimerFired)
67 { 94 {
68 } 95 }
69 96
70 PassRefPtrWillBeRawPtr<MediaControlPanelElement> MediaControlPanelElement::creat e(MediaControls& mediaControls) 97 PassRefPtrWillBeRawPtr<MediaControlPanelElement> MediaControlPanelElement::creat e(MediaControls& mediaControls)
71 { 98 {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 167
141 m_opaque = false; 168 m_opaque = false;
142 startTimer(); 169 startTimer();
143 } 170 }
144 171
145 void MediaControlPanelElement::setIsDisplayed(bool isDisplayed) 172 void MediaControlPanelElement::setIsDisplayed(bool isDisplayed)
146 { 173 {
147 m_isDisplayed = isDisplayed; 174 m_isDisplayed = isDisplayed;
148 } 175 }
149 176
177 bool MediaControlPanelElement::keepEventInNode(Event* event)
178 {
179 return isUserInteractionEvent(event);
180 }
181
150 // ---------------------------- 182 // ----------------------------
151 183
152 MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement(MediaContro ls& mediaControls) 184 MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement(MediaContro ls& mediaControls)
153 // Mapping onto same MediaControlElementType as panel element, since it has similar properties. 185 // Mapping onto same MediaControlElementType as panel element, since it has similar properties.
154 : MediaControlDivElement(mediaControls, MediaControlsPanel) 186 : MediaControlDivElement(mediaControls, MediaControlsPanel)
155 { 187 {
156 } 188 }
157 189
158 PassRefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclo sureElement::create(MediaControls& mediaControls) 190 PassRefPtrWillBeRawPtr<MediaControlPanelEnclosureElement> MediaControlPanelEnclo sureElement::create(MediaControls& mediaControls)
159 { 191 {
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 } else 320 } else
289 hide(); 321 hide();
290 } 322 }
291 323
292 const AtomicString& MediaControlOverlayPlayButtonElement::shadowPseudoId() const 324 const AtomicString& MediaControlOverlayPlayButtonElement::shadowPseudoId() const
293 { 325 {
294 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-play- button", AtomicString::ConstructFromLiteral)); 326 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-overlay-play- button", AtomicString::ConstructFromLiteral));
295 return id; 327 return id;
296 } 328 }
297 329
330 bool MediaControlOverlayPlayButtonElement::keepEventInNode(Event* event)
331 {
332 return isUserInteractionEvent(event);
333 }
334
298 335
299 // ---------------------------- 336 // ----------------------------
300 337
301 MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsB uttonElement(MediaControls& mediaControls) 338 MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsB uttonElement(MediaControls& mediaControls)
302 : MediaControlInputElement(mediaControls, MediaShowClosedCaptionsButton) 339 : MediaControlInputElement(mediaControls, MediaShowClosedCaptionsButton)
303 { 340 {
304 } 341 }
305 342
306 PassRefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> MediaContr olToggleClosedCaptionsButtonElement::create(MediaControls& mediaControls) 343 PassRefPtrWillBeRawPtr<MediaControlToggleClosedCaptionsButtonElement> MediaContr olToggleClosedCaptionsButtonElement::create(MediaControls& mediaControls)
307 { 344 {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 { 438 {
402 setFloatingPointAttribute(maxAttr, std::isfinite(duration) ? duration : 0); 439 setFloatingPointAttribute(maxAttr, std::isfinite(duration) ? duration : 0);
403 } 440 }
404 441
405 const AtomicString& MediaControlTimelineElement::shadowPseudoId() const 442 const AtomicString& MediaControlTimelineElement::shadowPseudoId() const
406 { 443 {
407 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-timeline", At omicString::ConstructFromLiteral)); 444 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-timeline", At omicString::ConstructFromLiteral));
408 return id; 445 return id;
409 } 446 }
410 447
448 bool MediaControlTimelineElement::keepEventInNode(Event* event)
449 {
450 return isUserInteractionEventForSlider(event);
451 }
452
411 // ---------------------------- 453 // ----------------------------
412 454
413 MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(MediaControls& mediaControls) 455 MediaControlVolumeSliderElement::MediaControlVolumeSliderElement(MediaControls& mediaControls)
414 : MediaControlInputElement(mediaControls, MediaVolumeSlider) 456 : MediaControlInputElement(mediaControls, MediaVolumeSlider)
415 { 457 {
416 } 458 }
417 459
418 PassRefPtrWillBeRawPtr<MediaControlVolumeSliderElement> MediaControlVolumeSlider Element::create(MediaControls& mediaControls) 460 PassRefPtrWillBeRawPtr<MediaControlVolumeSliderElement> MediaControlVolumeSlider Element::create(MediaControls& mediaControls)
419 { 461 {
420 RefPtrWillBeRawPtr<MediaControlVolumeSliderElement> slider = adoptRefWillBeN oop(new MediaControlVolumeSliderElement(mediaControls)); 462 RefPtrWillBeRawPtr<MediaControlVolumeSliderElement> slider = adoptRefWillBeN oop(new MediaControlVolumeSliderElement(mediaControls));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 if (value().toDouble() != volume) 506 if (value().toDouble() != volume)
465 setValue(String::number(volume)); 507 setValue(String::number(volume));
466 } 508 }
467 509
468 const AtomicString& MediaControlVolumeSliderElement::shadowPseudoId() const 510 const AtomicString& MediaControlVolumeSliderElement::shadowPseudoId() const
469 { 511 {
470 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-volume-slider ", AtomicString::ConstructFromLiteral)); 512 DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-volume-slider ", AtomicString::ConstructFromLiteral));
471 return id; 513 return id;
472 } 514 }
473 515
516 bool MediaControlVolumeSliderElement::keepEventInNode(Event* event)
517 {
518 return isUserInteractionEventForSlider(event);
519 }
520
474 // ---------------------------- 521 // ----------------------------
475 522
476 MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(MediaCo ntrols& mediaControls) 523 MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(MediaCo ntrols& mediaControls)
477 : MediaControlInputElement(mediaControls, MediaEnterFullscreenButton) 524 : MediaControlInputElement(mediaControls, MediaEnterFullscreenButton)
478 { 525 {
479 } 526 }
480 527
481 PassRefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> MediaControlFullscre enButtonElement::create(MediaControls& mediaControls) 528 PassRefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> MediaControlFullscre enButtonElement::create(MediaControls& mediaControls)
482 { 529 {
483 RefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> button = adoptRefWil lBeNoop(new MediaControlFullscreenButtonElement(mediaControls)); 530 RefPtrWillBeRawPtr<MediaControlFullscreenButtonElement> button = adoptRefWil lBeNoop(new MediaControlFullscreenButtonElement(mediaControls));
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 float fontSize = smallestDimension * 0.05f; 721 float fontSize = smallestDimension * 0.05f;
675 if (fontSize != m_fontSize) { 722 if (fontSize != m_fontSize) {
676 m_fontSize = fontSize; 723 m_fontSize = fontSize;
677 setInlineStyleProperty(CSSPropertyFontSize, fontSize, CSSPrimitiveValue: :CSS_PX); 724 setInlineStyleProperty(CSSPropertyFontSize, fontSize, CSSPrimitiveValue: :CSS_PX);
678 } 725 }
679 } 726 }
680 727
681 // ---------------------------- 728 // ----------------------------
682 729
683 } // namespace blink 730 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/html/shadow/MediaControlElements.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698