blob: 49cf3c9a2ffa6c522edcc89e5d7068b7115c80f0 [file] [log] [blame]
// Copyright 2025 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_BOCA_RECEIVER_RECEIVER_HANDLER_DELEGATE_IMPL_H_
#define CHROME_BROWSER_ASH_BOCA_RECEIVER_RECEIVER_HANDLER_DELEGATE_IMPL_H_
#include <memory>
#include <string_view>
#include "base/memory/raw_ptr.h"
#include "chromeos/ash/components/boca/receiver/receiver_handler_delegate.h"
namespace ash::boca {
class FCMHandler;
class SpotlightRemotingClientManager;
} // namespace ash::boca
namespace content {
class WebUI;
} // namespace content
namespace google_apis {
class RequestSender;
} // namespace google_apis
namespace net {
struct NetworkTrafficAnnotationTag;
} // namespace net
namespace ash::boca_receiver {
class ReceiverHandlerDelegateImpl : public ReceiverHandlerDelegate {
public:
explicit ReceiverHandlerDelegateImpl(content::WebUI* web_ui);
ReceiverHandlerDelegateImpl(const ReceiverHandlerDelegateImpl&) = delete;
ReceiverHandlerDelegateImpl& operator=(const ReceiverHandlerDelegateImpl&) =
delete;
~ReceiverHandlerDelegateImpl() override;
// ReceiverHandlerDelegate:
boca::FCMHandler* GetFcmHandler() const override;
std::unique_ptr<google_apis::RequestSender> CreateRequestSender(
std::string_view requester_id,
const net::NetworkTrafficAnnotationTag& traffic_annotation)
const override;
boca::SpotlightRemotingClientManager* GetRemotingClient() const override;
bool IsAppEnabled(std::string_view url) override;
private:
raw_ptr<content::WebUI> web_ui_;
};
} // namespace ash::boca_receiver
#endif // CHROME_BROWSER_ASH_BOCA_RECEIVER_RECEIVER_HANDLER_DELEGATE_IMPL_H_