Revalidate using the same Resource, attempt #4

Currently, when we perform a revalidation, we create a new resource and put it in the MemoryCache in place of the resource being revalidated. If the revalidation results in a 304, we silently swap all of the clients of the revalidation to the now-revalidated resource and swap which Resource is in the MemoryCache.

This changes the behavior to use the existing resource to revalidate itself, which simplifies the logic quite a bit. It also gives us the option of removing ResourcePtr (which is used to implement the silent client swap in the 304 case) and make Resources simply RefCounted in a future change.

BUG=545215

Review URL: https://codereview.chromium.org/1412413003

Cr-Commit-Position: refs/heads/master@{#355850}
16 files changed