Much is moved from video_download.html.  The idea is simple:
updates follow a very basic sequence:
0. loop looking for a server-initialted start
1. receive a client-initiated start (i.e. from a click) 
2. ping for updates (through a timeout)
3. complete updates / stop the updating process.

Each of these events has a single callback function available, where the webpage including this method can register for event-based callbacks.  If there are multiple update progress bars, if they have different ids, they'll have different callbacks.