I'm not clicking links to anymore of this guy's posts. He's the very definition of a mouthpiece. Nearly every post of his are bad rationalizations for Apple's policies.
I'm not clicking links to anymore of this guy's posts. He's the very definition of a mouthpiece. Nearly every post of his are bad rationalizations for Apple's policies.
Evidence seems to be strongly indicating that it is not necessary, unless you're Adobe and you need someone to blame for years of neglect.
Also, as pointed out all over the place, it hardly amounts to an excuse for everything else that Flash does that isn't related to h.264.
> Nearly every post of his are bad rationalizations for Apple's policies.
Hard to argue that a browser plugin should have direct GPU access when it clearly doesn't need it.
Also note that Gruber is an Apple pundit and obviously a fan of the company, but he has also been very critical of them in areas (eg, App Store policies).
Straw man. Flash doesn't need direct GPU access, just access to video decoding APIs that are accelerated.
A safe, high level API exists: QTKit. Adobe wants direct access, so they've ignored this totally. Whether it makes sense to give hardware control to a piece of software notorious for instability and resource consumption is a judgment call, but it seems a pretty clear one.
Furthermore, this argument would apply just as well to WebGL, which gives graphics hardware access directly to Javascript on any website you visit. WebGL is awesome and I believe it can be done safely.
I don't know much about QTKit but I think it's entirely plausible that it isn't flexible enough for use in Flash. Flash needs complete control over drawing because videos are integrated with other Flash content (likely rendered at least partially in software), and can be manipulated by ActionScript to produce effects such as 360 degree video: http://www.immersivemedia.com/work/cbc/hockey/index.html
Actually, in Safari 4 (Intel, 64bit) each plugin runs in its own process, and it _is_ effectively sandboxed. If Flash crashes, it no longer takes down the browser, or even the tab a la Chrome; you just get a hole in the page.
One interesting test we did recently was to make a very simple flash app that draws some basic controls on the screen and scales to the window size. It also prints out the amount of memory being used by the AVM. In IE, memory usage was extremely low and was about the same regardless of the screen size. In Firefox, memory usage was higher and also almost entirely dependent on window size. To me this implies that IE is allowing Flash to interface with the video card directly, while in Firefox it's having to maintain its own frame buffer internally.
In my opinion, you'd be making a mistake. John Gruber offers the highest quality commentary on Apple related topics of anyone (maybe matched by John Siracusa). He doesn't always take a pro-Apple line - he's been a very strong critic of the App Store acceptance process, for example.
There is NO excuse that a plugin shouldn't be able to access the hardware that is pretty standard today. The worst set of cards can even handle better than software many times over. The worst cards are the intel 945s and more but those are also in netbooks. There hasn't been a better time FOR graphics hardware acceleration. This is also the sole reason flash seems slow on OSX and why native apps on the iPhone are the only way for immersive experiences.
Here is Unity 3D's hardware of the casual gamer breakdown: http://unity3d.com/webplayer/hwstats/pages/web-2009Q3.html
"A browser plugin crashes and takes Safari with it, on this maliciously crafted file"
"A kernel module crashes and execution continues starting at byte 0xDEAD0101, with kernel-level privileges"
Hardware acceleration is used in many plugins (even Quicktime, Windows Media, etc) and gaming plugins like Unity3D, Director, Java (with processing and GL libraries).
Unless you like hearing your processor spin to death taking days of life out of it, you too should be for hardware accelerated plugins. They are no different than applications that you have to trust.
In fact WebGL is another and O3D is another example of hardware acceleration in a wrapper where what you can use is strictly limited to graphics acceleration.
EDIT: They might be good at other things though.