.
January 30, 2008

ACID3 готов!

Автор: Павел Ловцевич
Категории: Clientside
Метки: , , , , , , ,
3 Комментария(ев)

Сегодня известный разработчик синтетического теста браузеров на соответствие вебстанадртам ACID, а ныне работник Google, Иан Хиксон сообщил об официальном релизе ACID3. Кроме того, все версии тестов и новости проекта теперь доступны по адресу acidtests.org.

Мы уже рассказывали ранее о нововведениях в ACID3, но не лишним будет повторить, что в отличие от ACID1, проверка которого была сосредоточена на блочной модели, и ACID2, который проверял широкое разнообразие HTML и особенностей CSS, ACID3 осуществляет проверку 100 вероятно уязвимых мест в HTTP, HTML, CSS, ECMAScript, SVG и XML, а также проверяет работу с DOM’ом (без которого сложно представить себе современно веб-приложение).

  • DOM2 Core
  • DOM2 Events
  • DOM2 HTML
  • DOM2 Range
  • DOM2 Style (getComputedStyle, …)
  • DOM2 Traversal (NodeIterator, TreeWalker)
  • DOM2 Views (defaultView)
  • ECMAScript
  • HTML4 (&lgt;object&rgt;, &lgt;iframe&rgt;, …)
  • HTTP (Content-Type, 404, …)
  • Media Queries
  • Selectors (:lang, :nth-child(), combinators, dynamic changes, …)
  • SVG
  • XML
  • XHTML 1.0
  • CSS2 (@font-face)
  • CSS2.1 (’inline-block’, €?pre-wrap’, parsing…)
  • CSS3 Color (rgba(), hsla(), …)
  • CSS3 UI (’cursor’)
  • data: URIs
  • и прочее

Иан Хиксон является также одним из первых авторов спецификации HTML5, также известной как спецификация Web Apps 1.0, и ряда других разработок, как то хранение данных на стороне клиента (client‐side storage) и улучшенные формы (enhanced forms).

Иан написал 64 из 100 тестов, остальные 36 были разработаны совместными усилиями производителей браузеров и независимых веб-разработчиков. Работа над новым Acid3 началась практически в то время, когда разработчики IE8 сообщили о том, что их браузер успешно прошел Acid2. Правда, эта новость в сети была воспринята весьма критично, так как выяснилось, что для этого на стороне сервера пришлось подправить заголовки HTTP.

Обращаем ваше внимание, что для корректного тестирования вашего браузера, вы должны использовать настройки браузера по умолчанию. Изменяя масштабирование страницы, минимальный размер шрифта, применяя “fit-to-width”, или делая другие изменения можно изменить результаты прохождения теста.

Ссылки по теме:

  1. Официальный сайт тестов ACID
  2. Acid3 Browser Test
  3. Acid3 browser test completed, available now
  4. Acid3: Putting Browser Makers on Notice, Again
January 12, 2008

Встречайте - ACID3

Автор: Павел Ловцевич
Категории: Clientside
Метки: , , , , ,
12 Комментария(ев)

Вчера известный вебразработчик автор теста ACID, для проверки браузеров на соответствие вебстандартам, Иан Хиксон, выложил предварительную новую версию в сеть для всеобщего ознакомления, которая доступна здесь. Автор теста сообщает, что разработка уже практически завершена.

Традиционно тест проверял парсинг HTML и CSS, причем часто не прямым тестированием свойства, а обходным путем, изучая результаты его работы в браузерах. Например, для того чтобы пройти «ужасный» padding/margin тест, браузерам, кроме корректной поддержки CSS, нужно иметь правильную боксовую модель (“box model”).

Что же нового несет в себе ACID3? В первую очередь он главным образом основывается на технологиях ECMAScript и DOM. Разберем, что же именно тестируется, особенно в отношении ECMAScript:

  • Элизия массивов – вещи подобно [,,] должны иметь нулевую длину, а для масива [0,,1] она должна быть равна 3.
  • Методы массива – проверяется возможность добавления нескольких элементов в массив (.unshift(0, 1, 2)) и объединение его с undefined (.join(undefined).)
  • Преобразования чисел - проверяется работа таких методов как .toFixed(), .toExponential() и .toPrecision(), в первую очередь, с дробными и отрицательными чилами.
  • Операции со строками – метод substr() должен уметь работать с отрицательными аргументами (.substr(-7, 3)), доступ к символам строки должен осуществляться по их позиции (”my string”[0]). (это часть спецификации ECMAScript4)
  • Работа с датами – удостовериться, что некоторые методы возвращают NaN (например, d.setMiliseconds() без аргументов), а также что происходит обязательное смещение +1900 лет.
  • Unicode символы в названиях переменных – их использование должно вызывать оÑ?ибку. Например,
    eval("test.i\\u002b= 1;");
  • Регулярные выражения - /[]/ должно соответствовать пустому массиву, а /[])]/ вызывать ошибку. Должны поддерживаться обратные ссылки (backreference) на несуществующие образы и отрицательные lookahed’ы - /(?!test)(test).exec(”test test”).
  • Перечисления (Enumeration) – нужно убедиться, что свойства объекта правильно перечисляются, что доступны свойства с определенными именами (toString, hasOwnProperty, etc)
  • Конструкторы – у пользователя должна быть возможность определять собственные конструктоы в свойстве .constructor, свойство .constructor не должно быть в перечислении, а свойство .prototype.constructor должно быть удаляемым.
  • Функции – возможность вызывать функцию по имени из самой себя, прямое изменение ее имени должно быть запрещено(только используя массивы функций). (function test(){ … })(); - «test» не должен быть виден в родительской области.
  • Ошибки – переменные в блоке catch(){} должны в первую очередь работать с аргументами catch(), а затем уже с родительскими. Например
    
    var e = "my name";
    try
    {
    ...//некий код
    }
    catch(e)
    {
    alert(e);
    }

    не должно выводить “my name”.

  • Операции присваивания - s = a.length = “123″; - a.length должно возвращать 123, а не 3
  • Кодировки - encodeURI() и encodeURIComponent() должны корректно работать с нулевыми байтами.

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

Подробности автор теста обещает представить уже в ближайшие дни.

И напоследок, предварительные результаты тестирования НЕЗАКОНЧЕННОГО Acid 3 над НЕЗАКОНЧЕННЫМИ? версиями наиболее популярных браузеров, которые предоставил автор. Мы проверили, все сходится! =)

Вот эталон, который должен показать браузер.

ACID3 Reference


Firefox 2.x

ACID3 Firefox 2.x


Firefox 3.0b2

ACID3 Firefox 3.0b2


Safari 3

ACID3 Safari 3


WebKit Nightly

ACID3 WebKit Nightly


Opera 9.5b1

ACID3 Opera 9.5b1


Internet Explorer 7

ACID3 Internet Explorer 7


Ссылки по теме:

  1. Предварительное зеркало теста.
  2. Запись автора Джона Резига в личном блоге.
December 20, 2007

Internet Explorer 8 - невозможное возможно?

Автор: Павел Ловцевич
Категории: Браузеры
Метки: , , , ,
8 Комментария(ев)

Вчера вечером официальный блог разработчиков Internet Explorer сообщил интернет сообществу о невероятном событии. Новая разрабатываемая версия браузера компании Microsoft под номером 8, смогла наконец пройти тест Acid2.

Internet Explorer 8 - acid2 test results

Это событие однако было несколько омрачено подозрительным обстоятельством. Внезапно все последние версии современных браузеров (Safari 3, Opera 9, Firefox 3), которые наиболее корректно поддерживают вебстандарты и которые до вчерашнего вечера успешно проходили этот тест и выдавали результат, идентичный тому, что сейчас выдает IE8, стали выдавать ошибку в однои и том же месте.

Safari, Firefox, Opera - acid2 test results

Искренне хочется верить, что это досадное недоразумение.

Кроме того, компания Microsoft сообщает о том, что первая публичная демонстрация нового браузера произойдет на конференции MIX08 (5-8 марта 2008 г.), а первая бета-версия появится в первой половине 2008 года. Также в браузере будет реализована поддержка обратной совместимости со страницами, оптимизированными для Internet Explorer предыдущих версий. Неужели разработчиков ждет еще один новый режим рендеринга?

На этой странице также доступно видео о том, как IE8 шел к прохождению теста и комментарии разработчиков.

UPD. Оказалось, что тест ACID2 на проекте webstandards.org сейчас действительно работает некорректно. Корректный тест можно пройти на сайте разработчика.

Ссылки по теме:

  1. Internet Explorer 8 and Acid2: A Milestone
  2. Microsoft планирует выпустить первую бета-версию Internet Explorer 8
  3. IE8 standards mode
  4. IE8 passes Acid2 test
  5. IE 8: On the Path to Web Standards Compliance - ACID 2 Test Pass Complete
  6. What’s next for Internet Explorer? Microsoft opens up (a little)
June 12, 2007

Зоопарк пополняется

Автор: Павел Ловцевич
Категории: Браузеры
Метки: , , ,
8 Комментария(ев)

Сегодня хочу поделиться с вами несколькими знаменательными новостями.

Во-первых. Позавчера вышла бета версия Netscape 9 beta! Браузер основан на Mozilla Firefox 2.0, благодаря чему, по заявлениям разработчиков он полностью совместим с расширениями последнего. Надо сказать, что и интерфейс полностью скопирован из популярного убийцы Internet Explorer. Версии для Windows, MacOS и Linux доступны для скачивания здесь.

Во-вторых. Вчера был официально выложен в сеть для публичного тестирования Safari 3 beta. Главная новость заключается в том, что доступна новая версия браузера не только для платформы MacOS, но и для… присядьте, Windows! На данный момент браузер пока еще имеет баги, приводящие к его падению. Но это пока что только beta, так что сильно переживать по этому поводу не будем пока. Страница загрузки расположилась здесь.

В-третьих. Буквально на прошлой неделе вышла новая альфа-версия Mozilla Firefox, пятая по счету. В ней появились существенные новшества, такие, как Places, например. Скачать версии для Windows, MacOS и Linux можно здесь.

В связи со всеми этими событиями у меня появилось желание устроить небольшой тест новых браузеров под Windows ведущих игроков рынка: Internet Explorer 7, Maxthon 2, Mozilla Firefox 2, Gran Paradiso alpha5 (Mozilla Firefox 3), Netscape 9 beta, Opera 9, Safari 3 beta. Я попытаюсь дать описание их системным требованиям, сравнить движки, выяснить колличество найденных и исправленных багов, замерять скорость загрузки в стандартной конфигурации и пропустить их через тест ACID2. Однако этот материал ожидайте к концу месяца, т.к. в данный момент я активно готовлюсь к конференции Байнет 2.0, о которой сообщал ранее. Упс. Вот и проговорился. =)

Завтра/послезавтра я расскажу вам о своем участие конференции и кратко ознакомлю вас с темой которую собираюсь обсудить на конференции. А сразу после конференции поделюсь с вами своим докладом в полном объеме.