- Fix a crash caused by CefBrowserHostImpl being deleted before CefCookieStoreProxy (issue #810).

- Add documentation explaining the relationship between network request processing classes.
- Remove stale code in url_request_context_getter_proxy.cc.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@935 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2012-12-04 01:12:11 +00:00
parent ea920a4d9e
commit c3bbaac18f
6 changed files with 51 additions and 118 deletions

View File

@@ -28,6 +28,45 @@ class URLRequestJobFactory;
class URLSecurityManager;
}
// Classes used in network request processing:
//
// RC = net::URLRequestContext
// Owns various network-related objects including the global cookie manager.
//
// RCP = CefURLRequestContextProxy
// Creates the CSP and forwards requests to the objects owned by RC.
//
// CSP = CefCookieStoreProxy
// Gives the CefCookieManager associated with CefBrowserHostImpl an
// opportunity to handle cookie requests. Otherwise forwards requests via RC
// to the global cookie manager.
//
// RCG = CefURLRequestContextGetter
// Creates the RC and manages RCP lifespan.
//
// RCGP = CefURLRequestContextGetterProxy
// Causes the RCG to create and destroy browser-specific RCPs.
//
// Relationship diagram:
// ref = reference (scoped_refptr)
// own = ownership (scoped_ptr)
// ptr = raw pointer
//
// global cookie manager, etc...
// ^
// |
// /-own-> RC <-ptr-\
// / \
// / /<-ptr-\ \
// / / \ \
// CefBrowserContext -ref-> RCG --own-> RCP --ref-> CSP
// ^ ^ /
// ref ptr /
// | / /
// CefBrowserHostImpl -ref-> RCGP----/ /
// ^ /
// \-ref--------------------------/
class CefURLRequestContextGetter : public net::URLRequestContextGetter {
public:
CefURLRequestContextGetter(