Have an account? Log in to leave your comments!
journal: win
Safari for Windows
Introduction and Installation
I don’t ever watch the actual WWDC keynotes, nor do I take that much interest in them, but I will have a look at the Engadget or Ars feeds after it’s all over to see just what kind of carnage took place. In this case, that carnage was the announcement of Safari 3, which has been ported over to Windows. The reasons why are pure speculation, ranging from allowing the widest range of developers to be able to test iPhone applications without having to pay for Macs all the way to wanting web developers to take Safari and therefore WebKit seriously, as they have come to do for Firefox and Gecko. (Lack of) reasoning aside, Safari 3 is here, at least as a beta. Not only that, it’s here for Windows. In this review, we’ll see not only how Safari stacks up as a web browser, but how Safari stacks up as a Windows application.
Downloading Safari is much like downloading iTunes from Apple. You select a radio button, the click a button and download/run the installer. There is an option for Windows that downloads Safari plus the omnipresent Quicktime, but users can opt to download only Safari instead. Installation is, unsurprisingly, just like installing any other application on Windows.
I will say up front that the only thing in Vista that Safari actually supports is a 256x256 icon. Safari windows have no drop shadows and do not animate open/closed and minimized/restored (Figure 1). They also don’t use Vista’s dialog boxes or other user interface conventions. It’s all Mac, and there are even a few things different from that, too.
Under the Hood
At the core of Safari is WebKit, an application framework that includes the WebCore rendering engine. WebCore, based on the KHTML engine from Konqueror, is one of the more standards-compliant engines out there, and it passes the Acid2 Test. Unfortunately, it has only been available for Macs, and it’s nearest neighbor, Konqeror, is only available for Linux and isn’t really close enough to be considered the same. WebCore, being open source, has been compiled for Windows before, in the form of Swift, a browser in its infancy, though one that promises true Windows integration, not just support.
It also appears that Apple ported large parts of the APIs behind Safari to Windows. The task probably wasn’t all too hard, being that iTunes for Windows also runs on ported APIs. The result is that webforms have Aqua widgets, sheets work exactly as they do on OS X down to the animation, and OS X’s font smoothing style is used for all text on webpages. In actuality, this is much more than iTunes, which doesn’t have sheets or OS X font smoothing. The end result is truly a snapshot of the Mac experience, and more importantly, ensures that pages developed on Windows will look exactly the same on OS X in WebCore.
User Interface
There are only two differences between the Mac and Windows versions of Safari 3’s main window: the menubar is in the app in Windows because there is no system-wide menubar, and the min/max/close buttons are on the opposite side of the titlebar and in the Windows order on Windows. Everything else--toolbar buttons, text-entry forms, scrollbars, and even sheets--are perfectly preserved.
The UI has a menu bar, a toolbar, a bookmarks bar, and a tab bar by default, all standard fare for a web browser (Figure 2). While the order of the buttons on the toolbar are customizable, as which buttons are even on it, the order of these bars is set in stone. You can disable the toolbar, bookmarks bar, and tabs bar, but not the menu bar. In addition, a status bar is available, though disabled by default. The progress bar is shown in the address bar, a nice place to put it and eliminate the need for a status bar at the bottom. Users of other browers, however, will probably find themselves looking at the bottom of the window the first few times they want to check progress of a loading page. Another very nice feature that even the concept of could be useful in Windows is Sheets. The concept behind them is a way to keep modal dialog boxes attached to their parent, eliminating the possibility of losing track of which window spawned the dialog (Figure 3). Very cool.
Safari also has tabs, like any other browser today. When a page is loading in a tab, a busy indicator will appear in that tab. Tabs can be rearranged along the tab bar by dragging, and dragging a tab straigt down allows you to create a separate window. Tabs can be dragged from one window to another, too.
Content
A web browser is nothing without the web. Similarly, it is nothing if it cannot display and keep track of the user’s favorite parts of said web correctly and easily. Also I just like to talk about webforms.
Web Pages
As stated above, the WebCOre engine is very standards-compliant. Most pages render flawlessly or close enough, though some sites, like the Google Apps, have minor bugs (like Docs) or missing features (Google Talk in Gmail doesn’t work.) The pages are rendered using OS X text rendering system, which is touted as being more faithful to the printed word, has actually received many complaints. Since it was sort of released to the Windows world with Safari, I was suprised by the amount of people who said that it was too blurry or otherwise ugly. I myself prefer ClearType, but I can appreciate the other approaches to font rendering. I can also accept that this is for the best because it helps create the closest appearance between the Windows and Mac clients.
All webforms use the same widgets as Aqua in OS X, but with some exceptions, mostly related to menus. In webforms, the drop-down boxes have the behavior of Windows, displaying a menu below the widget that will always be there. The drop-down boxes in the application itself, such as those found in the preferences window, have the correct behavior of appearing over the control with the currently selected option, no matter where it is on the menu, under the mouse cursor. Beyond that, however, the controls are virtually the same (Figure 4).
Bookmarks
To bookmark a site, you just have to press the bookmark button on the toolbar. This opens a sheet asking for a name for the bookmark and where to save it (Figure 5). Saving it to the bookmarks bar will make it show up in the browser UI.
To organize your bookmarks, either click the book icon in the bookmarks bar or Click the Bookmarks menu and click “Show All Bookmarks.” The bookmark manager is somewhat of a deceptive name. Not only is it your bookmarks organizer, it’s your History browser and RSS reader (Figure 6). There are collections for both the Bookmarks toolbar and menu, as well as a list of all saved RSS feeds. You can create custom collections which can include both bookmarks and feeds.
RSS Feeds
When you visit a web page that has an RSS feed related to it, a blue RSS icon appears in the address bar. Clicking on this icon will display the feed, with content on the left and a pane with some links and settings on the right (Figure 7). You can control the length of each article with a slider, choose sort order, or only view articles from a certain time period.
To subscribe to an RSS feed, just bookmark it like you would any page. It will show up in your bookmark manager as an RSS feed, and you can do anything to it that you can do to a bookmark.
Criticism
Now that we’re all quite familiar with what Safari on Windows can and does do, I’m going to walk through what Safari does not do.
Safari does not like secondary monitors. In fact, it refuses to open windows directly on them, instead necessitating that you drag it kicking and screaming. In addition, do not try to maximize a Safari window on your secondary monitor. It will seize the opportunity and run away, so you’ll have to bring it back with the move command. Also, Safari’s window placement algorithm seems to be either broken or just stupid, because it routinely spawns new windows created with Ctrl-N half off the screen.
This brings me to another point, and that is the fact that you can only resize Safari windows in their lower right corner, the corner that is most commonly stuck behind the taskbar or offscreen. This restriction seems more annoying the simpler the task would be if it were resizeable from all sides and corners. But wait, there’s more! The upper left and upper right corner of a maximized Safari window actually click through behind it. If you happen to have Safari and another application maximized and you go to close Safari, there goes your other window unless you’re careful.
Aside from those, my complaints as stated above also apply. There is no conformation to even the most important of Windows GUI paradigms. No drop shadows or animations in Vista, some keyboard shortcuts are different from the usual shortcut or just plain don’t exist (Figure 8), Windows-M works on all windows except Safari, and clicking on an active Safari taskbar button doesn’t minimize it, but rather leaves no window selected. These are just the one’s I’ve found, there may be more.
Now, the last thing I want to happen is for people to get the impression that Safari is all bad. It’s actually a very promising beta. Fix up these issues, and they can certainly expect to gain some marketshare beyond Mac users using it on their Windows boxes to feel at home. I don’t, however, see as many Internet Explorer users jumping to Safari just because it’s Safari; it generally takes some outside influence, since most IE users just use it because it came with the PC.
Conclusion
So, that’s the Safari 3 beta for Windows. The time to see whether it is a viable competitor to other Windows browsers isn’t at hand quite yet, however. Porting entire API sets is certainly one of the more buggy routes to take in porting an application to another operating system, so Apple should be allowed some time in the public eye to iron out bugs. It will also be interesting to see how exploitable Safari is, now that it will face a wider audience that includes people looking for vulnerabilities. Apple has issued an update for the exploits found so far, but somehow I doubt those are all there’ll ever be. That topic, however, is material for another one of my most profound writings
.
|
|
Pros: |
Cons: |
|
|
|
|
12 | 5889 |
| Liam | comments | views |
thinkback
Without being either Microsoft or Apple, I’m pretty sure those are handled by the OS. Firefox, which uses the cross-platform XUL, has none of these issues. Not even iTunes has some of these issues (you can resize it from any border, it places new windows like other apps on Windows.
That said, it’ll get fixed so long as there’s bug reports on it (I’ve been submitting my fair share,) as Apple is generally good at getting that stuff done. I’ll admit I was suprised to see a security update for Safari the day after some of the exploits appeared. It shows Apple is serious about keeping it secure.
Thanks for the comments, though. I forgot about the resizeable text forms. It’s certainly interesting to think about being able to control webforms as you would windows on a desktop.
Why does Windows continue to rely on the software developers for things that should be system-wide by default? I don’t understand why, technologically, a brand new application made for Vista doesn’t get shadows and window animation automatically from the OS.
Windows applications do automatically get shadows, animations, and the standard windows theme. Apple made a choice not to use those functions.
Again, why isn’t this handled by the OS? Is this what contributes to the fact that Windows is less consistent across multiple applications in so many areas?
Having said that, Apple should definitely make Safari support multiple monitors well and should fully support the Vista features that are lacking.
Once again, the Windows API’s do handle this automatically but Apple chose to use their own conventions.
Windows applications do automatically get shadows, animations, and the standard windows theme. Apple made a choice not to use those functions.
No, what you are saying is Windows offers it to developers, but developers have to utilize it.
If Rosyna reads this, maybe she can explain it, but I think OS X applications’ window management is handled automatically. If it’s a window, the red/yellow/green buttons all do the same thing automatically. If I click on the yellow button, they all animate down to the Dock. The developer doesn’t have to go through and say, “Use shadows, use minimize animation, use Exposé...”. The developer just has a “window” and all “window"s have the same functionality, with shadows, and are used in Exposé, etc.
Correct me if I’m wrong.
So Windows offers a window without shadows that doesn’t animate.
Scot, there’s also a checkbox in Interface Builder to turn the shadow off for any Cocoa or Carbon window. Granted, you don’t usually notice because this is used for times when a window isn’t really a window (widgets, full-screen apps, etc.), but it’s still there, should developers choose to use it. I would imagine Vista’s API has the same capability; why Apple decided not to use it is beyond me.
I see. In OS X, it’s on by default, but you have the ability to turn if off, if you want. Thanks for the info, Arden!
There is no checkbox for animations, though, right? Like minimize? Exposé?
Thanks
Another nice feature of Safari 3 is it warns you before you close the browser if you have typed text into a comment field, like this one. So if you typed a message and then went to another tab and forgot that you haven’t submitted your message yet, it will warn you before you close the tab. Nice!
Exposé-ness is more a product of being an NSWindow than anything the developer can generally control, which is why you can expose an app’s windows automatically, but not its panels, etc. Though you can definitely block Exposé (games, etc.).
Another nice feature of Safari 3 is it warns you before you close the browser if you have typed text into a comment field, like this one. So if you typed a message and then went to another tab and forgot that you haven’t submitted your message yet, it will warn you before you close the tab. Nice!
Nice… wish Hao Li would add that to Saft for Safari 2.
Thanks for the screenshots! I figured that a “window” had certain automatic behavior (being a window) and optional features too.
Oh yay, not only does Safari place an icon on the desktop without consent when you install it, it does so everytime you install an update for Safari. I sincerely hope that’s a bug.
Might not be… Apple tends to stick applications wherever they think they should go when you do updates, whether or not you’ve moved them, which means everything always ends up back in /Applications when I update something like iTunes (often leaving the old version in its original spot… what, no delete?). I’ve subdivided my apps folder because I have so many, so this is an annoying behavior to me. I’m guessing it’s not a bug because of this behavior, just one of the quirks of Apple software engineering you have to put up with.
The no drop shadow on Safari can be temporarily fixed by setting the theme to Vista Basic and installing Y’z Shadow. You will get a dialog box warning that it doesn’t work outside of Windows Xp, which just means you have to turn on Xp compatibility for the app.
I’m more annoyed by Safari not displaying shadow than not seeing eyecandy transparency at this point, so I’m willing to accept this compromise. But Apple, you’d better fix this soon, or a lot of people are going to get turned away by Safari, as they already are with their perceived blurry text rendering (which BTW looks perfect to my eye, and is why I must use Safari and nothing else).









1.
Why does Windows continue to rely on the software developers for things that should be system-wide by default? I don’t understand why, technologically, a brand new application made for Vista doesn’t get shadows and window animation automatically from the OS.
You can also just drag and drop it to where you want.
Again, why isn’t this handled by the OS? Is this what contributes to the fact that Windows is less consistent across multiple applications in so many areas?
Having said that, Apple should definitely make Safari support multiple monitors well and should fully support the Vista features that are lacking.
Wouldn’t the same browser with the same APIs be vulnerable to the same exploits? It’s interesting that OS X wasn’t affected by any of those.
Nice review, Liam.
One feature of Safari 3 relevant to these threads is the ability to resize the text box we type in. That’s nice.