зеркало из https://github.com/mozilla/gecko-dev.git
Bug 556563 - Disable/remove "View video" when you're already viewing the video. r=dolske
This commit is contained in:
Родитель
2c1ae7e107
Коммит
3846292d90
|
@ -277,9 +277,10 @@ nsContextMenu.prototype = {
|
||||||
// View image depends on having an image that's not standalone
|
// View image depends on having an image that's not standalone
|
||||||
// (or is in a frame), or a canvas.
|
// (or is in a frame), or a canvas.
|
||||||
this.showItem("context-viewimage", (this.onImage &&
|
this.showItem("context-viewimage", (this.onImage &&
|
||||||
(!this.onStandaloneImage || this.inFrame)) || this.onCanvas);
|
(!this.inSyntheticDoc || this.inFrame)) || this.onCanvas);
|
||||||
|
|
||||||
this.showItem("context-viewvideo", this.onVideo);
|
// View video depends on not having a standalone video.
|
||||||
|
this.showItem("context-viewvideo", this.onVideo && (!this.inSyntheticDoc || this.inFrame));
|
||||||
this.setItemAttr("context-viewvideo", "disabled", !this.mediaURL);
|
this.setItemAttr("context-viewvideo", "disabled", !this.mediaURL);
|
||||||
|
|
||||||
// View background image depends on whether there is one.
|
// View background image depends on whether there is one.
|
||||||
|
@ -466,7 +467,6 @@ nsContextMenu.prototype = {
|
||||||
this.onImage = false;
|
this.onImage = false;
|
||||||
this.onLoadedImage = false;
|
this.onLoadedImage = false;
|
||||||
this.onCompletedImage = false;
|
this.onCompletedImage = false;
|
||||||
this.onStandaloneImage = false;
|
|
||||||
this.onCanvas = false;
|
this.onCanvas = false;
|
||||||
this.onVideo = false;
|
this.onVideo = false;
|
||||||
this.onAudio = false;
|
this.onAudio = false;
|
||||||
|
@ -482,6 +482,7 @@ nsContextMenu.prototype = {
|
||||||
this.linkProtocol = "";
|
this.linkProtocol = "";
|
||||||
this.onMathML = false;
|
this.onMathML = false;
|
||||||
this.inFrame = false;
|
this.inFrame = false;
|
||||||
|
this.inSyntheticDoc = false;
|
||||||
this.hasBGImage = false;
|
this.hasBGImage = false;
|
||||||
this.bgImageURL = "";
|
this.bgImageURL = "";
|
||||||
this.onEditableArea = false;
|
this.onEditableArea = false;
|
||||||
|
@ -500,6 +501,8 @@ nsContextMenu.prototype = {
|
||||||
// Remember the node that was clicked.
|
// Remember the node that was clicked.
|
||||||
this.target = aNode;
|
this.target = aNode;
|
||||||
|
|
||||||
|
// Check if we are in a synthetic document (stand alone image, video, etc.).
|
||||||
|
this.inSyntheticDoc = this.target.ownerDocument.mozSyntheticDocument;
|
||||||
// First, do checks for nodes that never have children.
|
// First, do checks for nodes that never have children.
|
||||||
if (this.target.nodeType == Node.ELEMENT_NODE) {
|
if (this.target.nodeType == Node.ELEMENT_NODE) {
|
||||||
// See if the user clicked on an image.
|
// See if the user clicked on an image.
|
||||||
|
@ -515,8 +518,6 @@ nsContextMenu.prototype = {
|
||||||
this.onCompletedImage = true;
|
this.onCompletedImage = true;
|
||||||
|
|
||||||
this.mediaURL = this.target.currentURI.spec;
|
this.mediaURL = this.target.currentURI.spec;
|
||||||
if (this.target.ownerDocument instanceof ImageDocument)
|
|
||||||
this.onStandaloneImage = true;
|
|
||||||
}
|
}
|
||||||
else if (this.target instanceof HTMLCanvasElement) {
|
else if (this.target instanceof HTMLCanvasElement) {
|
||||||
this.onCanvas = true;
|
this.onCanvas = true;
|
||||||
|
|
|
@ -18,6 +18,8 @@ Browser context menu subtest.
|
||||||
<source src="bogus.duh" type="video/durrrr;">
|
<source src="bogus.duh" type="video/durrrr;">
|
||||||
</video>
|
</video>
|
||||||
<iframe id="test-iframe" width="98" height="98" style="border: 1px solid black"></iframe>
|
<iframe id="test-iframe" width="98" height="98" style="border: 1px solid black"></iframe>
|
||||||
|
<iframe id="test-video-in-iframe" src="video.ogg" width="98" height="98" style="border: 1px solid black"></iframe>
|
||||||
|
<iframe id="test-image-in-iframe" src="ctxmenu-image.png" width="98" height="98" style="border: 1px solid black"></iframe>
|
||||||
<textarea id="test-textarea">chssseesbbbie</textarea> <!-- a weird word which generates only one suggestion -->
|
<textarea id="test-textarea">chssseesbbbie</textarea> <!-- a weird word which generates only one suggestion -->
|
||||||
<div id="test-contenteditable" contenteditable="true">chssseefsbbbie</div> <!-- a more weird word which generates no suggestions -->
|
<div id="test-contenteditable" contenteditable="true">chssseefsbbbie</div> <!-- a more weird word which generates no suggestions -->
|
||||||
<input id="test-input-spellcheck" type="text" spellcheck="true" autofocus value="prodkjfgigrty"> <!-- this one also generates one suggestion -->
|
<input id="test-input-spellcheck" type="text" spellcheck="true" autofocus value="prodkjfgigrty"> <!-- this one also generates one suggestion -->
|
||||||
|
|
|
@ -433,10 +433,68 @@ function runTest(testNum) {
|
||||||
"context-viewinfo", true
|
"context-viewinfo", true
|
||||||
].concat(inspectItems));
|
].concat(inspectItems));
|
||||||
closeContextMenu();
|
closeContextMenu();
|
||||||
openContextMenuFor(textarea, false, true); // Invoke context menu for next test, but wait for the spellcheck.
|
openContextMenuFor(video_in_iframe); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 12:
|
case 12:
|
||||||
|
// Context menu for a video in an iframe
|
||||||
|
checkContextMenu(["context-media-play", true,
|
||||||
|
"context-media-mute", true,
|
||||||
|
"context-media-hidecontrols", true,
|
||||||
|
"context-video-showstats", true,
|
||||||
|
"context-video-fullscreen", true,
|
||||||
|
"---", null,
|
||||||
|
"context-viewvideo", true,
|
||||||
|
"context-copyvideourl", true,
|
||||||
|
"---", null,
|
||||||
|
"context-savevideo", true,
|
||||||
|
"context-video-saveimage", true,
|
||||||
|
"context-sendvideo", true,
|
||||||
|
"frame", null,
|
||||||
|
["context-showonlythisframe", true,
|
||||||
|
"context-openframeintab", true,
|
||||||
|
"context-openframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-reloadframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-bookmarkframe", true,
|
||||||
|
"context-saveframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-printframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-viewframeinfo", true], null].concat(inspectItems));
|
||||||
|
closeContextMenu();
|
||||||
|
openContextMenuFor(image_in_iframe); // Invoke context menu for next test.
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 13:
|
||||||
|
// Context menu for an image in an iframe
|
||||||
|
checkContextMenu(["context-viewimage", true,
|
||||||
|
"context-copyimage-contents", true,
|
||||||
|
"context-copyimage", true,
|
||||||
|
"---", null,
|
||||||
|
"context-saveimage", true,
|
||||||
|
"context-sendimage", true,
|
||||||
|
"context-setDesktopBackground", true,
|
||||||
|
"context-viewimageinfo", true,
|
||||||
|
"frame", null,
|
||||||
|
["context-showonlythisframe", true,
|
||||||
|
"context-openframeintab", true,
|
||||||
|
"context-openframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-reloadframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-bookmarkframe", true,
|
||||||
|
"context-saveframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-printframe", true,
|
||||||
|
"---", null,
|
||||||
|
"context-viewframeinfo", true], null].concat(inspectItems));
|
||||||
|
closeContextMenu();
|
||||||
|
openContextMenuFor(textarea, false, true); // Invoke context menu for next test, but wait for the spellcheck.
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 14:
|
||||||
// Context menu for textarea
|
// Context menu for textarea
|
||||||
checkContextMenu(["*chubbiness", true, // spelling suggestion
|
checkContextMenu(["*chubbiness", true, // spelling suggestion
|
||||||
"spell-add-to-dictionary", true,
|
"spell-add-to-dictionary", true,
|
||||||
|
@ -461,7 +519,7 @@ function runTest(testNum) {
|
||||||
openContextMenuFor(contenteditable); // Invoke context menu for next test.
|
openContextMenuFor(contenteditable); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 13:
|
case 15:
|
||||||
// Context menu for contenteditable
|
// Context menu for contenteditable
|
||||||
checkContextMenu(["spell-no-suggestions", false,
|
checkContextMenu(["spell-no-suggestions", false,
|
||||||
"spell-add-to-dictionary", true,
|
"spell-add-to-dictionary", true,
|
||||||
|
@ -486,7 +544,7 @@ function runTest(testNum) {
|
||||||
openContextMenuFor(inputspell); // Invoke context menu for next test.
|
openContextMenuFor(inputspell); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 14:
|
case 16:
|
||||||
// Context menu for spell-check input
|
// Context menu for spell-check input
|
||||||
checkContextMenu(["*prodigality", true, // spelling suggestion
|
checkContextMenu(["*prodigality", true, // spelling suggestion
|
||||||
"spell-add-to-dictionary", true,
|
"spell-add-to-dictionary", true,
|
||||||
|
@ -511,13 +569,13 @@ function runTest(testNum) {
|
||||||
openContextMenuFor(link); // Invoke context menu for next test.
|
openContextMenuFor(link); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 15:
|
case 17:
|
||||||
executeCopyCommand("cmd_copyLink", "http://mozilla.com/");
|
executeCopyCommand("cmd_copyLink", "http://mozilla.com/");
|
||||||
closeContextMenu();
|
closeContextMenu();
|
||||||
openContextMenuFor(pagemenu); // Invoke context menu for next test.
|
openContextMenuFor(pagemenu); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16:
|
case 18:
|
||||||
// Context menu for element with assigned content context menu
|
// Context menu for element with assigned content context menu
|
||||||
checkContextMenu(["+Plain item", {type: "", icon: "", checked: false, disabled: false},
|
checkContextMenu(["+Plain item", {type: "", icon: "", checked: false, disabled: false},
|
||||||
"+Disabled item", {type: "", icon: "", checked: false, disabled: true},
|
"+Disabled item", {type: "", icon: "", checked: false, disabled: true},
|
||||||
|
@ -560,7 +618,7 @@ function runTest(testNum) {
|
||||||
openContextMenuFor(pagemenu, true); // Invoke context menu for next test.
|
openContextMenuFor(pagemenu, true); // Invoke context menu for next test.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 17:
|
case 19:
|
||||||
// Context menu for element with assigned content context menu
|
// Context menu for element with assigned content context menu
|
||||||
// The shift key should bypass content context menu processing
|
// The shift key should bypass content context menu processing
|
||||||
checkContextMenu(["context-back", false,
|
checkContextMenu(["context-back", false,
|
||||||
|
@ -604,7 +662,7 @@ function runTest(testNum) {
|
||||||
var testNum = 1;
|
var testNum = 1;
|
||||||
var subwindow, chromeWin, contextMenu, lastElement;
|
var subwindow, chromeWin, contextMenu, lastElement;
|
||||||
var text, link, mailto, input, img, canvas, video_ok, video_bad, video_bad2,
|
var text, link, mailto, input, img, canvas, video_ok, video_bad, video_bad2,
|
||||||
iframe, textarea, contenteditable, inputspell, pagemenu;
|
iframe, video_in_iframe, image_in_iframe, textarea, contenteditable, inputspell, pagemenu;
|
||||||
|
|
||||||
function startTest() {
|
function startTest() {
|
||||||
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
|
||||||
|
@ -636,6 +694,9 @@ function startTest() {
|
||||||
video_bad = subwindow.document.getElementById("test-video-bad");
|
video_bad = subwindow.document.getElementById("test-video-bad");
|
||||||
video_bad2 = subwindow.document.getElementById("test-video-bad2");
|
video_bad2 = subwindow.document.getElementById("test-video-bad2");
|
||||||
iframe = subwindow.document.getElementById("test-iframe");
|
iframe = subwindow.document.getElementById("test-iframe");
|
||||||
|
video_in_iframe = subwindow.document.getElementById("test-video-in-iframe").contentDocument.getElementsByTagName("video")[0];
|
||||||
|
video_in_iframe.pause();
|
||||||
|
image_in_iframe = subwindow.document.getElementById("test-image-in-iframe").contentDocument.getElementsByTagName("img")[0];
|
||||||
textarea = subwindow.document.getElementById("test-textarea");
|
textarea = subwindow.document.getElementById("test-textarea");
|
||||||
contenteditable = subwindow.document.getElementById("test-contenteditable");
|
contenteditable = subwindow.document.getElementById("test-contenteditable");
|
||||||
contenteditable.focus(); // content editable needs to be focused to enable spellcheck
|
contenteditable.focus(); // content editable needs to be focused to enable spellcheck
|
||||||
|
|
Загрузка…
Ссылка в новой задаче