зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1134399 - Make context-menu media commands use messages to avoid unsafe CPOW usage warnings. r=mconley
This commit is contained in:
Родитель
5206440c83
Коммит
c3501392ac
|
@ -1064,3 +1064,38 @@ addMessageListener("ContextMenu:SaveVideoFrameAsImage", (message) => {
|
|||
dataURL: canvas.toDataURL("image/jpeg", ""),
|
||||
});
|
||||
});
|
||||
|
||||
addMessageListener("ContextMenu:MediaCommand", (message) => {
|
||||
let media = message.objects.element;
|
||||
|
||||
switch (message.data.command) {
|
||||
case "play":
|
||||
media.play();
|
||||
break;
|
||||
case "pause":
|
||||
media.pause();
|
||||
break;
|
||||
case "mute":
|
||||
media.muted = true;
|
||||
break;
|
||||
case "unmute":
|
||||
media.muted = false;
|
||||
break;
|
||||
case "playbackRate":
|
||||
media.playbackRate = message.data.data;
|
||||
break;
|
||||
case "hidecontrols":
|
||||
media.removeAttribute("controls");
|
||||
break;
|
||||
case "showcontrols":
|
||||
media.setAttribute("controls", "true");
|
||||
break;
|
||||
case "hidestats":
|
||||
case "showstats":
|
||||
let event = media.ownerDocument.createEvent("CustomEvent");
|
||||
event.initCustomEvent("media-showStatistics", false, true,
|
||||
message.data.command == "showstats");
|
||||
media.dispatchEvent(event);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1668,37 +1668,10 @@ nsContextMenu.prototype = {
|
|||
},
|
||||
|
||||
mediaCommand : function CM_mediaCommand(command, data) {
|
||||
var media = this.target;
|
||||
|
||||
switch (command) {
|
||||
case "play":
|
||||
media.play();
|
||||
break;
|
||||
case "pause":
|
||||
media.pause();
|
||||
break;
|
||||
case "mute":
|
||||
media.muted = true;
|
||||
break;
|
||||
case "unmute":
|
||||
media.muted = false;
|
||||
break;
|
||||
case "playbackRate":
|
||||
media.playbackRate = data;
|
||||
break;
|
||||
case "hidecontrols":
|
||||
media.removeAttribute("controls");
|
||||
break;
|
||||
case "showcontrols":
|
||||
media.setAttribute("controls", "true");
|
||||
break;
|
||||
case "hidestats":
|
||||
case "showstats":
|
||||
var event = media.ownerDocument.createEvent("CustomEvent");
|
||||
event.initCustomEvent("media-showStatistics", false, true, command == "showstats");
|
||||
media.dispatchEvent(event);
|
||||
break;
|
||||
}
|
||||
let mm = this.browser.messageManager;
|
||||
mm.sendAsyncMessage("ContextMenu:MediaCommand",
|
||||
{command: command, data: data},
|
||||
{element: this.target});
|
||||
},
|
||||
|
||||
copyMediaLocation : function () {
|
||||
|
|
Загрузка…
Ссылка в новой задаче