Confirmed users
23
edits
(Update follow up bugs) |
|||
(5 intermediate revisions by 3 users not shown) | |||
Line 25: | Line 25: | ||
Four new events are proposed: | Four new events are proposed: | ||
* mozbrowserbeforekeydown | * mozbrowserbeforekeydown | ||
* | * mozbrowserafterkeydown | ||
* mozbrowserbeforekeyup | * mozbrowserbeforekeyup | ||
* | * mozbrowserafterkeyup | ||
Line 33: | Line 33: | ||
# 'mozbrowserbeforekeydown' is dispatched to mozbrowser-embedder iframe | # 'mozbrowserbeforekeydown' is dispatched to mozbrowser-embedder iframe | ||
# 'keydown' is dispatched to mozbrowser-embedded iframe | # 'keydown' is dispatched to mozbrowser-embedded iframe | ||
# ' | # 'mozbrowserafterkeydown' is dispatched to mozbrowser-embedder iframe | ||
Line 39: | Line 39: | ||
# 'mozbrowserbeforekeyup' is dispatched to mozbrowser-embedder iframe | # 'mozbrowserbeforekeyup' is dispatched to mozbrowser-embedder iframe | ||
# 'keyup' is dispatched to mozbrowser-embedded iframe | # 'keyup' is dispatched to mozbrowser-embedded iframe | ||
# ' | # 'mozbrowserafterkeyup' is dispatched to mozbrowser-embedder iframe | ||
==== Nested mozbrowser iframes case ==== | ==== Nested mozbrowser iframes case ==== | ||
Line 71: | Line 71: | ||
window.addEventListener('mozbrowserbeforekeydown', handleEventAndPreventDefault); | window.addEventListener('mozbrowserbeforekeydown', handleEventAndPreventDefault); | ||
window.addEventListener('mozbrowserbeforekeyup', handleEventAndPreventDefault); | window.addEventListener('mozbrowserbeforekeyup', handleEventAndPreventDefault); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeydown', function() { }); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeyup', function() { }); | ||
* mozbrowser-embedded iframe | * mozbrowser-embedded iframe | ||
window.addEventListener('keydown', handleEvent); | window.addEventListener('keydown', handleEvent); | ||
Line 82: | Line 82: | ||
| 1 || mozbrowserbeforekeydown || || Receive event 'mozbrowserbeforekeydown'. | | 1 || mozbrowserbeforekeydown || || Receive event 'mozbrowserbeforekeydown'. | ||
|- | |- | ||
| 2 || | | 2 || mozbrowserafterkeydown || || | ||
|- | |- | ||
| 3 || mozbrowserbeforekeyup || || Receive event 'mozbrowserbeforekeyup'. | | 3 || mozbrowserbeforekeyup || || Receive event 'mozbrowserbeforekeyup'. | ||
|- | |- | ||
| 4 || | | 4 || mozbrowserafterkeyup || || | ||
|} | |} | ||
Line 93: | Line 93: | ||
window.addEventListener('mozbrowserbeforekeydown', handleEvent); | window.addEventListener('mozbrowserbeforekeydown', handleEvent); | ||
window.addEventListener('mozbrowserbeforekeyup', handleEvent); | window.addEventListener('mozbrowserbeforekeyup', handleEvent); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeydown', function() { }); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeyup', function() { }); | ||
* mozbrowser-embedded iframe | * mozbrowser-embedded iframe | ||
window.addEventListener('keydown', handleEvent); | window.addEventListener('keydown', handleEvent); | ||
Line 106: | Line 106: | ||
| 2 || || keydown || Receive event 'keydown'. | | 2 || || keydown || Receive event 'keydown'. | ||
|- | |- | ||
| 3 || | | 3 || mozbrowserafterkeydown || || | ||
|- | |- | ||
| 4 || mozbrowserbeforekeyup || || Receive event 'mozbrowserbeforekeyup'. | | 4 || mozbrowserbeforekeyup || || Receive event 'mozbrowserbeforekeyup'. | ||
Line 112: | Line 112: | ||
| 5 || || keyup || Receive event 'keyup'. | | 5 || || keyup || Receive event 'keyup'. | ||
|- | |- | ||
| 6 || | | 6 || mozbrowserafterkeyup || || | ||
|} | |} | ||
Line 119: | Line 119: | ||
window.addEventListener('mozbrowserbeforekeydown', function() { }); | window.addEventListener('mozbrowserbeforekeydown', function() { }); | ||
window.addEventListener('mozbrowserbeforekeyup', function() { }); | window.addEventListener('mozbrowserbeforekeyup', function() { }); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeydown', checkAttrAndHandleEvent); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeyup', checkAttrAndHandleEvent); | ||
* mozbrowser-embedded iframe | * mozbrowser-embedded iframe | ||
window.addEventListener('keydown', handleEventAndPreventDefault); | window.addEventListener('keydown', handleEventAndPreventDefault); | ||
Line 132: | Line 132: | ||
| 2 || || keydown || Receive event 'keydown'. | | 2 || || keydown || Receive event 'keydown'. | ||
|- | |- | ||
| 3 || | | 3 || mozbrowserafterkeydown || || Receive event 'mozbrowserafterkeydown' with embeddedCancelled equals to 'true'. | ||
|- | |- | ||
| 4 || mozbrowserbeforekeyup || || | | 4 || mozbrowserbeforekeyup || || | ||
Line 138: | Line 138: | ||
| 5 || || keyup || Receive event 'keyup'. | | 5 || || keyup || Receive event 'keyup'. | ||
|- | |- | ||
| 6 || mozbrowserup || || Receive event ' | | 6 || mozbrowserup || || Receive event 'mozbrowserafterkeyup' with embeddedCancelled equals to 'true'. | ||
|} | |} | ||
Line 145: | Line 145: | ||
window.addEventListener('mozbrowserbeforekeydown', function() { }); | window.addEventListener('mozbrowserbeforekeydown', function() { }); | ||
window.addEventListener('mozbrowserbeforekeyup', function() { }); | window.addEventListener('mozbrowserbeforekeyup', function() { }); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeydown', checkAttrAndHandleEvent); | ||
window.addEventListener(' | window.addEventListener('mozbrowserafterkeyup', checkAttrAndHandleEvent); | ||
* mozbrowser-embedded iframe | * mozbrowser-embedded iframe | ||
window.addEventListener('keydown', handleEvent); | window.addEventListener('keydown', handleEvent); | ||
Line 158: | Line 158: | ||
| 2 || || keydown || Receive event 'keydown'. | | 2 || || keydown || Receive event 'keydown'. | ||
|- | |- | ||
| 3 || | | 3 || mozbrowserafterkeydown || || Receive event 'mozbrowserafterkeyup' with embeddedCancelled equals to 'false'. | ||
|- | |- | ||
| 4 || mozbrowserbeforekeyup || || | | 4 || mozbrowserbeforekeyup || || | ||
Line 164: | Line 164: | ||
| 5 || || keyup || Receive event 'keyup'. | | 5 || || keyup || Receive event 'keyup'. | ||
|- | |- | ||
| 6 || | | 6 || mozbrowserafterkeyup || || Receive event 'mozbrowserafterkeyup' with embeddedCancelled equals to 'false'. | ||
|} | |} | ||
Line 213: | Line 213: | ||
|- | |- | ||
! Default action | ! Default action | ||
| Set | | Set mozbrowserafterkeydown.embeddedCancelled to false; others defined in http://www.w3.org/TR/DOM-Level-3-Events/#event-type-keydown | ||
|} | |} | ||
==== | ==== mozbrowserafterkeydown ==== | ||
{| border="1" | {| border="1" | ||
! Type | ! Type | ||
Line 285: | Line 285: | ||
|- | |- | ||
! Default action | ! Default action | ||
| Set | | Set mozbrowserafterkeyup.embeddedCancelled to false; others defined in http://www.w3.org/TR/DOM-Level-3-Events/#event-type-keyup | ||
|} | |} | ||
==== | ==== mozbrowserafterkeyup ==== | ||
{| border="1" | {| border="1" | ||
! Type | ! Type | ||
| | | mozbrowserafterkeyup | ||
|- | |- | ||
! Interface | ! Interface | ||
Line 311: | Line 311: | ||
| None | | None | ||
|} | |} | ||
== Related Gaia Changes == | == Related Gaia Changes == | ||
Line 349: | Line 348: | ||
# System app should decide how to handle key event when inner iframe did not handle it | # System app should decide how to handle key event when inner iframe did not handle it | ||
Build time customization detail will be discussed later. Default Policy in System App for 'Power', 'Exit', 'VolumeUp', 'VolumeDown': | |||
{| class="wikitable" | |||
|- | |||
! Key !! Default Policy | |||
|- | |||
| Power || SYSTEM-ONLY | |||
|- | |||
| Exit || SYSTEM-ONLY | |||
|- | |||
| VolumeUp || APP-CANCELLED | |||
|- | |||
| VolumeDown || APP-CANCELLED | |||
|} | |||
Default Policy for other keys are APP-CANCELLED. | |||
There is one more thing to do in this part. We only handle 'Power', 'Exit', 'VolumeUp', 'VolumDown' in part 1. But there will be more 'keys' need to be handled. We'll have to create a key mapping and handling table with customization in this part. | There is one more thing to do in this part. We only handle 'Power', 'Exit', 'VolumeUp', 'VolumDown' in part 1. But there will be more 'keys' need to be handled. We'll have to create a key mapping and handling table with customization in this part. | ||
Line 365: | Line 374: | ||
https://bugzilla.mozilla.org/show_bug.cgi?id=1014418 | https://bugzilla.mozilla.org/show_bug.cgi?id=1014418 | ||
https://bugzilla.mozilla.org/show_bug.cgi?id=1103339 | |||
https://bugzilla.mozilla.org/show_bug.cgi?id=1094066 | |||
[[Category:Web APIs]] |