| Index: chrome/browser/printing/pdf_to_emf_converter.cc
|
| diff --git a/chrome/browser/printing/pdf_to_emf_converter.cc b/chrome/browser/printing/pdf_to_emf_converter.cc
|
| index c601d62759a3ebaf7de938d0e77d83d1750004e4..72671c0feeef1b0a939de7b2f3650e2bb320c913 100644
|
| --- a/chrome/browser/printing/pdf_to_emf_converter.cc
|
| +++ b/chrome/browser/printing/pdf_to_emf_converter.cc
|
| @@ -261,13 +261,11 @@ class PdfToPostScriptUtilityProcessHostClient
|
|
|
| class PdfConverterImpl : public PdfConverter {
|
| public:
|
| - PdfConverterImpl();
|
| + PdfConverterImpl() : weak_ptr_factory_(this) {}
|
|
|
| - ~PdfConverterImpl() override;
|
| -
|
| - void Start(const scoped_refptr<base::RefCountedMemory>& data,
|
| - const PdfRenderSettings& conversion_settings,
|
| - const StartCallback& start_callback) override;
|
| + base::WeakPtr<PdfConverterImpl> GetWeakPtr() {
|
| + return weak_ptr_factory_.GetWeakPtr();
|
| + }
|
|
|
| void GetPage(int page_number,
|
| const GetPageCallback& get_page_callback) override;
|
| @@ -275,41 +273,21 @@ class PdfConverterImpl : public PdfConverter {
|
| // Helps to cancel callbacks if this object is destroyed.
|
| void RunCallback(const base::Closure& callback);
|
|
|
| - protected:
|
| - scoped_refptr<PdfConverterUtilityProcessHostClient> utility_client_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(PdfConverterImpl);
|
| -};
|
| -
|
| -class PdfToEmfConverterImpl : public PdfConverterImpl {
|
| - public:
|
| - PdfToEmfConverterImpl();
|
| -
|
| - ~PdfToEmfConverterImpl() override;
|
| -
|
| - void Start(const scoped_refptr<base::RefCountedMemory>& data,
|
| - const PdfRenderSettings& conversion_settings,
|
| - const StartCallback& start_callback) override;
|
| + void Start(
|
| + const scoped_refptr<PdfConverterUtilityProcessHostClient>& utility_client,
|
| + const scoped_refptr<base::RefCountedMemory>& data,
|
| + const StartCallback& start_callback) {
|
| + DCHECK(!utility_client_);
|
| + utility_client_ = utility_client;
|
| + utility_client_->Start(data, start_callback);
|
| + }
|
|
|
| private:
|
| - base::WeakPtrFactory<PdfToEmfConverterImpl> weak_ptr_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PdfToEmfConverterImpl);
|
| -};
|
| -
|
| -class PdfToPostScriptConverterImpl : public PdfConverterImpl {
|
| - public:
|
| - PdfToPostScriptConverterImpl();
|
| - ~PdfToPostScriptConverterImpl() override;
|
| + scoped_refptr<PdfConverterUtilityProcessHostClient> utility_client_;
|
|
|
| - void Start(const scoped_refptr<base::RefCountedMemory>& data,
|
| - const PdfRenderSettings& conversion_settings,
|
| - const StartCallback& start_callback) override;
|
| + base::WeakPtrFactory<PdfConverterImpl> weak_ptr_factory_;
|
|
|
| - private:
|
| - base::WeakPtrFactory<PdfToPostScriptConverterImpl> weak_ptr_factory_;
|
| - DISALLOW_COPY_AND_ASSIGN(PdfToPostScriptConverterImpl);
|
| + DISALLOW_COPY_AND_ASSIGN(PdfConverterImpl);
|
| };
|
|
|
| ScopedTempFile CreateTempFile(scoped_refptr<RefCountedTempDir>* temp_dir) {
|
| @@ -709,17 +687,6 @@ void PdfToPostScriptUtilityProcessHostClient::OnPageDone(bool success) {
|
| PdfConverterUtilityProcessHostClient::OnPageDone(success, 0.0f);
|
| }
|
|
|
| -// Pdf Converter Impl and subclasses
|
| -PdfConverterImpl::PdfConverterImpl() {}
|
| -
|
| -PdfConverterImpl::~PdfConverterImpl() {}
|
| -
|
| -void PdfConverterImpl::Start(const scoped_refptr<base::RefCountedMemory>& data,
|
| - const PdfRenderSettings& conversion_settings,
|
| - const StartCallback& start_callback) {
|
| - DCHECK(!utility_client_.get());
|
| -}
|
| -
|
| void PdfConverterImpl::GetPage(int page_number,
|
| const GetPageCallback& get_page_callback) {
|
| utility_client_->GetPage(page_number, get_page_callback);
|
| @@ -730,53 +697,34 @@ void PdfConverterImpl::RunCallback(const base::Closure& callback) {
|
| callback.Run();
|
| }
|
|
|
| -PdfToEmfConverterImpl::PdfToEmfConverterImpl() : weak_ptr_factory_(this) {}
|
| +} // namespace
|
|
|
| -PdfToEmfConverterImpl::~PdfToEmfConverterImpl() {
|
| - if (utility_client_.get())
|
| - utility_client_->Stop();
|
| -}
|
| +PdfConverter::~PdfConverter() {}
|
|
|
| -void PdfToEmfConverterImpl::Start(
|
| +// static
|
| +std::unique_ptr<PdfConverter> PdfConverter::StartPdfToEmfConverter(
|
| const scoped_refptr<base::RefCountedMemory>& data,
|
| const PdfRenderSettings& conversion_settings,
|
| const StartCallback& start_callback) {
|
| - DCHECK(!utility_client_.get());
|
| - utility_client_ = new PdfToEmfUtilityProcessHostClient(
|
| - weak_ptr_factory_.GetWeakPtr(), conversion_settings);
|
| - utility_client_->Start(data, start_callback);
|
| -}
|
| -
|
| -PdfToPostScriptConverterImpl::PdfToPostScriptConverterImpl()
|
| - : weak_ptr_factory_(this) {}
|
| -
|
| -PdfToPostScriptConverterImpl::~PdfToPostScriptConverterImpl() {
|
| - if (utility_client_.get())
|
| - utility_client_->Stop();
|
| + std::unique_ptr<PdfConverterImpl> converter =
|
| + base::MakeUnique<PdfConverterImpl>();
|
| + converter->Start(new PdfToEmfUtilityProcessHostClient(converter->GetWeakPtr(),
|
| + conversion_settings),
|
| + data, start_callback);
|
| + return std::move(converter);
|
| }
|
|
|
| -void PdfToPostScriptConverterImpl::Start(
|
| +// static
|
| +std::unique_ptr<PdfConverter> PdfConverter::StartPdfToPostScriptConverter(
|
| const scoped_refptr<base::RefCountedMemory>& data,
|
| const PdfRenderSettings& conversion_settings,
|
| const StartCallback& start_callback) {
|
| - DCHECK(!utility_client_.get());
|
| - utility_client_ = new PdfToPostScriptUtilityProcessHostClient(
|
| - weak_ptr_factory_.GetWeakPtr(), conversion_settings);
|
| - utility_client_->Start(data, start_callback);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -PdfConverter::~PdfConverter() {}
|
| -
|
| -// static
|
| -std::unique_ptr<PdfConverter> PdfConverter::CreatePdfToEmfConverter() {
|
| - return base::MakeUnique<PdfToEmfConverterImpl>();
|
| -}
|
| -
|
| -// static
|
| -std::unique_ptr<PdfConverter> PdfConverter::CreatePdfToPostScriptConverter() {
|
| - return base::MakeUnique<PdfToPostScriptConverterImpl>();
|
| + std::unique_ptr<PdfConverterImpl> converter =
|
| + base::MakeUnique<PdfConverterImpl>();
|
| + converter->Start(new PdfToPostScriptUtilityProcessHostClient(
|
| + converter->GetWeakPtr(), conversion_settings),
|
| + data, start_callback);
|
| + return std::move(converter);
|
| }
|
|
|
| } // namespace printing
|
|
|