Does it even make to implement this in $browser? I've been trying to get rid of $browser for a while and we are almost there, so I'm not keen on adding more stuff into this service.

I think that it should be sufficient to implement this purely in $interval service and provide a mock for overriding the service.