adiesner / GarminPlugin

Garmin Communicator Plugin for Linux
https://adiesner.github.io/GarminPlugin/
GNU General Public License v3.0
96 stars 16 forks source link

Not working in Chrome 35.0.1916.114 #14

Open igormancos opened 10 years ago

igormancos commented 10 years ago

Today I have update the Chrome to version 35.0.1916.114 and the plugin to version 0.3.25. On the FF work fine, on the Chrome not working (not found in the plugins list on the Chrome) If need, I can get more info.

benoitbleuze commented 10 years ago

The problem is that chrome 35 has removed support for the NP-API: http://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html

The plugin must be rewritten with support for one of the other (still non standard :-/ ) APIs...

adiesner commented 10 years ago

In addition Garmin has officially dropped support for the plugin. They will no longer support it (1). They want everyone to use their Garmin Connect API (2) which costs you $5.000 (as a website developer) - and they only allow strategic partner that enhance their user experience (whatever that means).

So porting the plugin from NPAPI to PPAPI would only delay the inevitable death of the software :-(

I am not sure on how to continue from here on... what to do with the nearly ready ANT+ integration code...

(1) https://forums.garmin.com/showthread.php?76009-Announcement-Concerning-Garmin-Connect (2) https://forums.garmin.com/showthread.php?83670-I-ve-developed-for-Garmin-Communicator-plug-in-Should-I-release-now-that-it-is-EOL

twistedpair commented 10 years ago

$5000 to connect to the watch!?!?!

It sounds like a true power grab. I'm shocked the Garmin is so brazen. Why do I need an API call to Garmin to access something on my own device? That's why I wrote GWT-Garmin, it lets me pull everything from the watch through just the browser plugin, no need to contact a Garmin site.

I really wish Nike/Timex/Polar/Tomtom would make an API, but they don't. Garmin is the only choice and now I'll have to pay $5000 for my site to let people access their watches?!

@adiesner can you confirm that this is a new requirement to access your own device? Or is this a requirement for access Garmin web API's? Thanks.

adiesner commented 10 years ago

From what I understand (currently it is a lot of guessing) as soon as every browser removed support for NPAPI the project "Garmin Communicator Plugin" will be dead. And all major websites will remove the support for this upload method.

The idea behind Garmin Express is that they use a native application (DotNet) that uploads the workouts to the Garmin server. All workouts will automatically be available to their Garmin Connect website. Garmin Express does not allow you to view your workouts, only upload them. And if you as a website owner also want to have access to these workouts uploaded to the Garmin servers you will need to use their API which currently seems to cost $5000.

The alternative for website owners is to provide an upload button for files and let users select the new workout files. Which works fine for some of the newer devices (which show up as usb drive). But old devices like the Edge305 or every ANT+ device will not work this way.

It might be possible to develop a plugin for Linux/Mac/Windows and create a new Javascript API (or keep the existing) and persuade all the larger websites to integrate this plugin into their websites - but currently it is quite difficult to decide which technology to use. You will need direct access to the hardware (USB and file system)

Source: http://www.firebreath.org/display/documentation/Browser+Plugins+in+a+post-NPAPI+world

twistedpair commented 10 years ago

@adiesner I'm a Java guy who hasn't been in CPP for years. Looking at Chrome USB API it looks like reading and writing data from devices is supported in Chrome presently. On looking at your plugin code, it looks like a lot of the code is actually for parsing the returned data. So, I'm curious if you think that the Chrome USB API provides the necessary hardware access, or if something more powerful would be needed.

One item that stands out immeadiately is in the Caveats section, noting the users might have to enable write access to the plugin from the command line. That would prevent a simple app store install.