Commit 06fa796d authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Convert OemCryptoService interface to the new Mojo

This CL applies mojo::PendingReceiver to all uses of
OemCryptoServiceRequest.

Bug: 955171
Change-Id: I8ec250d2a56f6e72d29e5d90c20d40587174c60b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2228253Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarHidehiko Abe <hidehiko@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#774897}
parent 65efa095
...@@ -73,7 +73,7 @@ ArcOemCryptoBridge::~ArcOemCryptoBridge() { ...@@ -73,7 +73,7 @@ ArcOemCryptoBridge::~ArcOemCryptoBridge() {
} }
void ArcOemCryptoBridge::OnBootstrapMojoConnection( void ArcOemCryptoBridge::OnBootstrapMojoConnection(
mojom::OemCryptoServiceRequest request, mojo::PendingReceiver<mojom::OemCryptoService> receiver,
bool result) { bool result) {
if (!result) { if (!result) {
// This can currently happen due to limited device support, so do not log // This can currently happen due to limited device support, so do not log
...@@ -84,10 +84,11 @@ void ArcOemCryptoBridge::OnBootstrapMojoConnection( ...@@ -84,10 +84,11 @@ void ArcOemCryptoBridge::OnBootstrapMojoConnection(
return; return;
} }
DVLOG(1) << "ArcOemCryptoBridge succeeded with Mojo bootstrapping."; DVLOG(1) << "ArcOemCryptoBridge succeeded with Mojo bootstrapping.";
ConnectToDaemon(std::move(request)); ConnectToDaemon(std::move(receiver));
} }
void ArcOemCryptoBridge::Connect(mojom::OemCryptoServiceRequest request) { void ArcOemCryptoBridge::Connect(
mojo::PendingReceiver<mojom::OemCryptoService> receiver) {
DVLOG(1) << "ArcOemCryptoBridge::Connect called"; DVLOG(1) << "ArcOemCryptoBridge::Connect called";
// Check that the user has Attestation for Content Protection enabled in // Check that the user has Attestation for Content Protection enabled in
...@@ -109,7 +110,7 @@ void ArcOemCryptoBridge::Connect(mojom::OemCryptoServiceRequest request) { ...@@ -109,7 +110,7 @@ void ArcOemCryptoBridge::Connect(mojom::OemCryptoServiceRequest request) {
if (oemcrypto_host_daemon_remote_.is_bound()) { if (oemcrypto_host_daemon_remote_.is_bound()) {
DVLOG(1) << "Re-using bootstrap connection for OemCryptoService Connect"; DVLOG(1) << "Re-using bootstrap connection for OemCryptoService Connect";
ConnectToDaemon(std::move(request)); ConnectToDaemon(std::move(receiver));
return; return;
} }
DVLOG(1) << "Bootstrapping the OemCrypto connection via D-Bus"; DVLOG(1) << "Bootstrapping the OemCrypto connection via D-Bus";
...@@ -139,11 +140,11 @@ void ArcOemCryptoBridge::Connect(mojom::OemCryptoServiceRequest request) { ...@@ -139,11 +140,11 @@ void ArcOemCryptoBridge::Connect(mojom::OemCryptoServiceRequest request) {
->BootstrapMojoConnection( ->BootstrapMojoConnection(
std::move(fd), std::move(fd),
base::BindOnce(&ArcOemCryptoBridge::OnBootstrapMojoConnection, base::BindOnce(&ArcOemCryptoBridge::OnBootstrapMojoConnection,
weak_factory_.GetWeakPtr(), std::move(request))); weak_factory_.GetWeakPtr(), std::move(receiver)));
} }
void ArcOemCryptoBridge::ConnectToDaemon( void ArcOemCryptoBridge::ConnectToDaemon(
mojom::OemCryptoServiceRequest request) { mojo::PendingReceiver<mojom::OemCryptoService> receiver) {
if (!oemcrypto_host_daemon_remote_) { if (!oemcrypto_host_daemon_remote_) {
VLOG(1) << "Mojo connection is already lost."; VLOG(1) << "Mojo connection is already lost.";
return; return;
...@@ -155,18 +156,18 @@ void ArcOemCryptoBridge::ConnectToDaemon( ...@@ -155,18 +156,18 @@ void ArcOemCryptoBridge::ConnectToDaemon(
content::GetIOThreadTaskRunner({}).get(), FROM_HERE, content::GetIOThreadTaskRunner({}).get(), FROM_HERE,
base::BindOnce(&GetGpuBufferManagerOnIOThread), base::BindOnce(&GetGpuBufferManagerOnIOThread),
base::BindOnce(&ArcOemCryptoBridge::FinishConnectingToDaemon, base::BindOnce(&ArcOemCryptoBridge::FinishConnectingToDaemon,
weak_factory_.GetWeakPtr(), std::move(request))); weak_factory_.GetWeakPtr(), std::move(receiver)));
} }
void ArcOemCryptoBridge::FinishConnectingToDaemon( void ArcOemCryptoBridge::FinishConnectingToDaemon(
mojom::OemCryptoServiceRequest request, mojo::PendingReceiver<mojom::OemCryptoService> receiver,
mojo::PendingRemote<mojom::ProtectedBufferManager> gpu_buffer_manager) { mojo::PendingRemote<mojom::ProtectedBufferManager> gpu_buffer_manager) {
if (!oemcrypto_host_daemon_remote_) { if (!oemcrypto_host_daemon_remote_) {
VLOG(1) << "Mojo connection is already lost."; VLOG(1) << "Mojo connection is already lost.";
return; return;
} }
oemcrypto_host_daemon_remote_->Connect(std::move(request), oemcrypto_host_daemon_remote_->Connect(std::move(receiver),
std::move(gpu_buffer_manager)); std::move(gpu_buffer_manager));
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "components/arc/mojom/oemcrypto.mojom.h" #include "components/arc/mojom/oemcrypto.mojom.h"
#include "components/arc/mojom/oemcrypto_daemon.mojom.h" #include "components/arc/mojom/oemcrypto_daemon.mojom.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
...@@ -37,14 +38,16 @@ class ArcOemCryptoBridge : public KeyedService, ...@@ -37,14 +38,16 @@ class ArcOemCryptoBridge : public KeyedService,
~ArcOemCryptoBridge() override; ~ArcOemCryptoBridge() override;
// OemCrypto Mojo host interface // OemCrypto Mojo host interface
void Connect(mojom::OemCryptoServiceRequest request) override; void Connect(
mojo::PendingReceiver<mojom::OemCryptoService> receiver) override;
private: private:
void OnBootstrapMojoConnection(mojom::OemCryptoServiceRequest request, void OnBootstrapMojoConnection(
mojo::PendingReceiver<mojom::OemCryptoService> receiver,
bool result); bool result);
void ConnectToDaemon(mojom::OemCryptoServiceRequest request); void ConnectToDaemon(mojo::PendingReceiver<mojom::OemCryptoService> receiver);
void FinishConnectingToDaemon( void FinishConnectingToDaemon(
mojom::OemCryptoServiceRequest request, mojo::PendingReceiver<mojom::OemCryptoService> receiver,
mojo::PendingRemote<mojom::ProtectedBufferManager> gpu_buffer_manager); mojo::PendingRemote<mojom::ProtectedBufferManager> gpu_buffer_manager);
void OnMojoConnectionError(); void OnMojoConnectionError();
......
...@@ -342,7 +342,7 @@ interface OemCryptoService { ...@@ -342,7 +342,7 @@ interface OemCryptoService {
// that runs in Chrome OS. // that runs in Chrome OS.
// Next Method ID: 1 // Next Method ID: 1
interface OemCryptoHost { interface OemCryptoHost {
Connect@0(OemCryptoService& oemcryptor); Connect@0(pending_receiver<OemCryptoService> oemcryptor);
}; };
// OemCryptoInstance is implemented in the liboemcrypto.so library that runs in // OemCryptoInstance is implemented in the liboemcrypto.so library that runs in
......
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