|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
property targetTab: null |
|
property targetTabIndex: -1 |
|
property targetWindow: null |
|
property theProgram: "Google Chrome" |
|
|
|
on run argv |
|
set theURL to item 1 of argv |
|
|
|
|
|
|
|
if (count of argv) > 1 then |
|
set theProgram to item 2 of argv |
|
end if |
|
|
|
using terms from application "Google Chrome" |
|
tell application theProgram |
|
|
|
if (count every window) = 0 then |
|
make new window |
|
end if |
|
|
|
|
|
|
|
|
|
set found to my lookupTabWithUrl(theURL) |
|
if found then |
|
set targetWindow's active tab index to targetTabIndex |
|
tell targetTab to reload |
|
tell targetWindow to activate |
|
set index of targetWindow to 1 |
|
return |
|
end if |
|
|
|
|
|
|
|
|
|
set found to my lookupTabWithUrl("chrome://newtab/") |
|
if found then |
|
set targetWindow's active tab index to targetTabIndex |
|
set URL of targetTab to theURL |
|
tell targetWindow to activate |
|
return |
|
end if |
|
|
|
|
|
|
|
|
|
tell window 1 |
|
activate |
|
make new tab with properties {URL:theURL} |
|
end tell |
|
end tell |
|
end using terms from |
|
end run |
|
|
|
|
|
|
|
|
|
|
|
on lookupTabWithUrl(lookupUrl) |
|
using terms from application "Google Chrome" |
|
tell application theProgram |
|
|
|
set found to false |
|
set theTabIndex to -1 |
|
repeat with theWindow in every window |
|
set theTabIndex to 0 |
|
repeat with theTab in every tab of theWindow |
|
set theTabIndex to theTabIndex + 1 |
|
if (theTab's URL as string) contains lookupUrl then |
|
|
|
set targetTab to theTab |
|
set targetTabIndex to theTabIndex |
|
set targetWindow to theWindow |
|
set found to true |
|
exit repeat |
|
end if |
|
end repeat |
|
|
|
if found then |
|
exit repeat |
|
end if |
|
end repeat |
|
end tell |
|
end using terms from |
|
return found |
|
end lookupTabWithUrl |
|
|