#ifndef CONTENT_PUBLIC_BROWSER_PRERENDER_HANDLE_H_
#define CONTENT_PUBLIC_BROWSER_PRERENDER_HANDLE_H_
#include <cstdint>
#include <optional>
#include "base/functional/callback_forward.h"
#include "base/memory/weak_ptr.h"
#include "content/public/browser/preloading.h"
#include "net/http/http_no_vary_search_data.h"
class GURL;
namespace content {
class PrerenderHandle {
public:
PrerenderHandle() = default;
virtual ~PrerenderHandle() = default;
virtual int32_t GetHandleId() const = 0;
virtual const GURL& GetInitialPrerenderingUrl() const = 0;
virtual const std::optional<net::HttpNoVarySearchData>& GetNoVarySearchHint()
const = 0;
virtual base::WeakPtr<PrerenderHandle> GetWeakPtr() = 0;
virtual void SetPreloadingAttemptFailureReason(
PreloadingFailureReason reason) = 0;
virtual void AddActivationCallback(base::OnceClosure activation_callback) = 0;
virtual void AddErrorCallback(base::OnceClosure error_callback) = 0;
virtual bool IsValid() const = 0;
};
}
#endif