Commit 6678950a authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert MediaDrmStorage to new Mojo types

This CL converts MediaDrmStorage{Ptr, Request} in android_webview,
chrome, chromecast components and media to the new Mojo type.

Bug: 955171
Change-Id: I3a8eb5bd33128659fd09804368e96afb08ce03c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1871695
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Reviewed-by: default avatarYuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711987}
parent c3012c34
...@@ -91,6 +91,7 @@ ...@@ -91,6 +91,7 @@
#include "content/public/common/web_preferences.h" #include "content/public/common/web_preferences.h"
#include "media/mojo/buildflags.h" #include "media/mojo/buildflags.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "net/android/network_library.h" #include "net/android/network_library.h"
#include "net/http/http_util.h" #include "net/http/http_util.h"
#include "net/net_buildflags.h" #include "net/net_buildflags.h"
...@@ -242,8 +243,9 @@ void AllowEmptyOriginIdCB(base::OnceCallback<void(bool)> callback) { ...@@ -242,8 +243,9 @@ void AllowEmptyOriginIdCB(base::OnceCallback<void(bool)> callback) {
std::move(callback).Run(false); std::move(callback).Run(false);
} }
void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, void CreateMediaDrmStorage(
::media::mojom::MediaDrmStorageRequest request) { content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<::media::mojom::MediaDrmStorage> receiver) {
DCHECK(render_frame_host); DCHECK(render_frame_host);
if (render_frame_host->GetLastCommittedOrigin().opaque()) { if (render_frame_host->GetLastCommittedOrigin().opaque()) {
...@@ -266,7 +268,7 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, ...@@ -266,7 +268,7 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
// away. // away.
new cdm::MediaDrmStorageImpl( new cdm::MediaDrmStorageImpl(
render_frame_host, pref_service, base::BindRepeating(&CreateOriginId), render_frame_host, pref_service, base::BindRepeating(&CreateOriginId),
base::BindRepeating(&AllowEmptyOriginIdCB), std::move(request)); base::BindRepeating(&AllowEmptyOriginIdCB), std::move(receiver));
} }
#endif // BUILDFLAG(ENABLE_MOJO_CDM) #endif // BUILDFLAG(ENABLE_MOJO_CDM)
......
...@@ -118,8 +118,9 @@ void AllowEmptyOriginId(content::RenderFrameHost* render_frame_host, ...@@ -118,8 +118,9 @@ void AllowEmptyOriginId(content::RenderFrameHost* render_frame_host,
} // namespace } // namespace
void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, void CreateMediaDrmStorage(
media::mojom::MediaDrmStorageRequest request) { content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(render_frame_host); DCHECK(render_frame_host);
...@@ -155,5 +156,5 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, ...@@ -155,5 +156,5 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
new cdm::MediaDrmStorageImpl( new cdm::MediaDrmStorageImpl(
render_frame_host, pref_service, get_origin_id_cb, render_frame_host, pref_service, get_origin_id_cb,
base::BindRepeating(&AllowEmptyOriginId, render_frame_host), base::BindRepeating(&AllowEmptyOriginId, render_frame_host),
std::move(request)); std::move(receiver));
} }
...@@ -6,12 +6,14 @@ ...@@ -6,12 +6,14 @@
#define CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_ #define CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_
#include "media/mojo/mojom/media_drm_storage.mojom.h" #include "media/mojo/mojom/media_drm_storage.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace content { namespace content {
class RenderFrameHost; class RenderFrameHost;
} }
void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host, void CreateMediaDrmStorage(
media::mojom::MediaDrmStorageRequest request); content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver);
#endif // CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_ #endif // CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_
...@@ -78,6 +78,7 @@ ...@@ -78,6 +78,7 @@
#include "media/audio/audio_thread_impl.h" #include "media/audio/audio_thread_impl.h"
#include "media/base/media_switches.h" #include "media/base/media_switches.h"
#include "media/mojo/services/mojo_renderer_service.h" #include "media/mojo/services/mojo_renderer_service.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "net/ssl/ssl_cert_request_info.h" #include "net/ssl/ssl_cert_request_info.h"
#include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_context_getter.h"
#include "services/service_manager/embedder/descriptors.h" #include "services/service_manager/embedder/descriptors.h"
......
...@@ -654,8 +654,8 @@ MediaDrmStorageImpl::MediaDrmStorageImpl( ...@@ -654,8 +654,8 @@ MediaDrmStorageImpl::MediaDrmStorageImpl(
PrefService* pref_service, PrefService* pref_service,
GetOriginIdCB get_origin_id_cb, GetOriginIdCB get_origin_id_cb,
AllowEmptyOriginIdCB allow_empty_origin_id_cb, AllowEmptyOriginIdCB allow_empty_origin_id_cb,
media::mojom::MediaDrmStorageRequest request) mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver)
: FrameServiceBase(render_frame_host, std::move(request)), : FrameServiceBase(render_frame_host, std::move(receiver)),
pref_service_(pref_service), pref_service_(pref_service),
get_origin_id_cb_(get_origin_id_cb), get_origin_id_cb_(get_origin_id_cb),
allow_empty_origin_id_cb_(allow_empty_origin_id_cb) { allow_empty_origin_id_cb_(allow_empty_origin_id_cb) {
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_observer.h"
#include "media/mojo/mojom/media_drm_storage.mojom.h" #include "media/mojo/mojom/media_drm_storage.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/origin.h" #include "url/origin.h"
...@@ -86,11 +86,12 @@ class MediaDrmStorageImpl final ...@@ -86,11 +86,12 @@ class MediaDrmStorageImpl final
// |allow_empty_origin_id_cb| is used to determine if an empty origin ID is // |allow_empty_origin_id_cb| is used to determine if an empty origin ID is
// allowed or not. It is called if |get_origin_id_cb| is unable to return an // allowed or not. It is called if |get_origin_id_cb| is unable to return an
// origin ID. // origin ID.
MediaDrmStorageImpl(content::RenderFrameHost* render_frame_host, MediaDrmStorageImpl(
PrefService* pref_service, content::RenderFrameHost* render_frame_host,
GetOriginIdCB get_origin_id_cb, PrefService* pref_service,
AllowEmptyOriginIdCB allow_empty_origin_id_cb, GetOriginIdCB get_origin_id_cb,
media::mojom::MediaDrmStorageRequest request); AllowEmptyOriginIdCB allow_empty_origin_id_cb,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver);
// media::mojom::MediaDrmStorage implementation. // media::mojom::MediaDrmStorage implementation.
void Initialize(InitializeCallback callback) final; void Initialize(InitializeCallback callback) final;
......
...@@ -16,8 +16,7 @@ ...@@ -16,8 +16,7 @@
#include "content/public/test/navigation_simulator.h" #include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_renderer_host.h" #include "content/public/test/test_renderer_host.h"
#include "media/mojo/services/mojo_media_drm_storage.h" #include "media/mojo/services/mojo_media_drm_storage.h"
#include "mojo/public/cpp/bindings/interface_request.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/origin.h" #include "url/origin.h"
...@@ -93,11 +92,12 @@ class MediaDrmStorageImplTest : public content::RenderViewHostTestHarness { ...@@ -93,11 +92,12 @@ class MediaDrmStorageImplTest : public content::RenderViewHostTestHarness {
MediaDrmStorageImpl::GetOriginIdCB get_origin_id_cb, MediaDrmStorageImpl::GetOriginIdCB get_origin_id_cb,
MediaDrmStorageImpl::AllowEmptyOriginIdCB allow_empty_cb = MediaDrmStorageImpl::AllowEmptyOriginIdCB allow_empty_cb =
base::BindRepeating(&AllowEmptyOriginId)) { base::BindRepeating(&AllowEmptyOriginId)) {
mojo::PendingRemote<media::mojom::MediaDrmStorage> media_drm_storage_remote; mojo::PendingRemote<media::mojom::MediaDrmStorage>
auto receiver = media_drm_storage_remote.InitWithNewPipeAndPassReceiver(); pending_media_drm_storage;
auto receiver = pending_media_drm_storage.InitWithNewPipeAndPassReceiver();
auto media_drm_storage = std::make_unique<media::MojoMediaDrmStorage>( auto media_drm_storage = std::make_unique<media::MojoMediaDrmStorage>(
std::move(media_drm_storage_remote)); std::move(pending_media_drm_storage));
// The created object will be destroyed on connection error. // The created object will be destroyed on connection error.
new MediaDrmStorageImpl(rfh, pref_service_.get(), new MediaDrmStorageImpl(rfh, pref_service_.get(),
......
...@@ -24,12 +24,11 @@ std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher( ...@@ -24,12 +24,11 @@ std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher(
std::unique_ptr<MediaDrmStorage> CreateMediaDrmStorage( std::unique_ptr<MediaDrmStorage> CreateMediaDrmStorage(
service_manager::mojom::InterfaceProvider* host_interfaces) { service_manager::mojom::InterfaceProvider* host_interfaces) {
DCHECK(host_interfaces); DCHECK(host_interfaces);
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote; mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage;
service_manager::GetInterface( host_interfaces->GetInterface(
host_interfaces, mojom::MediaDrmStorage::Name_,
media_drm_storage_remote.InitWithNewPipeAndPassReceiver()); media_drm_storage.InitWithNewPipeAndPassReceiver().PassPipe());
return std::make_unique<MojoMediaDrmStorage>( return std::make_unique<MojoMediaDrmStorage>(std::move(media_drm_storage));
std::move(media_drm_storage_remote));
} }
} // namespace android_mojo_util } // namespace android_mojo_util
......
...@@ -19,8 +19,8 @@ namespace media { ...@@ -19,8 +19,8 @@ namespace media {
// never run. Handle connection error to make sure callbacks will always run. // never run. Handle connection error to make sure callbacks will always run.
MojoMediaDrmStorage::MojoMediaDrmStorage( MojoMediaDrmStorage::MojoMediaDrmStorage(
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote) mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage)
: media_drm_storage_remote_(std::move(media_drm_storage_remote)) { : media_drm_storage_(std::move(media_drm_storage)) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
} }
...@@ -28,14 +28,13 @@ MojoMediaDrmStorage::~MojoMediaDrmStorage() {} ...@@ -28,14 +28,13 @@ MojoMediaDrmStorage::~MojoMediaDrmStorage() {}
void MojoMediaDrmStorage::Initialize(InitCB init_cb) { void MojoMediaDrmStorage::Initialize(InitCB init_cb) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
media_drm_storage_remote_->Initialize( media_drm_storage_->Initialize(mojo::WrapCallbackWithDefaultInvokeIfNotRun(
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(init_cb), false, std::move(init_cb), false, base::nullopt));
base::nullopt));
} }
void MojoMediaDrmStorage::OnProvisioned(ResultCB result_cb) { void MojoMediaDrmStorage::OnProvisioned(ResultCB result_cb) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
media_drm_storage_remote_->OnProvisioned( media_drm_storage_->OnProvisioned(
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false)); mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false));
} }
...@@ -43,7 +42,7 @@ void MojoMediaDrmStorage::SavePersistentSession(const std::string& session_id, ...@@ -43,7 +42,7 @@ void MojoMediaDrmStorage::SavePersistentSession(const std::string& session_id,
const SessionData& session_data, const SessionData& session_data,
ResultCB result_cb) { ResultCB result_cb) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
media_drm_storage_remote_->SavePersistentSession( media_drm_storage_->SavePersistentSession(
session_id, session_id,
mojom::SessionData::New(session_data.key_set_id, session_data.mime_type, mojom::SessionData::New(session_data.key_set_id, session_data.mime_type,
session_data.key_type), session_data.key_type),
...@@ -54,7 +53,7 @@ void MojoMediaDrmStorage::LoadPersistentSession( ...@@ -54,7 +53,7 @@ void MojoMediaDrmStorage::LoadPersistentSession(
const std::string& session_id, const std::string& session_id,
LoadPersistentSessionCB load_persistent_session_cb) { LoadPersistentSessionCB load_persistent_session_cb) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
media_drm_storage_remote_->LoadPersistentSession( media_drm_storage_->LoadPersistentSession(
session_id, session_id,
mojo::WrapCallbackWithDefaultInvokeIfNotRun( mojo::WrapCallbackWithDefaultInvokeIfNotRun(
base::BindOnce(&MojoMediaDrmStorage::OnPersistentSessionLoaded, base::BindOnce(&MojoMediaDrmStorage::OnPersistentSessionLoaded,
...@@ -66,7 +65,7 @@ void MojoMediaDrmStorage::LoadPersistentSession( ...@@ -66,7 +65,7 @@ void MojoMediaDrmStorage::LoadPersistentSession(
void MojoMediaDrmStorage::RemovePersistentSession(const std::string& session_id, void MojoMediaDrmStorage::RemovePersistentSession(const std::string& session_id,
ResultCB result_cb) { ResultCB result_cb) {
DVLOG(1) << __func__; DVLOG(1) << __func__;
media_drm_storage_remote_->RemovePersistentSession( media_drm_storage_->RemovePersistentSession(
session_id, session_id,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false)); mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false));
} }
......
...@@ -18,12 +18,11 @@ ...@@ -18,12 +18,11 @@
namespace media { namespace media {
// A MediaDrmStorage that proxies to a // A MediaDrmStorage that proxies to a Remote<mojom::MediaDrmStorage>.
// mojo::PendingRemote<mojom::MediaDrmStorage>.
class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage { class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage {
public: public:
explicit MojoMediaDrmStorage( explicit MojoMediaDrmStorage(
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote); mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage);
~MojoMediaDrmStorage() final; ~MojoMediaDrmStorage() final;
// MediaDrmStorage implementation: // MediaDrmStorage implementation:
...@@ -43,7 +42,7 @@ class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage { ...@@ -43,7 +42,7 @@ class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage {
LoadPersistentSessionCB load_persistent_session_cb, LoadPersistentSessionCB load_persistent_session_cb,
mojom::SessionDataPtr session_data); mojom::SessionDataPtr session_data);
mojo::Remote<mojom::MediaDrmStorage> media_drm_storage_remote_; mojo::Remote<mojom::MediaDrmStorage> media_drm_storage_;
base::WeakPtrFactory<MojoMediaDrmStorage> weak_factory_{this}; base::WeakPtrFactory<MojoMediaDrmStorage> weak_factory_{this};
DISALLOW_COPY_AND_ASSIGN(MojoMediaDrmStorage); DISALLOW_COPY_AND_ASSIGN(MojoMediaDrmStorage);
......
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