Разработчики браузера Firefox заявили о включении поддержки специфических для движка WebKit элементов CSS. Поддержка таких элементов появится в движке Gecko, который является основой браузера Firefox. Что касается первых версий, с включением CSS, то они выйдут в апреле и мае — это версия 46 и 47 соответственно. По словам представителей команды Firefox, речь идет о новых возможностях с префиксом «-webkit-».

Об добавлении поддержки нестандартных элементов CSS разработчики задумались довольно давно. Причина — пользователи браузера стали активно использовать расширения, добавляющие поддержку названных элементов CSS в мобильных приложениях. Сами расширения неофициальны, но они смогли стать достаточно популярными, поскольку основные браузеры для мобильных устройств основаны на таких движках, как WebKit и Blink/Chromium.

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

Тем не менее, мало кто из разработчиков удаляет префиксы после завершения CSS. По словам разработчика из Mozilla Дениэла Холберта, сейчас довольно значительный сегмент Сети (в частности, мобильного интернета) зависит от префикса -webkit в отношении свойств и возможностей CSS. По этой причине Firefox вскоре также будет поддерживать префиксы.

Список предлагаемых префиксов, поддержка которых будет добавлена в браузер, можно просмотреть здесь. Кроме того, разработчики Firefox создали WebExtensions API, что позволит «огнелису» поддерживать расширения для Chrome, вероятно, изменения в этом случае не потребуются.

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


  1. Yahweh
    05.01.2016 18:07
    +11

    Лишь бы с таким вектором развития они не повторили подвиг оперы.


    1. Error1024
      05.01.2016 20:21
      +2

      Да уж, печально все это


    1. MTonly
      05.01.2016 20:39
      +4

      Никакого вектора нет, о реализации какой-то особой поддержки WebKit-возможностей речи не идёт. Просто уже поддерживаемые движком Gecko (ныне стандартные) возможности теперь будут доступны и с префиксом -webkit-.

      Усилия минимальны (простая таблица соответствия), а совместимость с сайтами, ориентированными на WebKit-браузеры, становится значительно выше.



  1. Scf
    05.01.2016 18:12
    +5

    Ага, осталось только принять судьбоносное решение «а давайте перепишем файрфокс как клон хрома».

    ps. мне одному кажется, что лису поймали в очень неудачный для нее момент?


  1. betauser
    05.01.2016 18:46
    +2

    Кроме того, разработчики Firefox создали WebExtensions API, что позволит «огнелису» поддерживать расширения для Chrome, вероятно, изменения в этом случае не потребуются.

    Фаерфокс постепенно поедается гуглом?


    1. splav_asv
      05.01.2016 19:05

      Вроде от финансирования Google они как раз отказались.


      1. yar3333
        06.01.2016 05:14
        +1

        Полагаю, что тут скорее дело в том, что у Гугла появился свой браузер и потому помогать Мозилле с ФайерФоксом стало им не с руки. А для Мозиллы это, судя по всему (как появление браузера-конкурента, там и уменьшение прямого финансирования), является критичным. Вот и пытаются выплыть, только вот как? Ведь Хром настойчиво предлагают на google.com — как тут рядовому пользователю отказаться от него? Откровенно жаль мне FF.


  1. achekalin
    05.01.2016 22:06
    +4

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

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

    До кучи мы еще и потеряем стандартизацию. Завтра Хром выпустит поддержку нестандартного тега, послезавтра Фокс научится тоже его понимать (в меру своего подхода, конечно), и W3C останется опять не у дел.

    У такой «хорошей новости» есть только одно объяснение, которое как бы ни по кому не ударит — если в Фоксе окажется движок Хрома. Худшего, наверное, и придумать нельзя будет, монополия (почти) на рынке браузеров никогда не вела к добру. И MS, который еще не так давно именно и был монополистом, окажется в роли жертвы — это, конечно, мечта многих из поколения тех, кто видел Netscape Navigator, но — зачем?!

    Мозилла, опомнись!


    1. MTonly
      05.01.2016 22:25
      +2

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


      1. achekalin
        06.01.2016 22:18
        -1

        И тогда, по логике, мы получаем, что можно не париться и использовать вебкитовские расширения на правах со стандартными в _новых_ сайтах. «Да, конечно, только в этот раз, а то дедлайн, и да, конечно, мы выбрали только самые совместимые, и как только w3c примет расширение, а мозилла и вебкит реализуют без префиксов, так мы css сразу же перепишем».

        Ага, конечно, свежо предание.

        Не проще ли оставить мозилле мозиллово, а вебкиту — вебкитово? Для теста в вебките несложно запустить один из браузеров с его движком, для теста в мозилле — понятно что.

        А то, простите, получаем вторую итерацию геморроя: это свойство с префиксом вебкита, но мозилла его для целей отладки стала поддерживать, но поддерживает она его чуть-чуть не так, как веб-кит, так что вот вам снифер свойств, и вы в css учтите все варианты. Похоже, Мозилла соскучилась по временам тотальной несовместимости и малой предсказуемости?


        1. SelenIT2
          06.01.2016 22:37
          -1

          Вебкиту вебкитово за флагом. Мозилле мозиллово за опцией в about:config. А что попало в боевой код — то теперь общее, как его не называй. Как-то так:)


        1. MTonly
          06.01.2016 22:52
          +2

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

          При правильном расположении стандартного CSS-кода после нестандартного (снабжённого префиксами) нестандартный код благодаря каскадированию перекроется стандартным (иными словами, WebKit-код будет проигнорирован браузером), и никакой несовместимости разных «реализаций» WebKit-синтаксиса не возникнет.

          В результате:

          • в современных браузерах (поддерживающих стандартный беспрефиксный синтаксис), в том числе Firefox с поддержкой WebKit-синтаксиса, на новых сайтах будет работать единообразный стандартный вариант. Для таких браузеров ничего не изменится;

          • старые WebKit-браузеры, поддерживающие только нестандартный синтаксис, только его и увидят. Для таких браузеров тоже ничего не изменится;

          • старые сайты, где используется только WebKit-синтаксис, теперь будут нормально отображаться не только в WebKit-браузерах, но и в Firefox.


          мозилла его для целей отладки стала поддерживать,
          Отладка здесь ни при чём. Смысл исключительно в обратной совместимости: относительно много старых сайтов (особенно мобильных) используют только WebKit-синтаксис и сейчас в Firefox отображаются неправильно, а станут — более-менее правильно.


          1. achekalin
            06.01.2016 23:45

            1. Компетентных немного. Реально. Криворуких куда больше. Последние теперь рады: теперь вопрос совместимости — больше не их вопрос, а юзера/браузера.

            2. Только-вебкит сайтов не то чтобы нет, но, положа руку на сердце, гореть бы авторам только-любой-движок сайтов в аду, чес-слово, а тут им еще и индульгенция.

            3. То, что Мозилла что-то там соберается поддерживать, не означает, что поддержка будет так же идеальна/крива, как и реализация в вебките. Зато мозилловцы на себя взяли большой кусок гемора по поддержке не их велосипедов, от чего браузеру легче не станет — а с ним и всем нам.

            4. Всегда бы нам с вами попадались вдумчивые разработчики стилей, которые сначала использовали бы спесифик-префиксы, а потом уже стандартные вещи. Но нет же, обычно задача делается здесь и сейчас. И даже если разработчик знает, что через подгода выйдет стандарт, я не вижу для разработчика смысла через полгода на сайте менять одно на другое, потому что это вопрос не пяти минут (а уж о тестах и не говорим — мало ли что где съедет во всем сонме браузеров?).

            5. Давайте скажем прямо: мало у кого на машине стоит одна мозилла. Если даже и так, такому человеку нет большой проблемы не зайти на веб-кит-спесифик сайт — скорее, он (по делу!) обругает авторов такого сайта, на том тема и закроется для него. А у кого стоят и Chrome, и FF — ну, скопировать ссылку из одного в другой, чтобы открыть — так не такая проблема.

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

            Для начала, хоть кто-то может объяснить, как фичи будут реализованы _точно_так_, как они работают в webkit? Не копированием же кода? А как будет соблюдаться точность глюков из версии в версию? А фичи и глюки какой версии Chrome будут в той или иной версии FF реализованы/замогилены?

            Как говорят, кот яйца лижет от того, что ему нечего делать. У Мозиллы, кажется, нет больше проблем, раз такой фигней занялись!


            1. MTonly
              07.01.2016 01:52
              +4

              как фичи будут реализованы _точно_так_, как они работают в webkit?
              Ещё раз: реализовывать никто ничего не будет. Будет просто элементарная таблица соответствия исключительно на уровне синтаксиса между уже доступными в Firefox стандартными возможностями и соответствующими префиксированными WebKit-вариантами аналогичной функциональности.

              И это не просто прихоть Mozilla, а подлежащий стандартизации способ простейшей поддержки префиксированного синтаксиса, де-факто используемого на существующих сайтах, всеми не-WebKit-браузерами (например, Edge), в том числе совершенно новыми, если таковые появятся (например, на движке Servo, разрабатываемом с нуля на языке Rust).


              1. achekalin
                07.01.2016 13:42
                +1

                > Еще раз:

                Ага, наконец кто-то растолковал понятно что и как. В новости об это написано так обтекаемо, что понять, будет ли это таблица или будет ли это новый код, реализующий то же, но только chromium-way, трудно. Соглашусь с замечанием ниже: http://habrahabr.ru/post/274563/?reply_to=8727973#comment_8728139

                Вы же, ровно в 2 абзацах, перевели всю муть, что автор написал в посте, в нечто понятное — за это спасибо, правда.

                P.S. Если бы Вы написали эти абзацы выше, в прошлом своем комменте (а еще лучше — как первый коммент к посту), мы бы не имели эту итерацию дискуссии, да и вообще, не было бы столько бестолковой ругани в комментах (да сами видите). Скажите, а Вы так хорошо разложили по полочкам, потому что стали разбираться по ссылкам в посте, или просто как-то следили за темой?


                1. MTonly
                  07.01.2016 22:21
                  +1

                  Так случилось, что издавна слежу за развитием Firefox (которым пользуюсь уже более 10 лет — начиная с версии 1.0) и обычно узнаю о соответствующих новостях задолго до их публикации на Хабраресурсах и, так сказать, несколько более полно. ;-)


                  1. achekalin
                    07.01.2016 22:56

                    Редакторам бы Хабра, пишущим про FF, таких бы знаний!

                    Еще раз спасибо, вашими трудами (2 абзаца!) разобрался в довольно холиварном вопросе!


    1. khim
      06.01.2016 18:25
      +1

      Вы ломитесь в открытые ворота. Несколько лет назад люди уже поняли, что «вендор-спесифик» префиксы — это зло. blink, mozilla и w3c их не рекомендуют. Вместо этого «недоделанные фичи» должны включаться флажком, чтобы их можно было использовать для разработки сразу, а когда они будут «доведены до ума» — и в проде.

      Но что делать с уже существующими сайтами и уже существующими фичами?


    1. Rastishka
      06.01.2016 19:05

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

      Значит надо делать двойные префиксы:
      -webkit-moz-make-cool: true;

      Типа, свойство введенное вебкитом, реализовано мозиллой… Или наоборот.
      </сарказм>


      1. splav_asv
        06.01.2016 22:18
        +1

        <сарказм>Порядок префиксов перепутан — в данном случае «webkit-make-cool» это по сути спецификация-имя, а перед ним префикс «moz»</сарказм>


  1. MTonly
    05.01.2016 22:25

    [удалено]


  1. Sergey6661313
    05.01.2016 22:39
    -7

    поддержка того, этого и вот этого и… Поздравляю теперь на сайте как и было задумано при шелке мыши вы не кликаете на страницу а открываете банер, при попытке скролинга банеры — чудо остаются на месте. Да и вообще больше всяких «вылетающих невовремя» не отключаемых элементов CSS…
    Спасибо разработчикам за то что думают о нас когда начинают поддерживать новый стандарт от которого нельзя отказаться на конкретных сайтах.


    1. Apathetic
      06.01.2016 14:04
      +4

      ШТО


      1. Sergey6661313
        06.01.2016 15:43

        а как?


        1. Apathetic
          06.01.2016 15:57
          +4

          Рискну предположить, что Ваш комментарий заминусован, потому что никто не понимает, о чём он, и каким образом относится к теме поста. Мой ответ Вам (процитирую: «ШТО») — это выражение этого непонимания и попытка побудить Вас к пояснению.


          1. Sergey6661313
            06.01.2016 16:33
            -1

            я говорю о сайтах типо pinterest.com или ivanpirog.com, http://vkusniypovar.ru/ и их много. Везде появляеться всякая непонятная требуха следующяя за скролингом. Да я могу нажать на крестик у баннера но многие сайты создают баннеры и сайты с такими элементами которые нельзя просто закрыть. Или например сайты где клик в ЛЮБУЮ часть страници открывает казино сайты…

            Вообще я не про сами банеры а про то что firefоx не даёт мне возможности пользоваться интернетом интуитивно. Вот например недавно в youtube нельзя было вставить текст из буфера обмена в сообщение.

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

            В частности -webkit-user-select не позволит мне выделять на сайте текст.
            или например -webkit-touch-callout из за которого нельзя будет посмотреть информацию по ссылке при удержании пальца на тапе. (у меня конечно десктоп но я бы не хотел чтобы такая фигня мешала мне в моём мобильном)


            1. Apathetic
              06.01.2016 22:15
              +1

              При чём тут вообще webkit? В FireFox и так был -moz-user-select, например. И перечитайте еще раз: Mozilla не внедряет новые функции, она просто включает поддержку уже существующих функций с вебкитовым префиксом. Touch-callout в их число не входит, ссылка на список есть в посте.


              1. Sergey6661313
                06.01.2016 23:18

                Что внедряют, что просто включают, а как выключить то? Суть моей притенении не в том что они включают что-то не то, а в том что это что-то потом нельзя выключить. А сайты могут пользоваться этим чем-то для того чтобы делать из интернета гуано.


                1. Apathetic
                  06.01.2016 23:21

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

                  Выключить? Да пожалста, используйте тот же stylish.


                  1. Sergey6661313
                    07.01.2016 10:51

                    «Firefox будет поддерживать нестандартные CSS» — это заголовок. Либо он вводит в ступор либо я не знаю… в тексте на самом деле мути на 2 абзаца. Что вероятно вводит в заблуждение по поводу применимого термина «включают/внедряют».
                    Спасибо за наводку на stylish. Буду с ним разбираться.


  1. danfe
    06.01.2016 09:28

    Сами расширения неофициальны, но они смогли стать достаточно популярными, поскольку основные браузеры для мобильных устройств основаны на таких движках, как WebKit и Blink/Chromium.
    Что довольно-таки странно: ладно iOS огорожена, но пользователям устройств на андроиде же ничего не мешает пойти и скачать себе полноценный Firefox.


    1. SelenIT2
      06.01.2016 14:18

      Зачем идти, скачивать и устанавливать что бы то ни было (да еще через мобильный инет, у многих недешевый/лимитный по трафику), когда браузер на движке Blink уже установлен и неплохо работает? Лень/инерция/привычка (ну и цена мобильного трафика для многих)…


      1. danfe
        06.01.2016 14:32

        Скачать ?40МБ можно и через вайфай (бесплатный), это не такая уж редкость в наши дни. В общем-то да, дефолтный браузер выполняет свою функцию, но субъективно fennec поотзывчивей, пофичастей, интерфейс приятнее, ну и есть полезные плагины типа Decentraleyes.


        1. SelenIT2
          06.01.2016 14:45

          Я ж не ругаю Фенека, я объясняю резоны типичного пользователя… Так-то я сам болею за Лису, вот только, увы, не вижу реальных механизмов, способных заставить существенную массу пользователей преодолеть эту лень и инерцию. Разве что активная реклама со стороны какого-то мегавостребованного сервиса, но в реальности такие сервисы скорее будут продвигать свои приложения, чем браузер для всех…


  1. 1vanK
    06.01.2016 09:32

    Нужно в стандарте запретить использование нестандартных элементов :)


    1. SelenIT2
      06.01.2016 14:20

      В стандарте оно, как бы, уже запрещено (хоть и не слишком строго). Но если бы все читали/слушали стандарт… Вот и приходится задним числом вводить для этих нестандартных элементов свой отдельный стандарт, как в этот раз и получилось:)


  1. Kano
    06.01.2016 09:56
    +3

    История повторяется, меняются только действующие лица. Раньше это была мс сейчас это гугл. История нас учит лишь тому что никого она не учит.


  1. markhor
    06.01.2016 11:20
    +7

    Как и предсказывали 3 года назад

    Без вашей помощи, без сильной реакции, это может привести только к одному, и мы сейчас находимся в опасной близости от такого результата: другие браузеры тоже начнут поддерживать/внедрять префикс -webkit-*, превращая экспериментальный вариант реализации функции в новый всеобщий стандарт. Таким образом, единственная реализация станет мировой монополией. Ещё раз. Это уничтожит нашу процедуру принятия стандартов. Здесь не может быть иного варианта, вопрос только в сроках, когда это произойдёт.


  1. ababo
    06.01.2016 11:46

    Интересно, как дела у Servo. Видимо, сыроват, раз не торопятся внедрять.


    1. Revertis
      06.01.2016 16:15

      Он еще под самую популярную ОС для десктопа не собирается нормально, куда его внедрять? :-/


      1. splav_asv
        06.01.2016 22:28

        В самую популярную ОС для смартфона, очевидно же. Они вроде так и собираются. Там преимущества данного движка более очевидны. На десктопе с i5/i7 и 4+GB памяти, выделенной линией 10+Мбит и так всё неплохо.


  1. SelenIT2
    06.01.2016 14:37

    Эх, Фокс, ты и так держался дольше всех… Мобильный IE ведь тоже сдался еще полтора года назад.


    1. IRainman
      07.01.2016 00:34

      Насколько я понимаю MS тогда ввёл поддержку этих префиксов только для мобильного IE и в Edge (Win 10 Mobile) их поддержки не будет. Или ошибаюсь?


      1. SelenIT2
        07.01.2016 02:10
        +1

        Судя по этой таблице, боюсь, что будет (но не проверял).


  1. IRainman
    07.01.2016 00:17

    Удалено.