AppCache: Ensure inflight ActiveCalls are not destroyed
Before this CL, AppCacheDiskCache could delete inflight ActiveCalls without
any abort operation when the backend is disabled, so callbacks bound with
ActiveCall objects are invoked in broken state.
After this CL, ActiveCall hides its constructor and manages its own lifetime
using refptr, so AppCacheDiskCache no longer has to take care of their
lifetime. In addition, AppCacheDiskCache passes its weakptr to ActiveCall,
which in turn checks it when an operation is completed. If the backend is
closed, ActiveCall closes the entry and returns net::ERR_ABORTED.
BUG=488757
TEST=n/a
Review URL: https://codereview.chromium.org/
1136373003
Cr-Commit-Position: refs/heads/master@{#330250}