jueves, 23 de octubre de 2008

GWT & Norton 360

Despues de encontrarnos con problemas para correr una aplicación hecha con GWT nos dimos cuenta que seguramente se debía al control por parte de Norton de las iframes que son creadas dinamicamente y que cargan contenido dinamico, un metodo común para cargar archivos remotos en el "background" de la página, método que muchos sitios utilizan. Si utilizas Norton, desde su versión 2006 y encuentras que alguna aplicación estilo Gmail es extrañamente lenta prueba de desactivar la comprobación "phishing" del sitio.
Para los que desarrollen en GWT, a continuación adjunto un pequeño script que puede solucionar los problemas de GWT con Norton Antivirus, se trata de un pequeño script en bash que reemplaza las ocurrencias de la cadena javascript:'' en todos los archivos .cache.html y lo reemplaza por blank.html de modo que debe añadirse un archivo que teoricamente nunca es requerido, pero por si acaso ;).
El único parametro es la raiz de los archivos compilados por GWT, la carpeta en donde se encuentra los archivos .cache.html .

#!/bin/bash
# GWT Norton Hack Script
# This script is to solve the slow down problem of GWT applications
# when viewed in systems which have Norton AV installed. This hack was
# inspired by Gonzalo Domenechs and coded by Iago Tomas, it consists in
# a simple script which searches for files with .cache.html extension in
# a given directory and replaces all javascript:'' occurrences in them.
# This when used in a dynamic builded iframe slows down enormously the
# GWT application if it makes use of such. This tool doesn't provide any
# guarantee to solve your problems its just a script to
# avoid making hand work.

VERSION="0.1"

if [ $# -lt 1 ]; then
echo "GWT Norton Hack Script $VERSION"
echo "Usage: $0 [path-to-files]"
exit 0
fi
VAR="$1*.cache.html"
for i in $( ls $VAR); do
echo "Found: $i"
cp $i "$i.bak"
$(sed "s/javascript:''/blank.html/g"<$i&>"$i.new")
mv $i "$i.bak"
mv "$i.new" $i
rm -f "$i.bak"
done
echo "Backup files where created"