普通文本  |  89行  |  2.9 KB

// 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.

#include "chrome/browser/history/download_create_info.h"

#include <string>

#include "base/format_macros.h"
#include "base/stringprintf.h"

DownloadCreateInfo::DownloadCreateInfo(const FilePath& path,
                                       const GURL& url,
                                       base::Time start_time,
                                       int64 received_bytes,
                                       int64 total_bytes,
                                       int32 state,
                                       int32 download_id,
                                       bool has_user_gesture)
    : path(path),
      url_chain(1, url),
      path_uniquifier(0),
      start_time(start_time),
      received_bytes(received_bytes),
      total_bytes(total_bytes),
      state(state),
      download_id(download_id),
      has_user_gesture(has_user_gesture),
      child_id(-1),
      render_view_id(-1),
      request_id(-1),
      db_handle(0),
      prompt_user_for_save_location(false),
      is_dangerous_file(false),
      is_dangerous_url(false),
      is_extension_install(false) {
}

DownloadCreateInfo::DownloadCreateInfo()
    : path_uniquifier(0),
      received_bytes(0),
      total_bytes(0),
      state(-1),
      download_id(-1),
      has_user_gesture(false),
      child_id(-1),
      render_view_id(-1),
      request_id(-1),
      db_handle(0),
      prompt_user_for_save_location(false),
      is_dangerous_file(false),
      is_dangerous_url(false),
      is_extension_install(false) {
}

DownloadCreateInfo::~DownloadCreateInfo() {
}

bool DownloadCreateInfo::IsDangerous() {
  return is_dangerous_url || is_dangerous_file;
}

std::string DownloadCreateInfo::DebugString() const {
  return base::StringPrintf("{"
                            " url_ = \"%s\""
                            " path = \"%" PRFilePath "\""
                            " received_bytes = %" PRId64
                            " total_bytes = %" PRId64
                            " child_id = %d"
                            " render_view_id = %d"
                            " request_id = %d"
                            " download_id = %d"
                            " prompt_user_for_save_location = %c"
                            " }",
                            url().spec().c_str(),
                            path.value().c_str(),
                            received_bytes,
                            total_bytes,
                            child_id,
                            render_view_id,
                            request_id,
                            download_id,
                            prompt_user_for_save_location ? 'T' : 'F');
}

const GURL& DownloadCreateInfo::url() const {
  return url_chain.empty() ? GURL::EmptyGURL() : url_chain.back();
}