title: Can someone explain Google Chrome in-memory cache?
body: <p>According to <a href="https://developer.chrome.com/extensions/webRequest#Caching">this</a> API doc, which is the only source I've found which describes the in-memory cache:</p>
  
  <blockquote>
    <p>Chrome employs two caches — an on-disk cache and a very fast in-memory
    cache. The lifetime of an in-memory cache is attached to the lifetime
    of a render process, which roughly corresponds to a tab. Requests that
    are answered from the in-memory cache are invisible to the web request
    API. If a request handler changes its behavior (for example, the
    behavior according to which requests are blocked), a simple page
    refresh might not respect this changed behavior. To make sure the
    behavior change goes through, call handlerBehaviorChanged() to flush
    the in-memory cache. But don't do it often; flushing the cache is a
    very expensive operation. You don't need to call
    handlerBehaviorChanged() after registering or unregistering an event
    listener.</p>
  </blockquote>
  
  <p>I need a better understanding of the in-memory cache.  Specifically, I need Chrome to generate the full webRequest / resource waterfall every time I visit a site, including refreshing a page.  Obviously, this can't be true if it's using an in-memory cache.</p>
  
  <p>Is the memory cache a clean-slate for a new tab when I create a new tab? </p>
  
  <p>What does "very expensive operation" mean quantitatively?</p>
  
  <p>If I call handlerBehaviorChanged() every time a page is reloaded in the same tab, will that guarantee a full waterfall?  In that case, a limit of 20 times over 10 minutes seems fairly low.</p>
  
  <p>Any help is highly appreciated, thanks!</p>