¿Cuáles son las heurísticas de Chrome para decidir guardar los datos del formulario de inicio de sesión y completarlos automáticamente en la próxima visita?
Si Chrome no guarda las credenciales en un formulario en particular, ¿cuáles podrían ser las razones? Yo sé eso:
- los campos de nombre de usuario y contraseñadebe tener
autocomplete="on"
; - la formadebe tener
method="POST"
.
Experimentalmente, esto no es suficiente: tengo una página de inicio de sesión (privada, lo siento, pero la esencia del código está a continuación) que cumple con ambos criterios y donde las credenciales no se completan automáticamente.
Aquí está mi problema específico. Lo he solucionado de otra manera (instalandoAutocompletary hacer que ingrese mis credenciales en el formulario), pero aún así me gustaría saber por qué Chrome no ofrece guardar las credenciales.
Un sitio web (no escrito por mí y no accesible públicamente) requiere un nombre de usuario y contraseña. Utiliza un formulario de apariencia bastante estándar (para mis ojos desinformados), que se ve así (he omitido muchos elementos anidados <div>
y demás, y los atributos y funciones que se muestran aquí y que fooXXX
les cambié el nombre).
<form name="aspnetForm" method="post" action="default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
<table>
<tr>
<td>Username:</td>
<td><input name="foo$name" type="text" id="foo_name" tabindex="1" autocomplete="off" onkeyup="fooFunction()" style="width:175px;" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="foo@pass" type="password" id="foo_pass" tabindex="2" value="" autocomplete="off" style="width:175px;" /></td>
</tr>
</table>
</form>
Quiero que mi navegador recuerde mis credenciales para este sitio. La función está habilitada en el navegador, pero hay algo peculiar en este sitio que hace que tanto Firefox como Chrome no ofrezcan recordar el nombre y la contraseña.
Escribí un script de usuario (script de Greasemonkey en Firefox, extensión descomprimida en Chrome) para cambiar autocomplete="off"
a autocomplete="on"
:
document.querySelector("#foo_user").setAttribute("autocomplete", "on");
document.querySelector("#foo_pass").setAttribute("autocomplete", "on");
En Firefox, esto tiene el efecto deseado: Firefox ofrece recordar la contraseña y la próxima vez que visite la página de inicio de sesión, mis credenciales se completarán automáticamente.
No hubo tanta suerte en Chrome (27.0.1453.93, Linux). No me piden que recuerde la contraseña y no obtengo un historial para el campo de nombre de usuario. He confirmado que el script se ejecuta inspeccionando los input
elementos, sí se muestran autocomplete="on"
.
Intenté agregar estas líneas a mi script de usuario, pero no mejoran la situación.
document.querySelector("#foo_user").removeAttribute("onkeyup");
document.querySelector("#foo_pass").removeAttribute("value");
¿En qué se diferencian las heurísticas de Chrome de las de Firefox y cómo consigo que recuerde mis credenciales?
Respuesta1
Utilizar elautocompletar = activadoextensión.
Cambia 'autocomplete=off' a 'autocomplete=on' en las páginas web, para que sus contraseñas sean recordadas.
Respuesta2
Encontré una bandera que parece resolver el problema de autocompletar mientras buscaba nuevas banderas. En chrome://flags, hay una bandera llamada "Habilitar detección de inicio de sesión". Cambie eso a "Desactivado" y debería (al menos hasta que se elimine el experimento) resolver su problema. (¡En Chrome para iOS, esta bandera no existe! Entonces, en esa plataforma, ¡estás atascado!) Y en cuanto a cuál es la respuesta aquéGoogle usa, apuesto a que usa intents como los del Omnibox, donde puedes ver el historial, ¡pero no estoy seguro de eso! Saludos, mac