Closed Bug 760616 Opened 13 years ago Closed 9 years ago

Allow the capture of some keys, globally

Categories

(Firefox Graveyard :: Webapp Runtime, defect, P3)

15 Branch
defect

Tracking

(firefox16 wontfix)

RESOLVED WONTFIX
Tracking Status
firefox16 --- wontfix

People

(Reporter: ianbicking, Unassigned)

References

Details

From http://blog.youtify.com/2012/05/mozilla-marketplace-initial-feedback.html "One thing that we hear a lot from our users is that they want to be able to use the keyboard music controls, e.g. the play/pause buttons. Is there a way for us to receive these input events?" This would mean getting events for some keys even when the application is not focused. This might require a new API to accomplish?
To clarify, the poster of the blog post was saying how listening for keyup doesn't work in this situation because you can only get f8 (key 119) on a mac laptop, not the actual play button. It also only works when the app is in focus. I believe Anant got it working once in Mac/Windows where apps could bind to the global play/pause. I got these links back from an old thread on the labs list about it: https://github.com/mozilla/openwebapps/tree/15131935fe83ddb4a90f5bbea0e0a66368a2bc2a/addons/firefox/extension/components https://github.com/mozilla/openwebapps/blob/4502535fd7a6b41986228f632081f61eb2e11d93/addons/firefox/extension/modules/hotkey.js As far as not being able to get key events in the background -- I don't see how that applies to this exact use case. You wouldn't want the global play button to start playing some app. If you had two, how would you know which one to play? I think what we *do* need is one single app to serve as a global player with arbitrary sources. That's something that may be better solved by web activities. Take Five is an example of a native Mac app that serves as a global player that can control other music apps: http://takefiveapp.com/mac
(In reply to Ian Bicking (:ianb) from comment #0) > This would mean getting events for some keys even when the application is > not focused. This might require a new API to accomplish? These were some original thoughts I had about an API for apps to deal with playing audio better: https://groups.google.com/forum/#!msg/mozilla-labs/2MHlgrIx78A/rzssK_N-qogJ
My personal experience on Mac and Android is that when an app is open it can get play/pause events, even though that same app might not be opened when the play button is hit. So I think the platform functionality exists to handle passing these events to apps in the background, and experience shows it works okay. (From a google search, actually doing this on a Mac appears somewhat hacky: http://stackoverflow.com/questions/3885302/make-my-cocoa-app-respond-to-the-keyboard-play-pause-key)
Keywords: productwanted
I don't think we can allow any application to add global listeners for any key. That would allow any application to sniff as you type passwords etc. However we could possibly white-list some keys which any application can register as a listener for. When registering, we should probably prompt the user to make sure they are ok with this. If we do that we should be able to whitelist most of the function keys.
Setting this to P3 to look at in the future. We'll need some sample apps to make sure we're designing it right, but that can happen when this bug gets an owner.
Keywords: productwanted
Priority: -- → P3
QA Contact: jsmith
Blocks: 1111077
Per bug 1238079, we're going to disable the desktop web runtime and remove it from the codebase, so we won't fix these bugs in it.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
Product: Firefox → Firefox Graveyard
You need to log in before you can comment on or make changes to this bug.