Files
palemoon27/widget/tests/test_native_key_bindings_mac.html
roytam1 b6f6aa65fb import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj (342dfd711)
- Bug 1085567 - Fixup synth events within pointer lock implementation for e10s. r=billm (45c50a0e6)
- Bug 1128238 - Ajust NPP_SetWindow and synth native event coords to account for the chrome offset of remote tabs. Prior to this the content process always assumed the tab was the window origin. r=aklotz (202ffc006)
- Bug 1128934 - Avoid calling GetClientBounds from BasicComposior. r=roc, karlt (5e98232bd)
- Bug 1149041 - Make nsIWidget::SizeConstraints use LayoutDeviceIntSize instead of unit-less nsIntSize. r=roc (d0b345926)
- shuffle around (fcdc51510)
- Bug 1142852 P1 Fix NS_NewNonOwningRunnableMethodWithArgs() so that it compiles. r=froydnj (394d2b200)
- Bug 1142852 P2 Make Cache Action use non-threadsafe ref-counting. r=ehsan (0b2b91d86)
- Bug 1146349 - Allow NS_NewRunnableMethodWithArgs to take up to 8 arguments. r=froydnj (7207e74d0)
- Bug 1146349 - Make the native event synthesization functions in DOMWindowUtils async. r=smaug (e43579a1d)
- Bug 949614 - Use === for SimpleTest.is; r=Waldo (9f54faca4)
- Bug 1146349 - Update some widget tests to deal with async native key event synthesization. r=smaug,masayuki (f1e82df79)
- Bug 920013 - Rewrite test_cocoa_focus.html to use SpecialPowers. r=smichaud (8708d6a71)
- Bug 1146349 - Update DOM mochitests to deal with async native event synthesization. r=smaug (a4eceb9f6)
- Bug 1146349 - Update browser-chrome mochitests to deal with async native event synthesization. r=Gijs (c864ad939)
- Bug 1146349 - Wire up native event synthesization in child processes.  r=smaug (e8574457e)
- Bug 1146349 - Mark SynthesizedEventObserver::Observe() as override (9063f04b5)
- Bug 1149613 - Remove unneded field. r=botond (9aa7155e2)
- Bug 1153613 - [e10s], ensure the buffer for the drag image is large enough for SourceSurfaceRawData::GuaranteePersistance() to succeed, r=mattwoodrow (aa885dae7)
- remove spurious file (ff199d3ae)
- Bug 1043013 - Generalize nsIntRegion into a BaseIntRegion template. r=jrmuizel (9d3e02820)
- Bug 1043013 - Introduce IntRegionTyped. r=jrmuizel (f73902921)
- Bug 1043013 - Use strongly-typed regions in HitTestingTreeNode. r=kats (7b8c8ae44)
- Bug 913443 - Remove mention of the word ThebesLayer in a comment. r=roc (e9706e025)
- Bug 913443 - Remove some #ifdefs. r=roc (da76f831b)
- Bug 913443 - Break up CreateOrRecyclePaintedLayer into more parts. r=roc (dd94560fe)
- Bug 913443 - Extract layer hint calculation. r=roc (5c7806a95)
- Bug 913443 - Break CreateOrRecyclePaintedLayer up even more. r=roc (9e5edab17)
- Bug 913443 - Remove unused aItemVisibleRect argument. r=roc (f3d1a5195)
- Bug 913443 - Move IsWidgetLayerManager() check out of UpdateCommonClipCount. r=roc (3be7b19a6)
- Bug 913443 - Change the order of these calls. r=roc (c7bc59fee)
- Bug 913443 - Add a display item buffer for PaintedLayerData so that we can assign items without needing to know the actual Layer. r=roc (674df6aa8)
- Bug 913443 - Delay PaintedLayer recycling until PopPaintedLayerData() r=roc (9d6de961a)
- Bug 913443 - When determining the layer to recycle, only consider layers that have display items in common with the layer we need. r=roc (3327c31c5)
- Bug 913443 - Recycle PaintedLayers as soon as possible. r=roc (37ef6d530)
- Bug 913443 - Remove duplicated argument variables. r=roc (19c5af270)
- Bug 1141408 - Don't include the display item's memory address in the profile label. r=BenWa (5bb1d73c1)
- Bug 1141281 - Don't put empty Info: lines into the layers dump. r=BenWa (85f4b28be)
- Bug 1035611 - Part 1: Updated Matrix4x4::ProjectRectBounds to properly handle infinite values when untransformed rects cross the w=0 plane. r=mattwoodrow (f47ed4383)
- Bug 1035611 - Part 2: Test to ensure that transformed rects crossing the w=0 plane are clipped correctly. r=mattwoodrow (5701b435f)
- Bug 1141089 - Add some release assertions to gather more data. r=roc (805c2994d)
- Bug 1141595 - Make scroll info display item hoisting work after bug 913443. r=tn (1efcaf164)
- Bug 1144307 - Destroy scroll info layer items when we're done with them. r=tn (3ffd3b1f2)
- Bug 1148855 - Mark some ContainerState methods as const. r=roc (791585baf)
- Bug 1144820 - Use rvalue reference in AddProfileTimelineMarker. r=smaug (12316b65f)
- Bug 1148855 - Set overflow:hidden on scrollbar tracks so that layerization knows that the scrollbar thumb won't leave the scrollbar. r=roc (082ec87bf)
- Bug 1148855 - Intermediate state that unifies APZ and non-APZ layerization behavior somewhat. (3da45ab96)
- Bug 1148855 - Rework how display items are assigned to PaintedLayers and make it work the same way with and without APZ. r=roc (7258f9c90)
- Bug 913443 - Add some tests. r=roc (9977682da)
- Bug 1039926 - Add a test for not invalidating stuff inside mask layers. (1f8aef65e)
- Bug 1148855 - Add some tests. r=roc (2ba1f7f18)
- Bug 1148855 - Tweak reftest fuzziness. (a600be7d5)
- Bug 1151306 - Add a missing check during background color pulling. r=roc (b3a6c886b)
- Bug 1150774 (Part 1) - Add helpers to simplify using typed units in ConfigureLayer. r=botond (baecb2c2e)
- Bug 1150774 (Part 2) - Use the correct units in nsDisplayImageContainer::ConfigureLayer and related code. r=botond (a79beb1fb)
- Bug 1141089 - Initialize DisplayItemData with a non-null mLayer, so that mLayer is non-null throughout the object's whole lifetime. r=roc (7c2f9eb09)
- Bug 1141089 - Remove unused DisplayItemData copy constructor. r=roc (ba5c46c45)
- Bug 1141089 - Add a few more MOZ_RELEASE_ASSERT(mLayer) checks, just for fun. r=roc (50a8f2db7)
- Bug 1141089 - Use const nsTArray* in all the places where we don't change the array's contents. r=roc (cd07a5bbd)
- Bug 1141089 - Turn these two assertions into release assertions. r=roc (71daf5ef3)
- Bug 1141089 - Check that we're unsetting sDestroyedFrame correctly. r=roc (6c7da67e7)
- Bug 1143522 - Convert Layer::mClipRect to ParentLayerIntRect. r=botond (ddab1c0ff)
- Bug 1144951. Warn if the result of ConvertAppUnits is unused. r=mats (e1d79c6ca)
- Bug 1144951. Rename ConvertAppUnits to ScaleToOtherAppUnits. r=mats (675c918c3)
- Bug 1149035 - Make nsXULPopupManager::PopupResized take a LayoutDeviceIntSize param instead of a unit-less nsIntSize. r=roc (eb9529af7)
- missing bit of Bug 1156110 - Make nsView::mWindow an nsCOMPtr; r=roc (972255b4f)
- Bug 1147706 - Warn if we don't use the result of const methods on BaseRect and its subclasses. r=tn (9e91deada)
- Bug 1152838 - Fix BaseRect::InflateToMultiple and move it to nsIntRect. r=mattwoodrow, r=jrmuizel (5a942df29)
- Bug 1125055 - Sync decode layerized images if necessary. r=roc,tn (1379db5c7)
- Bug 1145167 - make imgIContainer::type getter infallible; r=seth (7b7091b89)
- Bug 1148213 - Implement image locking for VectorImage. r=dholbert (240e14cb3)
- Bug 1143653 - Crash in CompositorD3D9 rather than TextureD3D9 if device reset fails, after a few attemps. r=jrmuizel (76607ddc3)
- Bug 1147894 - Only use non-null compositors with TextureHost::SetCompositor. r=sotaro (605bf34f6)
- Bug 1146912 - Finish replacing TextureHost::GetTextureSource by BindTextureSource. r=sotaro (cf3763879)
- Bug 1132854 - Remove useless ThebesIntSize conversion helper. r=Bas (78cdfee14)
- Bug 1068881 - Inflate the dest rect to at least one device pixel when computing the optimal image size for drawing. r=roc (3d5644913)
2020-05-30 12:49:08 +08:00

345 lines
13 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta charset='utf-8'/>
<title>Native Key Bindings for Cocoa Test</title>
<!-- Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ -->
<script type="text/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript"
src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
<script type="text/javascript"
src="chrome://mochikit/content/tests/SimpleTest/NativeKeyCodes.js"></script>
</head>
<body>
<div id="editable" contenteditable>
<p>Stretching attack nullam stuck in a tree zzz, suspendisse cras nec
suspendisse lick suscipit. Nunc egestas amet litter box, nullam climb the
curtains biting I don't like that food tristique biting sleep on your
keyboard non. Lay down in your way cras nec tempus chase the red dot cras
nec, pharetra pharetra eat the grass leap run orci turpis attack.
Consectetur sleep in the sink eat I don't like that food, knock over the
lamp catnip in viverra tail flick zzz meow etiam enim. Ac ac hiss shed
everywhere kittens rhoncus, attack your ankles zzz iaculis kittens. Nullam
pellentesque rip the couch iaculis rhoncus nibh, give me fish orci turpis
purr sleep on your face quis nunc bibendum.</p>
<p>Neque jump on the table bat iaculis, adipiscing sleep on your keyboard
jump vel justo shed everywhere suspendisse lick. Zzz enim faucibus
hairball faucibus, pharetra sunbathe biting bat leap rip the couch attack.
Tortor nibh in viverra quis hairball nam, vulputate adipiscing sleep on
your keyboard purr knock over the lamp orci turpis. Vestibulum I don't
like that food et chase the red dot, adipiscing neque bibendum rutrum
accumsan quis rhoncus claw. Leap accumsan vehicula enim biting sleep on
your face, pharetra nam accumsan egestas kittens sunbathe. Pharetra chase
the red dot sniff non eat the grass, vulputate fluffy fur aliquam puking
judging you.</p>
<p>Claw purr sollicitudin sollicitudin lay down in your way consectetur,
pellentesque vehicula zzz orci turpis consectetur. I don't like that food
rhoncus pellentesque sniff attack, rhoncus tortor attack your ankles
iaculis scratched hiss vel. Tortor zzz tortor nullam rip the couch rutrum,
bat enim ut leap hairball iaculis. Bibendum sunbathe elit suspendisse
nibh, puking adipiscing sleep on your face sleep on your face zzz catnip.
Judging you rutrum bat sunbathe sleep on your face, jump on the table leap
tincidunt a faucibus sleep in the sink. Stuck in a tree tristique zzz hiss
in viverra nullam, quis tortor pharetra attack.</p>
</div>
<textarea id="textarea" cols="80">
Stretching attack nullam stuck in a tree zzz, suspendisse cras nec
suspendisse lick suscipit. Nunc egestas amet litter box, nullam climb the
curtains biting I don't like that food tristique biting sleep on your
keyboard non. Lay down in your way cras nec tempus chase the red dot cras
nec, pharetra pharetra eat the grass leap run orci turpis attack.
Consectetur sleep in the sink eat I don't like that food, knock over the
lamp catnip in viverra tail flick zzz meow etiam enim. Ac ac hiss shed
everywhere kittens rhoncus, attack your ankles zzz iaculis kittens. Nullam
pellentesque rip the couch iaculis rhoncus nibh, give me fish orci turpis
purr sleep on your face quis nunc bibendum.
Neque jump on the table bat iaculis, adipiscing sleep on your keyboard
jump vel justo shed everywhere suspendisse lick. Zzz enim faucibus
hairball faucibus, pharetra sunbathe biting bat leap rip the couch attack.
Tortor nibh in viverra quis hairball nam, vulputate adipiscing sleep on
your keyboard purr knock over the lamp orci turpis. Vestibulum I don't
like that food et chase the red dot, adipiscing neque bibendum rutrum
accumsan quis rhoncus claw. Leap accumsan vehicula enim biting sleep on
your face, pharetra nam accumsan egestas kittens sunbathe. Pharetra chase
the red dot sniff non eat the grass, vulputate fluffy fur aliquam puking
judging you.
Claw purr sollicitudin sollicitudin lay down in your way consectetur,
pellentesque vehicula zzz orci turpis consectetur. I don't like that food
rhoncus pellentesque sniff attack, rhoncus tortor attack your ankles
iaculis scratched hiss vel. Tortor zzz tortor nullam rip the couch rutrum,
bat enim ut leap hairball iaculis. Bibendum sunbathe elit suspendisse
nibh, puking adipiscing sleep on your face sleep on your face zzz catnip.
Judging you rutrum bat sunbathe sleep on your face, jump on the table leap
tincidunt a faucibus sleep in the sink. Stuck in a tree tristique zzz hiss
in viverra nullam, quis tortor pharetra attack.
</textarea>
<input id="input" type="text"
value="Stretching attack nullam stuck in a tree zzz, suspendisse cras nec
suspendisse lick suscipit. Nunc egestas amet litter box, nullam climb the
curtains biting I don't like that food tristique biting sleep on your
keyboard non. Lay down in your way cras nec tempus chase the red dot cras
nec, pharetra pharetra eat the grass leap run orci turpis attack.
Consectetur sleep in the sink eat I don't like that food, knock over the
lamp catnip in viverra tail flick zzz meow etiam enim. Ac ac hiss shed
everywhere kittens rhoncus, attack your ankles zzz iaculis kittens.
Nullam pellentesque rip the couch iaculis rhoncus nibh, give me fish orci
turpis purr sleep on your face quis nunc bibendum.">
<script type="text/javascript;version=1.8">
SimpleTest.waitForExplicitFinish();
let synthesizedKeys = [];
let expectations = [];
// Move to beginning of line
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_LeftArrow,
{ctrlKey: true}, "\uf702", "\uf702"]);
expectations.push({
editable: [0, 0],
textarea: [0, 0],
input: [0, 0]
});
// Move to end of line
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{ctrlKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [73, 73],
textarea: [72, 72],
input: [732, 732]
});
// Move down
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_N,
{ctrlKey: true}, "\u000e", "n"]);
expectations.push({
editable: [140, 140],
textarea: [145, 145],
input: [732, 732]
});
// Move to beginning of line
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_LeftArrow,
{ctrlKey: true}, "\uf702", "\uf702"]);
expectations.push({
editable: [73, 73],
textarea: [73, 73],
input: [0, 0]
});
// Move word right and modify selection
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{altKey: true, shiftKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [73, 84],
textarea: [73, 90],
input: [0, 10]
});
// Move word right
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{altKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [84, 84],
textarea: [90, 90],
input: [10, 10]
});
// Move word right
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{altKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [89, 89],
textarea: [95, 95],
input: [17, 17]
});
// Move down and modify selection
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_DownArrow,
{shiftKey: true}, "\uf701", "\uf701"]);
expectations.push({
editable: [89, 171],
textarea: [95, 175],
input: [17, 732]
});
// Move backward and modify selection
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_B,
{ctrlKey: true, shiftKey: true}, "\u0002", "B"]);
expectations.push({
editable: [89, 170],
textarea: [95, 174],
input: [17, 731]
});
// Delete forward
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_D,
{ctrlKey: true}, "\u0004", "d"]);
expectations.push({
editable: [89, 89],
textarea: [95, 95],
input: [17, 17]
});
// Delete backward
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_H,
{ctrlKey: true}, "\u0008", "h"]);
expectations.push({
editable: [88, 88],
textarea: [94, 94],
input: [16, 16]
});
// Move backward
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_B,
{ctrlKey: true}, "\u0002", "b"]);
expectations.push({
editable: [87, 87],
textarea: [93, 93],
input: [15, 15]
});
// Move to beginning of paragraph (line for now)
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_A,
{ctrlKey: true}, "\u0001", "a"]);
expectations.push({
editable: [73, 73],
textarea: [73, 73],
input: [0, 0]
});
// Move forward
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_F,
{ctrlKey: true}, "\u0006", "f"]);
expectations.push({
editable: [74, 74],
textarea: [74, 74],
input: [1, 1]
});
// Move word right
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{altKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [84, 84],
textarea: [90, 90],
input: [10, 10]
});
// Move word right
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_RightArrow,
{altKey: true}, "\uf703", "\uf703"]);
expectations.push({
editable: [88, 88],
textarea: [94, 94],
input: [17, 17]
});
// Delete to end of paragraph (line for now)
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_K,
{ctrlKey: true}, "\u000b", "k"]);
expectations.push({
editable: [88, 88],
textarea: [94, 94],
input: [17, 17]
});
// Move backward and modify selection
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_B,
{ctrlKey: true, shiftKey: true}, "\u0002", "B"]);
expectations.push({
editable: [88, 87],
textarea: [93, 94],
input: [16, 17]
});
// Move to end of paragraph (line for now)
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_E,
{ctrlKey: true}, "\u0005", "e"]);
expectations.push({
editable: [144, 144],
textarea: [94, 94],
input: [17, 17]
});
// Move up
synthesizedKeys.push([KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_P,
{ctrlKey: true}, "\u0010", "p"]);
expectations.push({
editable: [73, 73],
textarea: [21, 21],
input: [0, 0]
});
function checkWindowSelection(aElement, aSelection)
{
let selection = window.getSelection();
is(selection.anchorOffset, aSelection[aElement.id][0],
aElement.id + ": Incorrect anchor offset");
is(selection.focusOffset, aSelection[aElement.id][1],
aElement.id + ": Incorrect focus offset");
}
function checkElementSelection(aElement, aSelection)
{
is(aElement.selectionStart, aSelection[aElement.id][0],
aElement.id + ": Incorrect selection start");
is(aElement.selectionEnd, aSelection[aElement.id][1],
aElement.id + ": Incorrect selection end");
}
function* testRun(aElement, aSelectionCheck, aCallback)
{
if (document.activeElement) {
document.activeElement.blur();
}
aElement.focus();
for (let i = 0; i < synthesizedKeys.length; i++) {
synthesizedKeys[i].push(function() {
aSelectionCheck.call(null, aElement, expectations[i]);
continueTest();
});
var synthOk = synthesizeNativeKey.apply(null, synthesizedKeys[i]);
synthesizedKeys[i].pop();
yield synthOk;
}
}
function* doTest() {
yield* testRun(document.getElementById("editable"), checkWindowSelection);
yield* testRun(document.getElementById("textarea"), checkElementSelection);
yield* testRun(document.getElementById("input"), checkElementSelection);
}
let gTestContinuation = null;
function continueTest()
{
if (!gTestContinuation) {
gTestContinuation = doTest();
}
var ret = gTestContinuation.next();
if (ret.done) {
SimpleTest.finish();
} else {
is(ret.value, true, "Successfully synthesized key");
}
}
SimpleTest.waitForFocus(continueTest);
</script>
</body>
</html>