web_engine_media_resource_provider_impl.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_MEDIA_RESOURCE_PROVIDER_IMPL_H_
  5. #define FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_MEDIA_RESOURCE_PROVIDER_IMPL_H_
  6. #include <lib/fidl/cpp/interface_handle.h>
  7. #include "content/public/browser/document_service.h"
  8. #include "fuchsia_web/webengine/mojom/web_engine_media_resource_provider.mojom.h"
  9. namespace content {
  10. class RenderFrameHost;
  11. } // namespace content
  12. class WebEngineMediaResourceProviderImpl final
  13. : public content::DocumentService<mojom::WebEngineMediaResourceProvider> {
  14. public:
  15. ~WebEngineMediaResourceProviderImpl() override;
  16. WebEngineMediaResourceProviderImpl(
  17. const WebEngineMediaResourceProviderImpl&) = delete;
  18. WebEngineMediaResourceProviderImpl& operator=(
  19. const WebEngineMediaResourceProviderImpl&) = delete;
  20. WebEngineMediaResourceProviderImpl(
  21. const WebEngineMediaResourceProviderImpl&&) = delete;
  22. WebEngineMediaResourceProviderImpl& operator=(
  23. const WebEngineMediaResourceProviderImpl&&) = delete;
  24. static void Bind(
  25. content::RenderFrameHost* frame_host,
  26. mojo::PendingReceiver<mojom::WebEngineMediaResourceProvider> receiver);
  27. private:
  28. WebEngineMediaResourceProviderImpl(
  29. content::RenderFrameHost& render_frame_host,
  30. mojo::PendingReceiver<mojom::WebEngineMediaResourceProvider> receiver);
  31. // mojom::WebEngineMediaResourceProvider:
  32. void ShouldUseAudioConsumer(ShouldUseAudioConsumerCallback callback) override;
  33. void CreateAudioConsumer(
  34. fidl::InterfaceRequest<fuchsia::media::AudioConsumer> request) override;
  35. };
  36. #endif // FUCHSIA_WEB_WEBENGINE_BROWSER_WEB_ENGINE_MEDIA_RESOURCE_PROVIDER_IMPL_H_