Commit e2eea508 authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert MediaMetricsProvider to new Mojo types

This CL converts MediaMetricsProvider{Ptr, Request} in content and
media to the new Mojo type.

Bug: 955171
Change-Id: I12a9cd0c377a6081ad00f3503682d13078bc6b9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1880990Reviewed-by: default avatarFrank Liberato <liberato@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#709749}
parent d7c43476
......@@ -41,7 +41,7 @@
#include "media/renderers/default_decoder_factory.h"
#include "media/renderers/default_renderer_factory.h"
#include "media/video/gpu_video_accelerator_factories.h"
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/service_manager/public/cpp/connect.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "services/viz/public/cpp/gpu/context_provider_command_buffer.h"
......@@ -363,8 +363,9 @@ blink::WebMediaPlayer* MediaFactory::CreateMediaPlayer(
DCHECK_EQ(static_cast<FrameFetchContext*>(fetch_context_.get())->frame(),
web_frame);
media::mojom::MediaMetricsProviderPtr metrics_provider;
remote_interfaces_->GetInterface(mojo::MakeRequest(&metrics_provider));
mojo::PendingRemote<media::mojom::MediaMetricsProvider> metrics_provider;
remote_interfaces_->GetInterface(
metrics_provider.InitWithNewPipeAndPassReceiver());
scoped_refptr<base::SingleThreadTaskRunner>
video_frame_compositor_task_runner;
......
......@@ -42,6 +42,7 @@
#include "media/blink/webmediaplayer_params.h"
#include "media/filters/pipeline_controller.h"
#include "media/renderers/paint_canvas_video_renderer.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/media_session/public/cpp/media_position.h"
#include "third_party/blink/public/platform/media/webmediaplayer_delegate.h"
#include "third_party/blink/public/platform/web_audio_source_provider.h"
......@@ -964,7 +965,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
base::CancelableClosure update_background_status_cb_;
mojom::MediaMetricsProviderPtr media_metrics_provider_;
mojo::Remote<mojom::MediaMetricsProvider> media_metrics_provider_;
base::Optional<ReadyState> stale_state_override_for_testing_;
......
......@@ -44,6 +44,7 @@
#include "media/renderers/default_decoder_factory.h"
#include "media/renderers/default_renderer_factory.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -346,7 +347,7 @@ class WebMediaPlayerImplTest : public testing::Test {
factory_selector->StartRequestRemotePlayStateCB(base::DoNothing());
#endif
mojom::MediaMetricsProviderPtr provider;
mojo::Remote<mojom::MediaMetricsProvider> provider;
MediaMetricsProvider::Create(
MediaMetricsProvider::BrowsingMode::kNormal,
MediaMetricsProvider::FrameStatus::kNotTopFrame,
......@@ -354,7 +355,7 @@ class WebMediaPlayerImplTest : public testing::Test {
base::BindRepeating([]() { return learning::FeatureValue(0); }),
VideoDecodePerfHistory::SaveCallback(),
MediaMetricsProvider::GetLearningSessionCallback(),
mojo::MakeRequest(&provider));
provider.BindNewPipeAndPassReceiver());
// Initialize provider since none of the tests below actually go through the
// full loading/pipeline initialize phase. If this ever changes the provider
......@@ -372,7 +373,7 @@ class WebMediaPlayerImplTest : public testing::Test {
base::BindRepeating(&WebMediaPlayerImplTest::OnAdjustAllocatedMemory,
base::Unretained(this)),
nullptr, RequestRoutingTokenCallback(), nullptr, false, false,
std::move(provider),
provider.Unbind(),
base::BindOnce(&WebMediaPlayerImplTest::CreateMockSurfaceLayerBridge,
base::Unretained(this)),
viz::TestContextProvider::Create(),
......
......@@ -25,7 +25,7 @@ WebMediaPlayerParams::WebMediaPlayerParams(
base::WeakPtr<MediaObserver> media_observer,
bool enable_instant_source_buffer_gc,
bool embedded_media_experience_enabled,
mojom::MediaMetricsProviderPtr metrics_provider,
mojo::PendingRemote<mojom::MediaMetricsProvider> metrics_provider,
CreateSurfaceLayerBridgeCB create_bridge_callback,
scoped_refptr<viz::ContextProvider> context_provider,
blink::WebMediaPlayer::SurfaceLayerMode use_surface_layer_for_video,
......
......@@ -21,6 +21,7 @@
#include "media/base/routing_token_callback.h"
#include "media/blink/media_blink_export.h"
#include "media/mojo/mojom/media_metrics_provider.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/platform/web_media_player.h"
#include "third_party/blink/public/platform/web_video_frame_submitter.h"
......@@ -81,7 +82,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerParams {
base::WeakPtr<MediaObserver> media_observer,
bool enable_instant_source_buffer_gc,
bool embedded_media_experience_enabled,
mojom::MediaMetricsProviderPtr metrics_provider,
mojo::PendingRemote<mojom::MediaMetricsProvider> metrics_provider,
CreateSurfaceLayerBridgeCB bridge_callback,
scoped_refptr<viz::ContextProvider> context_provider,
blink::WebMediaPlayer::SurfaceLayerMode use_surface_layer_for_video,
......@@ -100,7 +101,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerParams {
std::unique_ptr<MediaLog> take_media_log() { return std::move(media_log_); }
mojom::MediaMetricsProviderPtr take_metrics_provider() {
mojo::PendingRemote<mojom::MediaMetricsProvider> take_metrics_provider() {
return std::move(metrics_provider_);
}
......@@ -186,7 +187,7 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerParams {
base::WeakPtr<MediaObserver> media_observer_;
bool enable_instant_source_buffer_gc_;
const bool embedded_media_experience_enabled_;
mojom::MediaMetricsProviderPtr metrics_provider_;
mojo::PendingRemote<mojom::MediaMetricsProvider> metrics_provider_;
CreateSurfaceLayerBridgeCB create_bridge_callback_;
scoped_refptr<viz::ContextProvider> context_provider_;
blink::WebMediaPlayer::SurfaceLayerMode use_surface_layer_for_video_;
......
......@@ -168,12 +168,12 @@ void MediaMetricsProvider::Create(
GetOriginCallback get_origin_cb,
VideoDecodePerfHistory::SaveCallback save_cb,
GetLearningSessionCallback learning_session_cb,
mojom::MediaMetricsProviderRequest request) {
mojo::MakeStrongBinding(
mojo::PendingReceiver<mojom::MediaMetricsProvider> receiver) {
mojo::MakeSelfOwnedReceiver(
std::make_unique<MediaMetricsProvider>(
is_incognito, is_top_frame, get_source_id_cb.Run(),
get_origin_cb.Run(), std::move(save_cb), learning_session_cb),
std::move(request));
std::move(receiver));
}
void MediaMetricsProvider::SetHasPlayed() {
......
......@@ -58,13 +58,14 @@ class MEDIA_MOJO_EXPORT MediaMetricsProvider
// returns. The intention is that they'll be run to produce the constructor
// arguments for MediaMetricsProvider synchronously. They should not be
// copied or moved for later.
static void Create(BrowsingMode is_incognito,
FrameStatus is_top_frame,
GetSourceIdCallback get_source_id_cb,
GetOriginCallback get_origin_cb,
VideoDecodePerfHistory::SaveCallback save_cb,
GetLearningSessionCallback learning_session_cb,
mojom::MediaMetricsProviderRequest request);
static void Create(
BrowsingMode is_incognito,
FrameStatus is_top_frame,
GetSourceIdCallback get_source_id_cb,
GetOriginCallback get_origin_cb,
VideoDecodePerfHistory::SaveCallback save_cb,
GetLearningSessionCallback learning_session_cb,
mojo::PendingReceiver<mojom::MediaMetricsProvider> receiver);
private:
struct PipelineInfo {
......
......@@ -13,6 +13,7 @@
#include "components/ukm/test_ukm_recorder.h"
#include "media/mojo/services/media_metrics_provider.h"
#include "media/mojo/services/watch_time_recorder.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -48,7 +49,7 @@ class MediaMetricsProviderTest : public testing::Test {
base::BindRepeating([]() { return learning::FeatureValue(0); }),
VideoDecodePerfHistory::SaveCallback(),
MediaMetricsProvider::GetLearningSessionCallback(),
mojo::MakeRequest(&provider_));
provider_.BindNewPipeAndPassReceiver());
provider_->Initialize(is_mse, scheme);
}
......@@ -64,7 +65,7 @@ class MediaMetricsProviderTest : public testing::Test {
base::TestMessageLoop message_loop_;
std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_recorder_;
ukm::SourceId source_id_;
mojom::MediaMetricsProviderPtr provider_;
mojo::Remote<mojom::MediaMetricsProvider> provider_;
DISALLOW_COPY_AND_ASSIGN(MediaMetricsProviderTest);
};
......
......@@ -23,6 +23,7 @@
#include "media/base/video_codecs.h"
#include "media/base/watch_time_keys.h"
#include "media/mojo/services/media_metrics_provider.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -67,7 +68,7 @@ class WatchTimeRecorderTest : public testing::Test {
[]() { return learning::FeatureValue(0); }) /* origin callback */,
VideoDecodePerfHistory::SaveCallback(),
MediaMetricsProvider::GetLearningSessionCallback(),
mojo::MakeRequest(&provider_));
provider_.BindNewPipeAndPassReceiver());
}
~WatchTimeRecorderTest() override { base::RunLoop().RunUntilIdle(); }
......@@ -172,7 +173,7 @@ class WatchTimeRecorderTest : public testing::Test {
protected:
base::test::SingleThreadTaskEnvironment task_environment_;
mojom::MediaMetricsProviderPtr provider_;
mojo::Remote<mojom::MediaMetricsProvider> provider_;
std::unique_ptr<base::HistogramTester> histogram_tester_;
std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_recorder_;
ukm::SourceId source_id_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment