Files
cef/libcef/browser/download_item_impl.h
Marshall Greenblatt 498cdb87f6 tests: Add coverage for download Pause/Resume
Also fix DCHECK(!job_->is_paused()) in download_item_impl.cc when
calling Pause() from inside OnDownloadUpdated. Chromium's download
state machine has internal states TARGET_PENDING_INTERNAL and
IN_PROGRESS_INTERNAL that both map to external IN_PROGRESS. To
avoid this DCHECK crash when pausing/resuming, we poll until the
download has a full path (indicating true IN_PROGRESS_INTERNAL
state) before calling the underlying Chromium pause/resume methods.
2025-12-01 19:32:59 -05:00

49 lines
1.5 KiB
C++

// Copyright (c) 2012 The Chromium Embedded Framework 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 CEF_LIBCEF_BROWSER_DOWNLOAD_ITEM_IMPL_H_
#define CEF_LIBCEF_BROWSER_DOWNLOAD_ITEM_IMPL_H_
#pragma once
#include "cef/include/cef_download_item.h"
#include "cef/libcef/common/value_base.h"
namespace download {
class DownloadItem;
}
// CefDownloadItem implementation
class CefDownloadItemImpl
: public CefValueBase<CefDownloadItem, download::DownloadItem> {
public:
explicit CefDownloadItemImpl(download::DownloadItem* value);
CefDownloadItemImpl(const CefDownloadItemImpl&) = delete;
CefDownloadItemImpl& operator=(const CefDownloadItemImpl&) = delete;
// CefDownloadItem methods.
bool IsValid() override;
bool IsInProgress() override;
bool IsComplete() override;
bool IsCanceled() override;
bool IsInterrupted() override;
bool IsPaused() override;
cef_download_interrupt_reason_t GetInterruptReason() override;
int64_t GetCurrentSpeed() override;
int GetPercentComplete() override;
int64_t GetTotalBytes() override;
int64_t GetReceivedBytes() override;
CefBaseTime GetStartTime() override;
CefBaseTime GetEndTime() override;
CefString GetFullPath() override;
uint32_t GetId() override;
CefString GetURL() override;
CefString GetOriginalUrl() override;
CefString GetSuggestedFileName() override;
CefString GetContentDisposition() override;
CefString GetMimeType() override;
};
#endif // CEF_LIBCEF_BROWSER_DOWNLOAD_ITEM_IMPL_H_