chromium/ios/web/download/crw_web_view_download.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_DOWNLOAD_CRW_WEB_VIEW_DOWNLOAD_H_
#define IOS_WEB_DOWNLOAD_CRW_WEB_VIEW_DOWNLOAD_H_

#import <Foundation/Foundation.h>

#import "ios/web/public/download/crw_web_view_download.h"

@class WKWebView;

@interface CRWWebViewDownload : NSObject <CRWWebViewDownload>

// Destination path where the file is saved.
@property(nonatomic, strong) NSString* destinationPath;

// Web view used to call the download.
@property(nonatomic, strong) WKWebView* webView;

// CRWWebViewDownloadDelegate used to track download status.
@property(nonatomic, weak) id<CRWWebViewDownloadDelegate> delegate;

// Initializes CRWWebViewDownload.
// `destination` is the destination path where the file is save.
// `request` is the request called for the download.
// `webview` is the web view used to call the download.
// `delegate` is the delegate used to track download status.
- (instancetype)initWithPath:(NSString*)destination
                     request:(NSURLRequest*)request
                     webview:(WKWebView*)webview
                    delegate:(id<CRWWebViewDownloadDelegate>)delegate;

// Starts to download the resource at the URL in the request specified at the
// initialization.
- (void)startDownload;

@end

#endif  // IOS_WEB_DOWNLOAD_CRW_WEB_VIEW_DOWNLOAD_H_