Запоминание паролей и эвристика автозаполнения в Chrome

Запоминание паролей и эвристика автозаполнения в Chrome

Какие эвристические алгоритмы использует Chrome для принятия решения о сохранении данных формы входа и их автоматическом заполнении при следующем посещении?

Если Chrome не сохраняет учетные данные в определенной форме, какие могут быть причины? Я знаю, что:

Экспериментально этого недостаточно: у меня есть страница входа (приватная, извините, но суть кода ниже), которая соответствует обоим критериям и на которой учетные данные не заполняются автоматически.


Вот моя конкретная проблема. Я решил ее другим способом (установивАвтозаполнениеи заставив его ввести мои учетные данные в форму), но мне все равно хотелось бы знать, почему Chrome не предлагает сохранить учетные данные.

Веб-сайт (не написанный мной и не общедоступный) требует имя пользователя и пароль. Он использует довольно стандартную (на мой неосведомленный взгляд) форму, которая выглядит так (я опустил много вложенного <div>и прочего, а атрибуты и функции, показанные здесь, fooXXXбыли переименованы мной).

<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>

Я хочу, чтобы мой браузер запомнил мои учетные данные для этого сайта. Функция включена в браузере, но есть что-то странное в этом сайте, из-за чего и Firefox, и Chrome не предлагают запомнить имя и пароль.

Я написал пользовательский скрипт (скрипт Greasemonkey в Firefox, распакованное расширение в Chrome) для изменения autocomplete="off"на autocomplete="on":

document.querySelector("#foo_user").setAttribute("autocomplete", "on");
document.querySelector("#foo_pass").setAttribute("autocomplete", "on");

В Firefox это дает желаемый эффект: Firefox предлагает запомнить пароль, и при следующем посещении страницы входа мои учетные данные заполняются автоматически.

В Chrome (27.0.1453.93, Linux) такой удачи нет. Мне не предлагается вспомнить пароль, и я не получаю историю для поля имени пользователя. Я подтвердил, что скрипт выполняется, проверив элементы input, они показывают autocomplete="on".

Я попробовал добавить эти строки в свой пользовательский скрипт, но они не улучшили ситуацию.

document.querySelector("#foo_user").removeAttribute("onkeyup");
document.querySelector("#foo_pass").removeAttribute("value");

Чем эвристика Chrome отличается от Firefox и как заставить его запомнить мои учетные данные?

решение1

Использоватьавтозаполнение=вклрасширение.

Изменяет «autocomplete=off» на «autocomplete=on» на веб-страницах, чтобы ваши пароли запоминались.

решение2

Я нашел флаг, который, кажется, решает проблему автозаполнения при поиске новых флагов. В chrome://flags есть флаг с названием «Включить обнаружение входа». Переключите его на «Отключено», и это должно (по крайней мере, пока эксперимент не будет удален) решить вашу проблему. (В Chrome для iOS этот флаг не существует! Так что на этой платформе вы застряли!) А что касается ответа начтоGoogle использует, я думаю, что он использует намерения, подобные тем, что используются в Omnibox, где можно посмотреть историю, но я в этом не уверен! С уважением, Mac

Связанный контент