зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1159490 - Allow cut/copy event dispatch unconditionally in HTML documents. r=neil
This commit is contained in:
Родитель
c13b8f3ee6
Коммит
4c5c129216
|
@ -357,8 +357,8 @@ function runTest(testNum) {
|
|||
// Context menu for textarea before spell check initialization finishes
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null,
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -377,8 +377,8 @@ function runTest(testNum) {
|
|||
"---", null,
|
||||
"context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -409,8 +409,8 @@ function runTest(testNum) {
|
|||
"---", null,
|
||||
"context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -434,8 +434,8 @@ function runTest(testNum) {
|
|||
"---", null,
|
||||
"context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -650,8 +650,8 @@ function runTest(testNum) {
|
|||
// Context menu for selected text in input[type="password"]
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", true,
|
||||
"---", null,
|
||||
|
@ -743,8 +743,8 @@ function runTest(testNum) {
|
|||
// Context menu for text input field with spellcheck=false
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
|
|
@ -40,8 +40,8 @@ function runTest(testNum) {
|
|||
// Context menu for text input field.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -61,8 +61,8 @@ function runTest(testNum) {
|
|||
// Context menu for spell-check input.
|
||||
checkContextMenu(["context-undo", value,
|
||||
"---", null,
|
||||
"context-cut", value,
|
||||
"context-copy", value,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", value,
|
||||
"---", null,
|
||||
|
@ -90,8 +90,8 @@ function runTest(testNum) {
|
|||
"---", null,
|
||||
"context-undo", value,
|
||||
"---", null,
|
||||
"context-cut", value,
|
||||
"context-copy", value,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", value,
|
||||
"---", null,
|
||||
|
@ -115,8 +115,8 @@ function runTest(testNum) {
|
|||
// Context menu for spell-check input with a known word.
|
||||
checkContextMenu(["context-undo", value,
|
||||
"---", null,
|
||||
"context-cut", value,
|
||||
"context-copy", value,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", value,
|
||||
"---", null,
|
||||
|
@ -139,8 +139,8 @@ function runTest(testNum) {
|
|||
// Context menu for disabled input.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -157,15 +157,11 @@ function runTest(testNum) {
|
|||
break;
|
||||
|
||||
case 7: // password
|
||||
case 8: // email
|
||||
case 9: // url
|
||||
case 10: // tel
|
||||
case 11: // type='number'
|
||||
// Context menu for tel, password, email, url and number input fields.
|
||||
// Context menu for password input fields.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -175,9 +171,30 @@ function runTest(testNum) {
|
|||
|
||||
closeContextMenu();
|
||||
|
||||
if (testNum == 7) {
|
||||
input.type = 'email';
|
||||
} else if (testNum == 8) {
|
||||
input.type = 'email';
|
||||
|
||||
openContextMenuFor(input); // Invoke context menu for next test.
|
||||
break;
|
||||
|
||||
case 8: // email
|
||||
case 9: // url
|
||||
case 10: // tel
|
||||
case 11: // type='number'
|
||||
// Context menu for tel, email, url and number input fields.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
"context-selectall", false,
|
||||
"---", null,
|
||||
"context-inspect", true]);
|
||||
|
||||
closeContextMenu();
|
||||
|
||||
if (testNum == 8) {
|
||||
input.type = 'url';
|
||||
} else if (testNum == 9) {
|
||||
input.type = 'tel';
|
||||
|
@ -228,8 +245,8 @@ function runTest(testNum) {
|
|||
// Context menu for search input fields.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
@ -257,8 +274,8 @@ function runTest(testNum) {
|
|||
// Context menu for a read-only input.
|
||||
checkContextMenu(["context-undo", false,
|
||||
"---", null,
|
||||
"context-cut", false,
|
||||
"context-copy", false,
|
||||
"context-cut", true,
|
||||
"context-copy", true,
|
||||
"context-paste", null, // ignore clipboard state
|
||||
"context-delete", false,
|
||||
"---", null,
|
||||
|
|
|
@ -19,7 +19,7 @@ add_task(function() {
|
|||
|
||||
let copyButton = document.getElementById("copy-button");
|
||||
ok(copyButton, "Copy button exists in Panel Menu");
|
||||
is(copyButton.getAttribute("disabled"), "true", "Copy button is initially disabled");
|
||||
ok(!copyButton.getAttribute("disabled"), "Copy button is initially enabled");
|
||||
|
||||
// copy text from URL bar
|
||||
gURLBar.value = testText;
|
||||
|
@ -28,7 +28,7 @@ add_task(function() {
|
|||
yield PanelUI.show();
|
||||
info("Menu panel was opened");
|
||||
|
||||
ok(!copyButton.hasAttribute("disabled"), "Copy button gets enabled");
|
||||
ok(!copyButton.hasAttribute("disabled"), "Copy button is enabled when selecting");
|
||||
|
||||
copyButton.click();
|
||||
is(gURLBar.value, testText, "Selected text is unaltered when clicking copy");
|
||||
|
|
|
@ -18,7 +18,7 @@ add_task(function() {
|
|||
|
||||
let cutButton = document.getElementById("cut-button");
|
||||
ok(cutButton, "Cut button exists in Panel Menu");
|
||||
ok(cutButton.getAttribute("disabled"), "Cut button is disabled");
|
||||
ok(!cutButton.hasAttribute("disabled"), "Cut button is enabled");
|
||||
|
||||
// cut text from URL bar
|
||||
gURLBar.value = testText;
|
||||
|
@ -27,7 +27,7 @@ add_task(function() {
|
|||
yield PanelUI.show();
|
||||
info("Menu panel was opened");
|
||||
|
||||
ok(!cutButton.hasAttribute("disabled"), "Cut button gets enabled");
|
||||
ok(!cutButton.hasAttribute("disabled"), "Cut button is enabled when selecting");
|
||||
cutButton.click();
|
||||
is(gURLBar.value, "", "Selected text is removed from source when clicking on cut");
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ function runTests()
|
|||
};
|
||||
|
||||
let firstShow = function() {
|
||||
ok(cutItem.hasAttribute("disabled"), "cut menuitem is disabled");
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled");
|
||||
closeMenu(firstHide);
|
||||
};
|
||||
|
||||
|
@ -149,7 +149,7 @@ function runTests()
|
|||
};
|
||||
|
||||
let showAfterCut = function() {
|
||||
ok(cutItem.hasAttribute("disabled"), "cut menuitem is disabled after cut");
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled after cut");
|
||||
ok(!pasteItem.hasAttribute("disabled"), "paste menuitem is enabled after cut");
|
||||
closeMenu(hideAfterCut);
|
||||
};
|
||||
|
@ -167,7 +167,7 @@ function runTests()
|
|||
};
|
||||
|
||||
let showAfterPaste = function() {
|
||||
ok(cutItem.hasAttribute("disabled"), "cut menuitem is disabled after paste");
|
||||
ok(!cutItem.hasAttribute("disabled"), "cut menuitem is enabled after paste");
|
||||
ok(!pasteItem.hasAttribute("disabled"), "paste menuitem is enabled after paste");
|
||||
closeMenu(hideAfterPaste);
|
||||
};
|
||||
|
|
|
@ -17,8 +17,7 @@ function goUpdateGlobalEditMenuItems()
|
|||
|
||||
goUpdateCommand("cmd_undo");
|
||||
goUpdateCommand("cmd_redo");
|
||||
goUpdateCommand("cmd_cut");
|
||||
goUpdateCommand("cmd_copy");
|
||||
// don't update the cmd_cut or cmd_copy items - as we want them to always be enabled
|
||||
goUpdateCommand("cmd_paste");
|
||||
goUpdateCommand("cmd_selectAll");
|
||||
goUpdateCommand("cmd_delete");
|
||||
|
|
|
@ -93,7 +93,7 @@ function goDoCommand(aCommand)
|
|||
try {
|
||||
var controller = top.document.commandDispatcher
|
||||
.getControllerForCommand(aCommand);
|
||||
if (controller && controller.isCommandEnabled(aCommand))
|
||||
if (controller)
|
||||
controller.doCommand(aCommand);
|
||||
}
|
||||
catch (e) {
|
||||
|
|
|
@ -19,15 +19,15 @@
|
|||
<script type="application/javascript"
|
||||
src="chrome://global/content/globalOverlay.js"/>
|
||||
<script type="application/javascript"><![CDATA[
|
||||
// Without the fix for bug 366992, the copy command would be enabled
|
||||
// Without the fix for bug 366992, the delete command would be enabled
|
||||
// for the textbox even though the textbox's controller for this command
|
||||
// disables it.
|
||||
var gShouldNotBeReachedController = {
|
||||
supportsCommand: function(aCommand) {
|
||||
return aCommand == "cmd_copy";
|
||||
return aCommand == "cmd_delete";
|
||||
},
|
||||
isCommandEnabled: function(aCommand) {
|
||||
return aCommand == "cmd_copy";
|
||||
return aCommand == "cmd_delete";
|
||||
},
|
||||
doCommand: function(aCommand) { }
|
||||
}
|
||||
|
@ -43,10 +43,10 @@
|
|||
|
||||
function onLoad() {
|
||||
document.getElementById("textbox").focus();
|
||||
var copyDisabled = document.getElementById("cmd_copy")
|
||||
.getAttribute("disabled") == "true";
|
||||
ok(copyDisabled,
|
||||
"cmd_copy should be disabled when the empty textbox is focused");
|
||||
var deleteDisabled = document.getElementById("cmd_delete")
|
||||
.getAttribute("disabled") == "true";
|
||||
ok(deleteDisabled,
|
||||
"cmd_delete should be disabled when the empty textbox is focused");
|
||||
finish();
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче