| Index: chrome/browser/download/download_request_handle.h
|
| diff --git a/chrome/browser/download/download_request_handle.h b/chrome/browser/download/download_request_handle.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e591cb80f166bdb262bd7cc87a194e95f1722ff2
|
| --- /dev/null
|
| +++ b/chrome/browser/download/download_request_handle.h
|
| @@ -0,0 +1,63 @@
|
| +// 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_REQUEST_HANDLE_H_
|
| +#define CHROME_BROWSER_DOWNLOAD_DOWNLOAD_REQUEST_HANDLE_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +class DownloadManager;
|
| +class ResourceDispatcherHost;
|
| +class TabContents;
|
| +
|
| +// A handle used by the download system for operations on the URLRequest
|
| +// or objects conditional on it (e.g. TabContents).
|
| +// This class needs to be copyable, so we can pass it across threads and not
|
| +// worry about lifetime or const-ness.
|
| +class DownloadRequestHandle {
|
| + public:
|
| + // Create a null DownloadRequestHandle: getters will return null, and
|
| + // all actions are no-ops.
|
| + // TODO(rdsmith): Ideally, actions would be forbidden rather than
|
| + // no-ops, to confirm that no non-testing code actually uses
|
| + // a null DownloadRequestHandle. But for now, we need the no-op
|
| + // behavior for unit tests. Long-term, this should be fixed by
|
| + // allowing mocking of ResourceDispatcherHost in unit tests.
|
| + DownloadRequestHandle();
|
| +
|
| + // Note that |rdh| is required to be non-null.
|
| + DownloadRequestHandle(ResourceDispatcherHost* rdh,
|
| + int child_id,
|
| + int render_view_id,
|
| + int request_id);
|
| +
|
| + // These functions must be called on the UI thread.
|
| + TabContents* GetTabContents() const;
|
| + DownloadManager* GetDownloadManager() const;
|
| +
|
| + // Pause or resume the matching URL request.
|
| + void PauseRequest();
|
| + void ResumeRequest();
|
| +
|
| + // Cancel the request
|
| + void CancelRequest();
|
| +
|
| + std::string DebugString() const;
|
| +
|
| + private:
|
| + // The resource dispatcher host.
|
| + ResourceDispatcherHost* rdh_;
|
| +
|
| + // The ID of the child process that started the download.
|
| + int child_id_;
|
| +
|
| + // The ID of the render view that started the download.
|
| + int render_view_id_;
|
| +
|
| + // The ID associated with the request used for the download.
|
| + int request_id_;
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_REQUEST_HANDLE_H_
|
|
|