diff options
author | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-09 05:08:09 +0000 |
---|---|---|
committer | ahendrickson@chromium.org <ahendrickson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-09 05:08:09 +0000 |
commit | ef17c9ae62cabcb07c9e4319938328847fe58dce (patch) | |
tree | c9316a534a976a6aba1da119a951b8ca18194f3e /content/browser/download/drag_download_util.h | |
parent | 9f626f9bffe7ed3e0cc9aa4e7bc1cafc2dad75f9 (diff) | |
download | chromium_src-ef17c9ae62cabcb07c9e4319938328847fe58dce.zip chromium_src-ef17c9ae62cabcb07c9e4319938328847fe58dce.tar.gz chromium_src-ef17c9ae62cabcb07c9e4319938328847fe58dce.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.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=121050
Review URL: http://codereview.chromium.org/9296012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121195 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/download/drag_download_util.h')
-rw-r--r-- | content/browser/download/drag_download_util.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/content/browser/download/drag_download_util.h b/content/browser/download/drag_download_util.h index 95a5521..7cb7ada 100644 --- a/content/browser/download/drag_download_util.h +++ b/content/browser/download/drag_download_util.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -38,7 +38,9 @@ CONTENT_EXPORT bool ParseDownloadMetadata(const string16& metadata, // Create a new file at the specified path. If the file already exists, try to // insert the sequential unifier to produce a new file, like foo-01.txt. // Return a FileStream if successful. -CONTENT_EXPORT net::FileStream* CreateFileStreamForDrop(FilePath* file_path); +// |net_log| is a NetLog for the stream. +CONTENT_EXPORT net::FileStream* CreateFileStreamForDrop( + FilePath* file_path, net::NetLog* net_log); // Implementation of DownloadFileObserver to finalize the download process. class CONTENT_EXPORT PromiseFileFinalizer : public ui::DownloadFileObserver { |