ResourceRequestBody contains DataElement, which could contain a file (see file() or path() getters).
In the non-network service path, ResourceDispatcherHost ensures that the renderer actually has access to this file before uploading it by calling ChildProcessSecurityPolicyImpl::CanReadRequestBody. The only check that really matters there is TYPE_FILE.
Right now we don't have this check in the network service, so we need to call out to the browser via NetworkServiceClient to check a file before we upload it. Otherwise an exploited renderer can upload arbitrary files to the network.
Comment 1 by mek@chromium.org
, May 22 2018