C ++ CefDownloadHandler. Для больших файлов PDF CefDownloadItem не предоставляет размер файла. - PullRequest
0 голосов
/ 09 июля 2020

Я создал новый класс CefDownloadHandlerImpl, унаследовав CefDownloadHandler

class CefDownloadHandlerImpl : public CefDownloadHandler {
 public:
  virtual void OnBeforeDownload(
      CefRefPtr<CefBrowser> browser,
      CefRefPtr<CefDownloadItem> download_item,
      const CefString& suggested_name,
      CefRefPtr<CefBeforeDownloadCallback> callback) OVERRIDE;

В OnBeforeDownload, когда я пытаюсь загрузить zip-файл размером около 20 МБ, я получаю PercentComplete = 0 и TotalBytes правильно. Но когда я пытаюсь загрузить файл pdf размером 2 МБ, я получаю PercentComplete = -1 и TotalBytes = 0, что неуместно.

void CefDownloadHandlerImpl::OnBeforeDownload(
    CefRefPtr<CefBrowser> browser,
    CefRefPtr<CefDownloadItem> download_item,
    const CefString& suggested_name,
    CefRefPtr<CefBeforeDownloadCallback> callback) {
    
    auto TotalBytes = download_item->GetTotalBytes();
    auto PercentComplete = download_item->GetPercentComplete();

Что может быть не так и, что более важно, как это исправить?

...