Open Bug 1181414 Opened 9 years ago Updated 2 years ago

InputMethod: Introduce new API to identify a hardware keyboard

Categories

(Core :: DOM: Core & HTML, defect)

defect

Tracking

()

UNCONFIRMED

People

(Reporter: hiro7998, Unassigned)

References

Details

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0
Build ID: 20150628030215

Steps to reproduce:

1. A device with both built-in qwerty and built-in 12keys
2. A device with HID keyboard feature.
3. A device with HID keyboard feature and a built-in hardware keyboard.
4. OEM Keyboard app downloaded from marketplace, it's possible because IME API has a privileged permission.

In those cases, how can keyboard app select a proper IME state machine exactly for the keyboard events without knowledge of the currently installed hardware keyboards?


Actual results:

Keyboard apps might have the IME state machines for the various hardware keyboard types, because it's needed to handle a keyboard event from each hardware keyboard in a different way.
However, keyboard apps can not select a proper IME state machine for each keyboard event because keyboard apps do not have any knowledge of the currently installed hardware keyboards.


Expected results:

Keyboard app should be able to select a proper IME state machine for each keyboard event using the knowledge of the currently installed hardware keyboards.
Component: General → DOM
Depends on: 1161424
Product: Firefox OS → Core
OS: Gonk (Firefox OS) → Unspecified
Hardware: ARM → Unspecified
As we discussed in Bug 1161424, in my opinion, the knowledge of the types of hardware keyboards is needed in keyboard app.

Summary for new requirement
=============================
1. Info of which hardware keyboard a keyboard event is fired from?
    => Once keyboard app receives a hardware keyboard event, it can select a proper IME state machine using this info.
2. Info of which hardware keyboard is installed to device.
    => Keyboard app can prepare UI or state machine on initialization using this info.
3. Notification to keyboard app, which contains hardware keyboard is attached or detached newly.
    => Once keyboard app receives this event, it calls hardwareinput.addEventListener or hardwareinput.removeEventListener for the updated hardware keyboard.

About 2, I'm not sure it's needed or not.

If I have misunderstandings, let me know please.
And if those are really needed, give me your opinion please.
Is there any usecase that we may use a qwerty hardware keyboard from HID and a built-in 12 keys hardware keyboard at the same time? If not, then we can just set the proper IME by the hardware keyboard used.
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.