diff options
author | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-08 21:48:08 +0000 |
---|---|---|
committer | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-08 21:48:08 +0000 |
commit | 698459744a124180f38df86d5b4a7d89aad2d7ca (patch) | |
tree | 32b75ae1cf90aa6ba30d3ad08091a353a80e6533 /content/browser/download/download_file_impl.cc | |
parent | ebf7966effc5b6ddc656bf826fabab0d4315cee7 (diff) | |
download | chromium_src-698459744a124180f38df86d5b4a7d89aad2d7ca.zip chromium_src-698459744a124180f38df86d5b4a7d89aad2d7ca.tar.gz chromium_src-698459744a124180f38df86d5b4a7d89aad2d7ca.tar.bz2 |
Hooked up NetLog to DownloadItem, DownloadFile, and FileStream.
The ChromeNetLog object is owned by the browser process, which has a longer lifetime than the profile and therefore than the download system. For each download, there will be one BoundNetLog (or a copy thereof) used by DownloadItem and DownloadFile, and one separate one used by FileStream.
For most downloads, the path to get a NetLog pointer to the download objects (DownloadItem, DownloadFile and FileStream) is through the URL request. A BoundNetLog is created and passed in to the DownloadResourceHandler constructor, which adds it to a DownloadCreateInfo that it makes. This gets it to DownloadItem, DownloadFile/BaseFile, and FileStream.
For downloads created from the history database, the path is via the DownloadService and the DownloadManager constructor. Likewise for downloads created as part of a 'Save Page As' operation, although that may change in the future with further refactoring of the 'Save Page As' code.
For downloads initiated by drag & drop on Linux and Mac (but not on Windows), the FileStream needs to get a NetLog pointer from another source. In this case, it is via the ContentClient (effectively a global) and ContentBrowserClient classes.
Note that FileStream has a different NetLog source than the other classes.
This is the final of 4 CLs that will enable net logging for downloads.
BUG=None
TEST=Go to a web page with downloadable content.
Open a new tab with about:net-internals.
Download a file.
Check the EVENTS tab of about:net-internals: there should be DOWNLOAD and FILESTREAM events.
Review URL: http://codereview.chromium.org/9296012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121050 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/download/download_file_impl.cc')
-rw-r--r-- | content/browser/download/download_file_impl.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/content/browser/download/download_file_impl.cc b/content/browser/download/download_file_impl.cc index 40ba759..5fb7ffc 100644 --- a/content/browser/download/download_file_impl.cc +++ b/content/browser/download/download_file_impl.cc @@ -19,7 +19,8 @@ DownloadFileImpl::DownloadFileImpl( const DownloadCreateInfo* info, DownloadRequestHandleInterface* request_handle, DownloadManager* download_manager, - bool calculate_hash) + bool calculate_hash, + const net::BoundNetLog& bound_net_log) : file_(info->save_info.file_path, info->url(), info->referrer_url, @@ -27,7 +28,7 @@ DownloadFileImpl::DownloadFileImpl( calculate_hash, info->save_info.hash_state, info->save_info.file_stream, - net::BoundNetLog()), + bound_net_log), id_(info->download_id), request_handle_(request_handle), download_manager_(download_manager) { |