In storage.js, there is a TODO:
// TODO: Create a way for a download to be canceled while being downloaded.
At the time that TODO was written we had no such mechanism. But now, we have an API for cancelable scheme plugins, and both our default HTTP plugins implement it. It shouldn't be too hard to fulfill this TODO.