Title: [207421] trunk/Source/WebCore
Revision
207421
Author
commit-qu...@webkit.org
Date
2016-10-17 12:11:20 -0700 (Mon, 17 Oct 2016)

Log 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 <grao...@apple.com> 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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (207420 => 207421)


--- trunk/Source/WebCore/ChangeLog	2016-10-17 19:06:25 UTC (rev 207420)
+++ trunk/Source/WebCore/ChangeLog	2016-10-17 19:11:20 UTC (rev 207421)
@@ -1,3 +1,23 @@
+2016-10-17  Antoine Quint  <grao...@apple.com>
+
+        [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>
+
+        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):
+
 2016-10-17  Simon Fraser  <simon.fra...@apple.com>
 
         Implement DOMPoint/DOMPointReadOnly

Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (207420 => 207421)


--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp	2016-10-17 19:06:25 UTC (rev 207420)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp	2016-10-17 19:11:20 UTC (rev 207421)
@@ -36,6 +36,7 @@
 #include "MediaControlElements.h"
 #include "Page.h"
 #include "PageGroup.h"
+#include "RenderTheme.h"
 #include "TextTrack.h"
 #include "TextTrackList.h"
 #include "UUID.h"
@@ -283,6 +284,14 @@
     return createCanonicalUUIDString();
 }
 
+String MediaControlsHost::shadowRootCSSText() const
+{
+    Page* page = m_mediaElement->document().page();
+    if (!page)
+        return emptyString();
+    return RenderTheme::themeForPage(page)->mediaControlsStyleSheet();
 }
 
+}
+
 #endif

Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (207420 => 207421)


--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h	2016-10-17 19:06:25 UTC (rev 207420)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h	2016-10-17 19:11:20 UTC (rev 207421)
@@ -82,6 +82,8 @@
 
     String generateUUID() const;
 
+    String shadowRootCSSText() const;
+
 private:
     MediaControlsHost(HTMLMediaElement*);
 

Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl (207420 => 207421)


--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl	2016-10-17 19:06:25 UTC (rev 207420)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl	2016-10-17 19:11:20 UTC (rev 207421)
@@ -59,4 +59,6 @@
     void exitedFullscreen();
 
     DOMString generateUUID();
+
+    [EnabledAtRuntime=ModernMediaControls] readonly attribute DOMString shadowRootCSSText;
 };

Modified: trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp (207420 => 207421)


--- trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp	2016-10-17 19:06:25 UTC (rev 207420)
+++ trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp	2016-10-17 19:11:20 UTC (rev 207421)
@@ -46,6 +46,7 @@
 #include "Page.h"
 #include "RenderTheme.h"
 #include "RuleSet.h"
+#include "RuntimeEnabledFeatures.h"
 #include "SVGElement.h"
 #include "StyleSheetContents.h"
 #include "UserAgentStyleSheets.h"
@@ -181,9 +182,14 @@
 #if ENABLE(VIDEO)
         else if (is<HTMLMediaElement>(element)) {
             if (!mediaControlsStyleSheet) {
-                String mediaRules = RenderTheme::themeForPage(element.document().page())->mediaControlsStyleSheet();
-                if (mediaRules.isEmpty())
-                    mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element.document().page())->extraMediaControlsStyleSheet();
+                String mediaRules;
+                if (RuntimeEnabledFeatures::sharedFeatures().modernMediaControlsEnabled())
+                    mediaRules = emptyString();
+                else {
+                    mediaRules = RenderTheme::themeForPage(element.document().page())->mediaControlsStyleSheet();
+                    if (mediaRules.isEmpty())
+                        mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element.document().page())->extraMediaControlsStyleSheet();
+                }
                 mediaControlsStyleSheet = parseUASheet(mediaRules);
                 defaultStyle->addRulesFromSheet(*mediaControlsStyleSheet, screenEval());
                 defaultPrintStyle->addRulesFromSheet(*mediaControlsStyleSheet, printEval());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to