Я пишу расширение chrome, которое делает следующее:
- Загрузка файла с веб-сайта в память с помощью
XMLHttpRequest
- Добавляет дополнительные данные в файл, а затем base64 кодирует результат в переменную
total_encoded_data
- Предоставляет данные пользователю, используя
<a href=data:application/octet-stream;charset=utf-8;base64,' + total_encoded_data+' download='file.bin'>Click to Download</a>
. Гдеtotal_encoded_data
добавляется в href с помощью jQuery.
Я обнаружил через ручной двоичный поиск, что если размер total_encoded_data
больше 2097100 символов, тогда я получу сообщение Aw, Snap, когда я нажму ссылку. Если размер меньше, то я могу скачать, как ожидалось.
В дополнение к тестированию файла, я также использовал atoi
, чтобы убедиться, что кодировка base64 действительна и работает без ошибок.
Сообщения Aw, Snap не генерируют отчеты о сбоях в chrome://crashes
или любые неожиданные результаты в chrome_debug.log
Как избежать сообщения Aw, Snap при обслуживании uri данных, где длина строки в кодировке base64 больше 2097100?