blob: e47fa336a326706b479d24c69076486e35fb964a [file] [log] [blame]
// Copyright 2016 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_ANDROID_DOWNLOAD_DUPLICATE_DOWNLOAD_INFOBAR_DELEGATE_H_
#define CHROME_BROWSER_ANDROID_DOWNLOAD_DUPLICATE_DOWNLOAD_INFOBAR_DELEGATE_H_
#include "components/infobars/core/confirm_infobar_delegate.h"
namespace android {
// An infobar that asks if user wants to continue downloading when there is
// already a duplicate file in storage. If user chooses to proceed,
// a new file will be created.
// Note that this infobar does not expire if the user subsequently navigates,
// since such navigations won't automatically cancel the underlying download.
class DuplicateDownloadInfoBarDelegate : public ConfirmInfoBarDelegate {
public:
// Gets the file path to be downloaded.
virtual std::string GetFilePath() const = 0;
// Whether the download is for offline page.
virtual bool IsOfflinePage() const;
virtual std::string GetPageURL() const;
virtual bool IsOffTheRecord() const;
// Whether the duplicate is an in-progress request or completed download.
virtual bool DuplicateRequestExists() const;
// ConfirmInfoBarDelegate implementation.
base::string16 GetMessageText() const override;
bool ShouldExpire(const NavigationDetails& details) const override;
};
} // namespace android
#endif // CHROME_BROWSER_ANDROID_DOWNLOAD_DUPLICATE_DOWNLOAD_INFOBAR_DELEGATE_H_