Changeset 272375 in webkit
- Timestamp:
- Feb 4, 2021 10:01:36 AM (18 months ago)
- Location:
- trunk
- Files:
-
- 12 added
- 11 deleted
- 29 edited
- 4 copied
- 4 moved
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt (modified) (2 diffs)
-
LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html (modified) (5 diffs)
-
LayoutTests/media/modern-media-controls/mute-button/mute-button-expected.txt (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/mute-button/mute-button.html (modified) (1 diff)
-
LayoutTests/media/modern-media-controls/volume-down-support (deleted)
-
LayoutTests/media/modern-media-controls/volume-up-support (deleted)
-
LayoutTests/platform/ios/TestExpectations (modified) (1 diff)
-
LayoutTests/platform/mac/TestExpectations (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/Configurations/Base.xcconfig (modified) (2 diffs)
-
Source/WebCore/Configurations/DebugRelease.xcconfig (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/controls/icon-service.js (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js (modified) (2 diffs)
-
Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js (modified) (2 diffs)
-
Source/WebCore/Modules/modern-media-controls/controls/media-controls.js (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/controls/mute-button.js (modified) (3 diffs)
-
Source/WebCore/Modules/modern-media-controls/controls/volume-down-button.js (deleted)
-
Source/WebCore/Modules/modern-media-controls/controls/volume-up-button.js (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Mute-RTL.svg (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Mute.svg (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume0-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume0.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume1-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume1.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume2-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume2.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume3-RTL.svg (copied) (copied from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/Volume3.svg (copied) (copied from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/VolumeHi-RTL.svg (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/VolumeHi.svg (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/VolumeMuted-RTL.svg (moved) (moved from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg)
-
Source/WebCore/Modules/modern-media-controls/images/iOS/VolumeMuted.svg (copied) (copied from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume0-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume0.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume1-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume1.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume2-RTL.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume2.svg (added)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume3-RTL.svg (moved) (moved from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/Volume3.svg (moved) (moved from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeLo.svg (deleted)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeMuted-RTL.svg (copied) (copied from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg)
-
Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeMuted.svg (moved) (moved from trunk/Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg)
-
Source/WebCore/Modules/modern-media-controls/js-files (modified) (2 diffs)
-
Source/WebCore/Modules/modern-media-controls/media/media-controller.js (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/media/mute-support.js (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/media/volume-down-support.js (deleted)
-
Source/WebCore/Modules/modern-media-controls/media/volume-support.js (modified) (1 diff)
-
Source/WebCore/Modules/modern-media-controls/media/volume-up-support.js (deleted)
-
Source/WebCore/html/HTMLMediaElement.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r272373 r272375 1 2021-02-04 Devin Rousso <drousso@apple.com> 2 3 Add intermediate volume icon states between "mute" and "max" 4 https://bugs.webkit.org/show_bug.cgi?id=221371 5 6 Reviewed by Eric Carlson. 7 8 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html: 9 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt: 10 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html: 11 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt: 12 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html: 13 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt: 14 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html: 15 * media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt: 16 * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html: 17 * media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt: 18 * media/modern-media-controls/mute-button/mute-button.html: 19 * media/modern-media-controls/mute-button/mute-button-expected.txt: 20 21 * platform/ios/TestExpectations: 22 * platform/mac/TestExpectations: 23 * media/modern-media-controls/volume-down-support/volume-down-support.html: Removed. 24 * media/modern-media-controls/volume-down-support/volume-down-support-expected.txt: Removed. 25 * media/modern-media-controls/volume-up-support/volume-up-support.html: Removed. 26 * media/modern-media-controls/volume-up-support/volume-up-support-expected.txt: Removed. 27 1 28 2021-02-04 Devin Rousso <drousso@apple.com> 2 29 -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt
r265709 r272375 15 15 16 16 Left container 17 PASS mediaControls.bottomControlsBar.children[1].children is [mediaControls.volume UpButton, mediaControls.volumeSlider, mediaControls.volumeDownButton]17 PASS mediaControls.bottomControlsBar.children[1].children is [mediaControls.volumeSlider, mediaControls.muteButton] 18 18 PASS mediaControls.bottomControlsBar.children[1].element.className is "buttons-container left" 19 19 PASS mediaControls.bottomControlsBar.children[1].leftMargin is 12 -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html
r265709 r272375 21 21 debug(""); 22 22 debug("Left container"); 23 shouldBe("mediaControls.bottomControlsBar.children[1].children", "[mediaControls.volume UpButton, mediaControls.volumeSlider, mediaControls.volumeDownButton]");23 shouldBe("mediaControls.bottomControlsBar.children[1].children", "[mediaControls.volumeSlider, mediaControls.muteButton]"); 24 24 shouldBeEqualToString("mediaControls.bottomControlsBar.children[1].element.className", "buttons-container left"); 25 25 shouldBe("mediaControls.bottomControlsBar.children[1].leftMargin", "12"); -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt
r261493 r272375 6 6 PASS media.webkitDisplayingFullscreen became true 7 7 PASS !!mediaControls.querySelector('.buttons-container.left') became true 8 PASS mediaControls.querySelector('.buttons-container.left').style.width became "1 18px"8 PASS mediaControls.querySelector('.buttons-container.left').style.width became "100px" 9 9 PASS mediaControls.querySelector('.controls-bar').style.transform is "translate(-50px, -100px)" 10 10 PASS successfullyParsed is true -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt
r261493 r272375 6 6 PASS media.webkitDisplayingFullscreen became true 7 7 PASS !!mediaControls.querySelector('.buttons-container.left') became true 8 PASS mediaControls.querySelector('.buttons-container.left').style.width became "1 18px"8 PASS mediaControls.querySelector('.buttons-container.left').style.width became "100px" 9 9 PASS mediaControls.querySelector('.controls-bar').style.transform is "" 10 10 PASS successfullyParsed is true -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html
r261493 r272375 21 21 mediaControls = shadowRoot.lastChild; 22 22 shouldBecomeEqual("!!mediaControls.querySelector('.buttons-container.left')", "true", () => { 23 shouldBecomeEqualToString("mediaControls.querySelector('.buttons-container.left').style.width", "1 18px", () => {23 shouldBecomeEqualToString("mediaControls.querySelector('.buttons-container.left').style.width", "100px", () => { 24 24 const bounds = mediaControls.querySelector(".controls-bar").getBoundingClientRect(); 25 25 eventSender.mouseMoveTo(bounds.left + 68, bounds.top + 20); -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html
r261493 r272375 21 21 mediaControls = shadowRoot.lastChild; 22 22 shouldBecomeEqual("!!mediaControls.querySelector('.buttons-container.left')", "true", () => { 23 shouldBecomeEqualToString("mediaControls.querySelector('.buttons-container.left').style.width", "1 18px", () => {23 shouldBecomeEqualToString("mediaControls.querySelector('.buttons-container.left').style.width", "100px", () => { 24 24 const bounds = mediaControls.querySelector(".controls-bar").getBoundingClientRect(); 25 25 eventSender.mouseMoveTo(bounds.left + 210, bounds.top + 25); -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt
r227968 r272375 4 4 5 5 6 PASS window.getComputedStyle(mediaControls.volumeSlider.element).left became " 30px"6 PASS window.getComputedStyle(mediaControls.volumeSlider.element).left became "40px" 7 7 PASS window.getComputedStyle(mediaControls.volumeSlider.element).top is "0px" 8 8 PASS window.getComputedStyle(mediaControls.volumeSlider.element).width is "60px" -
trunk/LayoutTests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html
r265709 r272375 14 14 document.body.appendChild(mediaControls.element); 15 15 16 shouldBecomeEqualToString("window.getComputedStyle(mediaControls.volumeSlider.element).left", " 30px", () => {16 shouldBecomeEqualToString("window.getComputedStyle(mediaControls.volumeSlider.element).left", "40px", () => { 17 17 shouldBeEqualToString("window.getComputedStyle(mediaControls.volumeSlider.element).top", "0px"); 18 18 shouldBeEqualToString("window.getComputedStyle(mediaControls.volumeSlider.element).width", "60px"); -
trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt
r266475 r272375 5 5 6 6 width = 600 7 muted = false7 muted = true 8 8 usesLTRUserInterfaceLayoutDirection = true 9 PASS mediaControls.muteButton.iconName became Icons.Volume 9 PASS mediaControls.muteButton.iconName became Icons.VolumeMuted 10 10 PASS mediaControls.topLeftControlsBar.children[1].children became [mediaControls.fullscreenButton, mediaControls.pipButton] 11 11 PASS getComputedStyle(mediaControls.topLeftControlsBar.element).left became "6px" 12 12 13 13 width = 600 14 muted = false14 muted = true 15 15 usesLTRUserInterfaceLayoutDirection = false 16 PASS mediaControls.muteButton.iconName became Icons.VolumeRTL 17 PASS mediaControls.topLeftControlsBar.children[1].children became [mediaControls.pipButton, mediaControls.fullscreenButton] 18 PASS getComputedStyle(mediaControls.topLeftControlsBar.element).right became "6px" 19 20 width = 250 21 muted = false 22 usesLTRUserInterfaceLayoutDirection = false 23 PASS mediaControls.muteButton.iconName became Icons.VolumeRTL 16 PASS mediaControls.muteButton.iconName became Icons.VolumeMutedRTL 24 17 PASS mediaControls.topLeftControlsBar.children[1].children became [mediaControls.pipButton, mediaControls.fullscreenButton] 25 18 PASS getComputedStyle(mediaControls.topLeftControlsBar.element).right became "6px" … … 33 26 34 27 width = 250 35 muted = true 28 muted = false 29 usesLTRUserInterfaceLayoutDirection = false 30 PASS mediaControls.muteButton.iconName became Icons.Volume3RTL 31 PASS mediaControls.topLeftControlsBar.children[1].children became [mediaControls.pipButton, mediaControls.fullscreenButton] 32 PASS getComputedStyle(mediaControls.topLeftControlsBar.element).right became "6px" 33 34 width = 250 35 muted = false 36 36 usesLTRUserInterfaceLayoutDirection = true 37 PASS mediaControls.muteButton.iconName became Icons.Volume Muted37 PASS mediaControls.muteButton.iconName became Icons.Volume3 38 38 PASS mediaControls.topLeftControlsBar.children[1].children became [mediaControls.fullscreenButton, mediaControls.pipButton] 39 39 PASS getComputedStyle(mediaControls.topLeftControlsBar.element).left became "6px" -
trunk/LayoutTests/media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html
r266475 r272375 19 19 { 20 20 debug("width = 600"); 21 debug("muted = false");21 debug("muted = true"); 22 22 debug("usesLTRUserInterfaceLayoutDirection = true"); 23 23 mediaControls.usesLTRUserInterfaceLayoutDirection = true; 24 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume ", () => {24 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeMuted", () => { 25 25 shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.fullscreenButton, mediaControls.pipButton]", () => { 26 26 shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).left", "6px", step2); … … 33 33 debug(""); 34 34 debug("width = 600"); 35 debug("muted = false");35 debug("muted = true"); 36 36 debug("usesLTRUserInterfaceLayoutDirection = false"); 37 37 mediaControls.usesLTRUserInterfaceLayoutDirection = false; 38 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume RTL", () => {38 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeMutedRTL", () => { 39 39 shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { 40 40 shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step3); … … 47 47 debug(""); 48 48 debug("width = 250"); 49 debug("muted = false");49 debug("muted = true"); 50 50 debug("usesLTRUserInterfaceLayoutDirection = false"); 51 51 mediaControls.width = 250; 52 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume RTL", () => {52 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.VolumeMutedRTL", () => { 53 53 shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { 54 54 shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step4); … … 61 61 debug(""); 62 62 debug("width = 250"); 63 debug("muted = true");63 debug("muted = false"); 64 64 debug("usesLTRUserInterfaceLayoutDirection = false"); 65 mediaControls.muteButton.muted = true;66 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume MutedRTL", () => {65 mediaControls.muteButton.muted = false; 66 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume3RTL", () => { 67 67 shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.pipButton, mediaControls.fullscreenButton]", () => { 68 68 shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).right", "6px", step5); … … 75 75 debug(""); 76 76 debug("width = 250"); 77 debug("muted = true");77 debug("muted = false"); 78 78 debug("usesLTRUserInterfaceLayoutDirection = true"); 79 79 mediaControls.usesLTRUserInterfaceLayoutDirection = true; 80 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume Muted", () => {80 shouldBecomeEqual("mediaControls.muteButton.iconName", "Icons.Volume3", () => { 81 81 shouldBecomeEqual("mediaControls.topLeftControlsBar.children[1].children", "[mediaControls.fullscreenButton, mediaControls.pipButton]", () => { 82 82 shouldBecomeEqualToString("getComputedStyle(mediaControls.topLeftControlsBar.element).left", "6px", done); -
trunk/LayoutTests/media/modern-media-controls/mute-button/mute-button-expected.txt
r218991 r272375 6 6 PASS muteButton.element.localName is "button" 7 7 PASS muteButton.element.classList.contains("mute") is true 8 PASS muteButton.iconName is Icons.Volume 8 PASS muteButton.iconName is Icons.VolumeMutedRTL 9 PASS muteButton.muted is true 10 PASS muteButton.image.element.style.webkitMaskImage.includes("macOS/VolumeMuted-RTL.svg") became true 11 Unmuting... 9 12 PASS muteButton.muted is false 10 PASS mutedButton.muted is true 11 PASS mutedButton.iconName became Icons.VolumeMuted 12 PASS muteButton.image.element.style.webkitMaskImage.includes("macOS/VolumeHi.svg") became true 13 PASS mutedButton.image.element.style.webkitMaskImage.includes("macOS/Mute.svg") became true 13 PASS muteButton.iconName became Icons.Volume3RTL 14 PASS muteButton.image.element.style.webkitMaskImage.includes("macOS/Volume3-RTL.svg") became true 14 15 PASS successfullyParsed is true 15 16 -
trunk/LayoutTests/media/modern-media-controls/mute-button/mute-button.html
r218991 r272375 13 13 shouldBeEqualToString("muteButton.element.localName", "button"); 14 14 shouldBeTrue('muteButton.element.classList.contains("mute")'); 15 shouldBe("muteButton.iconName", "Icons.Volume"); 16 shouldBeFalse("muteButton.muted"); 17 18 const mutedButton = new MuteButton({ layoutTraits: LayoutTraits.macOS }); 19 mutedButton.muted = true; 20 shouldBeTrue("mutedButton.muted"); 21 shouldBecomeEqual("mutedButton.iconName", "Icons.VolumeMuted", () => { 22 shouldBecomeEqual('muteButton.image.element.style.webkitMaskImage.includes("macOS/VolumeHi.svg")', "true", () => { 23 shouldBecomeEqual('mutedButton.image.element.style.webkitMaskImage.includes("macOS/Mute.svg")', "true", finishJSTest); 15 shouldBe("muteButton.iconName", "Icons.VolumeMutedRTL"); 16 shouldBeTrue("muteButton.muted"); 17 shouldBecomeEqual('muteButton.image.element.style.webkitMaskImage.includes("macOS/VolumeMuted-RTL.svg")', "true", () => { 18 debug("Unmuting..."); 19 muteButton.muted = false; 20 shouldBeFalse("muteButton.muted"); 21 shouldBecomeEqual("muteButton.iconName", "Icons.Volume3RTL", () => { 22 shouldBecomeEqual('muteButton.image.element.style.webkitMaskImage.includes("macOS/Volume3-RTL.svg")', "true", finishJSTest); 24 23 }); 25 24 }); 25 26 26 27 27 </script> -
trunk/LayoutTests/platform/ios/TestExpectations
r272244 r272375 2905 2905 media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play.html [ Skip ] 2906 2906 media/modern-media-controls/start-support/start-support-lowPowerMode.html [ Skip ] 2907 media/modern-media-controls/volume-down-support [ Skip ]2908 media/modern-media-controls/volume-up-support [ Skip ]2909 2907 2910 2908 # There is no focus state for on iOS -
trunk/LayoutTests/platform/mac/TestExpectations
r272244 r272375 2141 2141 webkit.org/b/215515 imported/w3c/web-platform-tests/user-timing/measure_navigation_timing.html [ Pass Failure ] 2142 2142 2143 webkit.org/b/215576 media/modern-media-controls/volume-up-support/volume-up-support.html [ Pass Timeout ]2144 2145 2143 webkit.org/b/215583 media/track/track-in-band-style.html [ Pass Failure Timeout ] 2146 2147 webkit.org/b/215587 media/modern-media-controls/volume-down-support/volume-down-support.html [ Pass Timeout ]2148 2144 2149 2145 webkit.org/b/215723 fast/repaint/list-item-equal-style-change-no-repaint.html [ Pass Failure ] -
trunk/Source/WebCore/ChangeLog
r272374 r272375 1 2021-02-04 Devin Rousso <drousso@apple.com> 2 3 Add intermediate volume icon states between "mute" and "max" 4 https://bugs.webkit.org/show_bug.cgi?id=221371 5 6 Reviewed by Eric Carlson. 7 8 * Modules/modern-media-controls/controls/mute-button.js: 9 (MuteButton): 10 (MuteButton.prototype.get volume): Added. 11 (MuteButton.prototype.set volume): Added. 12 (MuteButton.prototype.set usesLTRUserInterfaceLayoutDirection): Added. 13 (MuteButton.prototype.layout): 14 (MuteButton.prototype.set usesRTLIconVariant): Removed. 15 Keep track of the `volume` in addition to `muted` so that the icon can change more granularly: 16 - muted (`VolumeMuted.svg` and `VolumeMuted-RTL.svg`) 17 - 0% < 25% (`Volume0.svg` and `Volume0-RTL.svg`) 18 - 25% < 50% (`Volume1.svg` and `Volume1-RTL.svg`) 19 - 50% < 75% (`Volume2.svg` and `Volume2-RTL.svg`) 20 - 75% <= 100% (`Volume3.svg` and `Volume3-RTL.svg`) 21 Drive-by: rename `set usesRTLIconVariant` to `set usesLTRUserInterfaceLayoutDirection` so 22 that it matches `MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection`. 23 24 * Modules/modern-media-controls/controls/media-controls.js: 25 (MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection): 26 * Modules/modern-media-controls/controls/inline-media-controls.js: 27 (InlineMediaControls.prototype.layout): 28 (InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren): 29 Propagate `usesLTRUserInterfaceLayoutDirection` to `volumeButton` whenever it's changed. 30 31 * Modules/modern-media-controls/media/mute-support.js: 32 (MuteSupport.prototype.syncControl): 33 Also pass along the `volume`. 34 35 * Modules/modern-media-controls/media/volume-support.js: 36 (VolumeSupport.prototype.controlValueWillStartChanging): 37 Don't unmute in `controlValueWillStartChanging` (from `"pointerdown"`) as the user hasn't 38 actually changed the volume yet. 39 40 * Modules/modern-media-controls/js-files: 41 * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js: 42 (MacOSFullscreenMediaControls.prototype._volumeControlsForCurrentDirection): 43 * Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css: 44 (.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider): Added. 45 (.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) :is(.volume-down, .volume.slider, .volume-up)): Deleted. 46 * Modules/modern-media-controls/controls/volume-down-button.js: Removed. 47 * Modules/modern-media-controls/controls/volume-up-button.js: Removed. 48 * Modules/modern-media-controls/media/media-controller.js: 49 (MediaController.prototype._supportingObjectClasses): 50 * Modules/modern-media-controls/media/volume-down-support.js: Removed. 51 * Modules/modern-media-controls/media/volume-up-support.js: Removed. 52 Use the same `MuteButton` in fullscreen instead of `VolumeDownButton` and `VolumeUpButton`. 53 54 * Modules/modern-media-controls/controls/icon-service.js: 55 * Modules/modern-media-controls/images/iOS/Mute-RTL.svg: Removed. 56 * Modules/modern-media-controls/images/iOS/Mute.svg: Removed. 57 * Modules/modern-media-controls/images/iOS/Volume0-RTL.svg: Added. 58 * Modules/modern-media-controls/images/iOS/Volume0.svg: Added. 59 * Modules/modern-media-controls/images/iOS/Volume1-RTL.svg: Added. 60 * Modules/modern-media-controls/images/iOS/Volume1.svg: Added. 61 * Modules/modern-media-controls/images/iOS/Volume2-RTL.svg: Added. 62 * Modules/modern-media-controls/images/iOS/Volume2.svg: Added. 63 * Modules/modern-media-controls/images/iOS/Volume3-RTL.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg. 64 * Modules/modern-media-controls/images/iOS/Volume3.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg. 65 * Modules/modern-media-controls/images/iOS/VolumeHi-RTL.svg: Removed. 66 * Modules/modern-media-controls/images/iOS/VolumeHi.svg: Removed. 67 * Modules/modern-media-controls/images/iOS/VolumeMuted-RTL.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg. 68 * Modules/modern-media-controls/images/iOS/VolumeMuted.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg. 69 * Modules/modern-media-controls/images/macOS/Volume0-RTL.svg: Added. 70 * Modules/modern-media-controls/images/macOS/Volume0.svg: Added. 71 * Modules/modern-media-controls/images/macOS/Volume1-RTL.svg: Added. 72 * Modules/modern-media-controls/images/macOS/Volume1.svg: Added. 73 * Modules/modern-media-controls/images/macOS/Volume2-RTL.svg: Added. 74 * Modules/modern-media-controls/images/macOS/Volume2.svg: Added. 75 * Modules/modern-media-controls/images/macOS/Volume3-RTL.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg. 76 * Modules/modern-media-controls/images/macOS/Volume3.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg. 77 * Modules/modern-media-controls/images/macOS/VolumeLo.svg: Removed. 78 * Modules/modern-media-controls/images/macOS/VolumeMuted-RTL.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg. 79 * Modules/modern-media-controls/images/macOS/VolumeMuted.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg. 80 81 * Configurations/Base.xcconfig: 82 * Configurations/DebugRelease.xcconfig: 83 * html/HTMLMediaElement.cpp: 84 (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): 85 Add an `ENGINEERING_BUILD` compile flag so that the media controls JS/CSS is also available 86 in Web Inspector for engineering builds (in addition to debug builds). 87 1 88 2021-02-04 Philippe Normand <pnormand@igalia.com> 2 89 -
trunk/Source/WebCore/Configurations/Base.xcconfig
r269380 r272375 71 71 GCC_OBJC_CALL_CXX_CDTORS = YES; 72 72 GCC_PRECOMPILE_PREFIX_HEADER = YES; 73 GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(ENGINEERING_BUILD_DEFINES); 73 74 GCC_SYMBOLS_PRIVATE_EXTERN = YES; 74 75 GCC_THREADSAFE_STATICS = NO; … … 92 93 GCC_WARN_UNUSED_VARIABLE = YES; 93 94 WARNING_CFLAGS = -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wconditional-uninitialized -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -Wvla -Wno-unknown-warning-option -Wliteral-conversion; 95 96 ENGINEERING_BUILD_DEFINES = $(ENGINEERING_BUILD_DEFINES_$(ENGINEERING_BUILD)); 97 ENGINEERING_BUILD_DEFINES_1 = ENGINEERING_BUILD=1; 94 98 95 99 TARGET_MACOS_LEGACY_VERSION_IDENTIFIER = $(TARGET_MACOS_LEGACY_VERSION_IDENTIFIER_$(MACOSX_DEPLOYMENT_TARGET:base)) -
trunk/Source/WebCore/Configurations/DebugRelease.xcconfig
r268420 r272375 50 50 MACOSX_DEPLOYMENT_TARGET_120000 = 12.0; 51 51 52 ENGINEERING_BUILD = 1; 53 52 54 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 53 55 DEBUG_INFORMATION_FORMAT = dwarf; -
trunk/Source/WebCore/Modules/modern-media-controls/controls/icon-service.js
r230894 r272375 42 42 SpinnerCompact : { name: "ActivityIndicatorSpriteCompact", type: "png", label: UIString("Loading…") }, 43 43 Tracks : { name: "MediaSelector", type: "svg", label: UIString("Media Selection") }, 44 Volume : { name: "VolumeHi", type: "svg", label: UIString("Mute") }, 45 VolumeRTL : { name: "VolumeHi-RTL", type: "svg", label: UIString("Mute") }, 46 VolumeDown : { name: "VolumeLo", type: "svg", label: UIString("Volume Down") }, 47 VolumeMuted : { name: "Mute", type: "svg", label: UIString("Unmute") }, 48 VolumeMutedRTL : { name: "Mute-RTL", type: "svg", label: UIString("Unmute") }, 49 VolumeUp : { name: "VolumeHi", type: "svg", label: UIString("Volume Up") } 44 Volume0 : { name: "Volume0", type: "svg", label: UIString("Mute") }, 45 Volume0RTL : { name: "Volume0-RTL", type: "svg", label: UIString("Mute") }, 46 Volume1 : { name: "Volume1", type: "svg", label: UIString("Mute") }, 47 Volume1RTL : { name: "Volume1-RTL", type: "svg", label: UIString("Mute") }, 48 Volume2 : { name: "Volume2", type: "svg", label: UIString("Mute") }, 49 Volume2RTL : { name: "Volume2-RTL", type: "svg", label: UIString("Mute") }, 50 Volume3 : { name: "Volume3", type: "svg", label: UIString("Mute") }, 51 Volume3RTL : { name: "Volume3-RTL", type: "svg", label: UIString("Mute") }, 52 VolumeMuted : { name: "VolumeMuted", type: "svg", label: UIString("Unmute") }, 53 VolumeMutedRTL : { name: "VolumeMuted-RTL", type: "svg", label: UIString("Unmute") }, 50 54 }; 51 55 -
trunk/Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js
r265709 r272375 167 167 this.rightContainer.children.concat(this.leftContainer.children).forEach(button => delete button.dropped); 168 168 this.muteButton.style = this.preferredMuteButtonStyle; 169 this.muteButton.usesRTLIconVariant = !this.usesLTRUserInterfaceLayoutDirection;170 169 171 170 for (let button of this._droppableButtons()) { … … 287 286 delete this.muteButton.dropped; 288 287 this.muteButton.style = Button.Styles.Bar; 289 this.muteButton.usesRTLIconVariant = !this.usesLTRUserInterfaceLayoutDirection;290 288 this._topRightControlsBarContainer.children = [this.muteButton]; 291 289 this._topRightControlsBarContainer.layout(); -
trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css
r265709 r272375 43 43 /* Volume controls */ 44 44 45 .media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) :is(.volume-down, .volume.slider, .volume-up){45 .media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider { 46 46 transform: scaleX(-1); 47 47 } -
trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js
r272352 r272375 42 42 43 43 // Set up fullscreen-specific buttons. 44 this.volumeDownButton = new VolumeDownButton(this);45 this.volumeUpButton = new VolumeUpButton(this);46 44 this.rewindButton = new RewindButton(this); 47 45 this.forwardButton = new ForwardButton(this); … … 148 146 _volumeControlsForCurrentDirection() 149 147 { 150 return this.usesLTRUserInterfaceLayoutDirection ? [this. volumeDownButton, this.volumeSlider, this.volumeUpButton] : [this.volumeUpButton, this.volumeSlider, this.volumeDownButton];148 return this.usesLTRUserInterfaceLayoutDirection ? [this.muteButton, this.volumeSlider] : [this.volumeSlider, this.muteButton]; 151 149 } 152 150 -
trunk/Source/WebCore/Modules/modern-media-controls/controls/media-controls.js
r226796 r272375 119 119 this.needsLayout = this.usesLTRUserInterfaceLayoutDirection !== flag; 120 120 this.element.classList.toggle("uses-ltr-user-interface-layout-direction", flag); 121 122 this.muteButton.usesLTRUserInterfaceLayoutDirection = this.usesLTRUserInterfaceLayoutDirection; 121 123 } 122 124 -
trunk/Source/WebCore/Modules/modern-media-controls/controls/mute-button.js
r218991 r272375 31 31 super({ 32 32 cssClassName: "mute", 33 iconName: Icons.Volume ,33 iconName: Icons.VolumeMutedRTL, 34 34 layoutDelegate 35 35 }); 36 36 37 this._muted = false; 38 this._usesRTLIconVariant = false; 37 this._volume = 1; 38 this._muted = true; 39 40 this._usesLTRUserInterfaceLayoutDirection = undefined; 39 41 } 40 42 41 43 // Public 44 45 get volume() 46 { 47 return this._volume; 48 } 49 50 set volume(volume) 51 { 52 if (this._volume === volume) 53 return; 54 55 this._volume = volume; 56 this.needsLayout = true; 57 } 42 58 43 59 get muted() … … 55 71 } 56 72 57 set uses RTLIconVariant(flag)73 set usesLTRUserInterfaceLayoutDirection(usesLTRUserInterfaceLayoutDirection) 58 74 { 59 if ( this._usesRTLIconVariant === flag)75 if (usesLTRUserInterfaceLayoutDirection === this._usesLTRUserInterfaceLayoutDirection) 60 76 return; 61 77 62 this._usesRTLIconVariant = flag; 78 this._usesLTRUserInterfaceLayoutDirection = usesLTRUserInterfaceLayoutDirection; 79 63 80 this.needsLayout = true; 64 81 } … … 68 85 layout() 69 86 { 70 if (this._usesRTLIconVariant) 71 this.iconName = this._muted ? Icons.VolumeMutedRTL : Icons.VolumeRTL; 87 if (this._muted || this._volume < 0) 88 this.iconName = this._usesLTRUserInterfaceLayoutDirection ? Icons.VolumeMuted : Icons.VolumeMutedRTL; 89 else if (this._volume < 0.25) 90 this.iconName = this._usesLTRUserInterfaceLayoutDirection ? Icons.Volume0 : Icons.Volume0RTL; 91 else if (this._volume < 0.5) 92 this.iconName = this._usesLTRUserInterfaceLayoutDirection ? Icons.Volume1 : Icons.Volume1RTL; 93 else if (this._volume < 0.75) 94 this.iconName = this._usesLTRUserInterfaceLayoutDirection ? Icons.Volume2 : Icons.Volume2RTL; 72 95 else 73 this.iconName = this._ muted ? Icons.VolumeMuted : Icons.Volume;96 this.iconName = this._usesLTRUserInterfaceLayoutDirection ? Icons.Volume3 : Icons.Volume3RTL; 74 97 } 75 76 98 } -
trunk/Source/WebCore/Modules/modern-media-controls/js-files
r230895 r272375 23 23 controls/rewind-button.js 24 24 controls/forward-button.js 25 controls/volume-down-button.js26 controls/volume-up-button.js27 25 controls/buttons-container.js 28 26 controls/status-label.js … … 61 59 media/time-control-support.js 62 60 media/tracks-support.js 63 media/volume-down-support.js64 61 media/volume-support.js 65 media/volume-up-support.js66 62 media/media-document-controller.js 67 63 media/compact-media-controls-support.js -
trunk/Source/WebCore/Modules/modern-media-controls/media/media-controller.js
r264684 r272375 187 187 return [CompactMediaControlsSupport]; 188 188 189 return [AirplaySupport, AudioSupport, ControlsVisibilitySupport, FullscreenSupport, MuteSupport, PiPSupport, PlacardSupport, PlaybackSupport, ScrubbingSupport, SeekBackwardSupport, SeekForwardSupport, SkipBackSupport, SkipForwardSupport, StartSupport, StatusSupport, TimeControlSupport, TracksSupport, VolumeSupport , VolumeDownSupport, VolumeUpSupport];189 return [AirplaySupport, AudioSupport, ControlsVisibilitySupport, FullscreenSupport, MuteSupport, PiPSupport, PlacardSupport, PlaybackSupport, ScrubbingSupport, SeekBackwardSupport, SeekForwardSupport, SkipBackSupport, SkipForwardSupport, StartSupport, StatusSupport, TimeControlSupport, TracksSupport, VolumeSupport]; 190 190 } 191 191 -
trunk/Source/WebCore/Modules/modern-media-controls/media/mute-support.js
r209451 r272375 47 47 syncControl() 48 48 { 49 this.control.volume = this.mediaController.media.volume; 49 50 this.control.muted = this.mediaController.media.muted; 50 51 } -
trunk/Source/WebCore/Modules/modern-media-controls/media/volume-support.js
r213848 r272375 42 42 { 43 43 this._volumeBeforeChange = this.mediaController.media.volume; 44 this.mediaController.media.muted = false;45 44 } 46 45 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r272313 r272375 7143 7143 return true; 7144 7144 7145 #if ndef NDEBUG7145 #if ENGINEERING_BUILD || !defined(NDEBUG) 7146 7146 // Setting a scriptURL allows the source to be debuggable in the inspector. 7147 7147 URL scriptURL = URL({ }, "mediaControlsScript"_s);
Note: See TracChangeset
for help on using the changeset viewer.