Редактор Habrahabr, Geektimes
44,6
рейтинг
5 января в 17:55

Разработка → Firefox будет поддерживать нестандартные CSS для совместимости с WebKit



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

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

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

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

Список предлагаемых префиксов, поддержка которых будет добавлена в браузер, можно просмотреть здесь. Кроме того, разработчики Firefox создали WebExtensions API, что позволит «огнелису» поддерживать расширения для Chrome, вероятно, изменения в этом случае не потребуются.
marks @marks
карма
167,2
рейтинг 44,6
Редактор Habrahabr, Geektimes
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

  • +11
    Лишь бы с таким вектором развития они не повторили подвиг оперы.
    • +2
      Да уж, печально все это
    • +4
      Никакого вектора нет, о реализации какой-то особой поддержки WebKit-возможностей речи не идёт. Просто уже поддерживаемые движком Gecko (ныне стандартные) возможности теперь будут доступны и с префиксом -webkit-.

      Усилия минимальны (простая таблица соответствия), а совместимость с сайтами, ориентированными на WebKit-браузеры, становится значительно выше.
    • +7
  • +5
    Ага, осталось только принять судьбоносное решение «а давайте перепишем файрфокс как клон хрома».

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

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

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

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

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

    Мозилла, опомнись!
    • +2
      Что же, опять мы будем сниферить версии браузеров, опять изобретать обходы, чтобы в каждом браузере отображение было как можно более нормальный и одинаковым.
      Просто используйте стандартные (без префиксов) варианты свойств и прочих возможностей. Поддержка чужеродных префиксов добавлена в Firefox исключительно для обратной совместимости с уже существующими сайтами.
      • –1
        И тогда, по логике, мы получаем, что можно не париться и использовать вебкитовские расширения на правах со стандартными в _новых_ сайтах. «Да, конечно, только в этот раз, а то дедлайн, и да, конечно, мы выбрали только самые совместимые, и как только w3c примет расширение, а мозилла и вебкит реализуют без префиксов, так мы css сразу же перепишем».

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

                P.S. Если бы Вы написали эти абзацы выше, в прошлом своем комменте (а еще лучше — как первый коммент к посту), мы бы не имели эту итерацию дискуссии, да и вообще, не было бы столько бестолковой ругани в комментах (да сами видите). Скажите, а Вы так хорошо разложили по полочкам, потому что стали разбираться по ссылкам в посте, или просто как-то следили за темой?
                • +1
                  Так случилось, что издавна слежу за развитием Firefox (которым пользуюсь уже более 10 лет — начиная с версии 1.0) и обычно узнаю о соответствующих новостях задолго до их публикации на Хабраресурсах и, так сказать, несколько более полно. ;-)
                  • 0
                    Редакторам бы Хабра, пишущим про FF, таких бы знаний!

                    Еще раз спасибо, вашими трудами (2 абзаца!) разобрался в довольно холиварном вопросе!
    • +1
      Вы ломитесь в открытые ворота. Несколько лет назад люди уже поняли, что «вендор-спесифик» префиксы — это зло. blink, mozilla и w3c их не рекомендуют. Вместо этого «недоделанные фичи» должны включаться флажком, чтобы их можно было использовать для разработки сразу, а когда они будут «доведены до ума» — и в проде.

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

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

      Типа, свойство введенное вебкитом, реализовано мозиллой… Или наоборот.
      </сарказм>
      • +1
        <сарказм>Порядок префиксов перепутан — в данном случае «webkit-make-cool» это по сути спецификация-имя, а перед ним префикс «moz»</сарказм>
  • 0
    [удалено]
  • –7
    поддержка того, этого и вот этого и… Поздравляю теперь на сайте как и было задумано при шелке мыши вы не кликаете на страницу а открываете банер, при попытке скролинга банеры — чудо остаются на месте. Да и вообще больше всяких «вылетающих невовремя» не отключаемых элементов CSS…
    Спасибо разработчикам за то что думают о нас когда начинают поддерживать новый стандарт от которого нельзя отказаться на конкретных сайтах.
    • +4
      ШТО
      • 0
        а как?
        • +4
          Рискну предположить, что Ваш комментарий заминусован, потому что никто не понимает, о чём он, и каким образом относится к теме поста. Мой ответ Вам (процитирую: «ШТО») — это выражение этого непонимания и попытка побудить Вас к пояснению.
          • –1
            я говорю о сайтах типо pinterest.com или ivanpirog.com, http://vkusniypovar.ru/ и их много. Везде появляеться всякая непонятная требуха следующяя за скролингом. Да я могу нажать на крестик у баннера но многие сайты создают баннеры и сайты с такими элементами которые нельзя просто закрыть. Или например сайты где клик в ЛЮБУЮ часть страници открывает казино сайты…

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

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

            В частности -webkit-user-select не позволит мне выделять на сайте текст.
            или например -webkit-touch-callout из за которого нельзя будет посмотреть информацию по ссылке при удержании пальца на тапе. (у меня конечно десктоп но я бы не хотел чтобы такая фигня мешала мне в моём мобильном)
            • +1
              При чём тут вообще webkit? В FireFox и так был -moz-user-select, например. И перечитайте еще раз: Mozilla не внедряет новые функции, она просто включает поддержку уже существующих функций с вебкитовым префиксом. Touch-callout в их число не входит, ссылка на список есть в посте.
              • 0
                Что внедряют, что просто включают, а как выключить то? Суть моей притенении не в том что они включают что-то не то, а в том что это что-то потом нельзя выключить. А сайты могут пользоваться этим чем-то для того чтобы делать из интернета гуано.
                • 0
                  Да божежтымой, ничего не внедряют, ничего не выключают, успокойтесь, дышите ровно, перечитайте пост еще раз. И еще. И еще, пока не дойдет.

                  Выключить? Да пожалста, используйте тот же stylish.
                  • 0
                    «Firefox будет поддерживать нестандартные CSS» — это заголовок. Либо он вводит в ступор либо я не знаю… в тексте на самом деле мути на 2 абзаца. Что вероятно вводит в заблуждение по поводу применимого термина «включают/внедряют».
                    Спасибо за наводку на stylish. Буду с ним разбираться.
  • 0
    Сами расширения неофициальны, но они смогли стать достаточно популярными, поскольку основные браузеры для мобильных устройств основаны на таких движках, как WebKit и Blink/Chromium.
    Что довольно-таки странно: ладно iOS огорожена, но пользователям устройств на андроиде же ничего не мешает пойти и скачать себе полноценный Firefox.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Скачать ≈40МБ можно и через вайфай (бесплатный), это не такая уж редкость в наши дни. В общем-то да, дефолтный браузер выполняет свою функцию, но субъективно fennec поотзывчивей, пофичастей, интерфейс приятнее, ну и есть полезные плагины типа Decentraleyes.
        • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Нужно в стандарте запретить использование нестандартных элементов :)
    • НЛО прилетело и опубликовало эту надпись здесь
  • +3
    История повторяется, меняются только действующие лица. Раньше это была мс сейчас это гугл. История нас учит лишь тому что никого она не учит.
  • +7
    Как и предсказывали 3 года назад
    Без вашей помощи, без сильной реакции, это может привести только к одному, и мы сейчас находимся в опасной близости от такого результата: другие браузеры тоже начнут поддерживать/внедрять префикс -webkit-*, превращая экспериментальный вариант реализации функции в новый всеобщий стандарт. Таким образом, единственная реализация станет мировой монополией. Ещё раз. Это уничтожит нашу процедуру принятия стандартов. Здесь не может быть иного варианта, вопрос только в сроках, когда это произойдёт.
  • 0
    Интересно, как дела у Servo. Видимо, сыроват, раз не торопятся внедрять.
    • 0
      Он еще под самую популярную ОС для десктопа не собирается нормально, куда его внедрять? :-/
      • 0
        В самую популярную ОС для смартфона, очевидно же. Они вроде так и собираются. Там преимущества данного движка более очевидны. На десктопе с i5/i7 и 4+GB памяти, выделенной линией 10+Мбит и так всё неплохо.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Насколько я понимаю MS тогда ввёл поддержку этих префиксов только для мобильного IE и в Edge (Win 10 Mobile) их поддержки не будет. Или ошибаюсь?
      • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Удалено.

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