This is mostly delegating and JNI glue specific to the Chrome for Android implementation.
Turns out that the only non-public dependency in DownloadControllerAndroidImpl is ResourceDispatcherHostImpl::Get()->GetURLRequest() for cookies (the other includes in that file can all be trivially changed to use the content public base class API for each class).
Min said cookies are no longer needed as of M51 since we don't use the Android DownloadManager anymore. He will go ahead and remove that dependency.
Then moving all of this out of the content-layer will remove the need for the ContentViewDownloadDelegate interface and also the DownloadNotificationService and pretty much everythin moves up a layer and can be more self contained.
Comment 1 by siev...@chromium.org
, Jun 4 2016