Commit 2b5dd95a authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert interfaces from pdf_to_emf_converter.mojom to new Mojo types

This CL converts PdfToEmfConverterClient, PdfToEmfConverter,
and PdfToEmfConverterFactory to new mojo types using
PendingRemote, Remote. Receiver, and PendingReceiver.

Bug: 955171
Change-Id: I9e76d7b9360856e7f415ec24d408fd9d6a21e227
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1827276Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#704010}
parent 6e443093
...@@ -28,7 +28,10 @@ ...@@ -28,7 +28,10 @@
#include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h" #include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_data.h" #include "content/public/browser/child_process_data.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "printing/emf_win.h" #include "printing/emf_win.h"
#include "printing/pdf_render_settings.h" #include "printing/pdf_render_settings.h"
...@@ -41,8 +44,8 @@ namespace { ...@@ -41,8 +44,8 @@ namespace {
class PdfToEmfConverterClientImpl : public mojom::PdfToEmfConverterClient { class PdfToEmfConverterClientImpl : public mojom::PdfToEmfConverterClient {
public: public:
explicit PdfToEmfConverterClientImpl( explicit PdfToEmfConverterClientImpl(
mojom::PdfToEmfConverterClientRequest request) mojo::PendingReceiver<mojom::PdfToEmfConverterClient> receiver)
: binding_(this, std::move(request)) {} : receiver_(this, std::move(receiver)) {}
private: private:
// mojom::PdfToEmfConverterClient implementation. // mojom::PdfToEmfConverterClient implementation.
...@@ -84,7 +87,7 @@ class PdfToEmfConverterClientImpl : public mojom::PdfToEmfConverterClient { ...@@ -84,7 +87,7 @@ class PdfToEmfConverterClientImpl : public mojom::PdfToEmfConverterClient {
std::move(callback).Run(); std::move(callback).Run();
} }
mojo::Binding<mojom::PdfToEmfConverterClient> binding_; mojo::Receiver<mojom::PdfToEmfConverterClient> receiver_;
}; };
// Emf subclass that knows how to play back PostScript data embedded as EMF // Emf subclass that knows how to play back PostScript data embedded as EMF
...@@ -164,7 +167,8 @@ class PdfConverterImpl : public PdfConverter { ...@@ -164,7 +167,8 @@ class PdfConverterImpl : public PdfConverter {
std::unique_ptr<MetafilePlayer> GetMetaFileFromMapping( std::unique_ptr<MetafilePlayer> GetMetaFileFromMapping(
base::ReadOnlySharedMemoryMapping mapping); base::ReadOnlySharedMemoryMapping mapping);
void OnPageCount(mojom::PdfToEmfConverterPtr converter, uint32_t page_count); void OnPageCount(mojo::PendingRemote<mojom::PdfToEmfConverter> converter,
uint32_t page_count);
void OnPageDone(base::ReadOnlySharedMemoryRegion emf_region, void OnPageDone(base::ReadOnlySharedMemoryRegion emf_region,
float scale_factor); float scale_factor);
...@@ -191,9 +195,9 @@ class PdfConverterImpl : public PdfConverter { ...@@ -191,9 +195,9 @@ class PdfConverterImpl : public PdfConverter {
std::unique_ptr<PdfToEmfConverterClientImpl> std::unique_ptr<PdfToEmfConverterClientImpl>
pdf_to_emf_converter_client_impl_; pdf_to_emf_converter_client_impl_;
mojom::PdfToEmfConverterPtr pdf_to_emf_converter_; mojo::Remote<mojom::PdfToEmfConverter> pdf_to_emf_converter_;
mojom::PdfToEmfConverterFactoryPtr pdf_to_emf_converter_factory_; mojo::Remote<mojom::PdfToEmfConverterFactory> pdf_to_emf_converter_factory_;
base::WeakPtrFactory<PdfConverterImpl> weak_ptr_factory_{this}; base::WeakPtrFactory<PdfConverterImpl> weak_ptr_factory_{this};
...@@ -269,29 +273,31 @@ void PdfConverterImpl::Initialize(scoped_refptr<base::RefCountedMemory> data) { ...@@ -269,29 +273,31 @@ void PdfConverterImpl::Initialize(scoped_refptr<base::RefCountedMemory> data) {
memcpy(memory.mapping.memory(), data->front(), data->size()); memcpy(memory.mapping.memory(), data->front(), data->size());
GetPrintingService()->BindPdfToEmfConverterFactory( GetPrintingService()->BindPdfToEmfConverterFactory(
mojo::MakeRequest(&pdf_to_emf_converter_factory_)); pdf_to_emf_converter_factory_.BindNewPipeAndPassReceiver());
pdf_to_emf_converter_factory_.set_connection_error_handler(base::BindOnce( pdf_to_emf_converter_factory_.set_disconnect_handler(base::BindOnce(
&PdfConverterImpl::OnFailed, weak_ptr_factory_.GetWeakPtr(), &PdfConverterImpl::OnFailed, weak_ptr_factory_.GetWeakPtr(),
std::string("Connection to PdfToEmfConverterFactory error."))); std::string("Connection to PdfToEmfConverterFactory error.")));
mojom::PdfToEmfConverterClientPtr pdf_to_emf_converter_client_ptr; mojo::PendingRemote<mojom::PdfToEmfConverterClient>
pdf_to_emf_converter_client_remote;
pdf_to_emf_converter_client_impl_ = pdf_to_emf_converter_client_impl_ =
std::make_unique<PdfToEmfConverterClientImpl>( std::make_unique<PdfToEmfConverterClientImpl>(
mojo::MakeRequest(&pdf_to_emf_converter_client_ptr)); pdf_to_emf_converter_client_remote.InitWithNewPipeAndPassReceiver());
pdf_to_emf_converter_factory_->CreateConverter( pdf_to_emf_converter_factory_->CreateConverter(
std::move(memory.region), settings_, std::move(memory.region), settings_,
std::move(pdf_to_emf_converter_client_ptr), std::move(pdf_to_emf_converter_client_remote),
base::BindOnce(&PdfConverterImpl::OnPageCount, base::BindOnce(&PdfConverterImpl::OnPageCount,
weak_ptr_factory_.GetWeakPtr())); weak_ptr_factory_.GetWeakPtr()));
} }
void PdfConverterImpl::OnPageCount(mojom::PdfToEmfConverterPtr converter, void PdfConverterImpl::OnPageCount(
uint32_t page_count) { mojo::PendingRemote<mojom::PdfToEmfConverter> converter,
uint32_t page_count) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!pdf_to_emf_converter_.is_bound()); DCHECK(!pdf_to_emf_converter_.is_bound());
pdf_to_emf_converter_ = std::move(converter); pdf_to_emf_converter_.Bind(std::move(converter));
pdf_to_emf_converter_.set_connection_error_handler(base::BindOnce( pdf_to_emf_converter_.set_disconnect_handler(base::BindOnce(
&PdfConverterImpl::OnFailed, weak_ptr_factory_.GetWeakPtr(), &PdfConverterImpl::OnFailed, weak_ptr_factory_.GetWeakPtr(),
std::string("Connection to PdfToEmfConverter error."))); std::string("Connection to PdfToEmfConverter error.")));
std::move(start_callback_).Run(page_count); std::move(start_callback_).Run(page_count);
......
...@@ -41,7 +41,8 @@ ...@@ -41,7 +41,8 @@
#include "content/public/common/sandboxed_process_launcher_delegate.h" #include "content/public/common/sandboxed_process_launcher_delegate.h"
#include "content/public/common/service_manager_connection.h" #include "content/public/common/service_manager_connection.h"
#include "content/public/common/service_names.mojom.h" #include "content/public/common/service_names.mojom.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/platform/named_platform_channel.h" #include "mojo/public/cpp/platform/named_platform_channel.h"
#include "mojo/public/cpp/platform/platform_channel.h" #include "mojo/public/cpp/platform/platform_channel.h"
...@@ -117,8 +118,8 @@ class ServicePdfToEmfConverterClientImpl ...@@ -117,8 +118,8 @@ class ServicePdfToEmfConverterClientImpl
: public printing::mojom::PdfToEmfConverterClient { : public printing::mojom::PdfToEmfConverterClient {
public: public:
explicit ServicePdfToEmfConverterClientImpl( explicit ServicePdfToEmfConverterClientImpl(
printing::mojom::PdfToEmfConverterClientRequest request) mojo::PendingReceiver<printing::mojom::PdfToEmfConverterClient> receiver)
: binding_(this, std::move(request)) {} : receiver_(this, std::move(receiver)) {}
private: private:
// mojom::PdfToEmfConverterClient: // mojom::PdfToEmfConverterClient:
...@@ -129,7 +130,7 @@ class ServicePdfToEmfConverterClientImpl ...@@ -129,7 +130,7 @@ class ServicePdfToEmfConverterClientImpl
std::move(callback).Run(); std::move(callback).Run();
} }
mojo::Binding<printing::mojom::PdfToEmfConverterClient> binding_; mojo::Receiver<printing::mojom::PdfToEmfConverterClient> receiver_;
}; };
} // namespace } // namespace
...@@ -145,31 +146,34 @@ class ServiceUtilityProcessHost::PdfToEmfState { ...@@ -145,31 +146,34 @@ class ServiceUtilityProcessHost::PdfToEmfState {
const printing::PdfRenderSettings& conversion_settings) { const printing::PdfRenderSettings& conversion_settings) {
weak_host_->BindInterface( weak_host_->BindInterface(
printing::mojom::PdfToEmfConverterFactory::Name_, printing::mojom::PdfToEmfConverterFactory::Name_,
mojo::MakeRequest(&pdf_to_emf_converter_factory_).PassMessagePipe()); pdf_to_emf_converter_factory_.BindNewPipeAndPassReceiver().PassPipe());
pdf_to_emf_converter_factory_.set_connection_error_handler(base::BindOnce( pdf_to_emf_converter_factory_.set_disconnect_handler(base::BindOnce(
&PdfToEmfState::OnFailed, weak_host_, &PdfToEmfState::OnFailed, weak_host_,
std::string("Connection to PdfToEmfConverterFactory error."))); std::string("Connection to PdfToEmfConverterFactory error.")));
printing::mojom::PdfToEmfConverterClientPtr pdf_to_emf_converter_client_ptr; mojo::PendingRemote<printing::mojom::PdfToEmfConverterClient>
pdf_to_emf_converter_client_remote;
pdf_to_emf_converter_client_impl_ = pdf_to_emf_converter_client_impl_ =
std::make_unique<ServicePdfToEmfConverterClientImpl>( std::make_unique<ServicePdfToEmfConverterClientImpl>(
mojo::MakeRequest(&pdf_to_emf_converter_client_ptr)); pdf_to_emf_converter_client_remote
.InitWithNewPipeAndPassReceiver());
pdf_to_emf_converter_factory_->CreateConverter( pdf_to_emf_converter_factory_->CreateConverter(
std::move(pdf_region), conversion_settings, std::move(pdf_region), conversion_settings,
std::move(pdf_to_emf_converter_client_ptr), std::move(pdf_to_emf_converter_client_remote),
base::BindOnce( base::BindOnce(
&ServiceUtilityProcessHost::OnRenderPDFPagesToMetafilesPageCount, &ServiceUtilityProcessHost::OnRenderPDFPagesToMetafilesPageCount,
weak_host_)); weak_host_));
return true; return true;
} }
void GotPageCount(printing::mojom::PdfToEmfConverterPtr converter, void GotPageCount(
uint32_t page_count) { mojo::PendingRemote<printing::mojom::PdfToEmfConverter> converter,
uint32_t page_count) {
DCHECK(!pdf_to_emf_converter_.is_bound()); DCHECK(!pdf_to_emf_converter_.is_bound());
pdf_to_emf_converter_ = std::move(converter); pdf_to_emf_converter_.Bind(std::move(converter));
pdf_to_emf_converter_.set_connection_error_handler( pdf_to_emf_converter_.set_disconnect_handler(
base::BindOnce(&PdfToEmfState::OnFailed, weak_host_, base::BindOnce(&PdfToEmfState::OnFailed, weak_host_,
std::string("Connection to PdfToEmfConverter error."))); std::string("Connection to PdfToEmfConverter error.")));
page_count_ = page_count; page_count_ = page_count;
...@@ -223,9 +227,10 @@ class ServiceUtilityProcessHost::PdfToEmfState { ...@@ -223,9 +227,10 @@ class ServiceUtilityProcessHost::PdfToEmfState {
std::unique_ptr<ServicePdfToEmfConverterClientImpl> std::unique_ptr<ServicePdfToEmfConverterClientImpl>
pdf_to_emf_converter_client_impl_; pdf_to_emf_converter_client_impl_;
printing::mojom::PdfToEmfConverterPtr pdf_to_emf_converter_; mojo::Remote<printing::mojom::PdfToEmfConverter> pdf_to_emf_converter_;
printing::mojom::PdfToEmfConverterFactoryPtr pdf_to_emf_converter_factory_; mojo::Remote<printing::mojom::PdfToEmfConverterFactory>
pdf_to_emf_converter_factory_;
}; };
ServiceUtilityProcessHost::ServiceUtilityProcessHost( ServiceUtilityProcessHost::ServiceUtilityProcessHost(
...@@ -492,7 +497,7 @@ void ServiceUtilityProcessHost::OnMetafileSpooled(bool success) { ...@@ -492,7 +497,7 @@ void ServiceUtilityProcessHost::OnMetafileSpooled(bool success) {
} }
void ServiceUtilityProcessHost::OnRenderPDFPagesToMetafilesPageCount( void ServiceUtilityProcessHost::OnRenderPDFPagesToMetafilesPageCount(
printing::mojom::PdfToEmfConverterPtr converter, mojo::PendingRemote<printing::mojom::PdfToEmfConverter> converter,
uint32_t page_count) { uint32_t page_count) {
DCHECK(waiting_for_reply_); DCHECK(waiting_for_reply_);
if (page_count == 0 || pdf_to_emf_state_->has_page_count()) if (page_count == 0 || pdf_to_emf_state_->has_page_count())
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h" #include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h"
#include "content/public/common/child_process_host_delegate.h" #include "content/public/common/child_process_host_delegate.h"
#include "ipc/ipc_platform_file.h" #include "ipc/ipc_platform_file.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/system/invitation.h" #include "mojo/public/cpp/system/invitation.h"
#include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/identity.h"
...@@ -143,7 +144,7 @@ class ServiceUtilityProcessHost : public content::ChildProcessHostDelegate { ...@@ -143,7 +144,7 @@ class ServiceUtilityProcessHost : public content::ChildProcessHostDelegate {
// PdfToEmfState callbacks: // PdfToEmfState callbacks:
void OnRenderPDFPagesToMetafilesPageCount( void OnRenderPDFPagesToMetafilesPageCount(
printing::mojom::PdfToEmfConverterPtr converter, mojo::PendingRemote<printing::mojom::PdfToEmfConverter> converter,
uint32_t page_count); uint32_t page_count);
void OnRenderPDFPagesToMetafilesPageDone( void OnRenderPDFPagesToMetafilesPageDone(
base::ReadOnlySharedMemoryRegion emf_region, base::ReadOnlySharedMemoryRegion emf_region,
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "base/lazy_instance.h" #include "base/lazy_instance.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "mojo/public/cpp/base/shared_memory_utils.h" #include "mojo/public/cpp/base/shared_memory_utils.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "pdf/pdf.h" #include "pdf/pdf.h"
#include "printing/emf_win.h" #include "printing/emf_win.h"
#include "ui/gfx/gdi_util.h" #include "ui/gfx/gdi_util.h"
...@@ -21,8 +22,8 @@ namespace printing { ...@@ -21,8 +22,8 @@ namespace printing {
namespace { namespace {
base::LazyInstance<std::vector<mojom::PdfToEmfConverterClientPtr>>::Leaky base::LazyInstance<std::vector<mojo::Remote<mojom::PdfToEmfConverterClient>>>::
g_converter_clients = LAZY_INSTANCE_INITIALIZER; Leaky g_converter_clients = LAZY_INSTANCE_INITIALIZER;
void PreCacheFontCharacters(const LOGFONT* logfont, void PreCacheFontCharacters(const LOGFONT* logfont,
const wchar_t* text, const wchar_t* text,
...@@ -43,23 +44,25 @@ void PreCacheFontCharacters(const LOGFONT* logfont, ...@@ -43,23 +44,25 @@ void PreCacheFontCharacters(const LOGFONT* logfont,
} }
void OnConvertedClientDisconnected() { void OnConvertedClientDisconnected() {
// We have no direct way of tracking which PdfToEmfConverterClientPtr got // We have no direct way of tracking which
// disconnected as it is a movable type, short of using a wrapper. // mojo::Remote<PdfToEmfConverterClient> got disconnected as it is a movable
// Just traverse the list of clients and remove the ones that are not bound. // type, short of using a wrapper. Just traverse the list of clients and
// remove the ones that are not bound.
base::EraseIf(g_converter_clients.Get(), base::EraseIf(g_converter_clients.Get(),
[](const mojom::PdfToEmfConverterClientPtr& client) { [](const mojo::Remote<mojom::PdfToEmfConverterClient>& client) {
return !client.is_bound(); return !client.is_bound();
}); });
} }
void RegisterConverterClient(mojom::PdfToEmfConverterClientPtr client) { void RegisterConverterClient(
mojo::PendingRemote<mojom::PdfToEmfConverterClient> client_remote) {
if (!g_converter_clients.IsCreated()) { if (!g_converter_clients.IsCreated()) {
// First time this method is called. // First time this method is called.
chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible( chrome_pdf::SetPDFEnsureTypefaceCharactersAccessible(
PreCacheFontCharacters); PreCacheFontCharacters);
} }
client.set_connection_error_handler( mojo::Remote<mojom::PdfToEmfConverterClient> client(std::move(client_remote));
base::BindOnce(&OnConvertedClientDisconnected)); client.set_disconnect_handler(base::BindOnce(&OnConvertedClientDisconnected));
g_converter_clients.Get().push_back(std::move(client)); g_converter_clients.Get().push_back(std::move(client));
} }
...@@ -68,7 +71,7 @@ void RegisterConverterClient(mojom::PdfToEmfConverterClientPtr client) { ...@@ -68,7 +71,7 @@ void RegisterConverterClient(mojom::PdfToEmfConverterClientPtr client) {
PdfToEmfConverter::PdfToEmfConverter( PdfToEmfConverter::PdfToEmfConverter(
base::ReadOnlySharedMemoryRegion pdf_region, base::ReadOnlySharedMemoryRegion pdf_region,
const PdfRenderSettings& pdf_render_settings, const PdfRenderSettings& pdf_render_settings,
mojom::PdfToEmfConverterClientPtr client) mojo::PendingRemote<mojom::PdfToEmfConverterClient> client)
: pdf_render_settings_(pdf_render_settings) { : pdf_render_settings_(pdf_render_settings) {
RegisterConverterClient(std::move(client)); RegisterConverterClient(std::move(client));
SetPrintMode(); SetPrintMode();
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/read_only_shared_memory_region.h" #include "base/memory/read_only_shared_memory_region.h"
#include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h" #include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "printing/pdf_render_settings.h" #include "printing/pdf_render_settings.h"
namespace printing { namespace printing {
...@@ -18,7 +19,7 @@ class PdfToEmfConverter : public mojom::PdfToEmfConverter { ...@@ -18,7 +19,7 @@ class PdfToEmfConverter : public mojom::PdfToEmfConverter {
public: public:
PdfToEmfConverter(base::ReadOnlySharedMemoryRegion pdf_region, PdfToEmfConverter(base::ReadOnlySharedMemoryRegion pdf_region,
const PdfRenderSettings& render_settings, const PdfRenderSettings& render_settings,
mojom::PdfToEmfConverterClientPtr client); mojo::PendingRemote<mojom::PdfToEmfConverterClient> client);
~PdfToEmfConverter() override; ~PdfToEmfConverter() override;
int total_page_count() const { return total_page_count_; } int total_page_count() const { return total_page_count_; }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include <utility> #include <utility>
#include "chrome/services/printing/pdf_to_emf_converter.h" #include "chrome/services/printing/pdf_to_emf_converter.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"
namespace printing { namespace printing {
...@@ -19,22 +19,22 @@ PdfToEmfConverterFactory::~PdfToEmfConverterFactory() = default; ...@@ -19,22 +19,22 @@ PdfToEmfConverterFactory::~PdfToEmfConverterFactory() = default;
void PdfToEmfConverterFactory::CreateConverter( void PdfToEmfConverterFactory::CreateConverter(
base::ReadOnlySharedMemoryRegion pdf_region, base::ReadOnlySharedMemoryRegion pdf_region,
const PdfRenderSettings& render_settings, const PdfRenderSettings& render_settings,
mojom::PdfToEmfConverterClientPtr client, mojo::PendingRemote<mojom::PdfToEmfConverterClient> client,
CreateConverterCallback callback) { CreateConverterCallback callback) {
auto converter = std::make_unique<PdfToEmfConverter>( auto converter = std::make_unique<PdfToEmfConverter>(
std::move(pdf_region), render_settings, std::move(client)); std::move(pdf_region), render_settings, std::move(client));
uint32_t page_count = converter->total_page_count(); uint32_t page_count = converter->total_page_count();
mojom::PdfToEmfConverterPtr converter_ptr; mojo::PendingRemote<mojom::PdfToEmfConverter> converter_remote;
mojo::MakeStrongBinding(std::move(converter), mojo::MakeSelfOwnedReceiver(
mojo::MakeRequest(&converter_ptr)); std::move(converter), converter_remote.InitWithNewPipeAndPassReceiver());
std::move(callback).Run(std::move(converter_ptr), page_count); std::move(callback).Run(std::move(converter_remote), page_count);
} }
// static // static
void PdfToEmfConverterFactory::Create( void PdfToEmfConverterFactory::Create(
mojom::PdfToEmfConverterFactoryRequest request) { mojo::PendingReceiver<mojom::PdfToEmfConverterFactory> receiver) {
mojo::MakeStrongBinding(std::make_unique<PdfToEmfConverterFactory>(), mojo::MakeSelfOwnedReceiver(std::make_unique<PdfToEmfConverterFactory>(),
std::move(request)); std::move(receiver));
} }
} // namespace printing } // namespace printing
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include "base/macros.h" #include "base/macros.h"
#include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h" #include "chrome/services/printing/public/mojom/pdf_to_emf_converter.mojom.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
namespace printing { namespace printing {
...@@ -17,14 +19,16 @@ class PdfToEmfConverterFactory : public mojom::PdfToEmfConverterFactory { ...@@ -17,14 +19,16 @@ class PdfToEmfConverterFactory : public mojom::PdfToEmfConverterFactory {
PdfToEmfConverterFactory(); PdfToEmfConverterFactory();
~PdfToEmfConverterFactory() override; ~PdfToEmfConverterFactory() override;
static void Create(mojom::PdfToEmfConverterFactoryRequest request); static void Create(
mojo::PendingReceiver<mojom::PdfToEmfConverterFactory> receiver);
private: private:
// mojom::PdfToEmfConverterFactory implementation. // mojom::PdfToEmfConverterFactory implementation.
void CreateConverter(base::ReadOnlySharedMemoryRegion pdf_region, void CreateConverter(
const PdfRenderSettings& render_settings, base::ReadOnlySharedMemoryRegion pdf_region,
mojom::PdfToEmfConverterClientPtr client, const PdfRenderSettings& render_settings,
CreateConverterCallback callback) override; mojo::PendingRemote<mojom::PdfToEmfConverterClient> client,
CreateConverterCallback callback) override;
DISALLOW_COPY_AND_ASSIGN(PdfToEmfConverterFactory); DISALLOW_COPY_AND_ASSIGN(PdfToEmfConverterFactory);
}; };
......
...@@ -31,6 +31,6 @@ interface PdfToEmfConverter { ...@@ -31,6 +31,6 @@ interface PdfToEmfConverter {
interface PdfToEmfConverterFactory { interface PdfToEmfConverterFactory {
CreateConverter(mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region, CreateConverter(mojo_base.mojom.ReadOnlySharedMemoryRegion pdf_region,
PdfRenderSettings render_settings, PdfRenderSettings render_settings,
PdfToEmfConverterClient client) => pending_remote<PdfToEmfConverterClient> client)
(PdfToEmfConverter converter, uint32 page_count); => (pending_remote<PdfToEmfConverter> converter, uint32 page_count);
}; };
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