chromium/chrome/browser/ash/guest_os/public/guest_os_sk_forwarder.h

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

#ifndef CHROME_BROWSER_ASH_GUEST_OS_PUBLIC_GUEST_OS_SK_FORWARDER_H_
#define CHROME_BROWSER_ASH_GUEST_OS_PUBLIC_GUEST_OS_SK_FORWARDER_H_

#include <string>

#include "chromeos/crosapi/mojom/guest_os_sk_forwarder.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"

class Profile;

namespace guest_os {

class GuestOsSkForwarder {
 public:
  GuestOsSkForwarder();
  ~GuestOsSkForwarder();

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

  void DeliverMessageToSKForwardingExtension(
      Profile* profile,
      const std::string& json_message,
      crosapi::mojom::GuestOsSkForwarder::ForwardRequestCallback);

  void BindCrosapiRemote(
      mojo::PendingRemote<crosapi::mojom::GuestOsSkForwarder> remote);

 private:
  mojo::Remote<crosapi::mojom::GuestOsSkForwarder> remote_;
};

}  // namespace guest_os

#endif  // CHROME_BROWSER_ASH_GUEST_OS_PUBLIC_GUEST_OS_SK_FORWARDER_H_