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 |