Opera
Компания
57,60
рейтинг
10 ноября 2011 в 13:32

Разное → Новинки беты Opera 11.60 для разработчиков

Хорошие новости: большинство новинок, обещанных ранее в Opera 12, выйдут гораздо раньше. Предлагаем вашему вниманию бета-версию Opera 11.60. Что же новенького?

Радиальные CSS3-градиенты


Помимо линейных градиентов, которые Opera поддерживает с версии Opera 11.50 и Opera Mobile 11.1, в новой версии браузера появится поддержка радиальных градиентов: простых и повторяющихся. Лучше всего эту поддержку продемонстрирует галерея необычных текстур, которые можно сделать при помощи CSS3-градиентов от Лии Веру.


HTML5-парсер


Начинавшийся в строго экспериментальных лабораторных сборках, новый HTML5-движок под кодовым названием «Ragnarök» теперь готов для стабильных версий Opera. Теперь если вы забыли закрыть какой-нибудь важный тег или даже сделали это намеренно, выстрелив себе в ногу заранее, браузеры смогут отреагировать на это одинаково — именно так, как это описано в спецификации HTML5.

Помимо этого, новый движок позволяет включать в HTML-документы XML-подобные структуры, вроде SVG или MathML. Вот пример SVG-анимации, встроенный прямо в страницу: SVG-пропеллер.

Поддержка собственных протоколов и обработчиков из HTML5


Теперь вы сможете зарегистрировать в браузере обработчики протоколов, вроде tel:, или типы содержимого, вроде text/x-cheeseburger, прямо из JavaScript, как это описано в спецификации HTML5. Как это выглядит:

navigator.registerProtocolHandler(
    "tel",                           //protocol
    "/protocolhandler.html?%s",      //handler
    "Telephony"                      //title
);

navigator.registerContentHandler(
    "text/x-cheeseburger",                         //content-type
    "http://miketaylr.com/code/cb.html?cb=%s",     //handler
    "Cheeseburger Parser"                          //title
);

Подробнее об этом с примерами и ссылками читайте у Майка Тейлора: Custom Protocol and Content Handlers in Opera 11.60 (по-английски).

Управление качеством изображений



Несмотря на то, что свойство image-rendering успешно перебралось в первые черновики спецификации CSS4, оно довольно хорошо поддерживается почти всеми браузерами. Это свойство указывает о каких качествах картинки нужно заботиться прежде всего при изменении её размеров. Доступные значения: optimizeSpeed, optimizeQuality и -o-crisp-edges, которые можно применять к элементам <img>, <canvas> и для свойств background-image и border-image.

.pixly {
    -ms-interpolation-mode: nearest-neighbor;
    image-rendering: -webkit-optimize-contrast; 
    image-rendering: -moz-crisp-edges; 
    image-rendering: -o-crisp-edges;
    }
.optimizeSpeed {
    image-rendering: optimizeSpeed;
    }
.optimizeQuality {
    image-rendering: optimizeQuality;
    }

Подробнее смотрите в примере на jsFiddle, где из картинки 2×2 пиксела делают страшные вещи.

ArrayBuffer в AJAX-запросах


С полной поддержкой ECMAScript 5.1 в Opera появилась поддержка типизированных массивов, включая ArrayBuffer, теперь дополненная возможностью посылать их в AJAX-запросах: XHR.send(ArrayBuffer).

onError для скриптов и документов


Теперь, если ваши скрипты не смогли загрузиться, вы сможете предпринять дополнительные действия при помощи script.onerror, также Opera теперь поддерживает window.onerror.

Инициализация произвольных событий


Согласно новой спецификации DOMCore, существует новый способ инициализации событий: теперь вы можете создать событие new Event('foo') или new Event('foo', {bubbles: true}).

Основа для CSS- и JavaSript-профайлеров


В новой версии Opera будет заложена основа для появления в отладчике Opera Dragonfly профайлеров, которые позволят измерять производительность JavaScript-процессов и CSS-селекторов.

Исправление ошибок, неточностей и просто приятные улучшения

  • Исправлены рассчёты значения offsetLeft в некоторых редких случаях. До сих пор при подобных рассчётах Opera исходила из мнения, что родителю всегда установлено свойство text-align:left, что иногда приводило к некорректным результатам.
  • Как и в остальных браузерах, выделение текста на страницах в Opera теперь происходит при помощи текстового курсора, а не стрелки — как раньше. Есть разные взгляды на этот вопрос, но в любом случае — поведение от браузера к браузера в таких базовых понятиях должно быть одинаковым.
  • Переходы при анимации свойства visibility, которое обычно используется в паре с другими свойствами для скрытия-отображения элементов, теперь приведены к тем, что использует Webkit. Опять же — общее поведение среди браузеров, на радость разработчикам. Пример такой анимации — спасибо kizu за регулярные и качественные багрепорты ;)
  • Улучшенная выборка по сложным селекторам:
    • :root:not(:only-child) теперь соответствует :root, как и должно быть.
    • Селектор :nth-child(128) (страшно подумать, что кому-то такое понадобилось) теперь корректно выбирает нужный элемент.
    • Обращение к CSS-свойству cssRules[0].selectorText элемента, у которого :nth-child(0n) раньше приводило к ошибке, теперь — нет.
    • Запись [attr=\""] раньше некорректно исполнялась как [attr="""], но теперь корректно приводится к [attr="\""].
  • Исправлена пара сложных ошибок с выравниванием в ячейках таблиц: пример один и пример два.
  • Текст в <textarea> теперь корректно переносится, если в нём есть длинное неразрывное слово. Раньше там появлалась горизонтальная полоса прокрутки.

Двойная радуга!


Но это ещё не всё: мы позволили себе похулиганить и расширить синтаксис CSS-градиентов специальным свойством -o-double-rainbow(), можете сами проверить в Opera 11.60 как оно работает:

Автор: @pepelsbey
Opera
рейтинг 57,60
Компания прекратила активность на сайте

Похожие публикации

Комментарии (57)

  • 0
  • 0
    То есть пока еще новшеств нет в интерфейсе (темы и т.п)?
  • +1
    Надеюсь, вы не испортили выделение текста? Только курсор сменили?
    И когда ждать релиза?
    • –1
      Бета уже есть, можно скачать…
    • +1
      Только курсор. Дата релиза традиционно не разглашается, но по бета-статусу можно сделать вполне понятные предположения.
      • +9
        Спасибо. И не смейте менять, а то от Хромовского меня воротит. :)
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Нет, к сожалению, UserCSS тут не поможет, т.к. мы потенциально перекроем стили автора сайта.
  • 0
    А не планируется ли ничего по доведению Dragonfly до юзабельного состояния?
    • 0
      Opera Dragonfly развивается параллельно и не слишком привязан к релизам браузера. Но в этом случае было исключение: API для CSS- и JavaScript-профайлера уже появился, значит скоро будет обновление Dragonfly. Как по мне, так он вполне юзабелен — но зависит от ваших задач. Чего не хватает больше всего?
      • 0
        Ну вот например, я не смог найти способа _закрыть_ этот драгонфлай без помощи гугла. Может, конечно, сейчас там появилась кнопка закрытия :) Это, возможно, потому что я такой дурак, но всё-таки.

        Ну и в целом — какой-то он очень кондовый, неочевидный.
        • +9
          > Может, конечно, сейчас там появилась кнопка закрытия

          IMHO, она никуда и не исчезала ;)
          • 0
            Чёрт его знает, я вот закрывал. Как только закрывал / переоткрывал / рефрешил вкладку — он (dragonfly) появлялся снова.
          • 0
            он в линуксовой версии оперы куда-то пропадает, причём, из 10 раз 7 раз её не видно 3 раза видно
            • 0
              Не замечал подобного ни в линуксе, ни в FreeBSD. Интересно с чем это может быть связано.
              • 0
                не знаю. профиль оперы сносил, версии менял. под win подобное замечено не было.
        • +3
          Вроде кнопка закрытия всегда была справа в верхнем углу
        • +2
          Cmd+Alt+I на Mac OS и Ctrl+Shift+I на Windows/Linux — откроют и закроют Dragonfly. Об этом сказано в самом начале документации по Dragonfly, сколько же всего полезного на остальных 14-ти страницах? :)
          • 0
            Я бы прочитал это, если бы пользовался оперой регулярно :) Буду знать, данке шон.
  • +6
    Вот что не говори, я обожаю ваш браузер. Но дебажить JS приходиться в Firefox =(
    • 0
      А почему так? Если вы пробовали Dragonfly, то чего не хватает в нём, по сравнению с Firebug?
      • 0
        Куча мелких неудобностей, например что все инлайн скрипты разбиваются на свои подзакладки, а не отображаются как есть(т.е. встроенными в странички).
        Единственный плюс — подсветка синтаксиса. Но в Firebug это лечится addon'ом.
      • +7
        В dragonfly:
        1. не удобно отслеживать ajax-запросы, молчу уж про их содержимое
        2. жутко неудобно править css на лету
        3. решим кеширования картинок распространяется и на dragonfly, что в моей ситуации дико насилует мне мозг. Радует что комбинация клавиш ctrl + shift + p — насильно заставляет оперу загрузить иконки кнопок
        4. отсутствие всплывающих подсказок при дебаге js
        5. очень неудобно выбирать js-файл из списка, по 2 часа всё время ищу
        6. почти никакущая консоль по сравнению с firebug, хотя в webdeveloper-е тоже не сахар
        7. и т.д.

        + сама концепция ручного выбора вкладки для dragonfly, в большинстве случаем, мне только мешает. Удобной она показалась только после дебага popup, background и injected скриптов расширений. Но это уже специфичная ситуация.

        Честно говоря вопрос стоит иначе, что вообще есть такого в dragonfly, чем можно похвастаться перед конкурентами? «пипетка» + «сделать снимок»? Не поймите меня превратно, я сам тот ещё opera-fan, но воспринимать dragonfly всерьёз не могу, даже после создания пары расширений для оперы.
        • 0
          по 5-му пункту — это, как по мне, от того что при обновлении страницы теряем брейкпоинты, которые были установлены минутным копанием в выборах скриптов)
          Сам фанат оперы, но дебажить более-менее серьезный скрипт лезу в ФФ.
      • +1
        Мне не хватает возможности начать работать с панелью «Сеть» и «Скрипты» без перезагрузки страницы.
        • 0
          поддерживаю — часто открываю дебаг на ошибку в скрипте или его неразумное поведение и обламываюсь — приходиться заново перегружать страницу и воспроизводить ситуацию, что не всегда возможно в разумные сроки.

          хорошо хоть перестал вылетать на более-менее сложных скриптах типа гмейла, хотя все равно вылетает иногда.
  • +2
    Хорошо, пофиксили несколько багов N-летней давности:
    script.onerror, также Opera теперь поддерживает window.onerror
    Текст в textarea теперь корректно переносится
    Когда-нибудь я уберу этот «хак»:
        white-space: pre;
        white-space: pre-line;
        white-space: pre-wrap;
        white-space: -pre-wrap;
        white-space: -o-pre-wrap;
        white-space: -moz-pre-wrap;
        white-space: -hp-pre-wrap;
        word-wrap: break-word;
    

    Дождемся ли мы beforeunload?!
    • 0
      Да, очень ждем onbeforeunload.
    • +2
      Расскажите, зачем вам onbeforeunload?
      • +3
        Пишешь длинное письмо, случайно кликаешь на крестик — твои труды пропали. onbeforeunload helps!
        Различные полезные алерты «Точно выйти?».
        Хочешь отследить когда пользователь покинет сайт без onbeforeunload приходится постоянно пинговать.
        Чистка какого-нибудь кэша по onbeforeunload.
        • 0
          Полезные? Кодерам Грувшарка хочется медведем на руки наступить из-за этого их «Are you sure you want to leave this page?»

          Не спорю, что где-то там могут быть действительно удачные применения onbeforeunload, но т.к. я таких пока не видел, хочется, чтобы эта штука была отключаемой (если вообще будет), как, например, реагирование на ПКМ.
      • 0
        К примеру, если закрывается popup-окно расширения — сохранить все изменения. Может быть есть аналог? Мне так и не удалось найти ничего путного =(
        Некоторые сайты, плагины и пр. не работают корректно из-за этого. К примеру, CKEDITOR, не может повторно загрузить файл.
        • 0
          Про расширения тоже вопрос спорный: нажимая на крестик я ожидаю, что это сработает, как Cancel и ничего не поменяет. Лишние переспрашивания мне там не нужны.
          • 0
            Спорный, безусловно. Но можно, к примеру, окно закрывать, а выполнения кода продолжить. И овцы целы, и волки сыты. Переспрашивания — зло, но как раз о них мало кто беспокоится :)
            • 0
              Нет, лучше тогда стандартный вариант — при любом изменении параметров настройки сразу же сохраняются. Соответственно дополнительных кнопок, кроме «Reset» не нужно. И подтверждений при выходе тоже.

              Там в другом проблемы могут быть, но тут уж…
              • 0
                o_O, чем лучше? В моём случае это ajax-запрос… Что же вы мне предлагаете писать ddos-расширение? :)
                • 0
                  Мы, похоже, про разные расширения говорим.

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

                  Впрочем, в onbeforeunload меня раздражает только единственный момент — когда ожидаемое действие не происходит. Это, как вариант, те самые вопросы «Вы действительно хотите закрыть?» Если событие будет, а возможности отменить действие — нет, нисколько не возражаю.
                  • 0
                    Ну дык и я про то
                    • 0
                      А. Ок. Я в контексте тех же расширений подумал, что предлагается окно не закрывать, а просто прятать, при повторном вызове рисуя его в том же состоянии обратно.
  • 0
    >Лучше всего эту поддержку продемонстрирует галерея необычных текстур, которые можно сделать при помощи CSS3-градиентов от Лии Веру.

    Жутко тормозит скролл :( Впрочем, в фаерфоксе тоже.
  • 0
    Кстати у вас на сайте «Opera Next» переведена как «Далее», так и задумано?
    • 0
      Учитывая, что это пункт меню, а не название продукта «Opera Next», то корректнее было бы назвать его по-русски.
      • 0
        Мне кажется «Будущее» или хотя бы «Что дальше?» подошло бы больше.
        • 0
          В этом смысле я с вами согласен.
  • 0
    Очень бы хотелось что бы в Опере можно было бы открыть Inspect Element для каждой страницы отдельно, а не одно окно на всех
  • 0
    Скажите, а планируется ли сделать поддержку программного вызова click в input-file? Просто во всех браузерах это уже сделано, и только отсутствие данной возможности в Опере не позволяет сделать красивую кнопку вызова диалога.
    • 0
      Если ваша задача при клике по одному элементу передавать клик другому, то решение есть: кликните по документу и обзор откроется. Т.е. с юзер-кликами Opera работает, с автоматическими — нет.
      • 0
        Спасибо! Буду иметь ввиду, и использовать, само собой
    • 0
      Кстати, это дело только в 11.60 и заработало. Так что на вопрос «когда?» отвечаю: «как только выйдет финал Opera 11.60»
  • 0
    Извините, что не по теме, но что случилось с Gmail? 11.52, не показывается содержимое писем.
    • 0
      Да нет, показывает:
      • 0
        Эх… Это мне все эдблок резал. :)
  • 0
    Скажите, планируется ли поддержка FormData и BlobBuilder?
  • +1
    Вадим, а скажите пожалуйста. Opera планирует решить проблему с дробными процентами в 12-ой версии? И когда вообще планируется их поддержка в Opera?
    • +1
      Я регулярно всеми силами стараюсь приоритизировать этот баг, когда формируются списки приоритетов на следующий год или квартал. Пока, к сожалению, хороших новостей про дробные проценты нет, наверное в 12-й версии ждать не стоит.
  • +1
    Эхх… жаль конечно, но спасибо Вам, за то, что проявляете старание по этому поводу. Надеюсь, Вас вскоре услышат.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное