Bug 1134399 - Make context-menu media commands use messages to avoid unsafe CPOW usage warnings. r=mconley

This commit is contained in:
Ian Moody 2015-02-19 01:37:00 -05:00
Родитель 5206440c83
Коммит c3501392ac
2 изменённых файлов: 39 добавлений и 31 удалений

Просмотреть файл

@ -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 () {