Pull to refresh

Как обойти блокировку автопроигрывания flash контента в Google Chrome

Не так давно по интернету «прогремела» новость о том, что Google Chrome блокирует автопроигрывание flash контента с 1 сентября 2015 года.

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

  • flash небезопасен;
  • flash беспощаден к заряду батареи;
  • на flash делается огромное количество назойливой рекламы.

В качестве альтернативы Google предложил использовать технологию HTML5 и ПО позволяющее конвертировать из swf в html5.

Но, что если по какой-либо причине вы не готовы менять flash на html5? Ниже я поделюсь результатами (моих и общественных) экспериментов на тему как обойти блокировку автопроигрывания flash в Chrome.

Суть проблемы в том, что при вставке swf файла:

<object width="728" height="90" id="swfContent">
    <param name="movie" value="http://www.flashbannernow.com/dl2/dm/demo_728x90.swf">
    <embed src="http://www.flashbannernow.com/dl2/dm/demo_728x90.swf" width="728" height="90">
    </embed>
</object>

Пользователь, открывший страницу в Chrome, получит «заблокированное» содержимое swf ролика (баннера):



Результатом наблюдений моих и моих коллег, явилось то что, чтобы блокировка автопроигрывания не сработала, необходимо выполнение любого из условий:

  1. flash файл должен быть на том же домене, что и запрашиваемая страница;
  2. flash файл должен занимать определенную площадь экрана: быть маленьким по ширине/высоте, либо наоборот большим.

Попробуем выполнить первое условие и посмотрим что получится. У меня получилось сделать это через nginx. Добавим новый location в конфигурационный файл, такого содержания:

location /banner {
    proxy_pass http://www.flashbannernow.com/dl2/dm/;
}

Вставим наш swf файл:

<object width="728" height="90" id="swfContent">
    <param name="movie" value="/banner/demo_728x90.swf">
    <embed src="/banner/demo_728x90.swf" width="728" height="90">
    </embed>
</object>

У нас получилось! Содержимое flash не заблокировано после перезагрузки страницы:

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.