Diff
Modified: trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html (294572 => 294573)
--- trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/LayoutTests/media/modern-media-controls/button/button-icon-name.html 2022-05-20 20:49:54 UTC (rev 294573)
@@ -8,7 +8,7 @@
description("Testing the <code>Button</code> class <code>iconName</code> property.");
-const layoutDelegate = {};
+const layoutDelegate = { layoutTraits: new MacOSLayoutTraits(LayoutTraits.Mode.Inline) };
const button = new Button({ layoutDelegate });
@@ -18,6 +18,7 @@
debug("");
debug("Setting an iconName with invalid layout traits should throw");
+layoutDelegate.layoutTraits = null;
shouldThrow(function() { button.iconName = Icons.Pause });
shouldBeEqualToString("button.iconName", "");
Modified: trunk/LayoutTests/media/modern-media-controls/button/button.html (294572 => 294573)
--- trunk/LayoutTests/media/modern-media-controls/button/button.html 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/LayoutTests/media/modern-media-controls/button/button.html 2022-05-20 20:49:54 UTC (rev 294573)
@@ -17,7 +17,9 @@
description("Testing the <code>Button</code> class.");
-const button = new Button;
+const layoutDelegate = { layoutTraits: new MacOSLayoutTraits(LayoutTraits.Mode.Inline) };
+
+const button = new Button({ layoutDelegate });
document.body.appendChild(button.element);
debug("Default values");
Modified: trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-buttons-property.html (294572 => 294573)
--- trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-buttons-property.html 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-buttons-property.html 2022-05-20 20:49:54 UTC (rev 294573)
@@ -8,6 +8,8 @@
window.jsTestIsAsync = true;
+const layoutDelegate = { layoutTraits: new MacOSLayoutTraits(LayoutTraits.Mode.Inline) };
+
const container = new ButtonsContainer({
leftMargin: 20,
rightMargin: 20,
@@ -14,7 +16,11 @@
buttonMargin: 10
});
-container.children = [new Button, new Button, new Button];
+container.children = [
+ new Button({ layoutDelegate }),
+ new Button({ layoutDelegate }),
+ new Button({ layoutDelegate }),
+];
scheduler.frameDidFire = function()
{
Modified: trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-constructor.html (294572 => 294573)
--- trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-constructor.html 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-constructor.html 2022-05-20 20:49:54 UTC (rev 294573)
@@ -5,6 +5,8 @@
description("Testing the <code>ButtonsContainer</code> constructor.");
+const layoutDelegate = { layoutTraits: new MacOSLayoutTraits(LayoutTraits.Mode.Inline) };
+
const defaultContainer = new ButtonsContainer;
shouldBeEqualToString("defaultContainer.element.localName", "div");
shouldBeEqualToString("defaultContainer.element.className.trim()", "buttons-container");
@@ -13,7 +15,11 @@
shouldBe("defaultContainer.rightMargin", "16");
shouldBe("defaultContainer.children", "[]");
-const buttons = [new Button, new Button];
+const buttons = [
+ new Button({ layoutDelegate }),
+ new Button({ layoutDelegate }),
+];
+
const containerWithParameters = new ButtonsContainer({
buttonMargin: 10,
leftMargin: 20,
Modified: trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-layout.html (294572 => 294573)
--- trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-layout.html 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/LayoutTests/media/modern-media-controls/buttons-container/buttons-container-layout.html 2022-05-20 20:49:54 UTC (rev 294573)
@@ -5,22 +5,24 @@
description("Testing <code>ButtonsContainer</code> layout.");
-const tenPtWideButton = new Button;
+const layoutDelegate = { layoutTraits: new MacOSLayoutTraits(LayoutTraits.Mode.Inline) };
+
+const tenPtWideButton = new Button({ layoutDelegate });
tenPtWideButton.width = 10;
-const twentyPtWideButton = new Button;
+const twentyPtWideButton = new Button({ layoutDelegate });
twentyPtWideButton.width = 20;
-const thirtyPtWideButton = new Button;
+const thirtyPtWideButton = new Button({ layoutDelegate });
thirtyPtWideButton.width = 30;
// Should be disregarded by the container.
-const disabledButton = new Button;
+const disabledButton = new Button({ layoutDelegate });
disabledButton.width = 15;
disabledButton.enabled = false;
// Should be disregarded by the container.
-const droppedButton = new Button;
+const droppedButton = new Button({ layoutDelegate });
droppedButton.width = 25;
droppedButton.dropped = true;
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -41,7 +41,7 @@
this._mediaControls.element.addEventListener("pointerleave", this);
this._mediaControls.element.addEventListener("pointerout", this);
- if (GestureRecognizer.SupportsTouches)
+ if (this._mediaControls.layoutTraits.supportsTouches())
this._tapGestureRecognizer = new TapGestureRecognizer(this._mediaControls.element, this);
this.autoHideDelay = AutoHideDelayMS;
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/button.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/button.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/button.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -48,7 +48,7 @@
this._enabled = true;
- if (GestureRecognizer.SupportsTouches)
+ if (this.layoutTraits.supportsTouches())
this._tapGestureRecognizer = new TapGestureRecognizer(this.element, this);
else
this.element.addEventListener("click", this);
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -91,6 +91,13 @@
return false;
}
+ supportsTouches()
+ {
+ // Can be overridden by subclasses.
+
+ return GestureRecognizer.SupportsTouches;
+ }
+
additionalControlScaleFactor()
{
return 1;
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -76,6 +76,11 @@
{
return true;
}
+
+ supportsTouches()
+ {
+ return false;
+ }
toString()
{
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/range-button.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/range-button.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/range-button.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -41,7 +41,7 @@
this._indicator.visible = false;
- if (GestureRecognizer.SupportsTouches)
+ if (this.layoutTraits.supportsTouches())
this._tapGestureRecognizer.enabled = false;
else
this.element.removeEventListener("click", this);
Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/slider.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/controls/slider.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/slider.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -209,7 +209,7 @@
_interactionEndTarget()
{
const mediaControls = this.parentOfType(MediaControls);
- if (GestureRecognizer.SupportsTouches)
+ if (mediaControls?.layoutTraits.supportsTouches())
return mediaControls.element;
return (!mediaControls || !mediaControls.layoutTraits.isFullscreen) ? window : mediaControls.element;
}
Modified: trunk/Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js (294572 => 294573)
--- trunk/Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js 2022-05-20 20:43:30 UTC (rev 294572)
+++ trunk/Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js 2022-05-20 20:49:54 UTC (rev 294573)
@@ -42,7 +42,7 @@
let deviceType = window.navigator.platform;
if (deviceType == "MacIntel")
- deviceType = GestureRecognizer.SupportsTouches ? "ipad" : "mac";
+ deviceType = mediaController.layoutTraits.supportsTouches() ? "ipad" : "mac";
media.classList.add(deviceType);