Skip to content

Instantly share code, notes, and snippets.

@prenagha
Created July 20, 2012 22:10
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save prenagha/3153606 to your computer and use it in GitHub Desktop.
Save prenagha/3153606 to your computer and use it in GitHub Desktop.
Open in Chrome
--
-- open currently open URL in Safari in Chrome
-- forked from https://gist.github.com/3151932
--
property theURL : ""
tell application "Safari"
set theURL to URL of current tab of window 1
end tell
if appIsRunning("Google Chrome") then
tell application "Google Chrome"
if (count of (every window where visible is true)) is greater than 0 then
-- running with a visible window, ready for new tab
else
-- running but no visible window, so create one
make new window
end if
end tell
else
tell application "Google Chrome"
-- chrome app not running, so start it
do shell script "open -a \"Google Chrome\""
end tell
end if
-- now that we have made sure chrome is running and has a visible
-- window create a new tab in that window
-- and activate it to bring to the front
tell application "Google Chrome"
tell front window
make new tab with properties {URL:theURL}
end tell
activate
end tell
on appIsRunning(appName)
tell application "System Events" to (name of processes) contains appName
end appIsRunning
@prenagha
Copy link
Author

original idea from https://gist.github.com/3151932

@Nigelw
Copy link

Nigelw commented Jul 22, 2012

Thanks - this is really useful. Only issue I have is that if Chrome is running without any open windows, the script doesn't work.

@prenagha
Copy link
Author

@Nigelw
Copy link

Nigelw commented Jul 23, 2012

Fix works like a charm. Thanks!

@timarnold
Copy link

Another possible revision: if Chrome has a tab or two, but isn't running, then invoking the script doesn't add a tab but replaces the last-visible tab.

(I think it's extremely useful as it is, as evidenced by my version being less complete than yours, but I thought I'd point out this possible shortcoming :)

@prenagha
Copy link
Author

@timarnold you must have chrome set to "continue where i left off". i have it set to always open blank. let me see if i can fix

@prenagha
Copy link
Author

@timarnold @Nigelw ok now even better than before. handles all cases I could come up with. let me know how it works.

@Nigelw
Copy link

Nigelw commented Jul 24, 2012

This is great. Works for me in all cases I'm testing. Thanks for the updates!

@donschaffner
Copy link

When I launch the script it opens Chrome... but by first launching Parallels Desktop, and then Chrome for Windows [ugh]. Any thoughts on how to fix this?

@donschaffner
Copy link

Ha! Renaming every instance of "Google Chrome" to "Google Chrome.app" fixed it.

@danburbul
Copy link

Great snippet, thanks.

@donschaffner
Copy link

And now it's back to doing the same thing again where it preferentially opens the page in Chrome for Windows.

@robjwells
Copy link

Thanks for this @prenagha. I’ve just forked it, mostly to check if the current Chrome tab is empty (and if so to open the URL there).

@donschaffner My fork uses Chrome’s bundle id for everything except checking if it’s running, so that might solve your problem with Parallels & Chrome for Windows. (Unfortunately I can’t test this myself.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment