carlin-q-scott / browser-media-keys

Lets you control many web players using the media keys on your keyboard.
Mozilla Public License 2.0
123 stars 31 forks source link

Webextension support #150

Closed anthnub closed 5 years ago

anthnub commented 7 years ago

Not sure if Firefox webextensions APIs allow for an update, but would definitely appreciate it if possible

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/48856739-webextension-support?utm_campaign=plugin&utm_content=tracker%2F7600490&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F7600490&utm_medium=issues&utm_source=github).
bwydoogh commented 7 years ago

Any update on this? Really missing this extension on Firefox Nightly.

mFoxRU commented 7 years ago

Same here, missing it in Firefox Developer edition.

jerome-tgl commented 6 years ago

FYI, Firefox 57 will be released in the stable channel next week.

If I'm not mistaken, the 3,030 current Media Keys users won't be able to use it as it won't work anymore (cf. official explanations), unless they switch to Firefox SRE which should drop support for legacy extensions in the coming months.

carlin-q-scott commented 6 years ago

Hey, sorry everyone for not getting around to this.

I was able to port the website side code over to a WebExtension months ago but they (Mozilla) want me to write native console apps for each operating system (Mac, Linux and Windows) and that's such a complicated/messy task that I just haven't had the energy to dig into it. @Noitidart wrote the Mac/Linux support code and it's huge which makes those especially challenging. I'll try my best to get Windows support live this week but there's little chance of me completing Linux/Mac support anytime soon.

Noitidart commented 6 years ago

this to me seems like an awful idea, and if this addon goes that way I will drop use of it.

@svnpenn I agree with you. I personally do not use any native messaging addons (unless it was written by me), because the native binary is completely unreviewed and can do anything and no one will ever know. The only option if we don't want to go native messaging, is to wait for the WebExt system to get media key support.

theromi commented 6 years ago

@carlin-q-scott Is there any update on this? I'd prefer a Quantum-compatible version with possible concerns over it not working at all to be honest.

theromi commented 6 years ago

@svnpenn It seems to me that you were suggesting not to use Native Messaging, but that it'd still be possible?

theromi commented 6 years ago

@svnpenn That's why I was asking @carlin-q-scott for his opinion on this. I would greatly prefer a temporary hack over not upgrading to Quantum.

theromi commented 6 years ago

@svnpenn The comment you linked is 7 month old, while the comment by @carlin-q-scott in this thread is 10 days old - where he said that a version with Native Messaging for Windows is on the way.

Please stop making things up. This isn't helping at all.

Noitidart commented 6 years ago

Actually the biggest issue with native messaging is it is unreviewed.

Major Issue

  1. Complete unreviewed blackbox. The only person that knows what the binary does is the author. So you have to trust the author is not doing anything malicious.

Somewhat Major Issue

The other issue is discoverability - your average user cannot easily install it and will likely give up. 1) One location method - "side load method": Do not upload extension (xpi) on addons.mozilla.org, instead put installer on your website and have people install that (this installer installs the exe/binaries and "side-load-installs" xpi into firefox). You lose all the review system, etc of AMO. So you have to host it on your website not on addons.mozilla.org. 2) Or a 2 location install: Upload xpi to addons.mozilla.org. When user installs that, you tell them "now go to this website and download and install this exe".

theromi commented 6 years ago

@svnpenn

Accept the fact that Mozilla messed up

I do accept that.

realize the problem is bigger than this one addon

I do realizie that.

stop pushing this for your own selfish reasons

I don't. You do.

Native Messaging is not a solution

It is! For now.

I do understand your concerns. I completly understand your reasoning on this. But the conclusions you draw are overly idealistic. From my point of view Native Messaging is perfectly acceptable for the time being. Not choosing to go down this path is reactionary and quixotic.

Anyway, I don't think that our discussion will bring this any further. Let's just wait for @carlin-q-scott, he knows all the facts and is the one to decide.

If you actually want to do something, comment on these issues here:

I will do that, too.

Noitidart commented 6 years ago

Don't bother shouting it ruins your reputation. Even if Firefox did come up with allowing it, developers won't do it. They don't trust Firefox to remain consistent. Devs expect Firefox to pull out the chair again.

Electron apps are much better, it's just there are no distribution marketplaces.

theromi commented 6 years ago

but he realizes as I do that she should do nothing until the APIs are finished. Just look at his activity:

There is no causal connection between this two sentences.

Or you could write the Native Messaging yourself, but that seems unlikely given your activity:

Again, I fail to see your point. You seem to be overly attached to commitment to an arbitrary website.

If you'd like to bring any valuable comments to this thread, please do. But please stop trying to support your cause with mindless falsehood or false ad hominem.

Noitidart commented 6 years ago

@theromi I think what @svnpenn is trying to ask is. Would you be comfortable installing an unreviewed blackboxed software "native messaging" that can be doing malicious stuff on your computer? Would you want @carlin-q-scott to put all that effort to write a binary and then users refuse to install due to security/privacy concerns, and then not even able to figure out how to install concerns? Is the effort to reward justified i think is bottom line.

Noitidart commented 6 years ago

wishful thinking at best. Stop it.

@svnpenn - whats the problem with wishful thinking? People can hope if they want. That's kind of what we're doing with hoping Mozilla completes the APIs. Sure probabilities are different, but to each their own right?

Noitidart commented 6 years ago

@svnpenn my question to you was:

whats the problem with wishful thinking? People can hope if they want.

You said

@Noitidart wrong. wrong.

So people can't hope if they want? They can't wish?

Noitidart commented 6 years ago

Well I asked you a question, so in those words I was looking for the answer. I didn't think "This is a javascript respository", "writing a C app", "Firefox 56", "external links" was an answer to "People can hope if they want?". Only thing that applied was your "wrong wrong".

theromi commented 6 years ago

Would you be comfortable installing an unreviewed blackboxed software "native messaging" that can be doing malicious stuff on your computer?

Good argument. You are right, I am not comfortable doing this. Unfortunately, this is already the case as a part-time Windows-User. While, of course, I'd like to keep this in check, this is one of the cases I'd support going in that direction (temporarily). From my point of view, having a suboptimal solution in place is a lot better than not moving on at all.

If someone has not made a single contribution in over 4 months, probability dictates that behavior will continue.

Commitment to "leisure projects" are different for everyone, please keep that in mind.

but to assume he is just going to magically pop out a Native Messaging app after 4 months of nothing is wishful thinking

No. That is just quite normal.

This is a javascript repository, and pestering @carlin-q-scott to write a C app to account for failure in Mozilla APIs is essentially off topic, which is what @theromi is doing.

I am not pestering anyone here. I just asked for a status on the already announced update. Which is when you came in and started irrationally attacking anyone in sight.

I am using Firefox 56, I have turned off updates. I have accepted the situation as it currently is.

If you want to mark time: Okay. That doesn't mean that the world around you has to adapt to your delicacy.

I do not like it either, but I am being realistic about it.

As I already elongated explained, to which you couldn't bring up any sensible counter-arguments: You are the one being unrealistic. Fortunately, the world works different and is not treading water.

if you want to boil my 84 words down to 2, then I dont think I have anything further to say to you - good day

I think it's quite funny that you bring up this argument, while boiling down all comments you answer to single, mostly untrue summaries while making false assupmtions that fit your narrative. Your style of reasoning here is an embarrassment.

theromi commented 6 years ago

of course you would say this, you are a help vampire: You contribute nothing:

This is wrong. Just making this assumption based on a Github profile - which I mostly have for commenting and issue reporting - is false and foolish. As already mentioned.

You dont realize what goes into writing a C app, I do:

I contributed to more C "apps" than your profile even shows - so I am the winner here? Based on your reasoning, we should stick to what I say now! (sic) Believe it or not, writing C code is even part of my job! As already mentioned, I am completly capable of understanding your sparse arguments. I am, though, not capable of tolerating your untenable ad homiem attacks. You are damaging your reputation. Which is probably why you deleted most of your posts.

but somehow you thought it was a good idea to remind @carlin-q-scott,

And again you seem to ignore anything that has been said. As already said, I was merely asking for a status update, which is not given in any of the threads you linked. I was not reminding anyone of anything he or she has to do.

As you now have repeatedly shown, you are incapable of disproving valid arguments (ignoring them again and again), you are incapable of keeping this discussion on a dignified level and you are makting up "facts", I will assume that you are are not keen on keeping this project sound. The quality and style of your posts leave no other conclusion than that you are a troll. And I should have noticed that a few posts ago.

Quentin1010 commented 6 years ago

Can someone move/remove those chitchats (mine included) out to keep the issue clean please ? This is an issue about a software, not some battlefield for people who don't seem to understand when an argument is useless...

ldavison commented 6 years ago

Sorry if this is off topic, but @svnpenn I wasn't able to get your PoC to work on Firefox Nightly 59.0a1 (2017-12-12) (64-bit) on macOS 10.12.6.

To simplify the extension, I created a new directory with the two below files and ran web-ext run -f nightly. The only command that worked was Ctrl+Shift+U, none of the media keys commands worked for me. Am I missing something?

manifest.json

{
  "name": "command-test",
  "version": "1.0.0",
  "manifest_version": 2,
  "background": {
    "scripts": ["background.js"]
  },
  "commands": {
    "toggle-feature": {
      "suggested_key": {
        "default": "Ctrl+Shift+U"
      }
    },
    "media-toggle-playback": {
      "suggested_key": {
        "default": "MediaPlayPause"
      }
    },
    "media-prev-track": {
      "suggested_key": {
        "default": "MediaPrevTrack"
      }
    },
    "media-next-track": {
      "suggested_key": {
        "default": "MediaNextTrack"
      }
    }
  }
}
background.js

'use strict';
browser.commands.getAll().then((all) => all.forEach((c) => console.log("Registered command:", c)));
browser.commands.onCommand.addListener((c) => console.log("Received command:", c));
ThaDaVos commented 6 years ago

I'm curious what's the progress on the update to Firefox Quantum? Used the add-on a lot before, really handy to skip a song in a playlist by just using the mediakeys on my headset

ghost commented 6 years ago

@dvdbot media keys are working, just not globally. Here is a proof of concept; WebExtension that supports media keys:

http://github.com/cup/umber/tree/master/webext/raspberry

Until global is implemented:

http://bugzilla.mozilla.org/show_bug.cgi?id=1411795

the above will only work if the browser has focus, but it does work. If you need global, you can use Chromium with the Streamkeys extension:

escaton commented 6 years ago

@carlin-q-scott what do you think about releasing new version compatible with FF but with no global listener feature?

carlin-q-scott commented 6 years ago

@escaton That's easy to do but I'm surprised people would be interested in that.

escaton commented 6 years ago

In my opinion half working extension is better then nothing, especially if it's easy as you said.

CennoxX commented 6 years ago

@escaton That's easy to do but I'm surprised people would be interested in that.

I would really like such an extension! For the time being it's also easy to write a small external script (with something like AutoHotkey) that always passes media keys to Firefox.

bastien30 commented 6 years ago

Same for me, I would love an extension like that !

carlin-q-scott commented 6 years ago

Ok, I will release the WebExtension as-is since it already does this. It'll take a little while for it to go through the approval process though.

carlin-q-scott commented 6 years ago

I'm sorry to say that I have to eat my words. Firefox currently only supports the PlayPause media key and it doesn't support global media keys. So you need to have the media tab active and can only pause or resume playing. Opera and Chrome work fine. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands#Browser_compatibility

carlin-q-scott commented 5 years ago

Ok, it's published. https://addons.mozilla.org/en-US/firefox/addon/media-keys/

Due to the conversion, some features have been removed or modified:

  1. The browser window must be active for media keys to be detected.
  2. Only Play/Pause is supported; this is a Firefox limitation; see https://bugzilla.mozilla.org/show_bug.cgi?id=1251795
  3. Pinned tabs get priority over all other tabs when pressing a media key.
  4. The autoplay feature is disabled by default and cannot be enabled until I create a configuration page for the add-on.
carlin-q-scott commented 5 years ago

@cup I think I fixed that automatic update issue by marking 2.0 as requiring Firefox 57+. Can you check to see if that's true?

ghost commented 5 years ago

@carlin-q-scott looks good - thanks

hopefully Mozilla will get their act together one day :(

leo60228 commented 5 years ago

@carlin-q-scott Where's the source code of the new version? I'd like to add Hulu support.