Spaces:
Sleeping
Sleeping
| (* | |
| Copyright (c) 2015-present, Facebook, Inc. | |
| This source code is licensed under the MIT license found in the | |
| LICENSE file at | |
| https://github.com/facebookincubator/create-react-app/blob/master/LICENSE | |
| *) | |
| property targetTab: null | |
| property targetTabIndex: -1 | |
| property targetWindow: null | |
| on run argv | |
| set theURL to item 1 of argv | |
| with timeout of 2 seconds | |
| tell application "Chrome" | |
| if (count every window) = 0 then | |
| make new window | |
| end if | |
| -- 1: Looking for tab running debugger | |
| -- then, Reload debugging tab if found | |
| -- then return | |
| 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 | |
| -- 2: Looking for Empty tab | |
| -- In case debugging tab was not found | |
| -- We try to find an empty tab instead | |
| 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 | |
| -- 3: Create new tab | |
| -- both debugging and empty tab were not found | |
| -- make a new tab with url | |
| tell window 1 | |
| activate | |
| make new tab with properties {URL:theURL} | |
| end tell | |
| end tell | |
| end timeout | |
| end run | |
| -- Function: | |
| -- Lookup tab with given url | |
| -- if found, store tab, index, and window in properties | |
| -- (properties were declared on top of file) | |
| on lookupTabWithUrl(lookupUrl) | |
| tell application "Chrome" | |
| -- Find a tab with the given url | |
| 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 | |
| -- assign tab, tab index, and window to properties | |
| 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 | |
| return found | |
| end lookupTabWithUrl | |