Entonces, hace un tiempo decidí ejecutar una instalación de Safari sin Flash. Ha sido realmente genial, Safari parece mucho más estable en general y apenas lo echo de menos.
Pero de vez en cuando me encuentro con un sitio que requiere flash (en su mayoría, videos de YouTube, lo que pensé que no sería un problema dado que se suponía que Google estaba cambiando todo a HTML5), así que para esos casos tiene un Appescript que se ejecuta cuando se activa a través de un flujo de trabajo Alfred (con una tecla de acceso directo). El guión es como tal:
tell application "Safari"
set theURL to URL of current tab of window 1
end tell
tell application "Google Chrome"
if windows ≠ {} then
make new tab at the end of window 1 with properties {URL:theURL}
else
make new window
set URL of active tab to theURL
end if
activate
end tell
tell application "Safari"
close current tab of window 1
end tell
Esto generalmente funciona perfectamente, pero me encuentro con un problema extraño cada vez que Chrome no tiene una ventana abierta en segundo plano. En estos casos, Chrome abrirá una nueva ventana (en blanco) y la secuencia de comandos se detendrá allí. La tercera declaración de Tell,
tell application "Safari"
close current tab of window 1
end tell
Nunca se ejecutará, dejándome con una ventana de cromo abierta y también una ventana de safari abierta. Solo cuando presiona la tecla de acceso rápido por segunda vez, después de que la ventana de Chrome ya está abierta, el Script ejecutará su curso y abrirá la página en chrome / cerrar la pestaña en safari.
¿Alguna idea? Estoy realmente confundido por el hecho de que la tercera declaración de tell no se ejecutará en absoluto. Si la ventana de Chrome se abrió en blanco, pero la pestaña del safari aún se cerró, supongo que fue un simple error en la declaración if / else, pero el hecho de que el script parezca terminar realmente me está impidiendo.