diff options
author | Ben Murdoch <benm@google.com> | 2011-06-10 14:53:17 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-10 15:41:18 +0100 |
commit | 0d60bcd000865d49c38ca619815d4cd7b2afc87a (patch) | |
tree | 44d7980f26a62e56141b165abd54ee8318d94e78 /Source | |
parent | 2525b58059d38fb2f98efc6fa54ee85859d26ed2 (diff) | |
download | external_webkit-0d60bcd000865d49c38ca619815d4cd7b2afc87a.zip external_webkit-0d60bcd000865d49c38ca619815d4cd7b2afc87a.tar.gz external_webkit-0d60bcd000865d49c38ca619815d4cd7b2afc87a.tar.bz2 |
Merge WebKit at r84325: Fix MediaControls.
Shadow DOM work needs to be applied to our local edits to make
SliderThumb work with touch events.
Several upstream changes are relevant...
http://trac.webkit.org/changeset/83256
http://trac.webkit.org/changeset/83397
http://trac.webkit.org/changeset/83545
http://trac.webkit.org/changeset/84222
Change-Id: Ie653c87e6e1d823c50ee22c406aaa79a22bcf530
Diffstat (limited to 'Source')
-rw-r--r-- | Source/WebCore/html/HTMLMediaElement.cpp | 5 | ||||
-rw-r--r-- | Source/WebCore/html/RangeInputType.cpp | 2 | ||||
-rw-r--r-- | Source/WebCore/html/shadow/MediaControlElements.cpp | 24 | ||||
-rw-r--r-- | Source/WebCore/html/shadow/MediaControls.cpp | 528 | ||||
-rw-r--r-- | Source/WebCore/html/shadow/MediaControls.h | 47 |
5 files changed, 21 insertions, 585 deletions
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp index 5505343..eb409af 100644 --- a/Source/WebCore/html/HTMLMediaElement.cpp +++ b/Source/WebCore/html/HTMLMediaElement.cpp @@ -2372,6 +2372,11 @@ void HTMLMediaElement::defaultEventHandler(Event* event) } } +#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) + if (event->isTouchEvent()) + m_mouseOver = !(event->type() == eventNames().touchendEvent || event->type() == eventNames().touchcancelEvent); +#endif + HTMLElement::defaultEventHandler(event); #endif } diff --git a/Source/WebCore/html/RangeInputType.cpp b/Source/WebCore/html/RangeInputType.cpp index 22e7f8e..783eabc 100644 --- a/Source/WebCore/html/RangeInputType.cpp +++ b/Source/WebCore/html/RangeInputType.cpp @@ -202,7 +202,7 @@ void RangeInputType::handleKeydownEvent(KeyboardEvent* event) #if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) void RangeInputType::handleTouchStartEvent(TouchEvent* touchEvent) { - if (SliderThumbElement* thumb = toSliderThumbElement(element()->shadowRoot())) { + if (SliderThumbElement* thumb = shadowSliderThumb()) { if (touchEvent->touches() && touchEvent->touches()->item(0)) { IntPoint curPoint; curPoint.setX(touchEvent->touches()->item(0)->pageX()); diff --git a/Source/WebCore/html/shadow/MediaControlElements.cpp b/Source/WebCore/html/shadow/MediaControlElements.cpp index 68b301e..394fd67 100644 --- a/Source/WebCore/html/shadow/MediaControlElements.cpp +++ b/Source/WebCore/html/shadow/MediaControlElements.cpp @@ -654,11 +654,21 @@ void MediaControlTimelineElement::defaultEventHandler(Event* event) if (event->type() == eventNames().mousedownEvent) mediaElement()->beginScrubbing(); +#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) + if (event->type() == eventNames().touchstartEvent) + mediaElement()->beginScrubbing(); +#endif + MediaControlInputElement::defaultEventHandler(event); if (event->type() == eventNames().mouseoverEvent || event->type() == eventNames().mouseoutEvent || event->type() == eventNames().mousemoveEvent) return; +#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) + if (event->type() == eventNames().touchmoveEvent || event->type() == eventNames().touchcancelEvent) + return; +#endif + float time = narrowPrecisionToFloat(value().toDouble()); if (time != mediaElement()->currentTime()) { // FIXME: This is fired 3 times on every click. We should not be doing that <http:/webkit.org/b/58160>. @@ -667,20 +677,16 @@ void MediaControlTimelineElement::defaultEventHandler(Event* event) } RenderSlider* slider = toRenderSlider(renderer()); -<<<<<<< HEAD:Source/WebCore/rendering/MediaControlElements.cpp - if (slider && slider->inDragMode()) { - toRenderMedia(mediaElement()->renderer())->controls()->updateTimeDisplay(); -#if PLATFORM(ANDROID) - toRenderMedia(mediaElement()->renderer())->controls()->updateLastTouch(); -#endif - } -======= if (slider && slider->inDragMode()) m_controls->updateTimeDisplay(); ->>>>>>> WebKit.org at r84325:Source/WebCore/html/shadow/MediaControlElements.cpp if (event->type() == eventNames().mouseupEvent) mediaElement()->endScrubbing(); + +#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) + if (event->type() == eventNames().touchendEvent) + mediaElement()->endScrubbing(); +#endif } void MediaControlTimelineElement::setPosition(float currentTime) diff --git a/Source/WebCore/html/shadow/MediaControls.cpp b/Source/WebCore/html/shadow/MediaControls.cpp index 690d1ce..661fd19 100644 --- a/Source/WebCore/html/shadow/MediaControls.cpp +++ b/Source/WebCore/html/shadow/MediaControls.cpp @@ -33,542 +33,14 @@ #include "HTMLDivElement.h" #include "HTMLMediaElement.h" #include "HTMLNames.h" -<<<<<<< HEAD -#include "MediaControlElements.h" -#include "MouseEvent.h" -#include "Page.h" -#include "RenderLayer.h" -#include "RenderTheme.h" -#include <wtf/CurrentTime.h> -#include <wtf/MathExtras.h> - -#if PLATFORM(ANDROID) -#include "TouchEvent.h" -#define TOUCH_DELAY 4 -#endif - - -using namespace std; -======= ->>>>>>> WebKit.org at r84325 namespace WebCore { MediaControls::MediaControls(HTMLMediaElement* mediaElement) -<<<<<<< HEAD - : m_mediaElement(mediaElement) - , m_opacityAnimationTimer(this, &MediaControls::opacityAnimationTimerFired) - , m_opacityAnimationStartTime(0) - , m_opacityAnimationDuration(0) - , m_opacityAnimationFrom(0) - , m_opacityAnimationTo(1.0f) - , m_mouseOver(false) -#if PLATFORM(ANDROID) - , m_lastTouch(0) -#endif -{ -} - -// FIXME: This will turn into the standard element factory method once shadow DOM conversion is complete. -// (see https://bugs.webkit.org/show_bug.cgi?id=53020) -PassRefPtr<MediaControlShadowRootElement> MediaControls::create(HTMLMediaElement* mediaElement) -{ - ASSERT(!m_panel); - ASSERT(!m_muteButton); - ASSERT(!m_playButton); - ASSERT(!m_returnToRealtimeButton); - ASSERT(!m_statusDisplay); - ASSERT(!m_timelineContainer); - ASSERT(!m_currentTimeDisplay); - ASSERT(!m_timeline); - ASSERT(!m_timeRemainingDisplay); - ASSERT(!m_seekBackButton); - ASSERT(!m_seekForwardButton); - ASSERT(!m_toggleClosedCaptionsButton); - ASSERT(!m_fullscreenButton); - ASSERT(!m_muteButton); - ASSERT(!m_volumeSliderContainer); - ASSERT(!m_volumeSlider); - ASSERT(!m_volumeSliderMuteButton); - ASSERT(!m_fullScreenMinVolumeButton); - ASSERT(!m_fullScreenMaxVolumeButton); - ASSERT(!m_fullScreenVolumeSlider); - - RefPtr<MediaControlShadowRootElement> controls = MediaControlShadowRootElement::create(mediaElement); - - m_panel = MediaControlPanelElement::create(mediaElement); - - m_rewindButton = MediaControlRewindButtonElement::create(mediaElement); - m_rewindButton->attachToParent(m_panel.get()); - - m_playButton = MediaControlPlayButtonElement::create(mediaElement); - m_playButton->attachToParent(m_panel.get()); - - m_returnToRealtimeButton = MediaControlReturnToRealtimeButtonElement::create(mediaElement); - m_returnToRealtimeButton->attachToParent(m_panel.get()); - - m_statusDisplay = MediaControlStatusDisplayElement::create(mediaElement); - m_statusDisplay->attachToParent(m_panel.get()); - - m_timelineContainer = MediaControlTimelineContainerElement::create(mediaElement); - - m_currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(mediaElement); - m_currentTimeDisplay->attachToParent(m_timelineContainer.get()); - - m_timeline = MediaControlTimelineElement::create(mediaElement); - m_timeline->attachToParent(m_timelineContainer.get()); - - m_timeRemainingDisplay = MediaControlTimeRemainingDisplayElement::create(mediaElement); - m_timeRemainingDisplay->attachToParent(m_timelineContainer.get()); - - m_timelineContainer->attachToParent(m_panel.get()); - - m_seekBackButton = MediaControlSeekBackButtonElement::create(mediaElement); - m_seekBackButton->attachToParent(m_panel.get()); - - m_seekForwardButton = MediaControlSeekForwardButtonElement::create(mediaElement); - m_seekForwardButton->attachToParent(m_panel.get()); - - m_toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(mediaElement); - m_toggleClosedCaptionsButton->attachToParent(m_panel.get()); - - m_fullscreenButton = MediaControlFullscreenButtonElement::create(mediaElement); - m_fullscreenButton->attachToParent(m_panel.get()); - - m_muteButton = MediaControlPanelMuteButtonElement::create(mediaElement); - m_muteButton->attachToParent(m_panel.get()); - - m_volumeSliderContainer = MediaControlVolumeSliderContainerElement::create(mediaElement); - - m_volumeSlider = MediaControlVolumeSliderElement::create(mediaElement); - m_volumeSlider->attachToParent(m_volumeSliderContainer.get()); - - m_volumeSliderMuteButton = MediaControlVolumeSliderMuteButtonElement::create(mediaElement); - m_volumeSliderMuteButton->attachToParent(m_volumeSliderContainer.get()); - - m_volumeSliderContainer->attachToParent(m_panel.get()); - - // FIXME: These controls, and others, should be created dynamically when needed, instead of - // always created. <http://webkit.org/b/57163> - m_fullScreenMinVolumeButton = MediaControlFullscreenVolumeMinButtonElement::create(mediaElement); - m_fullScreenMinVolumeButton->attachToParent(m_panel.get()); - - m_fullScreenVolumeSlider = MediaControlFullscreenVolumeSliderElement::create(mediaElement); - m_fullScreenVolumeSlider->attachToParent(m_panel.get()); - - m_fullScreenMaxVolumeButton = MediaControlFullscreenVolumeMaxButtonElement::create(mediaElement); - m_fullScreenMaxVolumeButton->attachToParent(m_panel.get()); - - m_panel->attachToParent(controls.get()); - return controls.release(); -} - -void MediaControls::reset() -{ - update(); -} - -void MediaControls::playbackProgressed() -{ - if (m_timeline) - m_timeline->update(false); - updateTimeDisplay(); -} - -void MediaControls::playbackStarted() -{ - playbackProgressed(); -} - -void MediaControls::playbackStopped() -{ - playbackProgressed(); -} - -void MediaControls::changedMute() -{ - update(); -} - -void MediaControls::changedVolume() -{ - update(); -} - -void MediaControls::changedClosedCaptionsVisibility() -{ - update(); -} - -void MediaControls::updateStyle() -{ - if (!m_controlsShadowRoot) - return; - - if (m_panel) - m_panel->updateStyle(); - if (m_muteButton) - m_muteButton->updateStyle(); - if (m_playButton) - m_playButton->updateStyle(); - if (m_seekBackButton) - m_seekBackButton->updateStyle(); - if (m_seekForwardButton) - m_seekForwardButton->updateStyle(); - if (m_rewindButton) - m_rewindButton->updateStyle(); - if (m_returnToRealtimeButton) - m_returnToRealtimeButton->updateStyle(); - if (m_toggleClosedCaptionsButton) - m_toggleClosedCaptionsButton->updateStyle(); - if (m_statusDisplay) - m_statusDisplay->updateStyle(); - if (m_timelineContainer) - m_timelineContainer->updateStyle(); - if (m_timeline) - m_timeline->updateStyle(); - if (m_fullscreenButton) - m_fullscreenButton->updateStyle(); - if (m_currentTimeDisplay) - m_currentTimeDisplay->updateStyle(); - if (m_timeRemainingDisplay) - m_timeRemainingDisplay->updateStyle(); - if (m_volumeSliderContainer) - m_volumeSliderContainer->updateStyle(); - if (m_volumeSliderMuteButton) - m_volumeSliderMuteButton->updateStyle(); - if (m_volumeSlider) - m_volumeSlider->updateStyle(); - if (m_fullScreenMinVolumeButton) - m_fullScreenMinVolumeButton->updateStyle(); - if (m_fullScreenVolumeSlider) - m_fullScreenVolumeSlider->updateStyle(); - if (m_fullScreenMaxVolumeButton) - m_fullScreenMaxVolumeButton->updateStyle(); -} - -void MediaControls::destroy() -{ - ASSERT(m_mediaElement->renderer()); - - if (m_controlsShadowRoot && m_controlsShadowRoot->renderer()) { - - // detach the panel before removing the shadow renderer to prevent a crash in m_controlsShadowRoot->detach() - // when display: style changes - m_panel->detach(); - - m_mediaElement->renderer()->removeChild(m_controlsShadowRoot->renderer()); - m_controlsShadowRoot->detach(); - m_controlsShadowRoot = 0; - } -} - -void MediaControls::update() -{ - HTMLMediaElement* media = m_mediaElement; - if (!media->controls() || !media->inActiveDocument()) { - if (m_controlsShadowRoot) { - m_controlsShadowRoot->detach(); - m_panel = 0; - m_muteButton = 0; - m_playButton = 0; - m_statusDisplay = 0; - m_timelineContainer = 0; - m_timeline = 0; - m_seekBackButton = 0; - m_seekForwardButton = 0; - m_rewindButton = 0; - m_returnToRealtimeButton = 0; - m_currentTimeDisplay = 0; - m_timeRemainingDisplay = 0; - m_fullscreenButton = 0; - m_volumeSliderContainer = 0; - m_volumeSlider = 0; - m_volumeSliderMuteButton = 0; - m_controlsShadowRoot = 0; - m_toggleClosedCaptionsButton = 0; - m_fullScreenMinVolumeButton = 0; - m_fullScreenVolumeSlider = 0; - m_fullScreenMaxVolumeButton = 0; - } - m_opacityAnimationTo = 1.0f; - m_opacityAnimationTimer.stop(); - return; - } - - if (!m_controlsShadowRoot) { - m_controlsShadowRoot = create(m_mediaElement); - m_mediaElement->renderer()->addChild(m_controlsShadowRoot->renderer()); - m_panel->attach(); - } - - if (m_panel) { - // update() might alter the opacity of the element, especially if we are in the middle - // of an animation. This is the only element concerned as we animate only this element. - float opacityBeforeChangingStyle = m_panel->renderer() ? m_panel->renderer()->style()->opacity() : 0; - m_panel->update(); - changeOpacity(m_panel.get(), opacityBeforeChangingStyle); - } - if (m_muteButton) - m_muteButton->update(); - if (m_playButton) - m_playButton->update(); - if (m_timelineContainer) - m_timelineContainer->update(); - if (m_volumeSliderContainer) - m_volumeSliderContainer->update(); - if (m_timeline) - m_timeline->update(); - if (m_currentTimeDisplay) - m_currentTimeDisplay->update(); - if (m_timeRemainingDisplay) - m_timeRemainingDisplay->update(); - if (m_seekBackButton) - m_seekBackButton->update(); - if (m_seekForwardButton) - m_seekForwardButton->update(); - if (m_rewindButton) - m_rewindButton->update(); - if (m_returnToRealtimeButton) - m_returnToRealtimeButton->update(); - if (m_toggleClosedCaptionsButton) - m_toggleClosedCaptionsButton->update(); - if (m_statusDisplay) - m_statusDisplay->update(); - if (m_fullscreenButton) - m_fullscreenButton->update(); - if (m_volumeSlider) - m_volumeSlider->update(); - if (m_volumeSliderMuteButton) - m_volumeSliderMuteButton->update(); - if (m_fullScreenMinVolumeButton) - m_fullScreenMinVolumeButton->update(); - if (m_fullScreenVolumeSlider) - m_fullScreenVolumeSlider->update(); - if (m_fullScreenMaxVolumeButton) - m_fullScreenMaxVolumeButton->update(); - updateTimeDisplay(); - updateControlVisibility(); -} - -void MediaControls::updateTimeDisplay() -{ - ASSERT(m_mediaElement->renderer()); - - if (!m_currentTimeDisplay || !m_currentTimeDisplay->renderer() || m_currentTimeDisplay->renderer()->style()->display() == NONE || m_mediaElement->renderer()->style()->visibility() != VISIBLE) - return; - - float now = m_mediaElement->currentTime(); - float duration = m_mediaElement->duration(); - - // Allow the theme to format the time - ExceptionCode ec; - m_currentTimeDisplay->setInnerText(m_mediaElement->renderer()->theme()->formatMediaControlsCurrentTime(now, duration), ec); - m_currentTimeDisplay->setCurrentValue(now); - m_timeRemainingDisplay->setInnerText(m_mediaElement->renderer()->theme()->formatMediaControlsRemainingTime(now, duration), ec); - m_timeRemainingDisplay->setCurrentValue(now - duration); -} - -RenderBox* MediaControls::renderBox() -{ - return m_controlsShadowRoot ? m_controlsShadowRoot->renderBox() : 0; -} - -void MediaControls::updateControlVisibility() -{ - if (!m_panel || !m_panel->renderer()) - return; - - // Don't fade for audio controls. - HTMLMediaElement* media = m_mediaElement; - if (!media->hasVideo()) - return; - - ASSERT(media->renderer()); - - // Don't fade if the media element is not visible - if (media->renderer()->style()->visibility() != VISIBLE) - return; - -#if PLATFORM(ANDROID) - if (WTF::currentTime() - m_lastTouch > TOUCH_DELAY) - m_mouseOver = false; - else - m_mouseOver = true; -#endif - - bool shouldHideController = !m_mouseOver && !media->canPlay(); - - // Do fading manually, css animations don't work with shadow trees - - float animateFrom = m_panel->renderer()->style()->opacity(); - float animateTo = shouldHideController ? 0.0f : 1.0f; - - if (animateFrom == animateTo) - return; - - if (m_opacityAnimationTimer.isActive()) { - if (m_opacityAnimationTo == animateTo) - return; - m_opacityAnimationTimer.stop(); - } - - if (animateFrom < animateTo) - m_opacityAnimationDuration = m_panel->renderer()->theme()->mediaControlsFadeInDuration(); - else - m_opacityAnimationDuration = m_panel->renderer()->theme()->mediaControlsFadeOutDuration(); - - m_opacityAnimationFrom = animateFrom; - m_opacityAnimationTo = animateTo; - - m_opacityAnimationStartTime = currentTime(); - m_opacityAnimationTimer.startRepeating(cOpacityAnimationRepeatDelay); -} - -void MediaControls::changeOpacity(HTMLElement* e, float opacity) -{ - if (!e || !e->renderer() || !e->renderer()->style()) - return; - RefPtr<RenderStyle> s = RenderStyle::clone(e->renderer()->style()); - s->setOpacity(opacity); - // z-index can't be auto if opacity is used - s->setZIndex(0); - e->renderer()->setStyle(s.release()); -} - -void MediaControls::opacityAnimationTimerFired(Timer<MediaControls>*) -{ - double time = currentTime() - m_opacityAnimationStartTime; - if (time >= m_opacityAnimationDuration) { - time = m_opacityAnimationDuration; - m_opacityAnimationTimer.stop(); - } - float opacity = narrowPrecisionToFloat(m_opacityAnimationFrom + (m_opacityAnimationTo - m_opacityAnimationFrom) * time / m_opacityAnimationDuration); - changeOpacity(m_panel.get(), opacity); -} - -void MediaControls::updateVolumeSliderContainer(bool visible) -{ - if (!m_mediaElement->hasAudio() || !m_volumeSliderContainer || !m_volumeSlider) - return; - - if (visible && !m_volumeSliderContainer->isVisible()) { - if (!m_muteButton || !m_muteButton->renderer() || !m_muteButton->renderBox()) - return; - - RefPtr<RenderStyle> s = m_volumeSliderContainer->styleForElement(); - m_volumeSliderContainer->setVisible(true); - m_volumeSliderContainer->update(); - m_volumeSlider->update(); - } else if (!visible && m_volumeSliderContainer->isVisible()) { - m_volumeSliderContainer->setVisible(false); - m_volumeSliderContainer->updateStyle(); - } -} - -void MediaControls::forwardEvent(Event* event) -{ -#if PLATFORM(ANDROID) - if (event->isMouseEvent()) - updateLastTouch(); -#if ENABLE(TOUCH_EVENTS) - if (event->isTouchEvent()) - updateLastTouch(); -#endif -#endif - - ASSERT(m_mediaElement->renderer()); - - if (event->isMouseEvent() && m_controlsShadowRoot) { - MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); - IntPoint point(mouseEvent->absoluteLocation()); - - bool defaultHandled = false; - if (m_volumeSliderMuteButton && m_volumeSliderMuteButton->hitTest(point)) { - m_volumeSliderMuteButton->defaultEventHandler(event); - defaultHandled = event->defaultHandled(); - } - - bool showVolumeSlider = false; - if (!defaultHandled && m_muteButton && m_muteButton->hitTest(point)) { - m_muteButton->defaultEventHandler(event); - if (event->type() != eventNames().mouseoutEvent) - showVolumeSlider = true; - } - - if (m_volumeSliderContainer && m_volumeSliderContainer->hitTest(point)) - showVolumeSlider = true; - - if (m_volumeSlider && m_volumeSlider->hitTest(point)) { - m_volumeSlider->defaultEventHandler(event); - showVolumeSlider = true; - } - - updateVolumeSliderContainer(showVolumeSlider); - - if (m_playButton && m_playButton->hitTest(point)) - m_playButton->defaultEventHandler(event); - - if (m_seekBackButton && m_seekBackButton->hitTest(point)) - m_seekBackButton->defaultEventHandler(event); - - if (m_seekForwardButton && m_seekForwardButton->hitTest(point)) - m_seekForwardButton->defaultEventHandler(event); - - if (m_rewindButton && m_rewindButton->hitTest(point)) - m_rewindButton->defaultEventHandler(event); - - if (m_returnToRealtimeButton && m_returnToRealtimeButton->hitTest(point)) - m_returnToRealtimeButton->defaultEventHandler(event); - - if (m_toggleClosedCaptionsButton && m_toggleClosedCaptionsButton->hitTest(point)) - m_toggleClosedCaptionsButton->defaultEventHandler(event); - - if (m_timeline && m_timeline->hitTest(point)) - m_timeline->defaultEventHandler(event); - - if (m_fullscreenButton && m_fullscreenButton->hitTest(point)) - m_fullscreenButton->defaultEventHandler(event); - - if (event->type() == eventNames().mouseoverEvent) { - m_mouseOver = true; - updateControlVisibility(); - } - if (event->type() == eventNames().mouseoutEvent) { - // When the scrollbar thumb captures mouse events, we should treat the mouse as still being over our renderer if the new target is a descendant - Node* mouseOverNode = mouseEvent->relatedTarget() ? mouseEvent->relatedTarget()->toNode() : 0; - RenderObject* mouseOverRenderer = mouseOverNode ? mouseOverNode->renderer() : 0; - m_mouseOver = mouseOverRenderer && mouseOverRenderer->isDescendantOf(m_mediaElement->renderer()); - updateControlVisibility(); - } - } -#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) - // We want to process touch events landing on the timeline so that the user - // can drag the scrollbar thumb with their finger. - else if (event->isTouchEvent() && m_controlsShadowRoot) { - TouchEvent* touchEvent = static_cast<TouchEvent*>(event); - if (touchEvent->touches() && touchEvent->touches()->item(0)) { - IntPoint point; - point.setX(touchEvent->touches()->item(0)->pageX()); - point.setY(touchEvent->touches()->item(0)->pageY()); - if (m_timeline && m_timeline->hitTest(point)) - m_timeline->defaultEventHandler(event); - } - } -#endif -======= : HTMLDivElement(HTMLNames::divTag, mediaElement->document()) { ->>>>>>> WebKit.org at r84325 } -#if PLATFORM(ANDROID) -void MediaControls::updateLastTouch() -{ - m_lastTouch = WTF::currentTime(); -} -#endif - } #endif diff --git a/Source/WebCore/html/shadow/MediaControls.h b/Source/WebCore/html/shadow/MediaControls.h index a14b359..dc88ebb 100644 --- a/Source/WebCore/html/shadow/MediaControls.h +++ b/Source/WebCore/html/shadow/MediaControls.h @@ -54,17 +54,8 @@ class MediaControls : public HTMLDivElement { virtual void playbackStarted() = 0; virtual void playbackStopped() = 0; -<<<<<<< HEAD -#if PLATFORM(ANDROID) - void updateLastTouch(); -#endif - -private: - PassRefPtr<MediaControlShadowRootElement> create(HTMLMediaElement*); -======= virtual void changedMute() = 0; virtual void changedVolume() = 0; ->>>>>>> WebKit.org at r84325 virtual void enteredFullscreen() = 0; virtual void exitedFullscreen() = 0; @@ -81,45 +72,7 @@ protected: MediaControls(HTMLMediaElement*); private: -<<<<<<< HEAD - RefPtr<MediaControlShadowRootElement> m_controlsShadowRoot; - RefPtr<MediaControlElement> m_panel; - RefPtr<MediaControlMuteButtonElement> m_muteButton; - RefPtr<MediaControlPlayButtonElement> m_playButton; - RefPtr<MediaControlSeekButtonElement> m_seekBackButton; - RefPtr<MediaControlSeekButtonElement> m_seekForwardButton; - RefPtr<MediaControlRewindButtonElement> m_rewindButton; - RefPtr<MediaControlReturnToRealtimeButtonElement> m_returnToRealtimeButton; - RefPtr<MediaControlToggleClosedCaptionsButtonElement> m_toggleClosedCaptionsButton; - RefPtr<MediaControlTimelineElement> m_timeline; - RefPtr<MediaControlVolumeSliderElement> m_volumeSlider; - RefPtr<MediaControlMuteButtonElement> m_volumeSliderMuteButton; - RefPtr<MediaControlFullscreenButtonElement> m_fullscreenButton; - RefPtr<MediaControlTimelineContainerElement> m_timelineContainer; - RefPtr<MediaControlVolumeSliderContainerElement> m_volumeSliderContainer; - RefPtr<MediaControlTimeDisplayElement> m_currentTimeDisplay; - RefPtr<MediaControlTimeDisplayElement> m_timeRemainingDisplay; - RefPtr<MediaControlStatusDisplayElement> m_statusDisplay; - RefPtr<MediaControlFullscreenVolumeMinButtonElement> m_fullScreenMinVolumeButton; - RefPtr<MediaControlFullscreenVolumeSliderElement> m_fullScreenVolumeSlider; - RefPtr<MediaControlFullscreenVolumeMaxButtonElement> m_fullScreenMaxVolumeButton; - - HTMLMediaElement* m_mediaElement; - Timer<MediaControls> m_opacityAnimationTimer; - - double m_opacityAnimationStartTime; - double m_opacityAnimationDuration; - float m_opacityAnimationFrom; - float m_opacityAnimationTo; - - bool m_mouseOver; - -#if PLATFORM(ANDROID) - double m_lastTouch; -#endif -======= MediaControls(); ->>>>>>> WebKit.org at r84325 }; } |