Categories: Mac : Report an Issue :

Wherefore art thou, Site-Specific-Browser(SSB)

Showing 1-6 of 6 messages
Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/5/14 9:57 PM
Chrome Version: 35.0.1916.17 dev
OSX Version: 10.9.2

Long, long ago, there was a script that circulated the interwebs:  And it was a good script, for it vanquished the evils of Tabitis, that deadly disease which wasteth your time with petty tab-management.  Remnants of said script still circulate the interwebs today, but lo! -- I truly pity the fool who readth these blog posts.  For surely, they shall waste hours of their time. 

What times are these
 when mighty corporations dare breakth the mere hacks we have come to love so much?  But some shall surely say "ho! here is FluidApp" and to them I say - "Who the $#@! uses Safari?".  Still others more shall say "TooManyTabs" and to them I say - "Ye chrome plugin flickerth when I do open it and woe unto he who wasteth my CPU with petty graphics".  Surely, the wise greybeards atop Mt. Google will hear our pleas for improved tab management and send unto us The Chosen One who shall vanquish Tabitis forever, so that we may return to spending our time writing software.  For then, surely our sanity will be restored.


Seriously though.  When I upgraded to OSX 10.9 in late February, all my SSB's broke.  I believe some changes in how OSX handles processes are preventing SSB's from being treated as separate applications.  

I had an SSB for:
- All of my non-work browsing (facebook, etc)
- My Google apps (Gmail,Voice,Calendar, Etc)
- All of my local web development 
  - a tabset with localhost:3000, localhost:8000, etc automatically opened for me at the push of a button
- Github
- Airbrake/Semaphore

All of this is broken because of OSX 10.9!  This makes me mad because I spent a lot of time looking for solutions that would save me time!

Let me emphasize the time-savings for application-switching in terms of
BIG O Notation
- I go from an O(1) operation that requires no short-term memory and requires < 0.1 seconds
  - this means I press a keyboard shortcut and I go exactly to the webapp or window that I want
- To an O(N^2) operation that requires lots of short-term memory and requires 5-50 seconds - To Switch Tabs!
  - O(N^2) is of course made up, but I wanted to put this in terms that an engineer can understand
  - however, the amount of time the process requires depends on:
    - the number of tabs, the number of windows and the similarity between the content in the TINY, TINY, TINY tabs at the top of the screen

However, Site-Specific-Browsers still aren't the ideal solution to Tabitis because:
1) it's difficult to have portable configuration between Chrome instances (the main problem)
2) data generated by chrome is not shared between instances, like web history...
3) the browser applications and their plugins eat more resources than they should

Here's what I love about SSB's:
1) Each Web Application is a TRUE Application
- with configuration and tools like QuickSilver, I can assign a hotkey to immediately open that application, FROM ANY APPLICATION
- when all everything is bundled in one application, I can't easily interface to that application with QuickSilver
2) I can open as many Github Projects as I want in my Github Application
- And then when I'm done, I can close ALL my Github activity, without affecting my GMail/Semaphore/Airbrake/etc tabs
- I don't have to inspect each tab and window to close them, i can just nuke the entire application!
3) By configuring a set of tabs to open when I start the browser, I can make assumptions that save me time
- I can ensure that GMail is ALWAYS tab 1, Voice is always tab 2, SoundCloud is always tab 3, etc...
- Likewise, I can ensure that when I shift focus to an SSB, I can press CMD+1, CMD+2, CMD+3 and go directly to the tab I need
  - and I do not have to maintain the current state of my browser within my short-term memory!!!
4) I can have separate sets of Bookmarks, etc for each SSB
- for example, my Github SSB had bookmarks for AWS and other dev tools.
- my development application had bookmarks to problem URL's where customer-reported bugs were present
5) Did You Know: Apple booted SoundCloud from the App Store, so there is NO_WAY to use this as a true application?
- Even if you have the SoundCloud DMG backed up (which I did) - you still cannot log in with the application.
- So even when Apple wants to push around possible competition for iTunes, I can still use that webapp as an application
6) They make it difficult for websites to track your Facebook across the web
- because that data's not even in the application
7) I can restrict some plugins to only run on certain SSB's
- plugins like vimium are great, but some of these plugins are poorly written and very resource intensive
- when they are running on multiple chrome applications, they suck resources bad
- this is one reason that I did not sign-in to all of my Chrome SSB's

Here are the solutions I've tried:
1) Tinkering for literally hours to get my SSB's working again.....
2) Considering switching to Linux for a multitude of reasons
- but I don't know that there's a solution there.  maybe, i'll probably switch soon anyways... ugh don't get me started
3) TooManyTabs Plugin
- while this is the best solution so far, i think I have used it maybe 3 times over almost 2 months
- it restricts your usage of shortcut keys, probably because it's a plugin
- it has flashy graphics that I don't like, I wish it were more like opening a file in Sublime, using fuzzy matching
4) OneTab Plugin
- sorry this just isn't going to work for me
5) TabOutliner Plugin
- This one is interesting, but I just didn't like the interface
- I don't like User Interfaces that require me to LOOK for something
- This plugin has tabsets that you can restore, which is nice.
- but why would I waste time configuring something that I already know is not going to work (bc shortcut keys)
6) I scoured QuickSilver for a means of opening a specific tab or window within Chrome
- But there's no good way I can think of to specify the tab/window you want
- If there was, then this data would already be organized within chrome
  - and thus, there would probably be a UI-Element for it within Chrome!
6) I briefly thought about writing an Apple Automator Script
7) Using a Tablet/Laptop for browsing certain applications
- this should be a great solution, but you run into configuration management issues
  - how to sync passwords, etc, etc
- Now i need two laptops and a tablet.  It's not portable!

So, as you can see:
- This problem has wasted tons of my time
- I have invested a lot of time thinking about this problem and looking for possible solutions
- And I believe there is a better solution to this.  I KNOW THERE IS

Here is a UI Solution (for OSX, may be complicated with multiple OS's)
- Add the ability to set up Chrome Application Instances
  - These instances are just like SSB's.  To the OS, they should appear as separate applications
  - This means I can easily add shortcuts to each instance using QuickSilver and GnomeDo
- Add the ability to configure a Chrome Application Instance to use a specific Chrome User
  - this ensures each Chrome Instance has it's own configuration, if needed/wanted
  - additionally, i believe this allows you to restrict plugins as well

Here's another UI Solution that can be used in tandem
- set up a simple fuzzy matcher that allows you to switch tabs, based on the title of the page

Here's the bottom line: if increasingly more applications are webapps, then why do webapps become increasingly painful to use, especially when using multiple webapps simultaneously?  webapps should not be like that and everyone would save time if they weren't...
Re: Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/5/14 10:25 PM
Here's a quick comparison: since this happened, using webapps on the computer now feels like downgrading my phone from 4G to 2.5G.  Like it's actually painful for me to use a computer now.  I get stressed out because I can't get to the information I need.  I feel like half my time is spent switching from tab to tab.

I'm not trying to be negative, but it really sucks because I know how much better it could be!  And because of decisions made by Apple that are totally out of my control, I'm stuck in the slow lane.  And there doesn't appear to be an existing solution for this.
Re: Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/6/14 1:30 PM
Oh! I found the solution in this Github issue.  Turns out OSX 10.9 updated Gatekeeper.  And apparently Chrome SSB Apps that are created in this way are not valid signed code objects.  And this prevents the executable from running correctly, though it does not report this to the user.

Fortunately, a pull request to this Github repo has solve the problem, so that version of the script works!!!!!  

And balance has once again been restored to the Universe.
Re: Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/6/14 3:31 PM
Well, actually there's a few problems.  Here's one: 

When creating an SSB, if you remove the "--app" flag from chrome executable invocation and log into Chrome using your Google account, then this popup appears incessantly.  **facepalm** The only solution I know of is to drag the popup into the dark recesses of the corner of my screen.  It doesn't matter whether I press "Allow", "Deny", or even "Always Allow".  It pops up hundreds of times, within minutes.  

Why I am removing the "--app" flag? So that I can set up individual Chrome Users for each SSB and thus:
- each browser instance looks different
- each loads a specific set of pages when initially opened
- each has a separate set of bookmarks, relevant only to the tasks I use that instance for.
  - i only use the ICONS for bookmarks, so you can fit more into the bookmarks bar.
  - i should also be able to use fuzzy matching to search bookmarks as well as tabs, but i digress.
- the configuration exists somewhere not on my computer
- and finally, the configuration is portable!  between machine, OS & more!

Even though I've found a hack that works, these kind of bugs is why I want Google to release an official feature for this.  My fear though, is that I am maybe one of hundreds of nerds that uses a browser in this way.  And therefore, the impact is too small and my pleas will go unnoticed.  Not only that, but implementing this may interfere with the data Google collects.  IMO, implementing this will actually produce better data because it implicitly associates the data with the context of the user's activities, but it might not be easy.

So until then, every time I drag this lil popup to the edge of the screen, a tiny tear shall roll down my cheek.
Re: Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/6/14 4:25 PM

And another bug when using SSB’s and Chrome Users.  I created a supervised user, which was working great at first.  

However, now I cannot visit ANY web pages with this user!  Chrome says that it "can't connect" to the servers.

Yet I am able to connect to any site just fine using:

- my original browser instance or firefox

- an unsupervised user in the SSB (which can’t download assets like CSS/images)

- my original Chrome user in the SSB.


Also, the version of Chrome is reported as “Version 35.0.1916.17 unknown”.  And the “Report Issue” button doesn’t work. 

Re: Wherefore art thou, Site-Specific-Browser(SSB) dcunited001 4/11/14 2:44 PM
It appears these 2 issues are related:
1) the "Chrome Safe Storage" Keychain popups
2) and the Supervised Chrome Users problem

I found a fix for these in this github issue.  It appears to work for others, but it doesn't quite work for me.  Below is how I've described my problems on the issue.

I found a way around these additional problems: just set Keychain Access to allow any application to access the Chrome Safe Storage key.  I don't know whether this is safe.  Should I be concerned?  Honestly I really don't care at this point, I just want to browse webapps as if they were real applications.

I also cannot emphasize enough how easy this is in Linux.  I'm not really mad or trying to be negative, but I'm irritated at the time I've spent on this: 8+ hours last week and 4 hours today.


It was working great at first. Now, for some reason it's popping up again.

I followed your directions and created the SSB after ensuring the keys were deleted. Then created the SSB and even created a Supervised Chrome user. Everything was working, but I realized I had created the SSB in the wrong directory. I tried to create another and after this point, but I cannot get the $#@! keys to stay deleted, whatever I do. I have never typed so many passwords in my life. (1 to open PW Safe, 2 to log into chrome, 3 to decrypt my chrome settings, then chrome forgets it's logged in, etc, etc,etc ...)

All I know is this is infinitely easier on Linux.

I have no idea what happened for me. Like I said, it was working at first. The ONLY way i could get the popups to stop was by viewing "Chrome Safe Storage" in Keychain Access and setting it to be accessible by all applications. I'm not really sure whether to be concerned about this, but whatever.

I've spent hours trying to get this to work and it's incredibly frustrating to have to enter passwords over and over and over again.