Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


понедельник, 14 декабря 2015 г.

Ubuntu: Chrome и FireFox не открывают SWF, предлагают сохранить их вместо этого

Довольно известные грабли: с какого-то момента оба основных браузера отказываются открывать локальные флешки, предлагая сохранить их на диск. Но на фига мне их сохранять, если я и так открываю их с диска. Не будем брать запущенный случай "офиспланктонизма головного мозга", когда для копирования файла с носителя на носитель его открывают в программе редактирования и пересохраняют в другое место.
Но что делать, если хочется поиграть в казуальную игрушку или посмотреть мультик в формате SWF?

Корень проблемы кроется здесь. Не вдаваясь в лишние подробности, поясню: с 2013 года тип данных application/x-shockwave-flash стал не самостоятельным MIME-типом, а псевдонимом (alias) для типа данных application/vnd.adobe.flash.movie.

Что это значит для нас? Для нас это значит, что браузер не понимает ответа от базы данных MIME-типов "а еще есть псевдонимы", когда обращается к ней за определением типа файла, который мы пытаемся открыть. База честно рапортует, это мол адобовский фильм, а вовсе не какой-то там флеш, хотя есть псевдонимы...

А вот что понимает встроенный flash в Chrome:

Adobe Flash Player - Версия: 20.0.0.228
Shockwave Flash 20.0 r0
Типы MIME:
Тип MIME Описание Расширения файлов
application/x-shockwave-flash Shockwave Flash
.swf
application/futuresplash FutureSplash Player
.spl

То есть, про application/vnd.adobe.flash.movie он ничего не знает, а значит и не пытается его открыть. Других плагинов, понимающих такой тип данных, тоже как-то не находится, вот и предлагают его сохранить, потому как неизвестно, что с ним еще делать.

Что ж, будем лечить. Как явствует из фрагмента по ссылке выше, надо где-то поменять местами application/vnd.adobe.flash.movie и application/x-shockwave-flash.

Где менять? 

Многочисленные источники подсказывают, что править надо файл

sudo nano /usr/share/mime/packages/freedesktop.org.xml

Лично я в своем экземпляре просто поменял местами то, что в кавычках:

$ diff /usr/share/mime/packages/freedesktop.org.xml 

/usr/share/mime/packages/freedesktop.org.xml.org
18432c18432
<   < mime-type type="application/x-shockwave-flash">
---
>   < mime-type type="application/vnd.adobe.flash.movie">
18488c18488
<     < alias type="application/vnd.adobe.flash.movie"/>
---
>     < alias type="application/x-shockwave-flash"/>
39338c39338
< < /mime-info>
---
> < /mime-info>
</сode>

После изменения файла необходимо актуализировать базу данных:

$ sudo update-mime-database /usr/share/mime

Всё, собственно.

Использованные материалы:

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

  1. Ответы
    1. Что непонятного? Надо отредактировать один файл и выполнить одну команду.

      Удалить
  2. то и непонятно, где этот файл? у меня в папке пользователя никаких share нету.

    ОтветитьУдалить
    Ответы
    1. Речь не о папке пользователя (/home/имя_пользователя), а о системной папке /usr/share

      Удалить

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