Three Monkeys, Three Typewriters, Two Days

October 3, 2011

How not to version-detect

A few months ago, http://www.nationalgeographic.com/forcesofnature/interactive/index.html stopped working for Arlan. Which was too bad, because destroying a building or two before bed worked pretty well. A few weeks after that, I finally had a chance to look into what was up with it, and discovered this code:


  function detectFlash(){   
    ...
    var flashDescription =
      navigator.plugins["Shockwave Flash" + isVersion2].description;
    var flashVersion =
      parseInt(flashDescription.charAt(flashDescription.indexOf(".") -
                                       1));
    isFlash6 = flashVersion >= 6;
  } 

followed by a redirect to a "You need Flash" site if isFlash6 is false. Needless to say, the problem appeared when the relevant computer was finally upgraded off Flash 9.

I mailed all this to the webmaster address at nationalgeographic.com, complete with mentioning that the objects in navigator.plugins have a property called version that would work quite well here. It's been a month and a half with no response, and the site is still broken.

So today I called them, went through the ridiculous phone menu that's all about magazines and such, got to an actual live person, explained the problem, got them to transfer me to another person, explained the problem again. Then she started the browser and said that the page works fine for her. So I explained the problem again, and suggested she update to a not-known-insecure version of Flash... In the end, she took down my Flash version and the symptoms I was seeing (but obviously not the details like which script file on their end the bug is in; that was just too much information), and said she'd send it on to someone who may do something about it.

So now I get to wait and hope that my family can get our tornadoes and hurricanes and earthquakes back. Here's hoping.

Posted by bzbarsky at 12:40 PM