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