| Index: net/docs/url_request.dot
|
| diff --git a/net/docs/url_request.dot b/net/docs/url_request.dot
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7c8621c9ecd47835000d26b150dd44893c083761
|
| --- /dev/null
|
| +++ b/net/docs/url_request.dot
|
| @@ -0,0 +1,124 @@
|
| +digraph URLRequestRoot {
|
| + subgraph cluster_legend {
|
| + label="Legend";
|
| +
|
| + ## UML
|
| + SubClass -> BaseClass [arrowhead="empty"];
|
| + SubClass -> Interface [arrowhead="empty", style=dashed];
|
| + Part -> Whole [arrowhead="diamond", label="ownership"];
|
| + Part -> Whole [arrowhead="odiamond", label="pointer"];
|
| + A -> B [arrowhead="none", headlabel="?..?", taillabel="?..?",
|
| + label="association"];
|
| + Interface [label="Interface / ABC", style=dashed];
|
| + template_class [shape=diamond]; # Link will name parameter(s)
|
| +
|
| +
|
| + Factory -> object [arrowhead=veevee];
|
| + SubClass [label="Derived Class"];
|
| + };
|
| +
|
| + URLRequest; // Non-threadsafe, SupportsUserData
|
| + URLRequestContext;
|
| + URLRequestJob [style=dashed]; // RC, base::PowerObserver
|
| + // Many subclasses
|
| + HttpCache_Transaction [label="HttpCache::Transaction"];
|
| + HttpStreamFactoryImpl_Request [label="HttpStreamFactoryImpl::Request"];
|
| + HttpStreamFactoryImpl_Job [label="HttpStreamFactoryImpl::Job"];
|
| + HttpStreamRequest_Delegate [label="HttpStreamRequest::Delegate",style=dashed];
|
| + Filter;
|
| +
|
| + URLRequestContext -> URLRequest [arrowhead=veevee];
|
| + Filter -> URLRequestJob [arrowhead="diamond"];
|
| + Filter -> Filter [arrowhead="diamond", taillabel="0..1"];
|
| + URLRequestHttpJob -> Filter [arrowhead=veevee];
|
| +
|
| + URLRequestJob -> URLRequest [arrowhead="diamond"];
|
| +
|
| + URLRequestHttpJob -> URLRequestJob [arrowhead="empty"];
|
| + // Handles both http & https
|
| +
|
| + URLRequestJobOthers [label="...others..."];
|
| + URLRequestJobOthers -> URLRequestJob [arrowhead="empty"];
|
| +
|
| + // Indirects to network delegate.
|
| +
|
| + HttpCache;
|
| + HttpNetworkLayer;
|
| + HttpTransactionFactory;
|
| + HttpTransaction [style=dashed];
|
| + HttpTransaction_Others [label="...others..."];
|
| + HttpTransaction -> URLRequestHttpJob [arrowhead="diamond"]
|
| +
|
| + HttpNetworkLayer -> HttpTransactionFactory [arrowhead=empty, style=dashed];
|
| +
|
| + HttpStreamFactoryImpl_Job -> HttpStreamFactoryImpl_Request [arrowhead="diamond",taillabel="1..*"];
|
| +
|
| + ClientSocketHandle -> {HttpStreamFactoryImpl_Job,HttpBasicState} [arrowhead="diamond"];
|
| + ClientSocketPool [style=dashed];
|
| + ClientSocketPool -> ClientSocketHandle [arrowhead=odiamond];
|
| +
|
| + {SSLClientSocketPool, TransportClientSocketPool, ClientSocketPool_Others} -> ClientSocketPool [style=dashed, arrowhead=empty];
|
| + ClientSocketPool_Others [label="...others..."];
|
| +
|
| + ClientSocketPoolBase -> TransportClientSocketPool [arrowhead=diamond, label=TransportSocketParams];
|
| + ClientSocketPoolBase [label="ClientSocketPoolBase", shape=diamond];
|
| +
|
| + ClientSocketPoolBaseHelper -> ConnectJob_Delegate [arrowhead=empty, style=dashed];
|
| + ConnectJob [style=dashed];
|
| + ConnectJob_Delegate [label="ConnectJob::Delegate",style=dashed];
|
| +
|
| + StreamSocket [style=dashed];
|
| + StreamSocket -> Socket [arrowhead=empty, style=dashed];
|
| + TCPClientSocket -> StreamSocket [arrowhead=empty, style=dashed];
|
| + StreamSocket_others -> StreamSocket [arrowhead=empty, style=dashed];
|
| + StreamSocket_others [label="...others..."];
|
| + StreamSocket -> ClientSocketHandle [arrowhead=diamond];
|
| + ConnectJobFactory -> ClientSocketPoolBase [arrowhead=diamond];
|
| + subgraph { rank=same; ConnectJobFactory -> ConnectJob [arrowhead=veevee];}
|
| + StreamSocket -> ConnectJob [arrowhead=diamond];
|
| +
|
| + TransportConnectJob;
|
| + TransportConnectJobHelper;
|
| + SingleRequestHostResolver;
|
| +
|
| + SingleRequestHostResolver -> TransportConnectJobHelper ->
|
| + TransportConnectJob [arrowhead=diamond];
|
| +
|
| + {SSLConnectJob, TransportConnectJob, ConnectJob_Others} -> ConnectJob [style=dashed, arrowhead=empty];
|
| + ConnectJob_Others [label="...others..."];
|
| +
|
| + ConnectJob_Delegate -> ConnectJob [arrowhead=odiamond];
|
| + ClientSocketPoolBaseHelper -> ClientSocketPoolBase [arrowhead=diamond];
|
| +
|
| + subgraph {
|
| + rank=same;
|
| + URLRequestJobManager -> URLRequestJob [arrowhead=veevee];
|
| + }
|
| +
|
| + TransportClientSocketPool -> ClientSocketHandle [arrowhead=veevee];
|
| +
|
| + HttpTransactionFactory [style=dashed];
|
| + HttpCache -> HttpTransactionFactory [arrowhead=empty, style=dashed];
|
| + HttpTransactionFactory -> HttpTransaction [arrowhead=veevee];
|
| + HttpNetworkLayer -> HttpNetworkTransaction [arrowhead=veevee];
|
| + HttpCache -> HttpCache_Transaction [arrowhead=veevee];
|
| +
|
| + HttpStreamRequest_Delegate -> HttpStreamFactoryImpl_Request [arrowhead=odiamond];
|
| + subgraph { rank=same; HttpStreamFactoryImpl -> HttpStreamRequest -> HttpStream [arrowhead=veevee];}
|
| +
|
| + HttpTransaction_Others -> HttpTransaction [style=dashed, arrowhead="empty"];
|
| + HttpCache_Transaction -> HttpTransaction [style=dashed, arrowhead="empty"];
|
| + HttpTransaction -> HttpCache_Transaction [arrowhead=diamond];
|
| + HttpNetworkTransaction -> HttpTransaction [style=dashed, arrowhead="empty"];
|
| +
|
| + HttpStreamRequest [style=dashed];
|
| + HttpStreamRequest -> HttpNetworkTransaction [arrowhead="diamond"];
|
| + HttpStream -> HttpNetworkTransaction [arrowhead="diamond"];
|
| + HttpNetworkTransaction -> HttpStreamRequest_Delegate [style=dashed, arrowhead="empty"];
|
| + HttpStreamFactoryImpl_Request -> HttpStreamRequest [style=dashed, arrowhead="empty"];
|
| + HttpStream [style=dashed];
|
| + HttpBasicState -> HttpBasicStream [arrowhead=diamond];
|
| + HttpBasicStream -> HttpStream [style=dashed, arrowhead="empty"];
|
| + QuicHttpStream -> HttpStream [style=dashed, arrowhead="empty"];
|
| + SpdyHttpStream -> HttpStream [style=dashed, arrowhead="empty"];
|
| +}
|
|
|