Diff
Modified: trunk/LayoutTests/ChangeLog (209193 => 209194)
--- trunk/LayoutTests/ChangeLog 2016-12-01 20:33:05 UTC (rev 209193)
+++ trunk/LayoutTests/ChangeLog 2016-12-01 21:10:16 UTC (rev 209194)
@@ -1,3 +1,19 @@
+2016-12-01 Antoine Quint <grao...@apple.com>
+
+ [Modern Media Controls] Turn off text selection
+ https://bugs.webkit.org/show_bug.cgi?id=165261
+
+ Reviewed by Dean Jackson.
+
+ New tests to check that text selection is turned off for StatusLabel, AirplayPlacard and PiPPlacard.
+
+ * media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt: Added.
+ * media/modern-media-controls/airplay-placard/airplay-placard-text-section.html: Added.
+ * media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt: Added.
+ * media/modern-media-controls/pip-placard/pip-placard-text-section.html: Added.
+ * media/modern-media-controls/status-label/status-label-text-selection-expected.txt: Added.
+ * media/modern-media-controls/status-label/status-label-text-selection.html: Added.
+
2016-12-01 Chris Dumez <cdu...@apple.com>
Parameter to DOMStringList.contains() should be mandatory
Added: trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section-expected.txt 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,14 @@
+Testing that text selection is turned off for AirplayPlacard.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.getComputedStyle(document.querySelector('.title')).webkitUserSelect is "none"
+PASS window.getComputedStyle(document.querySelector('.title')).cursor is "default"
+PASS window.getComputedStyle(document.querySelector('.description')).webkitUserSelect is "none"
+PASS window.getComputedStyle(document.querySelector('.description')).cursor is "default"
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section.html (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/airplay-placard/airplay-placard-text-section.html 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,28 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing that text selection is turned off for <code>AirplayPlacard</code>.");
+
+const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 300 });
+mediaControls.showPlacard(mediaControls.airplayPlacard);
+document.body.appendChild(mediaControls.element);
+
+scheduler.frameDidFire = function()
+{
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.title')).webkitUserSelect", "none");
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.title')).cursor", "default");
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).webkitUserSelect", "none");
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).cursor", "default");
+
+ mediaControls.element.remove();
+ debug("");
+ finishJSTest();
+};
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section-expected.txt 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,12 @@
+Testing that text selection is turned off for PiPPlacard.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.getComputedStyle(document.querySelector('.description')).webkitUserSelect is "none"
+PASS window.getComputedStyle(document.querySelector('.description')).cursor is "default"
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section.html (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/pip-placard/pip-placard-text-section.html 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,26 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing that text selection is turned off for <code>PiPPlacard</code>.");
+
+const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 300 });
+mediaControls.showPlacard(mediaControls.pipPlacard);
+document.body.appendChild(mediaControls.element);
+
+scheduler.frameDidFire = function()
+{
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).webkitUserSelect", "none");
+ shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).cursor", "default");
+
+ mediaControls.element.remove();
+ debug("");
+ finishJSTest();
+};
+
+</script>
+<script src=""
+</body>
Added: trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection-expected.txt (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection-expected.txt (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection-expected.txt 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,12 @@
+Testing that text selection is turned off for StatusLabel.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS window.getComputedStyle(mediaControls.statusLabel.element).webkitUserSelect is "none"
+PASS window.getComputedStyle(mediaControls.statusLabel.element).cursor is "default"
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection.html (0 => 209194)
--- trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection.html (rev 0)
+++ trunk/LayoutTests/media/modern-media-controls/status-label/status-label-text-selection.html 2016-12-01 21:10:16 UTC (rev 209194)
@@ -0,0 +1,26 @@
+<script src=""
+<script src="" type="text/_javascript_"></script>
+<body>
+<script type="text/_javascript_">
+
+window.jsTestIsAsync = true;
+
+description("Testing that text selection is turned off for <code>StatusLabel</code>.");
+
+const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 300 });
+mediaControls.showsStartButton = false;
+mediaControls.statusLabel.text = "Hello";
+document.body.appendChild(mediaControls.element);
+
+scheduler.frameDidFire = function()
+{
+ shouldBeEqualToString("window.getComputedStyle(mediaControls.statusLabel.element).webkitUserSelect", "none");
+ shouldBeEqualToString("window.getComputedStyle(mediaControls.statusLabel.element).cursor", "default");
+ mediaControls.element.remove();
+ debug("");
+ finishJSTest();
+};
+
+</script>
+<script src=""
+</body>
Modified: trunk/Source/WebCore/ChangeLog (209193 => 209194)
--- trunk/Source/WebCore/ChangeLog 2016-12-01 20:33:05 UTC (rev 209193)
+++ trunk/Source/WebCore/ChangeLog 2016-12-01 21:10:16 UTC (rev 209194)
@@ -1,3 +1,19 @@
+2016-12-01 Antoine Quint <grao...@apple.com>
+
+ [Modern Media Controls] Turn off text selection
+ https://bugs.webkit.org/show_bug.cgi?id=165261
+
+ Reviewed by Dean Jackson.
+
+ We turn off text selection and force a non-text cursor for all text in media controls.
+
+ Tests: media/modern-media-controls/airplay-placard/airplay-placard-text-section.html
+ media/modern-media-controls/pip-placard/pip-placard-text-section.html
+ media/modern-media-controls/status-label/status-label-text-selection.html
+
+ * Modules/modern-media-controls/controls/media-controls.css:
+ (.media-controls):
+
2016-12-01 Chris Dumez <cdu...@apple.com>
Parameter to DOMStringList.contains() should be mandatory
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/media-controls.css (209193 => 209194)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/media-controls.css 2016-12-01 20:33:05 UTC (rev 209193)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/media-controls.css 2016-12-01 21:10:16 UTC (rev 209194)
@@ -32,6 +32,8 @@
.media-controls {
position: relative;
font-family: -apple-system;
+ -webkit-user-select: none;
+ cursor: default;
}
.media-controls > .controls-bar {