Changeset 77954 in webkit


Ignore:
Timestamp:
Feb 8, 2011 10:35:22 AM (13 years ago)
Author:
Dimitri Glazkov
Message:

2011-01-28 Dimitri Glazkov <Dimitri Glazkov>

Reviewed by Darin Adler.

Change the rest of HTMLMediaElement shadow DOM parts to use shadowPseudoId.
https://bugs.webkit.org/show_bug.cgi?id=53190

This is the second part of refactoring the HTMLMediaElement to use new
shadow DOM. The changes are mainly mechanical, except for needing to
add a new method to RenderTheme, which indicates whether or not status
display is being used by it. Previously, we relied on existence of a cached
pseudo style.

Refactoring, covered by existing tests.

  • css/CSSSelector.cpp: (WebCore::CSSSelector::pseudoId): Removed now-unused enum values. (WebCore::nameToPseudoTypeMap): Ditto. (WebCore::CSSSelector::extractPseudoType): Ditto.
  • css/CSSSelector.h: Ditto.
  • html/shadow/MediaControls.cpp: (WebCore::MediaControls::createPanel): Changed to use the newly-added MediaControlPanelElement. (WebCore::MediaControls::createCurrentTimeDisplay): Changed to use the newly-added

MediaControlCurrentTimeDisplayElement.

(WebCore::MediaControls::createTimeRemainingDisplay): Changed to use the newly-added

MediaControlTimeRemainingDisplayElement.

  • rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::updateStyle): Changed to use the

standard style resolution.

(WebCore::MediaControlShadowRootElement::shadowPseudoId): Added.
(WebCore::MediaControlElement::MediaControlElement): Removed the switch statement

that is no longer necessary.

(WebCore::MediaControlElement::styleForElement): Changed to use the standard

style resolution.

(WebCore::MediaControlPanelElement::MediaControlPanelElement): Added.
(WebCore::MediaControlPanelElement::create): Added.
(WebCore::MediaControlPanelElement::displayType): Added.
(WebCore::MediaControlPanelElement::shadowPseudoId): Added.
(WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):

Removed PseudoId constructor arg.

(WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):

Changed to use the newly-plumbed usesMediaControlStatusDisplay helper.

(WebCore::MediaControlTimelineContainerElement::displayType): Added.
(WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Added.
(WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):

Removed PseudoId constructor arg.

(WebCore::MediaControlVolumeSliderContainerElement::displayType): Added.
(WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Added.
(WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):

Removed PseudoId constructor arg.

(WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): Changed to

use the newly-plumbed usesMediaControlStatusDisplay helper.

(WebCore::MediaControlStatusDisplayElement::displayType): Added.
(WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Added.
(WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):

Removed PseudoId constructor arg.

(WebCore::MediaControlTimeRemainingDisplayElement::create): Added.
(WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Added.
(WebCore::MediaControlTimeRemainingDisplayElement::displayType): Added.
(WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Added.
(WebCore::MediaControlCurrentTimeDisplayElement::create): Added.
(WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Added.
(WebCore::MediaControlCurrentTimeDisplayElement::displayType): Added.
(WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Added.

  • rendering/MediaControlElements.h: Added/changed defs accordingly.
  • rendering/RenderTheme.h: (WebCore::RenderTheme::usesMediaControlStatusDisplay): Added.
  • rendering/RenderThemeMac.h: Added def.
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::usesMediaControlStatusDisplay): Added.
  • rendering/style/RenderStyleConstants.h: Removed now-unused enum values.
Location:
trunk/Source/WebCore
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r77952 r77954  
     12011-01-28  Dimitri Glazkov  <dglazkov@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Change the rest of HTMLMediaElement shadow DOM parts to use shadowPseudoId.
     6        https://bugs.webkit.org/show_bug.cgi?id=53190
     7
     8        This is the second part of refactoring the HTMLMediaElement to use new
     9        shadow DOM. The changes are mainly mechanical, except for needing to
     10        add a new method to RenderTheme, which indicates whether or not status
     11        display is being used by it. Previously, we relied on existence of a cached
     12        pseudo style.
     13
     14        Refactoring, covered by existing tests.
     15
     16        * css/CSSSelector.cpp:
     17        (WebCore::CSSSelector::pseudoId): Removed now-unused enum values.
     18        (WebCore::nameToPseudoTypeMap): Ditto.
     19        (WebCore::CSSSelector::extractPseudoType): Ditto.
     20        * css/CSSSelector.h: Ditto.
     21        * html/shadow/MediaControls.cpp:
     22        (WebCore::MediaControls::createPanel): Changed to use the newly-added MediaControlPanelElement.
     23        (WebCore::MediaControls::createCurrentTimeDisplay): Changed to use the newly-added
     24            MediaControlCurrentTimeDisplayElement.
     25        (WebCore::MediaControls::createTimeRemainingDisplay): Changed to use the newly-added
     26                MediaControlTimeRemainingDisplayElement.
     27        * rendering/MediaControlElements.cpp:
     28        (WebCore::MediaControlShadowRootElement::updateStyle): Changed to use the
     29            standard style resolution.
     30        (WebCore::MediaControlShadowRootElement::shadowPseudoId): Added.
     31        (WebCore::MediaControlElement::MediaControlElement): Removed the switch statement
     32            that is no longer necessary.
     33        (WebCore::MediaControlElement::styleForElement): Changed to use the standard
     34            style resolution.
     35        (WebCore::MediaControlPanelElement::MediaControlPanelElement): Added.
     36        (WebCore::MediaControlPanelElement::create): Added.
     37        (WebCore::MediaControlPanelElement::displayType): Added.
     38        (WebCore::MediaControlPanelElement::shadowPseudoId): Added.
     39        (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
     40            Removed PseudoId constructor arg.
     41        (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
     42            Changed to use the newly-plumbed usesMediaControlStatusDisplay helper.
     43        (WebCore::MediaControlTimelineContainerElement::displayType): Added.
     44        (WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Added.
     45        (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
     46            Removed PseudoId constructor arg.
     47        (WebCore::MediaControlVolumeSliderContainerElement::displayType): Added.
     48        (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Added.
     49        (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
     50            Removed PseudoId constructor arg.
     51        (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): Changed to
     52            use the newly-plumbed usesMediaControlStatusDisplay helper.
     53        (WebCore::MediaControlStatusDisplayElement::displayType): Added.
     54        (WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Added.
     55        (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
     56            Removed PseudoId constructor arg.
     57        (WebCore::MediaControlTimeRemainingDisplayElement::create): Added.
     58        (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Added.
     59        (WebCore::MediaControlTimeRemainingDisplayElement::displayType): Added.
     60        (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Added.
     61        (WebCore::MediaControlCurrentTimeDisplayElement::create): Added.
     62        (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Added.
     63        (WebCore::MediaControlCurrentTimeDisplayElement::displayType): Added.
     64        (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Added.
     65        * rendering/MediaControlElements.h: Added/changed defs accordingly.
     66        * rendering/RenderTheme.h:
     67        (WebCore::RenderTheme::usesMediaControlStatusDisplay): Added.
     68        * rendering/RenderThemeMac.h: Added def.
     69        * rendering/RenderThemeMac.mm:
     70        (WebCore::RenderThemeMac::usesMediaControlStatusDisplay): Added.
     71        * rendering/style/RenderStyleConstants.h: Removed now-unused enum values.
     72
    1732011-02-08  Xiaomei Ji  <xji@chromium.org>
    274
  • trunk/Source/WebCore/css/CSSSelector.cpp

    r77211 r77954  
    139139    case PseudoSearchResultsButton:
    140140        return SEARCH_RESULTS_BUTTON;
    141     case PseudoMediaControlsPanel:
    142         return MEDIA_CONTROLS_PANEL;
    143     case PseudoMediaControlsTimelineContainer:
    144         return MEDIA_CONTROLS_TIMELINE_CONTAINER;
    145     case PseudoMediaControlsVolumeSliderContainer:
    146         return MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER;
    147     case PseudoMediaControlsCurrentTimeDisplay:
    148         return MEDIA_CONTROLS_CURRENT_TIME_DISPLAY;
    149     case PseudoMediaControlsTimeRemainingDisplay:
    150         return MEDIA_CONTROLS_TIME_REMAINING_DISPLAY;
    151     case PseudoMediaControlsStatusDisplay:
    152         return MEDIA_CONTROLS_STATUS_DISPLAY;
    153141    case PseudoScrollbar:
    154142        return SCROLLBAR;
     
    317305    DEFINE_STATIC_LOCAL(AtomicString, link, ("link"));
    318306    DEFINE_STATIC_LOCAL(AtomicString, lang, ("lang("));
    319     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsPanel, ("-webkit-media-controls-panel"));
    320     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsStatusDisplay, ("-webkit-media-controls-status-display"));
    321     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsTimelineContainer, ("-webkit-media-controls-timeline-container"));
    322     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsVolumeSliderContainer, ("-webkit-media-controls-volume-slider-container"));
    323     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsCurrentTimeDisplay, ("-webkit-media-controls-current-time-display"));
    324     DEFINE_STATIC_LOCAL(AtomicString, mediaControlsTimeRemainingDisplay, ("-webkit-media-controls-time-remaining-display"));
    325307    DEFINE_STATIC_LOCAL(AtomicString, notStr, ("not("));
    326308    DEFINE_STATIC_LOCAL(AtomicString, onlyChild, ("only-child"));
     
    419401        nameToPseudoType->set(link.impl(), CSSSelector::PseudoLink);
    420402        nameToPseudoType->set(lang.impl(), CSSSelector::PseudoLang);
    421         nameToPseudoType->set(mediaControlsPanel.impl(), CSSSelector::PseudoMediaControlsPanel);
    422         nameToPseudoType->set(mediaControlsCurrentTimeDisplay.impl(), CSSSelector::PseudoMediaControlsCurrentTimeDisplay);
    423         nameToPseudoType->set(mediaControlsTimeRemainingDisplay.impl(), CSSSelector::PseudoMediaControlsTimeRemainingDisplay);
    424         nameToPseudoType->set(mediaControlsStatusDisplay.impl(), CSSSelector::PseudoMediaControlsStatusDisplay);
    425         nameToPseudoType->set(mediaControlsTimelineContainer.impl(), CSSSelector::PseudoMediaControlsTimelineContainer);
    426         nameToPseudoType->set(mediaControlsVolumeSliderContainer.impl(), CSSSelector::PseudoMediaControlsVolumeSliderContainer);
    427403        nameToPseudoType->set(notStr.impl(), CSSSelector::PseudoNot);
    428404        nameToPseudoType->set(nthChild.impl(), CSSSelector::PseudoNthChild);
     
    515491#endif
    516492    case PseudoInnerSpinButton:
    517     case PseudoMediaControlsPanel:
    518     case PseudoMediaControlsCurrentTimeDisplay:
    519     case PseudoMediaControlsTimeRemainingDisplay:
    520     case PseudoMediaControlsStatusDisplay:
    521     case PseudoMediaControlsTimelineContainer:
    522     case PseudoMediaControlsVolumeSliderContainer:
    523493    case PseudoMeterHorizontalBar:
    524494    case PseudoMeterHorizontalOptimum:
  • trunk/Source/WebCore/css/CSSSelector.h

    r77211 r77954  
    176176            PseudoSearchResultsDecoration,
    177177            PseudoSearchResultsButton,
    178             PseudoMediaControlsPanel,
    179             PseudoMediaControlsTimelineContainer,
    180             PseudoMediaControlsVolumeSliderContainer,
    181             PseudoMediaControlsCurrentTimeDisplay,
    182             PseudoMediaControlsTimeRemainingDisplay,
    183             PseudoMediaControlsStatusDisplay,
    184178            PseudoMeterHorizontalBar,
    185179            PseudoMeterVerticalBar,
  • trunk/Source/WebCore/html/shadow/MediaControls.cpp

    r76951 r77954  
    240240{
    241241    ASSERT(!m_panel);
    242     m_panel = MediaControlElement::create(m_mediaElement, MEDIA_CONTROLS_PANEL);
     242    m_panel = MediaControlPanelElement::create(m_mediaElement);
    243243    m_panel->attachToParent(m_controlsShadowRoot.get());
    244244}
     
    342342{
    343343    ASSERT(!m_currentTimeDisplay);
    344     m_currentTimeDisplay = MediaControlTimeDisplayElement::create(m_mediaElement, MEDIA_CONTROLS_CURRENT_TIME_DISPLAY);
     344    m_currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(m_mediaElement);
    345345    m_currentTimeDisplay->attachToParent(m_timelineContainer.get());
    346346}
     
    349349{
    350350    ASSERT(!m_timeRemainingDisplay);
    351     m_timeRemainingDisplay = MediaControlTimeDisplayElement::create(m_mediaElement, MEDIA_CONTROLS_TIME_REMAINING_DISPLAY);
     351    m_timeRemainingDisplay = MediaControlTimeRemainingDisplayElement::create(m_mediaElement);
    352352    m_timeRemainingDisplay->attachToParent(m_timelineContainer.get());
    353353}
  • trunk/Source/WebCore/html/shadow/MediaControls.h

    r76950 r77954  
    4242class MediaControlPlayButtonElement;
    4343class MediaControlSeekButtonElement;
     44class MediaControlShadowRootElement;
    4445class MediaControlRewindButtonElement;
    4546class MediaControlReturnToRealtimeButtonElement;
     
    103104
    104105private:
    105     RefPtr<HTMLElement> m_controlsShadowRoot;
     106    RefPtr<MediaControlShadowRootElement> m_controlsShadowRoot;
    106107    RefPtr<MediaControlElement> m_panel;
    107108    RefPtr<MediaControlMuteButtonElement> m_muteButton;
  • trunk/Source/WebCore/rendering/MediaControlElements.cpp

    r76951 r77954  
    9191}
    9292
    93 void MediaControlShadowRootElement::updateStyle()
    94 {
    95     if (renderer()) {
    96         RenderStyle* timelineContainerStyle = shadowHost()->renderer()->getCachedPseudoStyle(MEDIA_CONTROLS_TIMELINE_CONTAINER);
    97         renderer()->setStyle(timelineContainerStyle);
    98     }
    99 }
    100 
    10193void MediaControlShadowRootElement::detach()
    10294{
     
    108100// ----------------------------
    109101
    110 MediaControlElement::MediaControlElement(HTMLMediaElement* mediaElement, PseudoId pseudo)
     102MediaControlElement::MediaControlElement(HTMLMediaElement* mediaElement)
    111103    : HTMLDivElement(divTag, mediaElement->document())
    112104    , m_mediaElement(mediaElement)
    113     , m_pseudoStyleId(pseudo)
    114105{
    115106    setInDocument();
    116     switch (pseudo) {
    117     case MEDIA_CONTROLS_CURRENT_TIME_DISPLAY:
    118         m_displayType = MediaCurrentTimeDisplay;
    119         break;
    120     case MEDIA_CONTROLS_TIME_REMAINING_DISPLAY:
    121         m_displayType = MediaTimeRemainingDisplay;
    122         break;
    123     case MEDIA_CONTROLS_TIMELINE_CONTAINER:
    124         m_displayType = MediaTimelineContainer;
    125         break;
    126     case MEDIA_CONTROLS_STATUS_DISPLAY:
    127         m_displayType = MediaStatusDisplay;
    128         break;
    129     case MEDIA_CONTROLS_PANEL:
    130         m_displayType = MediaControlsPanel;
    131         break;
    132     case MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER:
    133         m_displayType = MediaVolumeSliderContainer;
    134         break;
    135     default:
    136         ASSERT_NOT_REACHED();
    137         break;
    138     }
    139 }
    140 
    141 PassRefPtr<MediaControlElement> MediaControlElement::create(HTMLMediaElement* mediaElement, PseudoId pseudoStyleId)
    142 {
    143     return adoptRef(new MediaControlElement(mediaElement, pseudoStyleId));
    144107}
    145108
     
    160123PassRefPtr<RenderStyle> MediaControlElement::styleForElement()
    161124{
    162     RenderStyle* style = m_mediaElement->renderer()->getCachedPseudoStyle(m_pseudoStyleId);
     125    ASSERT(m_mediaElement->renderer());
     126    RefPtr<RenderStyle> style = document()->styleSelector()->styleForElement(this, m_mediaElement->renderer()->style(), true);
    163127    if (!style)
    164128        return 0;
     
    228192// ----------------------------
    229193
     194inline MediaControlPanelElement::MediaControlPanelElement(HTMLMediaElement* mediaElement)
     195    : MediaControlElement(mediaElement)
     196{
     197}
     198
     199PassRefPtr<MediaControlPanelElement> MediaControlPanelElement::create(HTMLMediaElement* mediaElement)
     200{
     201    return adoptRef(new MediaControlPanelElement(mediaElement));
     202}
     203
     204MediaControlElementType MediaControlPanelElement::displayType() const
     205{
     206    return MediaControlsPanel;
     207}
     208
     209const AtomicString& MediaControlPanelElement::shadowPseudoId() const
     210{
     211    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-panel"));
     212    return id;
     213}
     214
     215// ----------------------------
     216
    230217inline MediaControlTimelineContainerElement::MediaControlTimelineContainerElement(HTMLMediaElement* mediaElement)
    231     : MediaControlElement(mediaElement, MEDIA_CONTROLS_TIMELINE_CONTAINER)
     218    : MediaControlElement(mediaElement)
    232219{
    233220}
     
    243230        return false;
    244231
    245     // This is for MediaControllerThemeClassic:
    246     // If there is no style for MediaControlStatusDisplayElement style, don't hide
    247     // the timeline.
    248     if (!mediaElement()->renderer()->getCachedPseudoStyle(MEDIA_CONTROLS_STATUS_DISPLAY))
     232    // Always show the timeline if the theme doesn't use status display (MediaControllerThemeClassic, for instance).
     233    if (!document()->page()->theme()->usesMediaControlStatusDisplay())
    249234        return true;
    250235
     
    253238}
    254239
     240MediaControlElementType MediaControlTimelineContainerElement::displayType() const
     241{
     242    return MediaTimelineContainer;
     243}
     244
     245const AtomicString& MediaControlTimelineContainerElement::shadowPseudoId() const
     246{
     247    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-timeline-container"));
     248    return id;
     249}
     250
    255251// ----------------------------
    256252
    257253inline MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement(HTMLMediaElement* mediaElement)
    258     : MediaControlElement(mediaElement, MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER)
     254    : MediaControlElement(mediaElement)
    259255    , m_isVisible(false)
    260256    , m_x(0)
     
    301297}
    302298
     299MediaControlElementType MediaControlVolumeSliderContainerElement::displayType() const
     300{
     301    return MediaVolumeSliderContainer;
     302}
     303
     304const AtomicString& MediaControlVolumeSliderContainerElement::shadowPseudoId() const
     305{
     306    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-volume-slider-container"));
     307    return id;
     308}
     309
    303310// ----------------------------
    304311
    305312inline MediaControlStatusDisplayElement::MediaControlStatusDisplayElement(HTMLMediaElement* mediaElement)
    306     : MediaControlElement(mediaElement, MEDIA_CONTROLS_STATUS_DISPLAY)
     313    : MediaControlElement(mediaElement)
    307314    , m_stateBeingDisplayed(Nothing)
    308315{
     
    347354bool MediaControlStatusDisplayElement::rendererIsNeeded(RenderStyle* style)
    348355{
    349     if (!MediaControlElement::rendererIsNeeded(style))
     356    if (!MediaControlElement::rendererIsNeeded(style) || !document()->page()->theme()->usesMediaControlStatusDisplay())
    350357        return false;
    351358    float duration = mediaElement()->duration();
    352359    return (isnan(duration) || isinf(duration));
     360}
     361
     362MediaControlElementType MediaControlStatusDisplayElement::displayType() const
     363{
     364    return MediaStatusDisplay;
     365}
     366
     367const AtomicString& MediaControlStatusDisplayElement::shadowPseudoId() const
     368{
     369    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-status-display"));
     370    return id;
    353371}
    354372
     
    894912// ----------------------------
    895913
    896 inline MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(HTMLMediaElement* mediaElement, PseudoId pseudo)
    897     : MediaControlElement(mediaElement, pseudo)
     914inline MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(HTMLMediaElement* mediaElement)
     915    : MediaControlElement(mediaElement)
    898916    , m_currentValue(0)
    899917    , m_isVisible(true)
    900918{
    901 }
    902 
    903 PassRefPtr<MediaControlTimeDisplayElement> MediaControlTimeDisplayElement::create(HTMLMediaElement* mediaElement, PseudoId pseudoStyleId)
    904 {
    905     return adoptRef(new MediaControlTimeDisplayElement(mediaElement, pseudoStyleId));
    906919}
    907920
     
    936949}
    937950
     951// ----------------------------
     952
     953PassRefPtr<MediaControlTimeRemainingDisplayElement> MediaControlTimeRemainingDisplayElement::create(HTMLMediaElement* mediaElement)
     954{
     955    return adoptRef(new MediaControlTimeRemainingDisplayElement(mediaElement));
     956}
     957
     958MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement(HTMLMediaElement* mediaElement)
     959    : MediaControlTimeDisplayElement(mediaElement)
     960{
     961}
     962
     963MediaControlElementType MediaControlTimeRemainingDisplayElement::displayType() const
     964{
     965    return MediaTimeRemainingDisplay;
     966}
     967
     968const AtomicString& MediaControlTimeRemainingDisplayElement::shadowPseudoId() const
     969{
     970    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-time-remaining-display"));
     971    return id;
     972}
     973
     974// ----------------------------
     975
     976PassRefPtr<MediaControlCurrentTimeDisplayElement> MediaControlCurrentTimeDisplayElement::create(HTMLMediaElement* mediaElement)
     977{
     978    return adoptRef(new MediaControlCurrentTimeDisplayElement(mediaElement));
     979}
     980
     981MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement(HTMLMediaElement* mediaElement)
     982    : MediaControlTimeDisplayElement(mediaElement)
     983{
     984}
     985
     986MediaControlElementType MediaControlCurrentTimeDisplayElement::displayType() const
     987{
     988    return MediaCurrentTimeDisplay;
     989}
     990
     991const AtomicString& MediaControlCurrentTimeDisplayElement::shadowPseudoId() const
     992{
     993    DEFINE_STATIC_LOCAL(AtomicString, id, ("-webkit-media-controls-current-time-display"));
     994    return id;
     995}
     996
    938997} // namespace WebCore
    939998
  • trunk/Source/WebCore/rendering/MediaControlElements.h

    r76951 r77954  
    7676    static PassRefPtr<MediaControlShadowRootElement> create(HTMLMediaElement*);
    7777
    78     void updateStyle();
    7978    virtual void detach();
    8079   
     
    8786class MediaControlElement : public HTMLDivElement {
    8887public:
    89     static PassRefPtr<MediaControlElement> create(HTMLMediaElement*, PseudoId);
    90 
    9188    virtual void attach();
    9289    void attachToParent(Element*);
     
    9491    void updateStyle();
    9592
    96     MediaControlElementType displayType() const { return m_displayType; }
     93    virtual MediaControlElementType displayType() const = 0;
    9794
    9895    HTMLMediaElement* mediaElement() const { return m_mediaElement; }
    9996
    10097protected:
    101     MediaControlElement(HTMLMediaElement*, PseudoId);
     98    MediaControlElement(HTMLMediaElement*);
    10299
    103100    virtual bool rendererIsNeeded(RenderStyle*);
     
    109106
    110107    HTMLMediaElement* m_mediaElement;   
    111     PseudoId m_pseudoStyleId;
    112     MediaControlElementType m_displayType;  // some elements can show multiple types (e.g. play/pause)
    113 };
     108};
     109
     110// ----------------------------
     111
     112class MediaControlPanelElement : public MediaControlElement {
     113public:
     114    static PassRefPtr<MediaControlPanelElement> create(HTMLMediaElement*);
     115
     116private:
     117    MediaControlPanelElement(HTMLMediaElement*);
     118    virtual MediaControlElementType displayType() const;
     119    virtual const AtomicString& shadowPseudoId() const;
     120};
     121
    114122
    115123// ----------------------------
     
    121129private:
    122130    MediaControlTimelineContainerElement(HTMLMediaElement*);
     131    virtual MediaControlElementType displayType() const;
    123132    virtual bool rendererIsNeeded(RenderStyle*);
     133    virtual const AtomicString& shadowPseudoId() const;
    124134};
    125135
     
    138148private:
    139149    MediaControlVolumeSliderContainerElement(HTMLMediaElement*);
     150    virtual MediaControlElementType displayType() const;
     151    virtual const AtomicString& shadowPseudoId() const;
    140152
    141153    bool m_isVisible;
     
    154166    MediaControlStatusDisplayElement(HTMLMediaElement*);
    155167
     168    virtual MediaControlElementType displayType() const;
    156169    virtual bool rendererIsNeeded(RenderStyle*);
     170    virtual const AtomicString& shadowPseudoId() const;
    157171
    158172    enum StateBeingDisplayed { Nothing, Loading, LiveBroadcast };
     
    374388class MediaControlTimeDisplayElement : public MediaControlElement {
    375389public:
    376     static PassRefPtr<MediaControlTimeDisplayElement> create(HTMLMediaElement*, PseudoId);
    377 
    378390    void setVisible(bool);
    379391
     
    381393    float currentValue() const { return m_currentValue; }
    382394
    383 private:
    384     MediaControlTimeDisplayElement(HTMLMediaElement*, PseudoId);
    385 
     395protected:
     396    MediaControlTimeDisplayElement(HTMLMediaElement*);
     397
     398private:
    386399    virtual PassRefPtr<RenderStyle> styleForElement();
    387400    float m_currentValue;
     
    391404// ----------------------------
    392405
     406class MediaControlTimeRemainingDisplayElement : public MediaControlTimeDisplayElement {
     407public:
     408    static PassRefPtr<MediaControlTimeRemainingDisplayElement> create(HTMLMediaElement*);
     409
     410private:
     411    MediaControlTimeRemainingDisplayElement(HTMLMediaElement*);
     412
     413    virtual MediaControlElementType displayType() const;
     414    virtual const AtomicString& shadowPseudoId() const;
     415};
     416
     417// ----------------------------
     418
     419class MediaControlCurrentTimeDisplayElement : public MediaControlTimeDisplayElement {
     420public:
     421    static PassRefPtr<MediaControlCurrentTimeDisplayElement> create(HTMLMediaElement*);
     422
     423private:
     424    MediaControlCurrentTimeDisplayElement(HTMLMediaElement*);
     425
     426    virtual MediaControlElementType displayType() const;
     427    virtual const AtomicString& shadowPseudoId() const;
     428};
     429
     430// ----------------------------
     431
    393432class RenderMediaControlShadowRoot : public RenderBlock {
    394433public:
  • trunk/Source/WebCore/rendering/RenderTheme.h

    r77639 r77954  
    181181    virtual bool hitTestMediaControlPart(RenderObject*, const IntPoint& absPoint);
    182182    virtual bool shouldRenderMediaControlPart(ControlPart, Element*);
     183    virtual bool usesMediaControlStatusDisplay() { return false; }
    183184    virtual double mediaControlsFadeInDuration() { return 0.1; }
    184185    virtual double mediaControlsFadeOutDuration() { return 0.3; }
  • trunk/Source/WebCore/rendering/RenderThemeChromiumMac.h

    r65215 r77954  
    4747    virtual bool paintMediaVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
    4848    virtual IntPoint volumeSliderOffsetFromMuteButton(Node*, const IntSize&) const;
     49    virtual bool usesMediaControlStatusDisplay() { return false; }
    4950
    5051#endif
  • trunk/Source/WebCore/rendering/RenderThemeMac.h

    r77639 r77954  
    165165
    166166    virtual bool shouldRenderMediaControlPart(ControlPart, Element*);
     167    virtual bool usesMediaControlStatusDisplay();
    167168    virtual void adjustMediaSliderThumbSize(RenderObject*) const;
    168169    virtual IntPoint volumeSliderOffsetFromMuteButton(Node*, const IntSize&) const;
  • trunk/Source/WebCore/rendering/RenderThemeMac.mm

    r77639 r77954  
    19821982}
    19831983
     1984bool RenderThemeMac::usesMediaControlStatusDisplay()
     1985{
     1986    return mediaControllerTheme() == MediaControllerThemeQuickTime;
     1987}
     1988
    19841989IntPoint RenderThemeMac::volumeSliderOffsetFromMuteButton(Node* muteButton, const IntSize& size) const
    19851990{
  • trunk/Source/WebCore/rendering/style/RenderStyleConstants.h

    r77211 r77954  
    6969    // The order must be NOP ID, public IDs, and then internal IDs.
    7070    NOPSEUDO, FIRST_LINE, FIRST_LETTER, BEFORE, AFTER, SELECTION, FIRST_LINE_INHERITED, SCROLLBAR, FILE_UPLOAD_BUTTON, INPUT_PLACEHOLDER,
    71     SEARCH_CANCEL_BUTTON, SEARCH_DECORATION, SEARCH_RESULTS_DECORATION, SEARCH_RESULTS_BUTTON, MEDIA_CONTROLS_PANEL,
    72     MEDIA_CONTROLS_TIMELINE_CONTAINER, MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER, MEDIA_CONTROLS_CURRENT_TIME_DISPLAY, MEDIA_CONTROLS_TIME_REMAINING_DISPLAY,
    73     MEDIA_CONTROLS_STATUS_DISPLAY, SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER,
     71    SEARCH_CANCEL_BUTTON, SEARCH_DECORATION, SEARCH_RESULTS_DECORATION, SEARCH_RESULTS_BUTTON,
     72    SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER,
    7473    INPUT_LIST_BUTTON, INPUT_SPEECH_BUTTON, INNER_SPIN_BUTTON, OUTER_SPIN_BUTTON, VISITED_LINK,
    7574    METER_HORIZONTAL_BAR, METER_HORIZONTAL_OPTIMUM, METER_HORIZONTAL_SUBOPTIMAL, METER_HORIZONTAL_EVEN_LESS_GOOD,
Note: See TracChangeset for help on using the changeset viewer.