lhl / chrome-ssb-osx Goto Github PK
View Code? Open in Web Editor NEWSimple script for making Chrome-based SSBs (site specific browsers)
Simple script for making Chrome-based SSBs (site specific browsers)
I ran the script with all the arguments you suggested. I'm having trouble getting this to work. When I open the GMail.app from Finder or Applications, nothing happens. I tried opening it from the command line and I get the following error.
[hi]$ cd /Applications
[hi]$ open GMail.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/GMail.app.
After digging around a little, it looks like this is an OSX issue. From page 69 of the docs, code -10810
means that "an unknown error has occurred". Talk about a useful error message...haha.
I'm happy to help debug but a little wary of the best way to discover what could be the problem.
For reference, I have Chrome Version 26.0.1410.65 and OSX 10.6.8 (10K549).
When I open a new tab, it opens in a new window. Any link opens in another window. Is there a way to open the SSB as a normal Chrome window as opposed to the limited functionality window? Thanks.
Any way to get the toolbar to show?
All my Chrome SSB apps recently started crashing on launch. Recreating the apps fixed some of the apps, but others still crash. I imagine either a Chrome or OSX update changed something, but I'm not sure which of those updated around when it started happening. Here's what looks like the relevant part of a crash report:
Process: Personal Mail Chrome [33208]
Path: /Applications/Personal Mail.app/Contents/MacOS/Personal Mail Chrome
Identifier: com.google.Chrome.Personal Mail
Version: ???
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Personal Mail Chrome [33208]
User ID: 501
Date/Time: 2015-03-18 08:05:35.642 -0600
OS Version: Mac OS X 10.10.2 (14C1510)
Report Version: 11
Anonymous UUID: A3DEE1E2-1237-4FCC-2093-B7B04C52CEAF
Sleep/Wake UUID: 913FCCD1-E917-492B-83A5-D8FD5D1CCBC0
Time Awake Since Boot: 610000 seconds
Time Since Wake: 530 seconds
Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 com.google.Chrome.framework 0x000000010bc029f5 ChromeMain + 6880069
1 com.google.Chrome.framework 0x000000010ba4598f ChromeMain + 5057247
2 com.google.Chrome.framework 0x000000010ba46738 ChromeMain + 5060744
3 com.google.Chrome.framework 0x000000010b609f00 ChromeMain + 618576
4 com.google.Chrome.framework 0x000000010b609c4e ChromeMain + 617886
5 com.google.Chrome.framework 0x000000010e4e73d3 ChromeMain + 49759523
6 com.google.Chrome.framework 0x000000010e75d6f7 ChromeMain + 52340807
7 com.google.Chrome.framework 0x000000010e4e5db8 ChromeMain + 49753864
8 com.google.Chrome.framework 0x000000010e4e995d ChromeMain + 49769133
9 com.google.Chrome.framework 0x000000010e4e3c9f ChromeMain + 49745391
10 com.google.Chrome.framework 0x000000010bbd2264 ChromeMain + 6681524
11 com.google.Chrome.framework 0x000000010bbd18d6 ChromeMain + 6679078
12 com.google.Chrome.framework 0x000000010b572ef2 ChromeMain + 66
13 Personal Mail Chrome 0x000000010b568f39 main + 9
14 Personal Mail Chrome 0x000000010b568f24 0x10b568000 + 3876
The icon still is blank even though I've moved the app to another folder like instructed
Hi. Thanks for sharing this.
Unfortunately, the newly created only immediately crashes on open for me. Pointing to this URL:
https://mail.google.com/mail/u/0/
The top of my crash report is included below, on the off-chance it helps somehow.
Process: Google Chrome [87075]
Path: /Users/USER/*/AnotherGmail.app/Contents/MacOS/AnotherGmail Chrome
Identifier: Google Chrome
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [405]
Date/Time: 2013-04-11 17:23:16.482 -0500
OS Version: Mac OS X 10.7.5 (11G63)
Report Version: 9
Interval Since Last Report: 164493 sec
Crashes Since Last Report: 5
Per-App Crashes Since Last Report: 5
Anonymous UUID: 3771CAEF-4451-4393-B5FC-3EA67CFE459A
Crashed Thread: 16 Chrome_IOThread
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
objc[87075]: garbage collection is OFF
Thread 0:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x93d0ec22 mach_msg_trap + 10
1 libsystem_kernel.dylib 0x93d0e1f6 mach_msg + 70
2 com.apple.CoreFoundation 0x965cd9da __CFRunLoopServiceMachPort + 170
3 com.apple.CoreFoundation 0x965d6b04 __CFRunLoopRun + 1428
4 com.apple.CoreFoundation 0x965d61dc CFRunLoopRunSpecific + 332
Hi,
is this working on Mavericks? I'm getting some weird behaviour: The script creates the SSB correctly, I can start it and everything works fine, but I can't run Chrome at the same time. If I start Chrome while having the SSB running it just switches to my SSB. It works the other way around: I can start the SSB while Chrome is running.
Any ideas?
Hi-- Maybe I'm missing something, but is there some way to have links from a Chrome SSB (created with this script) open in your "real" default Chrome instance? Rather than opening within the SSB's Chrome instance, I mean. Right now, URLs from my Chrome SSBs open within that SSB, which to me seems to break the point of an SSB.
I want to use this for a variety of sites that I want to act as applications, but nearly all of these web apps contain links to other things -- I might have links in my todo list, or my emails, etc that could go anywhere. I want these to open in my standard Chrome instance, which has all of my typical user data and logins to those sites. This is the way you can setup Fluid, with a whitelist of URLs and everything else opens in your default browser.
I understand this might not be something your script can do, but I've been searching all over and haven't found anything -- was wondering if anyone here has a solution.
Thought I'd stick a link to my bug regarding this at https://code.google.com/p/chromium/issues/detail?id=460787 here, since I just referenced this project there.
I created a chrome ssb for gmail and for gcal. Any time I try to upload a file (e.g., add an attachment to an email), the ssb becomes totally unresponsive and I effectively have to quit and restart the app. Any idea what is going on here?
I'm happy to post any debugging information that would be useful.
Hi,
when i create the ssb for a website (webmail), i cannot open PDF files. This is due to the symlink to the Versions directory (/Applications/Google Chrome.app/Contents/Versions). When i replace it with a hardlink everything works fine. Since hardlinking of folders in OSX is crippled, you need more manual stuff:
http://stackoverflow.com/questions/1432540/creating-directory-hard-links-in-macos-x
or
http://www.bram.us/2013/02/08/os-x-hardlink/
Would be nice if you could include this in the script :)
kind regards
Guy
I originally came across this idea reading this article: http://lifehacker.com/5611711/create-application-shortcuts-in-google-chrome-for-mac-with-a-shell-script
I made a gitlab app, and am having a problem uploading files (the window comes behind the browser and I'm unable to upload) so I tired your script, and for some reason, it gives me Chrome window running non retina version. See screenshot:
Is it possible for the SSBs that this script creates to use the same cookies and cache as my normal Chrome browser?
For example, I made a gmail SSB but when I click on links, say from github, they open in a new window in the SSB instance of chrome but my credentials don't carry between my normal Chrome experience and the SSB instance.
Similarly for chrome apps. I have boomerang installed in Chrome but it does not appear to cross over to the SSB instance.
Hi - just downloaded the app and ran it. I got the same result twice:
[email protected]:~/SoftwareDevelopment/chrome-ssb-osx 11:15:49 560$ ls
-n BP Gmail (Chrome).app -n BP Gmail 3.app README.md chrome-ssb.sh
So I ran it with trace:
[email protected]:~/SoftwareDevelopment/chrome-ssb-osx 11:14:57 559$ sh -x chrome-ssb.sh
+ echo 'What should the Application be called?'
What should the Application be called?
+ read inputline
BP Gmail 3
++ trim 'BP Gmail 3'
++ local 'var=BP Gmail 3'
++ var='BP Gmail 3'
++ var='BP Gmail 3'
++ echo -n 'BP Gmail 3'
+ name='-n BP Gmail 3'
+ echo 'What is the url (e.g. https://www.google.com/calendar/render)?'
What is the url (e.g. https://www.google.com/calendar/render)?
+ read inputline
http://mail.blendedperspectives.com
++ trim http://mail.blendedperspectives.com
++ local var=http://mail.blendedperspectives.com
++ var=http://mail.blendedperspectives.com
++ var=http://mail.blendedperspectives.com
++ echo -n http://mail.blendedperspectives.com
+ url='-n http://mail.blendedperspectives.com'
+ echo 'What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?'
What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?
+ read inputline
/Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
++ trim /Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
++ local var=/Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
++ var=/Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
++ var=/Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
++ echo -n /Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg
+ icon='-n /Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg'
+ chromePath='/Applications/Google Chrome.app'
+ '[' '!' -d '/Applications/Google Chrome.app' ']'
+ chromeExecPath='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
++ pwd
+ appRoot=/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx
+ resourcePath='/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Resources'
+ execPath='/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/MacOS'
+ profilePath='/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Profile'
+ plistPath='/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Info.plist'
+ versionsPath='/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Versions'
+ mkdir -p '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Resources' '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/MacOS' '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Profile'
+ '[' -f '-n /Volumes/Storage/martincleaver/ChromeSSB/BPlogo.jpg' ']'
+ ln -s '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/MacOS/-n BP Gmail 3 Chrome'
+ cat
+ chmod +x '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/MacOS/-n BP Gmail 3'
+ cat
+ ln -s '/Applications/Google Chrome.app/Contents/Versions' '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Versions'
+ mkdir -p '/Volumes/Storage/martincleaver/SoftwareDevelopment/chrome-ssb-osx/-n BP Gmail 3.app/Contents/Resources/en.lproj'
+ cat
[email protected]:~/SoftwareDevelopment/chrome-ssb-osx 11:15:49 560$ ls
-n BP Gmail (Chrome).app -n BP Gmail 3.app README.md chrome-ssb.sh
Nothing funky going on with echo
[email protected]:~/Applications 11:25:08 569$ which echo
/bin/echo
[email protected]:~/Applications 11:25:24 571$ ls -la /bin/echo
-rwxr-xr-x 1 root wheel 14128 26 Sep 2012 /bin/echo
Any thoughts? Thanks, M.
Looks like there may be an issue with the patch to launch Chrome directly (2444557).
Pre-patch, when I create an instance it launches under the name of the SSB app and behaves properly isolated.
Post-patch an otherwise identical instance launches as Chrome (in the Finder menu bar). This SSB instance inherits whatever desktop/space assignment that "Google Chrome.app" has. Moving the SSB instance to another desktop leads to a behavior where trying to focus the SSB window instead goes to the desktop that is assigned to Chrome, and the actual window can't be focused on screen (had to quit it via the Dock).
Hope that makes sense. The behavior on my end can be duplicated 100% of the time. On the other hand, using the latest version with just the changes from that patch rolled back is working very well, including the native pdf plugin.
Hey @lhl … New issue and was wondering if you had any insight to this. The problem is that the code signature is no longer valid — this breaks 1Password from being able to be used as an extension.
I confirmed that it does this regardless of whether the binary is copied over or whether it is a symbolic link to the binary in the Google Chrome app.
I don't know too much about this, but am happy to look into some of it and try to figure it out … just wanted to pass the info along in case you or someone else has a quick fix.
More information about code signing…
I spent about an hour looking at this trying to understand it and see if there was a fairly easy way to change it, but I wasn't able to figure it out. I even tried this program to strip the code signature, but that didn't work. It seems it has to have a valid signature, so having no signature creates the same problem.
I'm sure it's a fairly unique situation, but it might impact other things down the road…not sure. It's a little bit out of my wheelhouse as I don't do OS X development. Appreciate any info you or anyone else has as to a solution.
Here's how you can check the code signature…original Chrome app first and the copy of the binary second.
> codesign -dvvv Google\ Chrome
Executable=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Identifier=com.google.Chrome
Format=bundle with Mach-O thin (i386)
CodeDirectory v=20100 size=186 flags=0x0(none) hashes=3+3 location=embedded
Hash type=sha1 size=20
CDHash=2d280f71e4b9b6d6630b502c98acd78219fecacf
Signature size=4216
Authority=Developer ID Application: Google Inc.
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Nov 18, 2013, 9:02:59 PM
Info.plist entries=31
Sealed Resources version=1 rules=9 files=222
Internal requirements count=2 size=212
> codesign -dvvv TestDev\ Chrome
Executable=/Applications/TestDev.app/Contents/MacOS/TestDev Chrome
Identifier=com.google.Chrome
Format=Mach-O thin (i386)
CodeDirectory v=20100 size=186 flags=0x0(none) hashes=3+3 location=embedded
Hash type=sha1 size=20
CDHash=2d280f71e4b9b6d6630b502c98acd78219fecacf
Signature size=4216
Authority=Developer ID Application: Google Inc.
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Nov 18, 2013, 9:02:59 PM
Info.plist=not bound
Sealed Resources=none
Internal requirements count=2 size=212
Using the script and love it! A much more stable experience than Fluid. Missing the dock badge labels though — is this easy to add in?
You're probably already aware of this. By removing the "--app" flag, you can set up a fully-featured Chrome SSB, whereby you can sign into a Chrome User or load bookmarks that only apply to that instance of Chrome. Maybe we can integrate this into the script somehow. Haven't tested this with the most recent version. I think doing so requires more resources.
Here is a great Chrome Command Line reference, where I found documentation for this option.
Is there a reason the apps don't appear in full retina resolution?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.