Update: Apple has fixed the rendering issue shown here, but this is what it looked like at launch. Pretty funny…
Apple’s Safari 5 info page in Safari 4:
Apple’s Safari 5 info page in Firefox:
Apple’s Safari 5 info page in Chrome:
A press release with details about Safari 5 was leaked on the web Monday afternoon, then promptly removed.
Many were expecting Apple to release a new version of its Safari web browser during the Worldwide Developer’s Conference (WWDC) taking place this week. But the Monday morning keynote was all about the new iPhone. Safari wasn’t discussed.
Then, at about 3:30pm Pacific time, a press release went out over the PRNewsWire service. It was live for a short time — under 10 minutes — before it vanished. The link now returns an error. Apple has yet to update the Safari pages of its website or make any additional announcements. We’re guessing the news item was released mistakenly or prematurely.
Update @ 4:30pm: The release is now available on the Apple website, though the Safari pages still haven’t been updated.
It was live long enough for us to grab a copy, and you can read the full release below. Here are some details.
There’s also Reader, a built-in app that strips ads, images and other clutter out of the way, presenting news articles and longer reads in a simplified, scrolling, text-only window “without distraction.” Instapaper and Readability, it appears as though Apple is drinking your milkshake.
According to the release, the updated browser will include expanded support for the HTML5 stack, including geolocation, sectioning elements, drag and drop, form validation, Ajax history and WebSocket. There’s also “full screen playback and closed captions for HTML5 video” — though we should note that Apple currently only supports native playback of h.264 video and not WebM, which all other major browsers are backing. No further details there.
Full release follows:
Apple posted a showcase of “HTML5 and web standards” on its website Thursday that highlights the level of support for the emerging standard in the company’s Safari and Mobile Safari browsers.
It’s nice to see Apple (or anyone for that matter) talking about HTML5 and mentioning more than just video. The site showcases HTML5 audio and canvas elements, as well as CSS 3 transitions and typography tools. It also has a nice photo gallery that looks and behaves just like former Apple designer Mike Matas’ amazing photo-gallery site.
Unfortunately, the way Apple presents the showcase, you would think Safari is the only web browser that supports these new web standards.
In fact, visit the site with any other browser and you’ll get a message telling you to download Safari. Surely your browser must be inadequate? Actually, your browser is probably capable of handling the showcase just fine, but ultimately the showcase isn’t about web standards: It’s about Apple’s version of web standards.
Apple is detecting the user-agent string (the bit of identifying data your browser passes to a web server when it requests a page) and only allowing Safari users to see the galleries. Other browsers are effectively cut off, regardless of the fact that many can render them just fine.
Worse, Apple’s CSS code uses only WebKit-specific selectors — for example,
-webkit-border-radius instead of the actual CSS 3 selector
border-radius. WebKit is the open source engine that powers Safari and Google Chrome. Firefox, IE and Opera can’t understand this code as clearly.
So much for web standards. Not only is user-agent sniffing absolutely the wrong way to determine the HTML5 capabilities of the current user, the implicit suggestion is that HTML5 is something only Apple supports.
Microsoft recently published its own HTML5 showcase to hype the coming release of Internet Explorer 9, and its demo pages are viewable (and work) in any non-IE browser with the proper support. Mozilla’s HTML5 demo pages are geared to work with experimental builds of Firefox, but at least other browsers aren’t blocked, and most of the demos actually work in Chrome.
To test Apple’s demos in other browsers, we spoofed the user agent in Firefox and Chromium and found that, while several examples do indeed fail in Firefox, most worked just fine. Naturally, everything works without issue in Chromium, because it uses the same WebKit rendering engine as Safari. Apple is being disingenuous by making its browser seem more compelling than others. That’s not surprising, but we’d be disappointed to see independent developers follow suit. [Update: As several commenters, and John Gruber point out, the version WebKit that Chromium uses doesn't yet support all of CSS 3's 3D transforms, which renders this demo incomplete, though still functional, in Chrome/Chromium.]
So how should you detect whether the current browser can display whatever bit of HTML5 or CSS 3 you’re using? The long-established best practice is to detect for features, not browsers. To find out which features are available in the current browser isn’t hard — there are even several free, open source libraries out there that do just that.
There are however, some cases where Modernizr might be overkill. For example, if you just want to embed some HTML5 video, you only need to detect one element. If Modernizr isn’t right for your project, check out Mark Pilgrim’s list of ways to detect HTML5 elements. The list of elements and how to detect them is an appendix to Pilgrim’s book in progress, Dive Into HTML5.
The list isn’t just elements, though it does cover those as well. But it also shows you how to detect API support for things like offline storage or geolocation, as well as SVG, SVG-in-HTML and even which video codec the current browser supports.
One thing Pilgrim doesn’t cover is CSS 3 features (CSS 3 != HTML5). To detect which CSS 3 features are available in the current browser you can use Modernizer or you can roll your own code using a library like jQuery, which includes a
support() method to check a wide range of browser features before executing code.
SAN FRANCISCO — When Google announced it would be releasing the VP8 video codec under an open source license, all of the major browser vendors jumped up to support it.
Well, all of them except Apple.
The WebM Project, a partnership between Google, Mozilla, Opera and dozens of other software and hardware makers, provides web developers a way of embedding video and audio in HTML5 pages without plug-ins, and without resorting to patent-laden technologies.
Watchers of the open web have been waiting for this development for some time. The HTML5 video playback experience varies greatly between browsers, with different browsers supporting different flavors of video, creating a poor user experience and forcing developers to rely heavily on plug-ins like Flash and Silverlight. Google was widely expected to take a step towards solving the video problem on the web with Wednesday’s WebM announcement.
Indeed, within minutes of the project’s launch here at Google I/O, links went up to new versions of Firefox and Opera with built-in support for WebM video. Chrome support will be coming in the next beta, due later this month. Microsoft says that Microsoft Internet Explorer 9, due to arrive as soon as the end of 2010, will support VP8 video playback if a user has installed the free codec on their copy of Windows. Adobe says Flash Player will also support it as soon as possible. Executives from Mozilla, Opera and Adobe were all on stage during Wednesday morning’s keynote to pledge their support.
But nobody from Apple appeared, and as of Wednesday afternoon, the company has made no such announcement about support for WebM video in Safari. When asked to comment on this story, Apple didn’t respond.
Of course, Apple has a great deal of time and money invested in a competing technology, H.264. Its Quicktime ecosystem is built on H.264, and it uses the video format for all of its content served through iTunes. It’s also the native format on iPads, iPhones and iPods.
Most video on the web — approximately two-thirds of it — is served in the H.264 format, but various licensing requirements make some nervous to use it. Apple owns patents around H.264 and benefits from the licensing fees that allow its use (so does Microsoft, and many other companies).
So, will Apple begin supporting a open source video codec that competes for space on the web with H.264?
“Stranger things have happened, but I’d be surprised if that happened soon,” says Christopher “Monty” Montgomery, creator of the Ogg container, an open source video and audio technology integral to the new WebM Project, in an e-mail to Webmonkey.
Apple has sent not-so-subtle threats about possible patent violation complaints being brought against supporters of open video codecs. In an e-mail to a blogger, Jobs warned that MPEG-LA, the licensing group that oversees H.264, was assembling a patent portfolio to “go after” open video codec makers.
“Unfortunately, just because something is open source, it doesn’t mean or guarantee that it doesn’t infringe on others patents,” Jobs wrote.
But Monty isn’t worried about the MPEG-LA suing him or anyone at the WebM Project.
“The recent saber-rattling by Jobs felt more like a message to his own troops than a warning shot to ours,” he says. “MPEG itself has always has an internal contingent that has pushed hard for royalty-free baselines from MPEG, and the missives about video codecs and patents were probably meant for them, not us.”
Google VP of product management Sundar Pichai says the company has done “a thorough legal analysis of VP8″ since acquiring it, and remains confident it can release the technology under an open source license without infringing on any patents.
The Safari browser is based on the same WebKit engine as Google Chrome, and the WebKit engine is open source. But codec support is not a component of the rendering engine, so even though Google’s browser supports VP8 and WebM content, it doesn’t provide an instant fix for Safari.
And of course, iPad and iPhone browsers run Safari, so WebM video won’t work on those devices until Apple adds support.
However, it wouldn’t be tough for Apple to implement WebM support. All of the technologies involved have been released under permissive open source licenses, and it’s already been rolled into three major browsers.
“It’s not a technical challenge,” says Google VP of engineering Linus Upson. “If you look at the other browsers that have already implemented VP8, it’s just been a matter of a few weeks.”
Google’s Upson and Pichai both say they hope all web browsers will support WebM’s efforts eventually.
Whether it was Internet Explorer on WIndows 7, Safari on OS X, Firefox on Windows or Mobile Safari on the iPhone, just about every browser on the market proved compromisable in some way.
Perhaps the most notable of the hacks is the iPhone exploit, in which a hacker managed to download the entire SMS database of a fully patched (non-jailbroken) iPhone 3GS, grabbing the complete list of contacts and any stored messages.
As in the real world, the Pwn2Own exploit code was delivered via specially-crafted, malicious websites which target a specific flaw in your browser.
Safari, Firefox and Internet Explorer were all compromised, but there is one notable exception — Google’s Chrome browser.
One of the key aspects of Chrome that has — thus far — stopped the Pwn2Own hackers is its tightly sandboxed code, which makes it very difficult to exploit. Which isn’t to say there aren’t bugs in Chrome, just that exploiting them to do dirty work outside of Chrome, and thus compromise Windows, Linux or OS X, is much more difficult than it is with other browsers.
For users of IE, Firefox, Safari and Mobile Safari, the only real solution for any security woes is to wait for software updates patching the flaws. Microsoft, which is a CanSecWest sponsor, says it’s already investigating the flaws in Internet Explorer.
Given that one contestant arrived at Pwn2Own with some 20 working exploits for OS X, we’re hoping Apple does the same, but sadly, the company is notorious lax when it comes to patching security flaws in its software.
If you’d like more information about the specific exploits used on each browser, see CNet’s coverage of the nitty-gritty Pwn2Own details.