IE8 и надежность

Разработка технологий, которые надежны сами по себе и которые могут гарантировать надежную работу всей экосистемы компьютера – наша основная задача, являющаяся важной частью инициативы Trustworthy Computing. Партнеры и пользователи ждут технологий и служб, которые доступны в любое время, в любом месте и на любом устройстве. Поэтому мы сосредоточили все внимание на планомерном и постоянном улучшении надежности служб и технологий.

В случае с Internet Explorer понятие «надежность» означает, что браузер всегда должен стартовать быстро, работать качественно, подключатся к Интернету и отображать сайты без зависаний. Большинство пользователей хотят, чтобы браузер работал, без проблем восстанавливался после падений, и корректно отображал сайты. Пользователей обычно не интересует, что именно стало причиной проблемы, независимо от того, было ли это неправильное функционирующее дополнение, или некачественный сайт. В рамках инициативы по улучшению надежности браузера в IE8 мы провели огромную работу над тем, чтобы сделать браузер более надежным во всех областях: производительность, восстановление после сбоя и отображение информации. В частности мы обсудим следующие вопросы:

  • Loosely-coupled IE (слабая связанность IE ) : архитектурная функция, которая позволяет изолировать различные части браузера друг от друга для лучшей производительности.
  • Automatic Crash Recovery (автоматическое восстановление после сбоев) : функция, разработанная для того, чтобы пользователь мог вернуться к просмотру сайтов как можно быстрее в случае сбоя браузера.
  • Служба Windows Error Reporting (служба сообщений Windowsоб ошибках) : способ отправки служебной информации, которая поможет нам улучшить надежность Internet Explorer.

Loosely-coupled IE

Одной из наиболее значимых инвестиций в IE8 является функция под названием LCIE (Loosely-coupled Internet Explorer – слабая связанность IE), которая помогает изолировать различные компоненты браузера друг от друга, например, фреймы от вкладок. LCIE является базой, на основе которой мы создали некоторые функции, включая Automatic Crash Recovery, о которой поговорим ниже.

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

clip_image002

Создав данную функцию в Beta 1, мы продолжили разработку LCIE в IE8 Beta 2 для улучшения надежности и производительности.

В Beta 2 мы добавили следующие функции:

  • Объединение процессов фрейма

Чтобы улучшить производительность загрузки, мы уменьшили количество процессов, запускаемых при старте. Вместо того, чтобы запускать два процесса при запуске браузера (один процесс для вкладки и один для фрейма), теперь запускается один процесс для фрейма, когда IE запускается впервые. Последующие перезапуски будут запускать только процесс новой вкладки или новую вкладку в существующем процессе вкладки.

Для пользователей, которые привыкли просматривать сайты во множестве сессий, например, если вы хотите представиться нескольким разным почтовым сайтам одновременно, то вы можете ввести в командной строке параметр -nomerge, чтобы отключить данную функцию.

  • Дополнительные процессы вкладок

Оказывается, что абсолютное большинство сессий IE содержат три дополнительных вкладки. Таким образом, в Beta 2 мы попытались предоставить пользователям три эффективных процесса вкладок. Их количество зависит от возможностей компьютера пользователя, но чем компьютер мощнее, тем большее количество процессов мы будем задействовать. Добавление дополнительных процессов даст пользователю намного лучшую изоляцию в случае отказа браузера. Если каждая вкладка будет запущена в своем процессе, то сайты будут абсолютно изолированы друг от друга.

  • Виртуальные вкладки

Мы также добавили внутреннюю функцию горячей замены процесса связанной вкладки. Ранее защищенный режим IE работал только на процессной основе. Предположим, вы добавили сайт в список доверенных в IE7. Если, допустим, этот сайт ссылается на другой, который не находится в списке доверенных сайтов, это станет причиной того, что при нажатии на ссылку, режим работы окна изменится.

Мы улучшили данную функцию в IE8 Beta 1 с помощь LCIE, когда отделили вкладки от фреймов. С помощью данного разделения мы можем создать новую вкладку в том же окне и переместить вас в эту вкладку, вместо того, чтобы перебрасывать в новое окно.

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

Возможности LCIE по изоляции различных частей браузера в сочетании с большим количеством процессов и виртуальными вкладками поможет улучшить производительность и общую надежность Internet Explorer.

Функция Automatic Crash Recovery

В случае сбоя браузера функция Automatic Crash Recovery моментально вернет вас к процессу просмотра сайтов. Данная технология использует изоляцию, предоставляемую LCIE, чтобы помочь локализовать сбой в одной вкладке. Если вы сталкивались со сбоем в Beta 1, то вы, наверное, видели следующее всплывающее окно:

clip_image004

Это окно восстановления вкладки – сбой был ограничен одной вкладкой. Ваш браузер никогда не завершит свою работу аварийно, а мы вернем вас к процессу просмотра как можно быстрее.

А за кулисами мы храним поток информации о вкладке. В Beta 1 о каждой вкладке хранились следующие данные: активная ссылка, журнал посещений, порядок вкладок, активная вкладка на момент сбоя.

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

  • Сессионные cookies

Сессионные cookies часто используются для аутентификации пользователя на сайте. Они являются временными файлами, которые существуют во время текущей сессии работы браузера. Когда вы авторизуетесь на сайте, он выдает вам уникальный идентификатор, который и позволяет вас опознать, пока вы подключены к системе. Когда вы путешествуете по сайту, IE отправляет ваш сессионный cookies сайту и сайт может проверить данный маркер, и определить, что вы авторизованы. В отличие от постоянных cookies они не сохраняются и не записываются на диск.

В IE8 Beta 2 в случае сбоя мы восстанавливаем и ваши сессионные cookies, при этом все также не записывая их на диск. Мы храним их копии в процессе фрейма. Когда вкладка завершает работу, мы просто копируем их из фрейма во вкладку и пользователь автоматически регистрируется в системе.

Заметьте, что сессионные cookies восстанавливаются только в случае сбоя вкладки, а не всего браузера. Если завершится работа браузера, то cookies восстановлены не будут, хотя мы надеемся, что абсолютное большинство падений будет ограничено вкладками, так как большинство падений вызваны плохо функционирующими дополнениями, которые теперь ограничены процессом вкладок.

  • Данные форм

Отныне мы можем восстанавливать и данные ваших форм. Теперь если вы ввели какую-либо информацию, адрес почты, пост в блог, комментарий в HTML форму, то мы ее восстановим.

Использование изоляции от LCIE позволяет Automatic Crash Recovery быстро восстанавливать сессию браузера без необходимости повторно восстанавливать сессию браузера. Комбинация из LCIE и Automatic Crash Recovery предоставляет реальную инновацию и замечательный способ восстановления.

Windows Error Reporting ( или Watson)

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

Если IE зависнет и вы решите отправить нам информацию об этом, то Windows Error Reporting соберет информацию о состоянии программы на момент события. Мы сможем увидеть запущенные дополнения, и что именно делал браузер в тот момент. А кроме того, в Microsoft будут отправлены дамп памяти и обращения к стеку. Если вы пишите приложение для Windows или дополнение для Internet Explorer, то и сами можете получить данные Watson о вашем приложении.

Служба Windows Error Reporting достаточно умна, чтобы собрать схожие случаи в «букет», который обычно состоит из множества похожих проявлений одной проблемы. Если проблема в коде IE и повторяется часто, то мы ее исправим. В IE8 мы осознали, что наиболее важные ошибки, которые можно исправить, нетипичны для пользовательских машин. Мы даже направили дополнительные ресурсы на исправление наиболее часто встречающихся ошибок из верхней половины списка, сгенерированного программой Watson, которые относятся к IE, включая те, которые существуют со времен IE7.

Microsoft предпринимает огромные усилия для сохранения конфиденциальных данных, которые отправляет нам пользователь. Когда происходит ошибка, отчет генерируется с минимальным количеством данных, необходимых для нахождения решения проблемы. Этот отчет не содержит каких-либо конфиденциальных данных, и пользователя спросят перед тем, как что-то отправлять в Microsoft. Microsoft не отсылает отчеты обратно, если только пользователь не выбрал данную опцию, чтобы узнать, когда будет решение проблемы. И даже в этом случае Microsoft не может идентифицировать пользователя, а запросит контакт только, если будет необходима дополнительная информация для решения проблемы.

LCIE, Automatic Crash Recovery и большое количество исправленных ошибок сделают IE8 Beta 2 браузером, на который вы сможете положиться. Я думаю, что когда выйдет версия IE8 Beta 2, она вам понравится.

Энди Зейглер,

программный менеджер

отделения «Надежность и конфиденциальность»

Comments

  • Anonymous
    April 07, 2009
    В предыдущей статье Энди писал о некоторых новых функциях, внедрённых нами для повышения надёжности Internet

  • Anonymous
    May 20, 2009
    IE8 в Windows 7 RC: надежность и телеметрия После выпуска финальной версии IE8 для Windows Vista и других