Changeset 207421 in webkit


Ignore:
Timestamp:
Oct 17, 2016 12:11:20 PM (8 years ago)
Author:
commit-queue@webkit.org
Message:

[Modern Media Controls] Add a MediaControlsHost API to retrieve the shadow root CSS
https://bugs.webkit.org/show_bug.cgi?id=163501
<rdar://problem/28792014>

Patch by Antoine Quint <Antoine Quint> on 2016-10-17
Reviewed by Darin Adler.

Add a new shadowRootCSSText property to MediaControlsHost so that we may obtain the
concatenated CSS sources for the media controls shadow root via JS. Actually using this
API will be done in a later patch. We also no longer inject those styles as a user-agent
stylesheet when the runtime flag is on since it will no longer be necessary.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::shadowRootCSSText):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r207420 r207421  
     12016-10-17  Antoine Quint  <graouts@apple.com>
     2
     3        [Modern Media Controls] Add a MediaControlsHost API to retrieve the shadow root CSS
     4        https://bugs.webkit.org/show_bug.cgi?id=163501
     5        <rdar://problem/28792014>
     6
     7        Reviewed by Darin Adler.
     8
     9        Add a new `shadowRootCSSText` property to MediaControlsHost so that we may obtain the
     10        concatenated CSS sources for the media controls shadow root via JS. Actually using this
     11        API will be done in a later patch. We also no longer inject those styles as a user-agent
     12        stylesheet when the runtime flag is on since it will no longer be necessary.
     13
     14        * Modules/mediacontrols/MediaControlsHost.cpp:
     15        (WebCore::MediaControlsHost::shadowRootCSSText):
     16        * Modules/mediacontrols/MediaControlsHost.h:
     17        * Modules/mediacontrols/MediaControlsHost.idl:
     18        * css/CSSDefaultStyleSheets.cpp:
     19        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
     20
    1212016-10-17  Simon Fraser  <simon.fraser@apple.com>
    222
  • trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp

    r204088 r207421  
    3737#include "Page.h"
    3838#include "PageGroup.h"
     39#include "RenderTheme.h"
    3940#include "TextTrack.h"
    4041#include "TextTrackList.h"
     
    284285}
    285286
     287String MediaControlsHost::shadowRootCSSText() const
     288{
     289    Page* page = m_mediaElement->document().page();
     290    if (!page)
     291        return emptyString();
     292    return RenderTheme::themeForPage(page)->mediaControlsStyleSheet();
     293}
     294
    286295}
    287296
  • trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h

    r204088 r207421  
    8383    String generateUUID() const;
    8484
     85    String shadowRootCSSText() const;
     86
    8587private:
    8688    MediaControlsHost(HTMLMediaElement*);
  • trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl

    r204336 r207421  
    6060
    6161    DOMString generateUUID();
     62
     63    [EnabledAtRuntime=ModernMediaControls] readonly attribute DOMString shadowRootCSSText;
    6264};
  • trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp

    r205660 r207421  
    4747#include "RenderTheme.h"
    4848#include "RuleSet.h"
     49#include "RuntimeEnabledFeatures.h"
    4950#include "SVGElement.h"
    5051#include "StyleSheetContents.h"
     
    182183        else if (is<HTMLMediaElement>(element)) {
    183184            if (!mediaControlsStyleSheet) {
    184                 String mediaRules = RenderTheme::themeForPage(element.document().page())->mediaControlsStyleSheet();
    185                 if (mediaRules.isEmpty())
    186                     mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element.document().page())->extraMediaControlsStyleSheet();
     185                String mediaRules;
     186                if (RuntimeEnabledFeatures::sharedFeatures().modernMediaControlsEnabled())
     187                    mediaRules = emptyString();
     188                else {
     189                    mediaRules = RenderTheme::themeForPage(element.document().page())->mediaControlsStyleSheet();
     190                    if (mediaRules.isEmpty())
     191                        mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element.document().page())->extraMediaControlsStyleSheet();
     192                }
    187193                mediaControlsStyleSheet = parseUASheet(mediaRules);
    188194                defaultStyle->addRulesFromSheet(*mediaControlsStyleSheet, screenEval());
Note: See TracChangeset for help on using the changeset viewer.