1
+ (*
2
+ Copyright (c) 2015-present, Facebook, Inc.
3
+
4
+ This source code is licensed under the MIT license found in the
5
+ LICENSE file in the root directory of this source tree.
6
+ *)
7
+
8
+ property targetTab : null
9
+ property targetTabIndex : -1
10
+ property targetWindow : null
11
+
12
+ on 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
52
+ end 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)
58
+ on 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
83
+ end lookupTabWithUrl
0 commit comments