WTF: The Adobe Flash Version 1x Crisis
Had any problems with Flash Player version detection lately? Try updating to Adobe Flash Player Version 10. Prepare to be shocked by the poor quality of Flash version detection in the wild.
After upgrading to a clean install of Adobe Flash 10, I discovered that nearly all video sites that worked for me in the past began denying that I had a version of Flash as good as what that they required. Still other sites deliver Flash video to me just fine and, on occasion, I am able to experience the higher quality HD streaming that some sites now support. It is amusing to see who fails to deliver video to me and what they have to say about it.
I leave as an amusing puzzle how one determines what is going on and what the bug is likely to be. My suspicion is that the bug is hilariously simple yet spread like some sort of plague throughout the Internet.
Adobe is experiencing its own version of the Y2k disaster, only in a simpler and more hilarious form. As far as I can tell, the problem is not Adobe’s. The difficulty is that many sites are completely unprepared for this version of the Flash Player.
[2008-12-08T20:37Z update: Further analysis reveals that my particular problem is related to permissions in some way, not simply comparing version numbers incorrectly. I have no trouble with Flash 10 detection and playing when I am running as administrator. The difficulties arise only when running as a limited user. This doesn’t explain why I am successful some of the time as a limited user, and more forensic work is required. For details on the dissection so far, see “WTF: Umm, Flash 10 Detection Not So Simple.”
2008-12-06T22:43Z update: I put the questions about this up as a teaser on StackOverflow. I am already seeing a couple of interesting comments. The frightening prospect is that the bug is in detection code that Adobe (still) recommends. So, I had to add the eReader page’s failing of its own demonstration of the proper solution, below. Stay tuned.]
Here’s how I experienced the widespread (for me) Flash 10 detection failure.
|Updating Flash. On November 24, I encountered a pop-up advising me of an update to the Adobe Flash Player. This one promised full screen HD playback, faster performance, and security enhancements. I wanted it.|
Because I run as a limited user when on-line, actually installing the plug-in took a little more effort. Before I was done, I had removed Flash completely from my computer and then done a fresh install.
On November 25, I had a successful installation in Internet Explorer 8 beta 2. (No cracks: IE is not the problem here. Sometimes I need compatibility mode for a site to render properly, and those issues are separate from whether or not Flash will play. I have Google Chrome, and could try its Flash plug-in except I need to be admin to install it, as usual.)
This display appeared in IE8 when the install succeeded.
If I select updating any time later, no downloading will occur and I see this display near-instantly. At this time, version 10.0.12.36 is the latest and I have it installed already.
|Successful HD Video. Here’s an example of the high-quality video presentation available on Hulu, my favorite site for watching movies and television episodes. This snapshot is a few seconds into the 480p feed of a recent episode of Fringe.|
Hulu works so consistently, while so many other sites are failing, that I was concerned that the site wasn’t serving up Flash at all. To make sure I wasn’t receiving Silverlight video, I inspected the source code of the web page. Yes, it is using the Flash Player. The code is in nice AJax structure and I can find where the player is operated, although I can’t determine how the version is checked. I also see how messages that I need Flash are produced. That isn’t happening.
The Flash 10 Player is recognized by Hulu, which plays everything just dandy.
|Nice embedded play on Change.gov. On December 4, I also visited change.gov because of an interesting phenomenon there. |
Here’s a simple video in its own frame on the Change.gov site. The video and audio play just fine.
I don’t know where this particular video is hosted, so I looked for another that was part of the YouTube video collection for change.gov.
|Change.gov shows YouTube well. Here’s a larger video frame from a different page on change.gov. You can see that the video is YouTube-branded in the lower right corner of the video frame.|
What’s fascinating about this and any other YouTube video is that viewing directly on a YouTube page will fail, as shown below.
It also fails if I go to Y! Video for the Yahoo presentation. The MSN Video works just fine.
|The best rejection of them all. This is the only accurate message that I received. About Face author Alan Cooper should be very pleased that someone is learning how to present straight-talking, factual messages.|
It is valuable that this message reports the only thing that the Kyte site can be sure of. It doesn’t speculate anything about my computer and what the problem might be. If you’re going to fail, do it this way. This is evidence for a level of care that inspires trustworthiness.
| ||YouTube the know-it-all. Here’s brash You Tube guessing what’s wrong with me. The statement is completely false. Also, remember that YouTube video that plays just fine from change.gov?|
So, somebody is doing Flash Player version detection differently (i.e., properly) compared to most everybody else. I wonder how we’ll learn what the difference is.
PS 2008-12-06: Ironically, Google Video does play through Flash 10. Viddler plays beautifully (and that says a lot about Chris Brogan’s relationship to trust). MSN Videos play as well, also using Flash for delivery.
| ||CNN Fails Twice in One Blow. Notice the version it reports that I am using.|
At first, I thought the problem was that all of the failing implementations are truncating “10” to “0”, but that would be misleading.
All we know for sure from this display is that the version was truncated in making the message, assuming it is using a detected version at all.
An interesting aspect of the CNN site is the number of different implementations of Flash viewers there are. I include two more in the rogues gallery below.
| ||Yahoo! wants my attention. I went to the solutions page. |
Meanwhile, back on the page that had this message, I start hearing audio. Returning to the tab with that page, I see that the video is indeed playing. It is a reduced video image that does not play in the full frame of the Yahoo! player on the page, but the video is playing.
It is difficult to get to the AP feeds in a direct way, and I haven’t tried comparisons with other sites that carry AP or other services delivered via Yahoo!
| ||Not so great, Yahoo! This “solution” is amusingly inaccurate. It may be true that they require the version they do, but upgrading won’t get it for me. The fact that the video was playing while I looked at this makes for a rich Internet experience.|
| || |
Oh Oh, Adobe FAIL? This image shows failure of Flash 10 detection on a web page that is proudly showing off the correct way to detect Flash 8 or higher. I found this in a link on the Adobe Developer Center article “Best Practices for Flash Player Detection.”
The article has some great demonstrations of hubris:
”Well, folks, today is a good day: The search is over. The wheel has been invented. And tested. And taken on a nice, long road trip.
“Say hello to the newest detection script, which you can implement easily using Macromedia Flash 8. Much like the Six Million Dollar Man, it's better, faster, and stronger. And as an added bonus, you can actually rely on it.”
”Finally, tell every web developer you know about this article. The sooner Flash Player Express Install becomes standard, the sooner we can stop frustrating users and start handling Flash experiences in an effective manner and improving user experiences on the web.”
Apparently, that is exactly what happened.
The late Michael Williams provided, in 2005, an Adobe Developer Center article on “Future-Proofing Flash Player Detection Scripts.” There are some weird solutions, but it looks like they should detect Flash 10 (but maybe not Flash 26).
| ||Adobe’s Example Fails. The Client-Side Detection example in the Adobe Flash Player Detection Kit 1.5 fails to detect Flash Player version 10.|
| ||Adobe Unhelpful Helpfulness. The Flash Player Detection Kit also provides an example of an ActionScript detection technique. This sample will automatically invoke installation of an ActiveX plug-in, but when I allow it to run all it does is quickly report that the version I have installed is present (as if it has installed it anew).|
This “10.0.12.36 Installed Successfully” has no impact whatsoever on the already-reported detection difficulties. In particular, the Client-Side Detection example still fails.
It is time for that careful forensic reconstruction. I am also curious about the way that the Windows Registry is accessed as part of ActiveX detection activity.
| ||Joi’s Wedding-Present Clue. I have a theory about what is happening here. It is the kind of thing that is going to embarrass a lot of Web developers while those who got it right are laughing their heads off by now.|
[update: The Vimeo video is working fine on Joi’s own site and the link-through to Vimeo. The full-screen HD rendering is not bad. But the above message still occurs when I use the direct video link on Joi’s FriendFeed stream. That makes this a self-contained systems-incoherence demonstration along with the confirmable experience (until they fix it).]
OK, Let’s Figure This Out, Aye?
I can’t be certain that every detection failure has the same bug, but the odds of a Y2K sort of failure are pretty high. The way I think it happens is a little different, but it requires having gone from “9” to “10”, giving lots of time for the defective code to be shared among far too many Web developers around the globe.
I’ll leave it at that. This is a great challenge question for novice developers and experienced ones, the latter probably having committed this one at least once themselves. I can see how I might have been caught by this myself, although I’d like to doubt that I would simply because I am always aware of representation issues from my experience in early programming languages and machine-language programming. I am also inclined to over-engineer edge cases, and that might have been appropriate in this case.
Meanwhile, here’s a rogues gallery of other sites that have an unfortunate approach to Flash Player version detection.
| || |
| || |
| || |
| || |
There you have it. I’m sure this is not pleasing for Adobe. Let’s just hope that the detection problem is not from an Adobe-provided sample of how to do it. [Update: It appears that the problem has been promulgated in Adobe-promoted materials.]
[2008-12-06T19:20Z update: I went through and added links to the actual sites and videos where there is narrative. I also noted some successes where sites simply worked as expected.]
Labels: confirmable experience, interoperability, software usability, system incoherence, trustworthiness, web site construction, web standards