1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/history/download_create_info.h" 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 7201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch#include <string> 8201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 9201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch#include "base/format_macros.h" 10201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch#include "base/stringprintf.h" 11201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenDownloadCreateInfo::DownloadCreateInfo(const FilePath& path, 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const GURL& url, 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen base::Time start_time, 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int64 received_bytes, 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int64 total_bytes, 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int32 state, 1821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen int32 download_id, 1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen bool has_user_gesture) 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : path(path), 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen url_chain(1, url), 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen path_uniquifier(0), 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen start_time(start_time), 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen received_bytes(received_bytes), 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen total_bytes(total_bytes), 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen state(state), 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen download_id(download_id), 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen has_user_gesture(has_user_gesture), 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen child_id(-1), 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen render_view_id(-1), 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen request_id(-1), 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen db_handle(0), 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prompt_user_for_save_location(false), 34dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen is_dangerous_file(false), 35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen is_dangerous_url(false), 36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen is_extension_install(false) { 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenDownloadCreateInfo::DownloadCreateInfo() 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : path_uniquifier(0), 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen received_bytes(0), 42bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen total_bytes(0), 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen state(-1), 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen download_id(-1), 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen has_user_gesture(false), 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen child_id(-1), 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen render_view_id(-1), 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen request_id(-1), 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen db_handle(0), 50bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prompt_user_for_save_location(false), 51dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen is_dangerous_file(false), 52dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen is_dangerous_url(false), 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen is_extension_install(false) { 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenDownloadCreateInfo::~DownloadCreateInfo() { 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 58201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenbool DownloadCreateInfo::IsDangerous() { 60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen return is_dangerous_url || is_dangerous_file; 61dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 63201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdochstd::string DownloadCreateInfo::DebugString() const { 64201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch return base::StringPrintf("{" 65201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " url_ = \"%s\"" 6621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen " path = \"%" PRFilePath "\"" 67201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " received_bytes = %" PRId64 68201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " total_bytes = %" PRId64 69201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " child_id = %d" 70201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " render_view_id = %d" 71201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " request_id = %d" 72201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " download_id = %d" 73201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " prompt_user_for_save_location = %c" 74201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch " }", 75ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen url().spec().c_str(), 76201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch path.value().c_str(), 77201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch received_bytes, 78201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch total_bytes, 79201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch child_id, 80201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch render_view_id, 81201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch request_id, 82201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch download_id, 83201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch prompt_user_for_save_location ? 'T' : 'F'); 84201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch} 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenconst GURL& DownloadCreateInfo::url() const { 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return url_chain.empty() ? GURL::EmptyGURL() : url_chain.back(); 88ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 89