chromium/components/no_state_prefetch/browser/no_state_prefetch_handle.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_NO_STATE_PREFETCH_BROWSER_NO_STATE_PREFETCH_HANDLE_H_
#define COMPONENTS_NO_STATE_PREFETCH_BROWSER_NO_STATE_PREFETCH_HANDLE_H_

#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
#include "url/gurl.h"

namespace prerender {

class NoStatePrefetchContents;

// A class representing a running prefetch to a client of the
// NoStatePrefetchManager. Methods on NoStatePrefetchManager which start
// prefetch return a caller-owned NoStatePrefetchHandle* to the client (or
// NULL if they are unable to start prefetch). Calls on the handle of prefetch
// that is not running at no-ops. Destroying a handle before prefetch starts
// will prevent it from ever starting. Destroying a handle while prefetch is
// running will stop the prefetch, without making any calls to the observer.
class NoStatePrefetchHandle : public NoStatePrefetchContents::Observer {};

}  // namespace prerender

#endif  // COMPONENTS_NO_STATE_PREFETCH_BROWSER_NO_STATE_PREFETCH_HANDLE_H_