I do not have Google Chrome Canary installed but I do have Google Chrome installed and because you've not shown how on run {input}
is actually receiving its input, what I'm presenting is being done in AppleScript Editor however you should be able to translate it to your use with Google Chrome Canary in Automator.
The following AppleScript code examples do what it is you're trying to do albeit in Google Chrome not Google Chrome Canary however change instances of Google Chrome to Google Chrome Canary as applicable and it should work as the examples do work as tested.
This first example uses the do shell script
command in the else
block:
set theURL to "http://apple.stackexchange.com/questions/270413/open-a-url-in-chrome-canary-as-incognito"
if application "Google Chrome" is running then
tell application "Google Chrome"
activate
make new window with properties {mode:"incognito"}
open location theURL
end tell
else
do shell script "open -a 'Google Chrome' --args --incognito " & quoted form of theURL
end if
tell application "Google Chrome" to activate
Note: When used in a Run AppleScript action in Automator you may not need to use quoted form of
with theURL
, so the last part of the do shell script
command will in that case just be:
& theURL
This second example forgoes the use of the do shell script
command in the else
block:
set theURL to "http://apple.stackexchange.com/questions/270413/open-a-url-in-chrome-canary-as-incognito"
if application "Google Chrome" is running then
tell application "Google Chrome"
activate
make new window with properties {mode:"incognito"}
open location theURL
end tell
else
tell application "Google Chrome"
activate
-- close window 1 # Uncomment this line if you want the normal window that opens first to be closed.
make new window with properties {mode:"incognito"}
open location theURL
end tell
end if