В ближайших версиях Firefox и Chromium могут произойти важные изменения.
Во-первых, в Firefox 66 для десктопов по умолчанию заблокируется автоматическое воспроизведение видео и звука на всех страницах. Блог Mozilla Hacks заранее предупреждает об этом разработчиков. Воспроизведение видео и звука разрешается только через
HTMLMediaElement
API и только после взаимодействия пользователя со страницей (щелчок мыши, нажатие кнопки или прикосновение к тачскрину).В Chromium могут произойти ещё более интересные изменения.
При этом разрешено автоматическое воспроизведение видео с заглушённым звуком. Для такого контента нужно для
HTMLMediaElement
установить атрибут “muted” в значение true. На скриншоте показано, что пользователи могут вручную отключить блокировку звука для отдельных сайтов.В Firefox для Android новая реализация заменит существующий механизм блокировки автоматического воспроизведения.
Технически Firefox блокирует вызов
play()
от HTMLMediaElement.play()
, возвращая ошибку NotAllowedError
. Так же поступают все браузеры с аналогичной функциональностью. Соответственно, веб-разработчикам не следует предполагать, что вызов play()
всегда будет успешен. Чтобы избежать блокировки, рекомендуется два варианта. Первый: запускать воспроизведение контента в связке с обработчиком событий, например, KeyboardEvent на десктопе или touchend под Android. Второй: запустить автовоспроизведение без звука (оно разрешено по умолчанию) и показать пользователю кнопку для включения звука.Финальная версия Firefox 66 запланирована к выходу на 19 марта 2019 года, так что у разработчиков есть время на подготовку.
Mozilla сейчас работает над автоматической блокировкой контента Web Audio: её обещают до конца 2019 года.
Бюджет для веб-страниц
Изменения в Chromium пока на стадии обсуждения. Не факт, что соответствующий коммит включат в основную ветку. Но идея очень интересная.
4 февраля 2019 года один из разработчиков Алекс Расселл представил коммит 1265506 («Never-Slow Mode»). Он предлагает внедрить в браузер дополнительный режим
--enable-features=NeverSlowMode
, который будет ограничивать бюджет каждой веб-страницы, тем самым гарантируя быструю загрузку.Алекс Расселл — один из ведущих разработчиком Chrome, Blink и веб-платформы в Google, автор статьи «Вы можете себе это позволить? Бюджет веб-производительности в реальном мире», перевод которой публиковался на Хабре.
Иллюстрация из статьи Алекса Расселла
Предлагаемый бюджет:
- Объём одной картинки: 1 МБ
- Объём всех картинок: 2 МБ
- Одна таблица стилей CSS: 100 КБ
- Все таблицы стилей CSS: 200 КБ
- Максимальный размер скрипта: 50 КБ
Естественно, эту функцию пользователь будет включать по желанию. Например, если работает через медленное интернет-подключение, на слабом устройстве (устаревшем компьютере) и т. д. Ограничение бюджета гарантирует быструю загрузку и отсутствие тормозов, но при этом повышает вероятность, что страница не загрузится до конца.
Очевидно, что бюджет следует периодически пересматривать, ориентируясь на время загрузки страницы.
Ожирение сайтов
Бюджетирование страниц — здравая идея. Многие пользователи и специалисты обращают внимание, что с годами программы и веб-приложения вовсе не становятся быстрее, несмотря на серьёзное повышение производительности компьютеров.
По какой-то причине запросы приложений растут быстрее, чем производительность железа. В результате с каждым годом софт становится медленнее, а веб-сайты жиреют.
Тенденция такова, что софт вовсе не становится быстрее и функциональнее. Мы получаем более быстрое оборудование, на котором софт с теми же функциями ворочается медленнее, чем раньше. Всё работает намного медленнее максимальной скорости. Никогда не задумывались, почему ваш телефон загружается от 30 до 60 секунд? Почему он не может загрузиться, скажем, за одну секунду? Здесь нет никаких физических ограничений. Лично мне бы такое понравилось. Хочется, чтобы разработчики достигли предела, используя каждый бит для производительности. — Из статьи «Моё разочарование в софте»Возможно, бюджет веб-страниц поможет решить проблему, если другие разработчики Chromium согласятся на коммит Расселла.
Комментарии (36)
DickCancer
06.02.2019 11:37Оптимизация это всегда хорошо, но название «бюджетная страница на сайте» звучит как то не очень. Лучше называть это оптимизированной страницей или «очищенной».
mayorovp
06.02.2019 21:26А где вы увидели словосочетание "бюджетная страница"? Я видел только "бюджет страницы"...
sena
06.02.2019 12:14Пользователям нужно ровно одно — кнопка в заголовке таба, чтоб отключить ВСЁ аудио и видео на странице. Так сделано в десктопном Сафари для мака.
Как пользователь выскажусь
- Никакого автовоспроизведения видео и аудио, только по клику или спец. разрешение для конкретного таба/сайта
- Никакого исполнения скриптов в неактивых табах, только после специального разрешения для конкретного таба/сайта.
musicriffstudio
06.02.2019 13:08Никогда не говори «никогда».
Есть куча нужного софта требующего автостарт.
Заходишь по ссылке на ютуб — оно должно сразу запустить ролик.
Открываешь сайт радио — звук должен сразу начаться с последней прослушанной станции. И неплохо бы оставить трансляции в неактивном табе пока что-то делаешь в других вкладках.
Производители браузера не хотят давать право выбора (просто кнопку в заголовке таба). Они хотят решать за пользователя какая реклама отключится, а какая будет продолжать лезть.sena
06.02.2019 14:16Есть куча нужного софта требующего автостарт.
Заходишь по ссылке на ютуб — оно должно сразу запустить ролик.
Открываешь сайт радио — звук должен сразу начаться с последней прослушанной станции.
Так я же написал — надо разрешение для таких сайтов/табов. При первом заходе на ютуб у тебя всплывает окошко — «разрешить автостарт мультимедиа для этого сайта?» и варианты «да/нет» и чекбокс «запомнить выбор». Всё!
И неплохо бы оставить трансляции в неактивном табе пока что-то делаешь в других вкладках.
Точно так же — спец разрешение.
Производители браузера не хотят давать право выбора
Это да, но это немного странно. Ведь есть между ними конкуренция, кто первый это сделает — получит больше пользователей.Zenitchik
07.02.2019 15:43При первом заходе на ютуб у тебя всплывает окошко
Не надо окошко. Лучше чекбокс на панельке.
nuclight
06.02.2019 15:07+2Заходишь по ссылке на ютуб — оно должно сразу запустить ролик.
Вот схера ли? Я открываю ссылку, и пускай она себе там в табе прогружается, а я продолжаю в мессенджере писать, например. Потому что может быть я сразу несколько линков на ютуб открыл. Мне вовсе не упало всё бросать и искать ту вкладку, которая требует от меня подчиниться и смотреть её.musicriffstudio
06.02.2019 15:11-1програмасты из гугла с мозилой примерно так же рассуждали. Решили за всех остальных.
RifleR
06.02.2019 16:12Если вкладку ютуба открыть в фоне, то пока на нее не переключишься, видео воспроизводиться не начнет.
Zenitchik
06.02.2019 16:14Однако, пока я слушаю одно видео, я хочу посмотреть комменты к другим…
musicriffstudio
06.02.2019 21:36так у браузеров миллионы пользователей, а не один. И хотят они все одного — чтоб было только по ихнему. Исключительно по ихнему и все тут, без всяких компромиссов.
А программисты хрома решили что сами будут решать за пользователей и сломали совместимость в тысячах сайтов, в прошлом году им автостарт вебаудио пришлось откатывать из-за шквала жалоб разработчиков учебного и игрового софта.
DrGluck07
07.02.2019 10:26Если при выходе из ФФ активным был таб с ютубом, то после загрузки ФФ видео внезапно начинает играть, хоть я этого вообще не просил. А ещё, если открыть табы с видео, и попереключаться на каждый из них, то они ВСЕ продолжают играть. Большое спасибо, но этого совсем не хотелось.
Zenitchik
06.02.2019 16:07только после специального разрешения для конкретного таба/сайта.
Для конкретного таба — через интерфейс в самом табе, и с возможность настроить умолчания в зависимости от домена.
roman901
07.02.2019 15:12+1Если я прихожу на какой-нибудь twitch/goodgame/другую стриминговую платформу, я хочу чтоб у меня сразу запускался плеер, а не я тыкал на него.
sena
07.02.2019 15:27-1Если я прихожу на какой-нибудь twitch/goodgame/другую стриминговую платформу, я хочу чтоб у меня сразу запускался плеер, а не я тыкал на него.
В моём предложении это учтено. Вот объяснение
ZoomLS
06.02.2019 17:40Забавно, что одни разработчики Гугла выкатывают новый «жирный» Gmail, а другие разработчики делают «бюджетный режим» для их же браузера, который будет бороться с такими тяжёлыми сайтами, как новый Gmail.
WanSpi
06.02.2019 17:53> Максимальный размер скрипта: 50 КБ
Я так понимаю, сайты на которых стоит «JQuery» можно сразу хоронить?Valery4
06.02.2019 18:53Можно любые сайты с картинками сразу хоронить. А многие из них — двигатель прогресса!
Acionyx
07.02.2019 04:35Зачем же. Нужно взять какой-нибудь вебпак и автоматически разбивать бандл на чанки по 49.9кб. На клиенте конкатенируем свои 30 чанков, делаем eval и вуаля. К тому же, может вебпак и без ручных операций справится.
DemianFrai
07.02.2019 14:59+2хм. jquery, vue, vuetify. И все это грузится чанками по 50КБ, проверяется, собирается, запускается… Это точно должно уменьшить время загрузки?
khanid
07.02.2019 11:00Годные изменения. А то совсем уже веб унесло куда-то не туда — заходишь на страницу, а видеореклама со звуком начинает работать быстрее, чем отобразится текстовый материал, ради которого, собственно и заходишь.
Да и насчёт жирного веба тоже надо что-то делать, и принудительный порядок данного действа, похоже, единственное, что может хоть как-то заставить шевелиться веб-разработчиков — недавно ругался с некоторыми. Они никакой проблемы в главной странице на 50 Мб не видели.
Fragster
07.02.2019 11:06Только что посмотрел время загрузки gmail — до того момента, как по девтулзам закончилась загрузка, прошло почти 40 секунд. На i7 и выделенной линии (не мобильном интернете в смысле).
картинкасм. фиолетовую линию. ну и объем данных немного поражает:
namikiri
07.02.2019 11:37+1Интересно, как на фичу с бюджетом сайтов отреагирует, например, Facebook? Или его запишут в какой-нибудь скрытый «белый список» и он продолжит насиловать компьютеры бедных юзеров?
Ну вот как-то примерно такmaybe24
07.02.2019 14:59+1Лучше бы потребление ресурсов хромом ограничили на страницу, а не со скоростью загрузки носились. Вот например сейчас у меня на win 8.1 открыто 15 вкладок, всего хром жрет 1.5 Гб ОЗУ, в диспетчере задач 25 процессов chrome.exe, один из них кушает 700 МБ… Без доп проверок даже не понятно какая вкладка грузит систему. JS может ничего не весить, просто получит аяксом здоровенный массив и переворачивая циклом без таймаута повесит юзеру систему.
mayorovp
08.02.2019 12:47А через Shift+Esc разве не видно какая именно вкладка виновата?
maybe24
08.02.2019 15:24Про это сочетание клавиш знает не так много людей, и задачу оно не решает, т.к. показывает что больше всего памяти жрут субфреймы, вынесенные на верхний уровень из вкладок, и какая вкладка его загрузила уже не очень понятно. Но отслеживание это уже такое… я привел пример в том смысле, что они предлагают резать допустимые килобайты для загрузки, но не обращают внимание что одна страница может съесть ОЗУ и ЦП юзера, независимо от размера загруженных скриптов.
QtRoS
Забавно наблюдать, какие жёсткие ограничения хотят поставить для сайтов, держа в уме тот же пресловутый GMail.
musicriffstudio
для своих сайтов гугл сделает исключение. Также было с автостартом аудио.
Пользователям нужно ровно одно — кнопка в заголовке таба, чтоб отключить ВСЁ аудио и видео на странице. Так сделано в десктопном Сафари для мака.
Производителям браузера нужно как-то ограничить рекламу, раз уж она так напрягает пользователей, но полностью блокировать ролики которые лезут с любой страницы они не хотят т.к. это большая статья дохода.
Zenitchik
На самом деле не только рекламу. На Ю-тубе порядком бесит что при открытии вкладки видео сразу запускается. С какой стати оно должно запускаться раньше, чем я оказываюсь готов его смотреть? Я, может, хочу десяток вкладок открыть, посмотреть что написано, а потом решить в каком порядке запускать видео на них.
Oplkill
Есть плагины которые автоматически ставят на паузу в ново-открытом видео в ютюбе
morozko
У меня видео начинает загружаться только при переключении на вкладку. Firefox, если что.
IRainman
У меня в Лисе стоит Enhancer for YouTube™ — никакого автовоспроизведения, никаких аннотаций, ничего лишнего. А ещё стоит h264ify ибо больше половины устройств аппаратного ускорения новых кодеков не поддерживают.
и для nuclight тоже, пригодится ;)
Stanislavvv
Их гмыл в режиме «базовый HTML» отлично грузится за секунду :-)
Надеюсь, в хромиуме таки появится.