Skip to content

Commit

Permalink
Convert MediaDrmStorage to new Mojo types
Browse files Browse the repository at this point in the history
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: Bo <boliu@chromium.org>
Reviewed-by: Ken Rockot <rockot@google.com>
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Reviewed-by: Yuchen Liu <yucliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711987}
  • Loading branch information
MyidShin authored and Commit Bot committed Nov 2, 2019
1 parent c3012c3 commit 6678950
Show file tree
Hide file tree
Showing 10 changed files with 44 additions and 40 deletions.
8 changes: 5 additions & 3 deletions android_webview/browser/aw_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
#include "content/public/common/web_preferences.h"
#include "media/mojo/buildflags.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/http/http_util.h"
#include "net/net_buildflags.h"
Expand Down Expand Up @@ -242,8 +243,9 @@ void AllowEmptyOriginIdCB(base::OnceCallback<void(bool)> callback) {
std::move(callback).Run(false);
}

void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
::media::mojom::MediaDrmStorageRequest request) {
void CreateMediaDrmStorage(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<::media::mojom::MediaDrmStorage> receiver) {
DCHECK(render_frame_host);

if (render_frame_host->GetLastCommittedOrigin().opaque()) {
Expand All @@ -266,7 +268,7 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
// away.
new cdm::MediaDrmStorageImpl(
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)

Expand Down
7 changes: 4 additions & 3 deletions chrome/browser/media/android/cdm/media_drm_storage_factory.cc
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,9 @@ void AllowEmptyOriginId(content::RenderFrameHost* render_frame_host,

} // namespace

void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
media::mojom::MediaDrmStorageRequest request) {
void CreateMediaDrmStorage(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver) {
DVLOG(1) << __func__;
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(render_frame_host);
Expand Down Expand Up @@ -155,5 +156,5 @@ void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
new cdm::MediaDrmStorageImpl(
render_frame_host, pref_service, get_origin_id_cb,
base::BindRepeating(&AllowEmptyOriginId, render_frame_host),
std::move(request));
std::move(receiver));
}
6 changes: 4 additions & 2 deletions chrome/browser/media/android/cdm/media_drm_storage_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@
#define CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_

#include "media/mojo/mojom/media_drm_storage.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"

namespace content {
class RenderFrameHost;
}

void CreateMediaDrmStorage(content::RenderFrameHost* render_frame_host,
media::mojom::MediaDrmStorageRequest request);
void CreateMediaDrmStorage(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver);

#endif // CHROME_BROWSER_MEDIA_ANDROID_CDM_MEDIA_DRM_STORAGE_FACTORY_H_
1 change: 1 addition & 0 deletions chromecast/browser/cast_content_browser_client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
#include "media/audio/audio_thread_impl.h"
#include "media/base/media_switches.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/url_request/url_request_context_getter.h"
#include "services/service_manager/embedder/descriptors.h"
Expand Down
4 changes: 2 additions & 2 deletions components/cdm/browser/media_drm_storage_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -654,8 +654,8 @@ MediaDrmStorageImpl::MediaDrmStorageImpl(
PrefService* pref_service,
GetOriginIdCB get_origin_id_cb,
AllowEmptyOriginIdCB allow_empty_origin_id_cb,
media::mojom::MediaDrmStorageRequest request)
: FrameServiceBase(render_frame_host, std::move(request)),
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver)
: FrameServiceBase(render_frame_host, std::move(receiver)),
pref_service_(pref_service),
get_origin_id_cb_(get_origin_id_cb),
allow_empty_origin_id_cb_(allow_empty_origin_id_cb) {
Expand Down
13 changes: 7 additions & 6 deletions components/cdm/browser/media_drm_storage_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents_observer.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/origin.h"

Expand Down Expand Up @@ -86,11 +86,12 @@ class MediaDrmStorageImpl final
// |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
// origin ID.
MediaDrmStorageImpl(content::RenderFrameHost* render_frame_host,
PrefService* pref_service,
GetOriginIdCB get_origin_id_cb,
AllowEmptyOriginIdCB allow_empty_origin_id_cb,
media::mojom::MediaDrmStorageRequest request);
MediaDrmStorageImpl(
content::RenderFrameHost* render_frame_host,
PrefService* pref_service,
GetOriginIdCB get_origin_id_cb,
AllowEmptyOriginIdCB allow_empty_origin_id_cb,
mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver);

// media::mojom::MediaDrmStorage implementation.
void Initialize(InitializeCallback callback) final;
Expand Down
10 changes: 5 additions & 5 deletions components/cdm/browser/media_drm_storage_impl_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
#include "content/public/test/navigation_simulator.h"
#include "content/public/test/test_renderer_host.h"
#include "media/mojo/services/mojo_media_drm_storage.h"
#include "mojo/public/cpp/bindings/interface_request.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
#include "url/origin.h"
Expand Down Expand Up @@ -93,11 +92,12 @@ class MediaDrmStorageImplTest : public content::RenderViewHostTestHarness {
MediaDrmStorageImpl::GetOriginIdCB get_origin_id_cb,
MediaDrmStorageImpl::AllowEmptyOriginIdCB allow_empty_cb =
base::BindRepeating(&AllowEmptyOriginId)) {
mojo::PendingRemote<media::mojom::MediaDrmStorage> media_drm_storage_remote;
auto receiver = media_drm_storage_remote.InitWithNewPipeAndPassReceiver();
mojo::PendingRemote<media::mojom::MediaDrmStorage>
pending_media_drm_storage;
auto receiver = pending_media_drm_storage.InitWithNewPipeAndPassReceiver();

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.
new MediaDrmStorageImpl(rfh, pref_service_.get(),
Expand Down
11 changes: 5 additions & 6 deletions media/mojo/services/android_mojo_util.cc
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,11 @@ std::unique_ptr<ProvisionFetcher> CreateProvisionFetcher(
std::unique_ptr<MediaDrmStorage> CreateMediaDrmStorage(
service_manager::mojom::InterfaceProvider* host_interfaces) {
DCHECK(host_interfaces);
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote;
service_manager::GetInterface(
host_interfaces,
media_drm_storage_remote.InitWithNewPipeAndPassReceiver());
return std::make_unique<MojoMediaDrmStorage>(
std::move(media_drm_storage_remote));
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage;
host_interfaces->GetInterface(
mojom::MediaDrmStorage::Name_,
media_drm_storage.InitWithNewPipeAndPassReceiver().PassPipe());
return std::make_unique<MojoMediaDrmStorage>(std::move(media_drm_storage));
}

} // namespace android_mojo_util
Expand Down
17 changes: 8 additions & 9 deletions media/mojo/services/mojo_media_drm_storage.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,30 @@ namespace media {
// never run. Handle connection error to make sure callbacks will always run.

MojoMediaDrmStorage::MojoMediaDrmStorage(
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote)
: media_drm_storage_remote_(std::move(media_drm_storage_remote)) {
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage)
: media_drm_storage_(std::move(media_drm_storage)) {
DVLOG(1) << __func__;
}

MojoMediaDrmStorage::~MojoMediaDrmStorage() {}

void MojoMediaDrmStorage::Initialize(InitCB init_cb) {
DVLOG(1) << __func__;
media_drm_storage_remote_->Initialize(
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(init_cb), false,
base::nullopt));
media_drm_storage_->Initialize(mojo::WrapCallbackWithDefaultInvokeIfNotRun(
std::move(init_cb), false, base::nullopt));
}

void MojoMediaDrmStorage::OnProvisioned(ResultCB result_cb) {
DVLOG(1) << __func__;
media_drm_storage_remote_->OnProvisioned(
media_drm_storage_->OnProvisioned(
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false));
}

void MojoMediaDrmStorage::SavePersistentSession(const std::string& session_id,
const SessionData& session_data,
ResultCB result_cb) {
DVLOG(1) << __func__;
media_drm_storage_remote_->SavePersistentSession(
media_drm_storage_->SavePersistentSession(
session_id,
mojom::SessionData::New(session_data.key_set_id, session_data.mime_type,
session_data.key_type),
Expand All @@ -54,7 +53,7 @@ void MojoMediaDrmStorage::LoadPersistentSession(
const std::string& session_id,
LoadPersistentSessionCB load_persistent_session_cb) {
DVLOG(1) << __func__;
media_drm_storage_remote_->LoadPersistentSession(
media_drm_storage_->LoadPersistentSession(
session_id,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(
base::BindOnce(&MojoMediaDrmStorage::OnPersistentSessionLoaded,
Expand All @@ -66,7 +65,7 @@ void MojoMediaDrmStorage::LoadPersistentSession(
void MojoMediaDrmStorage::RemovePersistentSession(const std::string& session_id,
ResultCB result_cb) {
DVLOG(1) << __func__;
media_drm_storage_remote_->RemovePersistentSession(
media_drm_storage_->RemovePersistentSession(
session_id,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(result_cb), false));
}
Expand Down
7 changes: 3 additions & 4 deletions media/mojo/services/mojo_media_drm_storage.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@

namespace media {

// A MediaDrmStorage that proxies to a
// mojo::PendingRemote<mojom::MediaDrmStorage>.
// A MediaDrmStorage that proxies to a Remote<mojom::MediaDrmStorage>.
class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage {
public:
explicit MojoMediaDrmStorage(
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage_remote);
mojo::PendingRemote<mojom::MediaDrmStorage> media_drm_storage);
~MojoMediaDrmStorage() final;

// MediaDrmStorage implementation:
Expand All @@ -43,7 +42,7 @@ class MEDIA_MOJO_EXPORT MojoMediaDrmStorage : public MediaDrmStorage {
LoadPersistentSessionCB load_persistent_session_cb,
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};

DISALLOW_COPY_AND_ASSIGN(MojoMediaDrmStorage);
Expand Down

0 comments on commit 6678950

Please sign in to comment.