// third_party/blink/public/mojom/speculation_rules/speculation_rules.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_SPECULATION_RULES_SPECULATION_RULES_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_SPECULATION_RULES_SPECULATION_RULES_MOJOM_TEST_UTILS_H_

#include "third_party/blink/public/mojom/speculation_rules/speculation_rules.mojom.h"
#include "third_party/blink/public/common/common_export.h"


namespace blink::mojom {


class BLINK_COMMON_EXPORT SpeculationHostInterceptorForTesting : public SpeculationHost {
  virtual SpeculationHost* GetForwardingInterface() = 0;
  void UpdateSpeculationCandidates(std::vector<SpeculationCandidatePtr> candidates, bool enable_cross_origin_prerender_iframes) override;
  void OnLCPPredicted() override;
  void EnactCandidate(SpeculationCandidatePtr candidate, SpeculationHeuristic heuristic) override;
};
class BLINK_COMMON_EXPORT SpeculationHostAsyncWaiter {
 public:
  explicit SpeculationHostAsyncWaiter(SpeculationHost* proxy);

  SpeculationHostAsyncWaiter(const SpeculationHostAsyncWaiter&) = delete;
  SpeculationHostAsyncWaiter& operator=(const SpeculationHostAsyncWaiter&) = delete;

  ~SpeculationHostAsyncWaiter();

 private:
  SpeculationHost* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_SPECULATION_RULES_SPECULATION_RULES_MOJOM_TEST_UTILS_H_