Что-то определенно изменилось с обработкой manifest.json последнего обновления Chrome. (В моем случае, «Версия 72.0.3626.96 (Официальная сборка) (64-разрядная версия)» в Windows.) Мое расширение перестало работать так, как вы описали.
Решение моей проблемы состояло в том, чтобы удалить определенные URL-разрешения, которые я указал в разделе «разрешения», и заменить их на <all_urls>
. Я попытался снова подтянуть их, но единственное, что мне помогло, было https://*/*
.
Я проверил это на нескольких машинах, которые имели предыдущую версию Chrome, и у них было то же самое поведение ... успешная операция до обновления Chrome, никакого ответа после. Значок отображается правильно и показывает «Имеет доступ к этому сайту», но моя фоновая страница отказалась запускаться.
Удачи! Надеюсь, это поможет!
Найденный еще более простым путем:
asset.data = entry.get_input_stream.read
Казалось бы, что можно или использовать read_local_entry метод как это:
asset.data = entry.read_local_entry {|z| z.read }
Или, Вы могли сохранить запись с этим методом:
data = entry.extract "#{RAILS_ROOT}/#{entry.name}"
asset.data = File.read("#{RAILS_ROOT}/#{entry.name}")
Я не уверен, как они будут работать, но возможно они помогут Вам найти правильный метод (если это не будет им).
И, еще одна альтернатива:
asset.data = zipfile.file.read(entry.name)