Это как раз реализация схемы "сжатие сделать в JS, а для того чтобы не зависало использовать web worker".
Напрямую на вопрос не отвечает, но всё равно полезная ссылка.
Я не увидел в статье ничего, про сжатие средствами браузера, именно об этом речь в вопросе. Сторонние механизмы сжатия реализовать, разумеется, можно, об этом даже автор в тексте вопроса написал.