// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Helper class which handles communication with the SafeBrowsing servers for // improved binary download protection. #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_PPAPI_DOWNLOAD_REQUEST_H_ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_PPAPI_DOWNLOAD_REQUEST_H_ #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "chrome/browser/safe_browsing/download_protection/download_protection_util.h" #include "components/sessions/core/session_id.h" #include "content/public/browser/web_contents_observer.h" #include "url/gurl.h" namespace content { class RenderFrameHost; } // namespace content namespace network { class SimpleURLLoader; } class Profile; namespace safe_browsing { class DownloadProtectionService; class SafeBrowsingDatabaseManager; class PPAPIDownloadRequest; // A request for checking whether a PPAPI initiated download is safe. // // These are considered different from DownloadManager mediated downloads // because: // // * The download bytes are produced by the PPAPI plugin *after* the check // returns due to architectural constraints. // // * Since the download bytes are produced by the PPAPI plugin, there's no // reliable network request information to associate with the download. // // PPAPIDownloadRequest objects are owned by the DownloadProtectionService // indicated by |service|. class PPAPIDownloadRequest : public content::WebContentsObserver { … }; } // namespace safe_browsing #endif // CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_PPAPI_DOWNLOAD_REQUEST_H_