This article originally appeared in TidBITS on 2015-03-06 at 2:16 p.m.
The permanent URL for this article is: http://tidbits.com/article/15464
Include images: Off

Make Site-Specific Browsers with Google Chrome

by Adam C. Engst

For some Web-based services, it’s far more appropriate to use the term “app” than “site” because they do things, rather than just presenting static information. And in fact, most such sites — like Google Docs, Trello, and Strava, to name a few I use — have a dedicated app in iOS.

But such apps usually aren’t written for the Mac. Before the focus on iOS apps, that was understandable, but now it’s downright odd. If you’re a company with a Web app that has millions of desktop users, wouldn’t you want to provide a native experience rather than competing with every other tab in a Web browser? Apparently not, but from the user perspective, if you use a particular Web app all the time, aren’t you tired of hunting it down in your browser’s tabs or bookmarks?

That’s the point of a site-specific browser on the Mac — to free a Web app from the Web browser, and turn it into something that looks, walks, and quacks like a native app. And you don’t need any help from a Web app developer to do it.

Mailplane [1] is the best known dedicated site-specific browser for the Mac, providing a native app experience for Gmail and Google Calendar (see “Zen and the Art of Gmail, Part 4: Mailplane [2],” 16 March 2011). And the now-defunct RocketDocs did the same for Google Docs (see “RocketDocs Brings Coherence to Google Docs [3],” 8 July 2013).

For years, making your own site-specific browser on the Mac required Fluid [4], which builds its apps around WebKit. It’s free, although a $4.99 license purchase provides a few extra features, like full-screen mode and per-app cookie storage. But Fluid relies on an old version of WebKit that isn’t compatible with current versions of Google’s Web apps (and perhaps others). If it works for you, great.

[image link] [5]

The solution I prefer relies instead on Google Chrome, and has the benefit of supporting Chrome extensions within each site-specific browser that you create. Such extensions might include 1Password and LastPass, so you don’t have to copy passwords, or extensions that extend Gmail or Google Docs, for instance. You can install them individually or sign in to Chrome [6] to sync all extensions, settings, and bookmarks over from your main Chrome installation.

Before I get to the best way of making these site-specific browsers, a little history. Chrome includes site-specific browser functionality via a Create Application Shortcut [7] menu item. Unfortunately, Google exposes this capability in only the Windows and Linux versions, not on the Mac. Back in 2010, Bracken King came up with a shell script [8] that made it possible to create Chrome site-specific browsers on the Mac, and Mait Vilbiks then turned it into the AppleScript-based createGcApp that eliminated the need to fuss with permissions and work in Terminal. This worked, but the apps it created were a little funky — notably Keyboard Maestro had trouble differentiating them from Chrome, so it was hard to assign keyboard shortcuts to launch them or work with them in other ways. I don’t recommend either of these solutions.

Further spelunking around the Internet revealed an updated version of King’s shell script [9] written by Leonard Lin that didn’t suffer problems with Keyboard Maestro and other utilities, but it too required fussing in Terminal. Luckily, you don’t need to mess with it either, because it was turned into the AppleScript-based Make Chrome SSB app [10] (packaged on Github as osx-chrome-ssb-gui-1.0.0.dmg), this time by Github user dmarmor. (This happened in January 2015, which is nice to see, since so little else has happened in the site-specific browser area in years.)

The upshot of all this is that although you may run across these other solutions when searching for Chrome-based site-specific browsers, I recommend sticking with the Make Chrome SSB app. Here’s how to get started:

  1. Once you’ve downloaded the osx-chrome-ssb-gui-1.0.0.dmg file, double-click it to mount it as a volume, and drag the Make Chrome SSB file to the alias of your Applications folder. (You can’t run it successfully from the disk image.)

  2. [image link] [11]

  3. In your Applications folder, Control-click the Make Chrome SSB icon, choose Open from the contextual menu that appears, and click Open in the dialog. Since it’s not signed, OS X’s Gatekeeper won’t let you launch it otherwise.

  4. [image link] [12]

  5. Ignore Make Chrome SSB’s dialog for the moment, and take a moment to gather a few pieces of information for your site-specific browser.

    • Most notably, you need the URL for the Web app (make sure it goes exactly where you want the site-specific browser to start). Copy it to the clipboard.

    • You also need an icon. For a good one, search Google Images [13] on the name of the desired Web app and “PNG icon”. You’ll almost certainly find a variety of good images; view one at full size and then drag it to the Desktop so you can easily select it later.

    • If the Web app in question requires login credentials, make sure you’re ready to extract those from your password manager.

  6. Click back in the Make Chrome SSB dialog and paste in the URL for your site.

  7. [image link] [14]

  8. Follow the prompts to locate the PNG image you downloaded previously to use as an icon.

  9. Provide the name and location of your site-specific browser app (ignore the incorrect text that tells you to select an image again).

  10. When you’re done, Make Chrome SSB offers to launch your app or show it in the Finder. Launch it, and log in if necessary. You’ll be prompted to make Chrome your default browser; deselect that button, since you don’t want this site-specific browser to be your default.

  11. [image link] [15]

  12. To make additional site-specific browsers for other Web apps, double-click Make Chrome SSB and repeat Steps 3–7.

Once you have a fully configured site-specific browser, it should work just like the Web app. “Should” is the operative word here — you may notice an occasional failure or odd behavior, particularly when working with plug-ins or the filesystem. For instance, I can drag a PDF into a Chrome window and it displays in Chrome’s PDF Viewer. But doing that in a site-specific browser results in a “Couldn’t load plug-in” error. This doesn’t seem to affect PDFs loaded from a link within the window, but still…. This workaround [16] may help.

Despite an oddity here or there, these Chrome site-specific browsers are tremendously useful. If you use a Web app regularly, consider taking a few minutes to turn it into a native Mac app so it doesn’t get jumbled in with everything else in your Web browser.

[1]: http://mailplaneapp.com/
[2]: http://tidbits.com/article/12039
[3]: http://tidbits.com/article/13896
[4]: http://fluidapp.com/
[5]: http://tidbits.com/resources/2015-03/Fluid-error.png
[6]: https://www.google.com/chrome/browser/signin.html
[7]: https://support.google.com/chrome/answer/95710
[8]: https://www.lessannoyingcrm.com/blog/2010/08/149/Create+application+shortcuts+in+Google+Chrome+on+a+Mac
[9]: https://github.com/lhl/chrome-ssb-osx
[10]: https://github.com/dmarmor/osx-chrome-ssb-gui/releases/
[11]: http://tidbits.com/resources/2015-03/Make-Chrome-SSB-disk-image.png
[12]: http://tidbits.com/resources/2015-03/Open-Make-Chrome-SSB.png
[13]: https://images.google.com/
[14]: http://tidbits.com/resources/2015-03/Trello-SSB.png
[15]: http://tidbits.com/resources/2015-03/Default-browser.png
[16]: http://blog.rocketmade.com/post/56555896851/how-to-use-chrome-single-site-browsers-on-a-mac