blob: dde9a09b9ab289c1567282e49ae4c5371cf2c36d [file] [log] [blame]
// Copyright 2018 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 IOS_WEB_VIEW_INTERNAL_WEB_VIEW_DOWNLOAD_MANAGER_H_
#define IOS_WEB_VIEW_INTERNAL_WEB_VIEW_DOWNLOAD_MANAGER_H_
#include <memory>
#include "ios/web/public/download/download_controller_delegate.h"
namespace web {
class BrowserState;
class DownloadTask;
class WebState;
} // namespace web
namespace ios_web_view {
// A class to handle browser downloads in //ios/web_view.
class WebViewDownloadManager : public web::DownloadControllerDelegate {
public:
explicit WebViewDownloadManager(web::BrowserState* browser_state);
~WebViewDownloadManager() override;
void OnDownloadCreated(web::DownloadController* download_controller,
web::WebState* web_state,
std::unique_ptr<web::DownloadTask> task) override;
void OnDownloadControllerDestroyed(
web::DownloadController* download_controller) override;
private:
web::BrowserState* browser_state_ = nullptr;
web::DownloadController* download_controller_ = nullptr;
};
} // namespace ios_web_view
#endif // IOS_WEB_VIEW_INTERNAL_WEB_VIEW_DOWNLOAD_MANAGER_H_