UNPKG

2.21 kBPlain TextView Raw
1(*
2Copyright (c) 2015-present, Facebook, Inc.
3
4This source code is licensed under the MIT license found in the
5LICENSE file in the root directory of this source tree.
6*)
7
8property targetTab: null
9property targetTabIndex: -1
10property targetWindow: null
11
12on run argv
13 set theURL to item 1 of argv
14
15 tell application "Chrome"
16
17 if (count every window) = 0 then
18 make new window
19 end if
20
21 -- 1: Looking for tab running debugger
22 -- then, Reload debugging tab if found
23 -- then return
24 set found to my lookupTabWithUrl(theURL)
25 if found then
26 set targetWindow's active tab index to targetTabIndex
27 tell targetTab to reload
28 tell targetWindow to activate
29 set index of targetWindow to 1
30 return
31 end if
32
33 -- 2: Looking for Empty tab
34 -- In case debugging tab was not found
35 -- We try to find an empty tab instead
36 set found to my lookupTabWithUrl("chrome://newtab/")
37 if found then
38 set targetWindow's active tab index to targetTabIndex
39 set URL of targetTab to theURL
40 tell targetWindow to activate
41 return
42 end if
43
44 -- 3: Create new tab
45 -- both debugging and empty tab were not found
46 -- make a new tab with url
47 tell window 1
48 activate
49 make new tab with properties {URL:theURL}
50 end tell
51 end tell
52end run
53
54-- Function:
55-- Lookup tab with given url
56-- if found, store tab, index, and window in properties
57-- (properties were declared on top of file)
58on lookupTabWithUrl(lookupUrl)
59 tell application "Chrome"
60 -- Find a tab with the given url
61 set found to false
62 set theTabIndex to -1
63 repeat with theWindow in every window
64 set theTabIndex to 0
65 repeat with theTab in every tab of theWindow
66 set theTabIndex to theTabIndex + 1
67 if (theTab's URL as string) contains lookupUrl then
68 -- assign tab, tab index, and window to properties
69 set targetTab to theTab
70 set targetTabIndex to theTabIndex
71 set targetWindow to theWindow
72 set found to true
73 exit repeat
74 end if
75 end repeat
76
77 if found then
78 exit repeat
79 end if
80 end repeat
81 end tell
82 return found
83end lookupTabWithUrl