Changeset 195912 in webkit
- Timestamp:
- Jan 30, 2016, 2:19:08 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/media/controls/controls-test-helpers.js (modified) (6 diffs)
-
LayoutTests/media/controls/track-menu-expected.txt (added)
-
LayoutTests/media/controls/track-menu.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/Modules/mediacontrols/mediaControlsApple.css (modified) (1 diff)
-
Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r195907 r195912 1 2016-01-30 Eric Carlson <eric.carlson@apple.com> 2 3 More than one audio and/or text track sometimes selected in media controls menu 4 https://bugs.webkit.org/show_bug.cgi?id=153664 5 6 Reviewed by Jer Noble. 7 8 * media/controls/controls-test-helpers.js: 9 (ControlsTest.prototype.get currentState): 10 (ControlsTest.prototype.get video): 11 (ControlsTest.prototype.stateForControlsElement): 12 (ControlsTest.prototype.handleEvent): 13 (ControlsTest.prototype.setup): 14 (ControlsTest.prototype.start): 15 (ControlsTest.prototype.isEqualTo): 16 (ControlsTest.prototype.isNotEqualTo): 17 (ControlsTest.prototype.contains): 18 * media/controls/track-menu-expected.txt: Added. 19 * media/controls/track-menu.html: Added. 20 1 21 2016-01-30 Chris Dumez <cdumez@apple.com> 2 22 -
trunk/LayoutTests/media/controls/controls-test-helpers.js
r192631 r195912 34 34 // This is only for fallback testing. Even then it is pretty useless. 35 35 return { idiom: "apple", status: "fail" }; 36 } 37 38 get video() 39 { 40 return this.media; 36 41 } 37 42 … … 54 59 { 55 60 this.logMessage(`EVENT: ${event.type}`); 56 if (event.type == this.eventTrigger && this.callback )61 if (event.type == this.eventTrigger && this.callback && window.testRunner) 57 62 this.callback(); 58 63 } … … 88 93 setup() 89 94 { 90 if (!window.testRunner) {91 this.logFailure("Test requires DRT.");92 return false;93 }94 95 95 this.console = document.createElement("div"); 96 96 this.console.className = "console"; … … 108 108 this.media.src = findMediaFile("video", this.mediaURL); 109 109 110 if (!window.testRunner) { 111 this.logFailure("Test requires DRT."); 112 return false; 113 } 114 110 115 return true; 111 116 } … … 114 119 { 115 120 window.addEventListener("load", function () { 116 this.setup(); 121 if (!this.setup()) 122 return; 123 117 124 if (msg) 118 125 this.startNewSection(msg); … … 150 157 } 151 158 159 isNotEqualTo(value) 160 { 161 if (this.currentValue != value) 162 this.logSuccess(this.currentMessage); 163 else 164 this.logFailure(`${this.currentMessage} Expected to not be equal to: "${value}". Actual: "${this.currentValue}"`); 165 } 166 152 167 contains(value) 153 168 { -
trunk/Source/WebCore/ChangeLog
r195911 r195912 1 2016-01-30 Eric Carlson <eric.carlson@apple.com> 2 3 More than one audio and/or text track sometimes selected in media controls menu 4 https://bugs.webkit.org/show_bug.cgi?id=153664 5 6 Use an <img> element for the track menu item checkmark instead of a background image and 7 the ::before selector. 8 9 Reviewed by Jer Noble. 10 11 Test: media/controls/track-menu.html 12 13 * Modules/mediacontrols/mediaControlsApple.css: 14 (audio::-webkit-media-controls-closed-captions-container li:hover): 15 (audio::-webkit-media-controls-closed-captions-container li .checkmark-container): 16 (audio::-webkit-media-controls-closed-captions-container li.selected .checkmark-container): 17 (audio::-webkit-media-controls-closed-captions-container li.selected:hover .checkmark-container): 18 (audio::-webkit-media-controls-closed-captions-container li.selected::before): Deleted. 19 (audio::-webkit-media-controls-closed-captions-container li.selected:hover::before): Deleted. 20 * Modules/mediacontrols/mediaControlsApple.js: 21 (Controller.prototype.buildCaptionMenu): 22 (Controller.prototype.): 23 (Controller.prototype.getCurrentControlsStatus): 24 1 25 2016-01-30 Darin Adler <darin@apple.com> 2 26 -
trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css
r195693 r195912 459 459 } 460 460 461 video::-webkit-media-controls-closed-captions-container li.selected::before, 462 audio::-webkit-media-controls-closed-captions-container li.selected::before { 463 display: block; 464 content: ""; 461 video::-webkit-media-controls-closed-captions-container li .checkmark-container, 462 audio::-webkit-media-controls-closed-captions-container li .checkmark-container { 463 display: none; 465 464 position: absolute; 466 465 top: 0.25em; 466 left: 1em; 467 467 width: 1.1em; 468 468 height: 1.1em; 469 -webkit-margin-start: -20px; 470 background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><polygon fill="rgb(163, 163, 163)" points="252.301,4.477 126.667,194.104 43.358,108.3 6.868,161.408 132.515,290.814 297.732,49.926"/></svg>'); 471 background-repeat: no-repeat; 472 } 473 474 video::-webkit-media-controls-closed-captions-container li.selected:hover::before, 475 audio::-webkit-media-controls-closed-captions-container li.selected:hover::before { 476 background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><polygon fill="rgba(255,255,255,0.45)" points="252.301,4.477 126.667,194.104 43.358,108.3 6.868,161.408 132.515,290.814 297.732,49.926"/></svg>'); 469 } 470 471 video::-webkit-media-controls-closed-captions-container li.selected .checkmark-container, 472 audio::-webkit-media-controls-closed-captions-container li.selected .checkmark-container { 473 display: inline-block; 474 content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><polygon fill="rgb(163, 163, 163)" points="252.301,4.477 126.667,194.104 43.358,108.3 6.868,161.408 132.515,290.814 297.732,49.926"/></svg>'); 475 } 476 477 video::-webkit-media-controls-closed-captions-container li.selected:hover .checkmark-container, 478 audio::-webkit-media-controls-closed-captions-container li.selected:hover .checkmark-container { 479 content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><polygon fill="rgba(255,255,255,0.45)" points="252.301,4.477 126.667,194.104 43.358,108.3 6.868,161.408 132.515,290.814 297.732,49.926"/></svg>'); 477 480 } 478 481 -
trunk/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js
r195693 r195912 476 476 captionButton.setAttribute('aria-label', this.UIString('Captions')); 477 477 captionButton.setAttribute('aria-haspopup', 'true'); 478 captionButton.setAttribute('aria-owns', 'audio TrackMenu');478 captionButton.setAttribute('aria-owns', 'audioAndTextTrackMenu'); 479 479 this.listenFor(captionButton, 'click', this.handleCaptionButtonClicked); 480 480 … … 1738 1738 this.captionMenu = document.createElement('div'); 1739 1739 this.captionMenu.setAttribute('pseudo', '-webkit-media-controls-closed-captions-container'); 1740 this.captionMenu.setAttribute('id', 'audio TrackMenu');1740 this.captionMenu.setAttribute('id', 'audioAndTextTrackMenu'); 1741 1741 this.base.appendChild(this.captionMenu); 1742 1742 this.captionMenuItems = []; … … 1774 1774 menuItem.track = track; 1775 1775 1776 var itemCheckmark = document.createElement("img"); 1777 itemCheckmark.classList.add("checkmark-container"); 1778 menuItem.insertBefore(itemCheckmark, menuItem.firstChild); 1779 1776 1780 if (track.enabled) { 1777 1781 menuItem.classList.add(this.ClassNames.selected); … … 1806 1810 menuItem.track = track; 1807 1811 1812 var itemCheckmark = document.createElement("img"); 1813 itemCheckmark.classList.add("checkmark-container"); 1814 menuItem.insertBefore(itemCheckmark, menuItem.firstChild); 1815 1808 1816 if (track === offItem) { 1809 1817 var offMenu = menuItem; … … 1831 1839 if (offMenu && displayMode === 'forced-only' && !trackMenuItemSelected) { 1832 1840 offMenu.classList.add(this.ClassNames.selected); 1833 menuItem.setAttribute('tabindex', '0');1834 menuItem.setAttribute('aria-checked', 'true');1841 offMenu.setAttribute('tabindex', '0'); 1842 offMenu.setAttribute('aria-checked', 'true'); 1835 1843 } 1836 1844 } … … 2243 2251 object: this.controls.pictureInPictureButton 2244 2252 }, 2253 { 2254 name: "Track Menu", 2255 object: this.captionMenu 2256 }, 2245 2257 ]; 2246 2258 … … 2250 2262 2251 2263 element.computedStyle = {}; 2252 if ( element.styleValues) {2264 if (obj && element.styleValues) { 2253 2265 var computedStyle = window.getComputedStyle(obj); 2254 2266 element.styleValues.forEach(function (propertyName) { … … 2258 2270 } 2259 2271 2260 element.bounds = obj .getBoundingClientRect();2261 element.className = obj .className;2262 element.ariaLabel = obj .getAttribute('aria-label');2272 element.bounds = obj ? obj.getBoundingClientRect() : null; 2273 element.className = obj ? obj.className : null; 2274 element.ariaLabel = obj ? obj.getAttribute('aria-label') : null; 2263 2275 2264 2276 if (element.extraProperties) { 2265 2277 element.extraProperties.forEach(function (property) { 2266 element[property] = obj [property];2278 element[property] = obj ? obj[property] : null; 2267 2279 }); 2268 2280 delete element.extraProperties; 2269 2281 } 2282 2283 element.element = obj; 2270 2284 }); 2271 2285
Note:
See TracChangeset
for help on using the changeset viewer.