diff options
Diffstat (limited to 'chrome/browser/download/download_create_info.h')
-rw-r--r-- | chrome/browser/download/download_create_info.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/chrome/browser/download/download_create_info.h b/chrome/browser/download/download_create_info.h new file mode 100644 index 0000000..6e097ef --- /dev/null +++ b/chrome/browser/download/download_create_info.h @@ -0,0 +1,118 @@ +// Copyright (c) 2011 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. + +#ifndef CHROME_BROWSER_DOWNLOAD_DOWNLOAD_CREATE_INFO_H_ +#define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_CREATE_INFO_H_ +#pragma once + +#include <string> +#include <vector> + +#include "base/basictypes.h" +#include "base/file_path.h" +#include "base/time.h" +#include "chrome/browser/download/download_file.h" +#include "chrome/browser/download/download_process_handle.h" +#include "googleurl/src/gurl.h" + +// Used for informing the download manager of a new download, since we don't +// want to pass |DownloadItem|s between threads. +struct DownloadCreateInfo { + DownloadCreateInfo(const FilePath& path, + const GURL& url, + const base::Time& start_time, + int64 received_bytes, + int64 total_bytes, + int32 state, + int32 download_id, + bool has_user_gesture); + DownloadCreateInfo(); + ~DownloadCreateInfo(); + + std::string DebugString() const; + + // The URL from which we are downloading. This is the final URL after any + // redirection by the server for |url_chain|. + const GURL& url() const; + + // DownloadItem fields + // The path where we want to save the download file. + FilePath path; + + // The chain of redirects that leading up to and including the final URL. + std::vector<GURL> url_chain; + + // The URL that referred us. + GURL referrer_url; + + // The default path for the download (may be overridden). + FilePath suggested_path; + + // A number that should be added to the suggested path to make it unique. + // 0 means no number should be appended. Not actually stored in the db. + int path_uniquifier; + + // The time when the download started. + base::Time start_time; + + // The number of bytes that have been received. + int64 received_bytes; + + // The total download size. + int64 total_bytes; + + // The current state of the download. + int32 state; + + // The (per-session) ID of the download. + int32 download_id; + + // True if the download was initiated by user action. + bool has_user_gesture; + + // The handle to the process information. Used for operations outside the + // download system. + DownloadProcessHandle process_handle; + + // The handle of the download in the history database. + int64 db_handle; + + // The content-disposition string from the response header. + std::string content_disposition; + + // The mime type string from the response header (may be overridden). + std::string mime_type; + + // The value of the content type header sent with the downloaded item. It + // may be different from |mime_type|, which may be set based on heuristics + // which may look at the file extension and first few bytes of the file. + std::string original_mime_type; + + // True if we should display the 'save as...' UI and prompt the user + // for the download location. + // False if the UI should be supressed and the download performed to the + // default location. + bool prompt_user_for_save_location; + + // Whether this download file is potentially dangerous (ex: exe, dll, ...). + bool is_dangerous_file; + + // If safebrowsing believes this URL leads to malware. + bool is_dangerous_url; + + // The original name for a dangerous download. + FilePath original_name; + + // Whether this download is for extension install or not. + bool is_extension_install; + + // The charset of the referring page where the download request comes from. + // It's used to construct a suggested filename. + std::string referrer_charset; + + // The download file save info. + DownloadSaveInfo save_info; +}; + +#endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_CREATE_INFO_H_ |