summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download/download_create_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/download/download_create_info.h')
-rw-r--r--chrome/browser/download/download_create_info.h118
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_