You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					87 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					87 lines
				
				2.3 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								(*
							 | 
						||
| 
								 | 
							
								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
							 |