opera

Хром → Опера

К сожалению, с «Хрома» (это браузер), к которому я уже привык и который обставил с любовью плагинами, мне придётся пересесть куда-то ещё. Особенно я привык к расширению, которое позволяет в моём «Андроиде» (это операционная система в телефоне) мгновенно открыть ту же страницу, что у меня в браузере и продолжить читать с того же места. Очень удобно.

Но. Недавняя неприятная история, когда в код «Хромиума» (это «Хром», но без «жучков») попал один из «шпионских» модулей, заставляет задуматься — что ещё, по небрежности или умышленно, могла забыть выключить корпорация «Гугл» в своём браузере? Тем более, что ещё на слуху история о том, что «Гугл» собирал данные WiFi-трафика при помощи автомобилей Street View.

Вообще-то, каких-то особых секретов персонально у меня нет, но они есть у «Яндекса» и мне очень не хочется, чтобы какие-то данные из интранета по моей вине попали в «Гугл». Так что, «Хром» и «Хромиум» я больше не использую. По крайней мере, в ближайшем будущем.

Перехожу обратно на «Оперу», других вариантов нет. «Сафари» под Windows — это какой-то чёрный юмор, FireFox похож на обросшую ракушками баржу, IE9 пока ещё сырой чуть более, чем полностью. Так что, при всё богатстве выбора, другой альтернативы нет.

30 комментариев

Специальный вид «Яндекса» для speeddial «Оперы»

Яндекс-Опера-френдли (21.44КиБ)

Я рад, что явился катализатором в «Яндексе» появления визуальных закладок для «Оперы» (для плагина FireFox «SpeedDial» тоже будет работать).

Проект «Погоды» я даже поменеджерил.

К сожалению, пока нет технической возможности делать то же самое для «Хрома» и «Сафари», так как использовать media queries (как для «Оперы» и FF) не получится, браузеры на WebKit ведут тут себя нелогично, нужно проверять особый HTTP-заголовок, а это противоречит техническому решению сервиса.

24 комментария

Join the dark side and get cookies

У меня в комментариях происходит интересное про проблемы cookie в «Опере». Проблемы наблюдаются в версиях 7.xx, 8.5x, 9.0x и 10.60. Возможно они есть и ещё в каких-то версиях.

Я как-то упоминал о том, что у «Яндекс.Паспорта» какие-то неопределённые трудности с выставлением cookie в «Опере», вот теперь становится понятно какие.

Спасибо Максиму Зотову, всё становится на свои места — некоторые версии «Оперы» принимают cookie с другого домена только со второго раза.

Не слишком ли вы увлеклись всякими тенями и уголками, ребята? Действительно ли нужно так часто выпускать новые версии без должного всестороннего тестирования? Имидж «Оперы» (сужу по комментариям на «Хабре») и без того почти такой же как у IE. Только IE ругают на неподдержку стандартов, а «Оперу» за своеобразное их трактование и баги.

Грустно это всё.

P.S. Подмывает создать тест, который проверял полноту поддержки старых, базовых вещей — поддержку Unicode, cookie, regexp и так далее.

56 комментариев

Прощай, «Опера»

Прощай, «Опера», мне было хорошо с тебой, но это невыносимо. С версии 10.50 ты обрастаешь багами, как баржа ракушками. Сегодня я увидел, что на твоём FTP лежит релиз версии 10.60, а в нём три критичных для меня бага, два из которых делают жизнь в нашем интранете для меня труднее. Я терпел, сколько мог, но больше не могу.

Научите меня пользоваться «Хромом», ещё лучше — «Хромиумом», он, говорят, быстрее развивается, что немаловажно для молодого браузера. Что ставить? Откуда скачать уже собранные версии «Хромиума»?

82 комментария

«Опера» — ещё больше вещей из HTML5

Пока я тут ною, что «Опера» не поддерживает CSS1 в полном объёме, новый билд «Оперы» (10.60а build 3419) стал поддерживать кодек WebM для тега VIDEO (у которого есть все шансы стать стандартом), HTML5 offline web applications, Geolocation API (что давно было известно), Web Workers и Cross-Document Messaging.

Круто, ребята, очень круто. Но сделайте поддержку CSS1 уже наконец.

6 комментариев

Браузеры и стандарты: Ахиллес и черепаха

На «Хабре» кто-то в очередной раз кто-то наткнулся на статью полугодовой давности и понеслось — сделаны далекоидущие выводы.

Упомянутая статья за полгода не обновлялась (о чём говорит отсутствие упоминания об SVG в IE9), так что предпосылки неверные. Предпосылки неверные, но вывод, впрочем, правильный. В плане стандартов будущее крайне далеко.

Должен сказать, что любые тесты браузеров — это сферические кони в вакууме. Какие, нахрен, ACID3, какие SunSpider? «Опера» до сих пор не поддерживает CSS1! Ибо сказано:

The format of a percentage value is an optional sign character (’+’ or ’-’, with ’+’ being the default) immediately followed by a number (with or without a decimal point) immediately followed by ’%’.

CSS1, раздел 6.2, проценты могут быть указаны с десятичной точкой. Мне кажется, это означает, что я могу указать дробные проценты и всё будет хорошо. Во всех браузерах так и есть. Во всех, кроме «Оперы». Самая распоследняя «Опера» округлит их вниз.

CSS3-селекторы. Уже все основные браузеры хвастаются их поддержкой. На сайте CSS3.info есть даже специальный тест, на который часто ссылаются. Ну, хорошо «Хром» этот тест проходит. И начал проходить едва ли не раньше всех.

Если этот браузер заявляется поддержку селекторов CSS3, то для меня, как разработчика, это должно, видимо, означать, что работает и любая их комбинация, не так ли? Иначе, что толку от поддержки селекторов по одному в строке?

И вот реальная задача — делал я галереи на сайте без использования JavaScript, на голом CSS (спасибо селектору «:target», это самое крутое, что появилось в CSS за последние годы). Простая задача — если «:target» не указывает ни на один из тегов в текущей галерее, нужно указать, что выбрано первое изображение.

Да, пожалуйста (у меня первое изображение это последний элемент списка):

.gallery li:not(:target) ~ li:last-child a {
    background: #fff;
    color: #000;
}

.gallery li:target ~ li:last-child a {
    background: #aaa;
    background: rgba(170, 170, 170, 0.5);
    color: #fff;
}

Несложно же. «Опера» и «Файерфокс» чудесно с этим справляются, почему бы и нет, все селекторы им знакомы. Но это не работает в «Хроме» и «Сафари» (5-й «Сафари» я ещё не тестировал), точнее, это работает, но глючит — срабатывает только на следующем элементе, а не каждом. Чтобы исправить проблему, мне пришлось изобрести CSS hack для «Safari» и Chrome.

Так повсюду, в блоге IE авторы как-то показывали, что «border-radius» и «box-shadow» поддерживаются браузерами с глюками или имеют серьёзные различия в рендере. Всюду так — заявлена поддержка SVG1.1, но чего-то нехватает, Canvas, но текстом писать нельзя, тег VIDEO, но нельзя открывать на весь экран.

Конечно, тут ещё сказывается тот факт, что большинство этих спецификаций находятся в стадии черновика, вот реализовала «Опера» четыре года назад в браузере Server-sent Events, а черновик изменился и тег «event-source» теперь оказался не нужен.

В общем, к этим стандартам нам ещё всем идти и идти, много лет. Это основной вывод. А теперь другие мысли.

Селектор «:target» хоть и самое чудесное, но, в то же время, почти самое недодуманное в CSS за последние годы. Это уже ощутили мои читатели. Конечно, «:target» добавляет интерактива в CSS, но хотелось бы, чтобы этот интерактив не касался напрямую HTML, т. е. был какой-то флаг, указал его и страница не прокручивается к целевому тегу. Придётся переделать галерею на JavaScript.

Предыдущая моя заметка о conditional comments. Я уже когда-то говорил и ещё раз скажу — W3C делает большую ошибку, что не включает их в стандарт, причём на уровне и HTML, и CSS. W3C заявляет, что конечная цель — стандартное счастье у всех браузеров. Увы, в свете сказанного, туда идти ещё очень долго, учитывая все баги, недоделки, несделанное и просто ещё не дописанное самим W3C. А сейчас-то что делать? Как мне для «Сафари» и «Хрома» такой-то версии что-то выключить? Использовать CSS-хаки?

И ещё, как я уже писал W3C вряд ли когда-нибудь вообще остановится. Будут всё новые и новые стандарты, улучшения существующих. Это значит, что браузеры никогда не достигнут всего, что описано. И поэтому тоже нам нужны conditional comments.

6 комментариев

«Опера» для Айфона в 6 раз быстрее «Сафари»

The result, according to the Norwegian company, would be a browser up to six times faster than the iPhone’s default Web tool, Safari.

«Опера» для Айфона готова и, как следует из цитаты, она в шесть раз быстрее встроенного «Сафари». Если Эпл разрешит, то это приложение станет доступным через две недели.

10 комментариев

Производительность «Оперы» 10.50

Решил посмотреть производительность финальной версии новой «Оперы», по сравнению с последними альфами и бетами других браузеров. На момент выхода финальной версии 10.50 это был самый производительный браузер. Поменялась ли ситуация?

Тест «V8» не показал ничего неожиданного: этот тест придуман «Гуглом» оптимизирован под браузер «Хромиум». Но я всё равно сожалею, «Опера» ничего не сделала, чтобы догнать «Хромиум» в этом тесте.

V8 (2.76КиБ)

Тест «Sunspider» (версии 0.9) показал, что последние версии «Хромиума» уже потихоньку сдвигают «Оперу» с престола. В этом тесте, в отличие от остальных, чем меньше показатель, тем лучше.

Sunspider (2.77КиБ)

Увы, тест «Peacekeeper показывает то же самое: „Хромиум“ сдаваться не собираться и наращивает производительность семимильными шагами.

Peacekeeper (2.83КиБ)

FireFox сейчас аутсайдер и в гонке не участвует.

18 комментариев

Ненависти к «Опере» пост

Самый, на мой взгляд, ужасный недостаток в «Опере», сталкивая с которым, я всё чаще готов не пользоваться больше этим браузером никогда, это то, что она с лёгкостью закрывается по «крестику», не спросив меня не хочу ли я сохранить вкладки. Обычно, в этом ничего страшного нет — закрыл окно, открыл, вкладки на месте, если «Опера» одна. Когда запущено несколько окон браузера (через Ctrl+N), «Опера» преспокойно закрывается, а все мои десятки накопленных вкладок теряются. Если заново открыть второе окно, оно открывается пустым.

Только что это и произошло. Ррррррррр! Чёртов браузер!

Добавлено 4 февраля 2010 года 00:19: Илья Бирман подсказал, что такие окна можно открыть через меню «Window» («Окно»). Совместными исследованиями мы установили, что это меню включается через настройку opera:config#UserPrefs|ShowWindowMenu.

После случайного закрытия окна, идём в это меню, выбираем «Closed Tabs» («Закрытые вкладки»), кликаем на название закрытого окна, все вкладки восстанавливаются. Ура.

Добавлено 4 февраля 2010 года 10:34: комментарии как бы говорят мне, что я идиот (и это правда) и не умею пользовать «Оперой»: в кнопке, которая располагается справа на панели закладок (у меня выглядит как… при определённой фантазии это можно принять за браузерную закладку) есть список всех закрытых табов и, в том числе, список всех закрытых окон!

Но в тех же комментариях сообщают, что если позакрывать по порядку все окна, то восстановить их будет уже невозможно. Кажется это и есть то, на чём я спотыкаюсь всё время. А я просто неправильно описал последовательность действий и проблему.

21 комментарий

CSS hack для Opera 10.50, 10.xx, не 10.50

«Опера» 10.50 стала поддерживать border-radius и много других интересных вещей, в этой связи встал вопрос — как отличить 10.50 от более ранних версий в CSS?

Например, у меня на сайте скруглённые уголки для «Оперы», начиная с версии 9.50 делаются при помощи SVG, 10.50 вполне могла бы нарисовать их без этого «изыска». Помучался-помучался и придумал несколько CSS-хаков, собственного изобретения.

<style type="text/css">
@media (0) {
    body { background: red; } /* Opera 10.xx, но < 10.50 */
}

@media all and (resolution = 0dpi) {
    body { background: red; } /* Opera < 10.50, минимальной версии не знаю, 9.27 работает */
}

@media all, () {
    body { background: red; } /* Opera 10.xx (включая 10.50) */
}

@media all, {
    body { background: red; } /* Opera 10.50 prealpha */
}
</style>

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

Я не знаю минимальной версии при которой срабатывает хак №2, но подозреваю, что будет работать где-то начиная с 7-й версии.

Все хаки я испытывал на «Операх» 10.50 prealpha, 10.10, 10.01, 9.50 и 9.27. Надеюсь, баг 10.50 не исправят и хак будет работать и дальше (pepelsbey, пожалуйста, молчи!:).

Добавлено 25 декабря 2009 10:38: проснувшись утром, я обнаружил, что умудрился ночью запостить этот текст два раза. Решил удалить один из них и удалил тот, что с комментариями. Простите, это утро :(

16 комментариев

Opera 10.50 pre-alpha

Opera 10.50 pre-alpha вышла! Кратенько: CSS transformation и многое из CSS3 (border-radius!), HTML5 local storage и open database, Carakan (новый движок JS с прекомпиляцией в машинный код), VEGA — библиотека для векторной графики (в будущем будет использовать аппаратное ускорение, но и сейчас ускорение заметно).

Это далеко не всё, лучше прочитать остальное на сайте «Оперы».

Скриншоты изменения скорости, которые утекли в сеть несколько дней назад, говорят о том, что скорость этого билда на уровне последних билдов Chromium.

24 комментария

Opera 10.50: скоро

22-го декабря компания «Опера» пообещала показать версию 10.50 pre-alpha. Ключевым изменением называется скорость (что не может не радовать), а не поддержка всякого из CSS3 (border-radius, CSS-анимация), о котором я писал ранее.

Это подарок компании к Рождеству.

8 комментариев

Опера ест память

Опера есть память (5.75КиБ)

Это очень странно, но стоит включить Flash в «Опере», как она начинает нещадно есть память. На скриншоте (открыто всего 12 закладок) далеко не худшая ситуация, я видел как она съедала вдвое большее количество. Помогает только снятие задачи (закрыть не получается, «Опера» продолжает висеть в памяти) и запуск заново.

Ситуация повторяется на обоих моих ноутах, под разными ОС (на одном — Windows XPSP3, на втром — Windows 7) и с разными версиями браузера (10.10 и 10.20).

Добавлено 11 декабря 2009 13:55: в комментах говорят, что с Flash так себя ведёт любой браузер. Видимо, новые версии Flash имеют какие-то дикие утечки памяти. Надо поискать user.js для «Оперы», который включает Flash по клику.

23 комментария

Presto 2.4

На Web Standards Days увидел, наконец, новый движок «Оперы» — Presto 2.4 в действии! Новую «Оперу» показывал Вадим Макеев (он работает в этой компании), версия 10.50 (название кодовое) поддерживает border-radius и целую кучу других интересных вещей. Первые публичные сборки появятся, вероятно, уже в начале следующего года.

Кстати говоря, Presto 2.4 уже работает в Opera Mobile 10 beta, которую можно скачать, но, к сожалению, эти самые интересные вещи (и border-radius тоже) в ней отключены.

8 комментариев

Input multiple-2

По мотивам предыдущего поста. Чтобы Opera 9+ (а так же 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ позволили выбрать несколько файлов в диалоге загрузки файлов, нужно написать вот такой код:

<form enctype="multipart/form-data" method="post">
   <input type="file" min="1" max="9999" name="file[]" multiple="true" />
   <input type="submit" name="submit" />
</form>

Я указал «file[]» для того, чтобы PHP сразу разложил полученные файлы по массиву $_FILES. К сожалению, запрос от «Оперы» PHP понимает неверно, так как «Опера» шлёт такой запрос в формате multipart/mixed. К счастью, PHP в этом случае положит содержимое файлов одним MIME-куском прямо в $_POST[’file’][0], а там его уже можно разобрать (надеюсь, директива magic_quotes_gpc у вас отключена).

Я попробовал, это несложно. Для того, чтобы разобрать MIME-секцию, я использовал PECL-модуль mailparse (есть версия для Windows):

if (isset($_POST['file'], $_POST['file'][0])) {

    if ($idx = strpos($_POST['file'][0], "\n")) {
        $bound = substr($_POST['file'][0], 2, $idx-2);

        $body  = "MIME-Version: 1.0\nContent-type: multipart/form-data; boundary={$bound}\n\n".
                 $_POST['file'][0];

        unset($_POST['file'][0]);
        $f = &$_FILES['file'];

        $f['name'] = $f['type'] = $f['tmp_name'] = $f['error'] = $f['size'];

        $msg = mailparse_msg_create();

        if (mailparse_msg_parse($msg, $body)) {
            $i = 0;

            foreach(mailparse_msg_get_structure($msg) as $st) {

                $section = mailparse_msg_get_part($msg, $st);

                $data = mailparse_msg_get_part_data($section);

                if ($data['content-type'] == 'multipart/form-data') {
                    continue; 
                }
            
                ob_start();
                if (mailparse_msg_extract_part($section, $body)) {
                    $tmp = tempnam(sys_get_temp_dir(), 'php');
                    file_put_contents($tmp, ob_get_clean());

                    $f['name'][$i] = $data['disposition-filename'];
                    $f['type'][$i] = $data['content-type'];
                    $f['tmp_name'][$i] = $tmp;
                    $f['error'][$i] = 0;
                    $f['size'][$i] = filesize($tmp);

                    $i++;
                } else {
                    ob_end_clean();
                }
            }
        }
        unset($f);

        mailparse_msg_free($msg);
    }
}

var_dump($_FILES); // результат помещатся в $_FILES, не забудьте удалить временные файлы после обработки!

У меня ожидается, что содержимое файлов будет передано как параметр «file[]» (в $_POST это будет $_POST[’file’][0]), но пример несложно переделать на любое другое имя или сделать это имя параметром.

5 комментариев

Попытка пересесть на Firefox. 2:0 в пользу «Оперы»

Посмотрел Firefox 3.6 beta 2, что сподвигло меня на очередную попытку пересесть на этот браузер с «Оперы»: скорость работы уже приблизилась к комфортной. Пересесть на Firefox хочется, прежде всего, из-за Firebug. Dragonfly в «Опере» — чудовищное глючное поделие, пользоваться которым некомфортно. Это совсем не похоже на ПО компании «Опера».

Неделю попользовался Firefox, не осилил. Нехватает тысячи мелочей, некоторые из которых не правятся плагинами. Например, почему при нажатии кнопки «Назад» в браузере, Firefox не показывает документ в том месте, где я остановил чтение? Мне что, на каждый чих закладку открывать?

Таких мелочей — очень много, слишком много, чтобы я мог спокойно пользоваться браузером. Приводить их полный список смысла нет, если даже многие их них правятся плагинами, я не готов тратить своё время, чтобы точить браузер под себя. И потом, чем больше плагинов, тем он больше тормозит.

Придётся, как и раньше, жить в двух программах. Это, кстати, моя вторая попытка переползти на Firefox.

64 комментария

Opera 10.x и border-radius

Вадим Макеев упомянул в «Ярушке» интересное о новых версиях «Оперы»:

Opera будет поддерживать border-radius уже в 10.x версии, очень вероятно, что где-то в начале будущего года (…)

Я уже давно тестирую версию, которая работает с border-radius, border-image, box-shadow, transform… и ещё десятком вещей из черновика CSS 3, что интересно — без префиксов. Это всё будет в движке Presto 2.4, который сейчас встроен во внутренние беты с индексом 10.x.

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

На эту тему я уже, кстати, давал цитату.

4 комментария

Google Reader и Opera

У всех Google Reader не открывается в «Опере 10» или только у меня?

Добавлено 12 сентября 23:16: оказывается, помогает полный сброс кеша и переоткрытие браузера.

19 комментариев

border-radius и «Опера»

Although Opera 10 has just been released, the Opera Core team has not been sitting idly while the Desktop team were at work. The next version of the rendering engine; Opera Presto 2.3 is already finished (including the likes of border-radius, box-shadow (including the spread value and inset keyword), and friends, and Opera Presto 2.4 is under heavy development. It already is and will be an exciting time for CSS 3.

В следующей «Опере» будет border-radius! Но лучше бы они дробные проценты сделали.

11 комментариев

FTPd.js работает под Opera 10.00 RC

Случайно обнаружил, что FTP-сервер, который я восемь лет писал на JavaScript (с использованием LiveConnect к Java) работает, оказывается под Opera 10 RC, которая вчера вышла. Интересно, что запрос к PrivilegeManager «Опера» понимает, но обрабатывает как-то неправильно.

LiveConnect — это придуманный фирмой Netscape для их браузера Netscape 4.xx (удобный) способ скрещивания различных плагинов и JavaScript, в частности, можно вызывать из JavaScript Java и наоборот. Насколько я понимаю, после смерти браузера Netscape, наследниками технологии LiveConnect стали FireFox (из-за того, видимо, что Netscape принимала участие в разработке Gecko) и Opera, по всей видимости, просто из-за того, что она поддерживает бинарные плагины Gecko.

А вот под новыми браузерами FireFox мой сервер не работает — не хватает полномочий. Мне, если честно, не хочется разбираться что там ещё надо запрашивать.

11 комментариев

← 1 2 3 4 →