This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Firefox 28 - Communicator Plugin Not Found - but only on GarminConnect...

Interesting new behaviour observed here having updated to Firefox 28.0 beta

Followed usual pattern of opening GarminConnect, hitting upload - result "Garmin Communicator Plugin was not found on your computer" and it offers the download link. Yet when I go to the download link... "You have Communicator Plugin / Up to Date, Version 4.1.0.0 / Devices Detected / fenix (Unit ID 385xxxxxxx)"

Other sites using the Communicator Plugin appear to work just fine - but not GarminConnect. No big deal really for me because I still have the opportunity to upload manually by selecting the file(s) individually from the watch and I suspect the behaviour is down to a change in Firefox 28 (versus Firefox 27) but within 6-8 weeks this will be the production release of the browser and many more will see it...
  • Former Member
    0 Former Member over 11 years ago
    Check if your plugin is "Always activate" in firefox. If it's set "By default" It can be your problem.

    Hope this can help


    I have the same problem in Firefox 28 - plugin is always activated, upload says I don't have the plugin but the plugin page says I do.
  • I ran up a copy of the Aurora Alpha (v 29) and it exhibits the same behaviour... Pretty sure its new behaviour in Firefox above version 28... However I don't hold out much hope of either Garmin or Mozilla fixing it any time soon.
  • The reason for this is that Garmin needs to update their javascript code - the way they detect the plugin is broken! Starting with Firefox 28 Mozilla introduced a privacy feature that websites are no longer allowed to ask for all installed plugins, they need to request the plugin directly.
    Technical details: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorPlugins.plugins

    THIS DOES NOT WORK IN FIREFOX 28 OR LATER:
    Javascript code from: http://connect.garmin.com
    detectPlugin: function() {
    // allow for multiple checks in a single pass
    var daPlugins = PluginDetect.detectPlugin.arguments;
    // consider pluginFound to be false until proven true
    var pluginFound = false;
    // if plugins array is there and not fake
    if (navigator.plugins && navigator.plugins.length > 0) {
    var pluginsArrayLength = navigator.plugins.length;
    // for each plugin...
    for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
    // loop through all desired names and check each against the current plugin name
    var numFound = 0;
    for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
    // if desired plugin name is found in either plugin name or description
    if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
    (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
    // this name was found
    numFound++;
    }
    }
    // now that we have checked all the required names against this one plugin,
    // if the number we found matches the total number provided then we were successful
    if(numFound == daPlugins.length) {
    pluginFound = true;
    // if we've found the plugin, we can stop looking through at the rest of the plugins
    break;
    }
    }
    }
    return pluginFound;
    }


    THIS WORKS IN FIREFOX 28 AND LATER:
    Javascript code from: http://software.garmin.com/en-US/gcp.html

    var pluginFound = PluginDetect.detectPluginByMIME('application/vnd-garmin.mygarmin');
    [...]
    detectPluginByMIME: function(mimeTypeName) {
    if (navigator.mimeTypes) {
    var mimeType = navigator.mimeTypes[mimeTypeName];
    return !!(mimeType && mimeType.enabledPlugin);
    }
    else {
    return false;
    }
    },
  • Good to know; I've created several websites and online tools that use GCP...
  • Garmin Support

    So GARMIN....have you addressed this, it does not seem like you have. Please let me/us know the status.
    +++
    acm


    The reason for this is that Garmin needs to update their javascript code - the way they detect the plugin is broken! Starting with Firefox 28 Mozilla introduced a privacy feature that websites are no longer allowed to ask for all installed plugins, they need to request the plugin directly.
    Technical details: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorPlugins.plugins

    THIS DOES NOT WORK IN FIREFOX 28 OR LATER:
    Javascript code from: http://connect.garmin.com
    detectPlugin: function() {
    // allow for multiple checks in a single pass
    var daPlugins = PluginDetect.detectPlugin.arguments;
    // consider pluginFound to be false until proven true
    var pluginFound = false;
    // if plugins array is there and not fake
    if (navigator.plugins && navigator.plugins.length > 0) {
    var pluginsArrayLength = navigator.plugins.length;
    // for each plugin...
    for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
    // loop through all desired names and check each against the current plugin name
    var numFound = 0;
    for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
    // if desired plugin name is found in either plugin name or description
    if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) ||
    (navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
    // this name was found
    numFound++;
    }
    }
    // now that we have checked all the required names against this one plugin,
    // if the number we found matches the total number provided then we were successful
    if(numFound == daPlugins.length) {
    pluginFound = true;
    // if we've found the plugin, we can stop looking through at the rest of the plugins
    break;
    }
    }
    }
    return pluginFound;
    }


    THIS WORKS IN FIREFOX 28 AND LATER:
    Javascript code from: http://software.garmin.com/en-US/gcp.html

    var pluginFound = PluginDetect.detectPluginByMIME('application/vnd-garmin.mygarmin');
    [...]
    detectPluginByMIME: function(mimeTypeName) {
    if (navigator.mimeTypes) {
    var mimeType = navigator.mimeTypes[mimeTypeName];
    return !!(mimeType && mimeType.enabledPlugin);
    }
    else {
    return false;
    }
    },
  • Former Member
    0 Former Member over 11 years ago
    Well I've just installed the latest stable release of Firefox (28.0) and I now have this problem. So is Garmin doing anything about this. Can no longer send workout files to my 910xt with this now broken.... What happening Garmin?
  • Former Member
    0 Former Member over 10 years ago
    I was wondering why my Firefox on Linux behaves differently than Firefox on Windows. On Windows it worked in Firefox 29, on Linux it did not.
    So apparently you are able to configure the new privacy feature and restore the old behavior. And apparently Windows Users that download from Mozilla do not need any privacy, since the new feature is disabled there.

    Go to about:config search the variable plugins.enumerable_names and change the value to * or even better add "Garmin Communicator"

    Example:
    plugins.enumerable_names = Java,Nexus Personal,QuickTime,Shockwave,Garmin Communicator
  • Solution

    I was wondering why my Firefox on Linux behaves differently than Firefox on Windows. On Windows it worked in Firefox 29, on Linux it did not.
    So apparently you are able to configure the new privacy feature and restore the old behavior. And apparently Windows Users that download from Mozilla do not need any privacy, since the new feature is disabled there.

    Go to about:config search the variable plugins.enumerable_names and change the value to * or even better add "Garmin Communicator"

    Example:
    plugins.enumerable_names = Java,Nexus Personal,QuickTime,Shockwave,Garmin Communicator



    Thank you very much. This is working great even with Firefox 30.0