format previously missed chromium_src .cc files
This commit is contained in:
parent
8cc81509d7
commit
f7d4437b3f
58 changed files with 688 additions and 898 deletions
|
@ -223,8 +223,8 @@ class PdfConverterUtilityProcessHostClient
|
|||
|
||||
std::unique_ptr<MetafilePlayer>
|
||||
PdfConverterUtilityProcessHostClient::GetFileFromTemp(
|
||||
std::unique_ptr<base::File, content::BrowserThread::DeleteOnFileThread>
|
||||
temp_file) {
|
||||
std::unique_ptr<base::File, content::BrowserThread::DeleteOnFileThread>
|
||||
temp_file) {
|
||||
if (settings_.mode == PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2 ||
|
||||
settings_.mode == PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3) {
|
||||
return std::make_unique<PostScriptMetaFile>(temp_dir_,
|
||||
|
@ -278,12 +278,10 @@ ScopedTempFile CreateTempFile(scoped_refptr<RefCountedTempDir>* temp_dir) {
|
|||
<< (*temp_dir)->GetPath().value();
|
||||
return file;
|
||||
}
|
||||
file.reset(new base::File(path,
|
||||
base::File::FLAG_CREATE_ALWAYS |
|
||||
base::File::FLAG_WRITE |
|
||||
base::File::FLAG_READ |
|
||||
base::File::FLAG_DELETE_ON_CLOSE |
|
||||
base::File::FLAG_TEMPORARY));
|
||||
file.reset(new base::File(
|
||||
path, base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE |
|
||||
base::File::FLAG_READ | base::File::FLAG_DELETE_ON_CLOSE |
|
||||
base::File::FLAG_TEMPORARY));
|
||||
if (!file->IsValid()) {
|
||||
PLOG(ERROR) << "Failed to create " << path.value();
|
||||
file.reset();
|
||||
|
@ -344,8 +342,7 @@ bool LazyEmf::LoadEmf(Emf* emf) const {
|
|||
return emf->InitFromData(data.data(), data.size());
|
||||
}
|
||||
|
||||
PostScriptMetaFile::~PostScriptMetaFile() {
|
||||
}
|
||||
PostScriptMetaFile::~PostScriptMetaFile() {}
|
||||
|
||||
bool PostScriptMetaFile::SafePlayback(HDC hdc) const {
|
||||
// TODO(thestig): Fix destruction of metafiles. For some reasons
|
||||
|
@ -526,7 +523,6 @@ void PdfConverterUtilityProcessHostClient::OnFailed() {
|
|||
utility_process_host_.reset();
|
||||
}
|
||||
|
||||
|
||||
void PdfConverterUtilityProcessHostClient::OnPreCacheFontCharacters(
|
||||
const LOGFONT& font,
|
||||
const base::string16& str) {
|
||||
|
@ -603,12 +599,12 @@ PdfConverterImpl::~PdfConverterImpl() {
|
|||
}
|
||||
|
||||
void PdfConverterImpl::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);
|
||||
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);
|
||||
}
|
||||
|
||||
void PdfConverterImpl::GetPage(int page_number,
|
||||
|
@ -632,10 +628,9 @@ std::unique_ptr<PdfConverter> PdfConverter::StartPdfConverter(
|
|||
const StartCallback& start_callback) {
|
||||
std::unique_ptr<PdfConverterImpl> converter =
|
||||
std::make_unique<PdfConverterImpl>();
|
||||
converter->Start(
|
||||
new PdfConverterUtilityProcessHostClient(converter->GetWeakPtr(),
|
||||
conversion_settings),
|
||||
data, start_callback);
|
||||
converter->Start(new PdfConverterUtilityProcessHostClient(
|
||||
converter->GetWeakPtr(), conversion_settings),
|
||||
data, start_callback);
|
||||
return std::move(converter);
|
||||
}
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
#include "base/location.h"
|
||||
#include "base/message_loop/message_loop.h"
|
||||
#include "base/run_loop.h"
|
||||
#include "base/task_scheduler/post_task.h"
|
||||
#include "base/single_thread_task_runner.h"
|
||||
#include "base/task_scheduler/post_task.h"
|
||||
#include "base/threading/sequenced_worker_pool.h"
|
||||
#include "base/threading/thread_restrictions.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
|
@ -44,9 +44,7 @@ void HoldRefCallback(const scoped_refptr<PrintJobWorkerOwner>& owner,
|
|||
} // namespace
|
||||
|
||||
PrintJob::PrintJob()
|
||||
: is_job_pending_(false),
|
||||
is_canceling_(false),
|
||||
quit_factory_(this) {
|
||||
: is_job_pending_(false), is_canceling_(false), quit_factory_(this) {
|
||||
// This is normally a UI message loop, but in unit tests, the message loop is
|
||||
// of the 'default' type.
|
||||
DCHECK(base::MessageLoopForUI::IsCurrent() ||
|
||||
|
@ -133,8 +131,7 @@ void PrintJob::StartPrinting() {
|
|||
scoped_refptr<JobEventDetails> details(
|
||||
new JobEventDetails(JobEventDetails::NEW_DOC, document_.get(), nullptr));
|
||||
content::NotificationService::current()->Notify(
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT,
|
||||
content::Source<PrintJob>(this),
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT, content::Source<PrintJob>(this),
|
||||
content::Details<JobEventDetails>(details.get()));
|
||||
}
|
||||
|
||||
|
@ -178,8 +175,7 @@ void PrintJob::Cancel() {
|
|||
scoped_refptr<JobEventDetails> details(
|
||||
new JobEventDetails(JobEventDetails::FAILED, nullptr, nullptr));
|
||||
content::NotificationService::current()->Notify(
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT,
|
||||
content::Source<PrintJob>(this),
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT, content::Source<PrintJob>(this),
|
||||
content::Details<JobEventDetails>(details.get()));
|
||||
Stop();
|
||||
is_canceling_ = false;
|
||||
|
@ -221,8 +217,8 @@ class PrintJob::PdfConversionState {
|
|||
void Start(const scoped_refptr<base::RefCountedMemory>& data,
|
||||
const PdfRenderSettings& conversion_settings,
|
||||
const PdfConverter::StartCallback& start_callback) {
|
||||
converter_ = PdfConverter::StartPdfConverter(
|
||||
data, conversion_settings, start_callback);
|
||||
converter_ = PdfConverter::StartPdfConverter(data, conversion_settings,
|
||||
start_callback);
|
||||
}
|
||||
|
||||
void GetMorePages(const PdfConverter::GetPageCallback& get_page_callback) {
|
||||
|
@ -313,8 +309,8 @@ void PrintJob::StartPdfToPostScriptConversion(
|
|||
const gfx::Point& physical_offsets,
|
||||
bool ps_level2) {
|
||||
DCHECK(!pdf_conversion_state_);
|
||||
pdf_conversion_state_ = std::make_unique<PdfConversionState>(
|
||||
gfx::Size(), gfx::Rect());
|
||||
pdf_conversion_state_ =
|
||||
std::make_unique<PdfConversionState>(gfx::Size(), gfx::Rect());
|
||||
const int kPrinterDpi = settings().dpi();
|
||||
PdfRenderSettings settings(
|
||||
content_area, physical_offsets, kPrinterDpi, true /* autorotate? */,
|
||||
|
@ -399,8 +395,7 @@ void PrintJob::OnDocumentDone() {
|
|||
scoped_refptr<JobEventDetails> details(
|
||||
new JobEventDetails(JobEventDetails::JOB_DONE, document_.get(), nullptr));
|
||||
content::NotificationService::current()->Notify(
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT,
|
||||
content::Source<PrintJob>(this),
|
||||
chrome::NOTIFICATION_PRINT_JOB_EVENT, content::Source<PrintJob>(this),
|
||||
content::Details<JobEventDetails>(details.get()));
|
||||
}
|
||||
|
||||
|
@ -431,7 +426,6 @@ void PrintJob::ControlledWorkerShutdown() {
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
// Now make sure the thread object is cleaned up. Do this on a worker
|
||||
// thread because it may block.
|
||||
base::PostTaskAndReply(
|
||||
|
@ -444,8 +438,7 @@ void PrintJob::ControlledWorkerShutdown() {
|
|||
UpdatePrintedDocument(nullptr);
|
||||
}
|
||||
|
||||
void PrintJob::HoldUntilStopIsCalled() {
|
||||
}
|
||||
void PrintJob::HoldUntilStopIsCalled() {}
|
||||
|
||||
void PrintJob::Quit() {
|
||||
base::RunLoop::QuitCurrentWhenIdleDeprecated();
|
||||
|
@ -455,16 +448,16 @@ void PrintJob::Quit() {
|
|||
JobEventDetails::JobEventDetails(Type type,
|
||||
PrintedDocument* document,
|
||||
PrintedPage* page)
|
||||
: document_(document),
|
||||
page_(page),
|
||||
type_(type) {
|
||||
: document_(document), page_(page), type_(type) {}
|
||||
|
||||
JobEventDetails::~JobEventDetails() {}
|
||||
|
||||
PrintedDocument* JobEventDetails::document() const {
|
||||
return document_.get();
|
||||
}
|
||||
|
||||
JobEventDetails::~JobEventDetails() {
|
||||
PrintedPage* JobEventDetails::page() const {
|
||||
return page_.get();
|
||||
}
|
||||
|
||||
PrintedDocument* JobEventDetails::document() const { return document_.get(); }
|
||||
|
||||
PrintedPage* JobEventDetails::page() const { return page_.get(); }
|
||||
|
||||
} // namespace printing
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
|
||||
namespace printing {
|
||||
|
||||
PrintQueriesQueue::PrintQueriesQueue() {
|
||||
}
|
||||
PrintQueriesQueue::PrintQueriesQueue() {}
|
||||
|
||||
PrintQueriesQueue::~PrintQueriesQueue() {
|
||||
base::AutoLock lock(lock_);
|
||||
|
@ -47,8 +46,7 @@ scoped_refptr<PrinterQuery> PrintQueriesQueue::PopPrinterQuery(
|
|||
scoped_refptr<PrinterQuery> PrintQueriesQueue::CreatePrinterQuery(
|
||||
int render_process_id,
|
||||
int render_frame_id) {
|
||||
return WrapRefCounted(
|
||||
new PrinterQuery(render_process_id, render_frame_id));
|
||||
return WrapRefCounted(new PrinterQuery(render_process_id, render_frame_id));
|
||||
}
|
||||
|
||||
void PrintQueriesQueue::Shutdown() {
|
||||
|
@ -71,8 +69,7 @@ PrintJobManager::PrintJobManager() : is_shutdown_(false) {
|
|||
content::NotificationService::AllSources());
|
||||
}
|
||||
|
||||
PrintJobManager::~PrintJobManager() {
|
||||
}
|
||||
PrintJobManager::~PrintJobManager() {}
|
||||
|
||||
scoped_refptr<PrintQueriesQueue> PrintJobManager::queue() {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
@ -117,9 +114,8 @@ void PrintJobManager::Observe(int type,
|
|||
*content::Details<JobEventDetails>(details).ptr());
|
||||
}
|
||||
|
||||
void PrintJobManager::OnPrintJobEvent(
|
||||
PrintJob* print_job,
|
||||
const JobEventDetails& event_details) {
|
||||
void PrintJobManager::OnPrintJobEvent(PrintJob* print_job,
|
||||
const JobEventDetails& event_details) {
|
||||
switch (event_details.type()) {
|
||||
case JobEventDetails::NEW_DOC: {
|
||||
DCHECK(current_jobs_.end() == current_jobs_.find(print_job));
|
||||
|
|
|
@ -57,11 +57,14 @@ void HoldRefCallback(const scoped_refptr<PrintJobWorkerOwner>& owner,
|
|||
|
||||
void SetCustomMarginsToJobSettings(const PageSizeMargins& page_size_margins,
|
||||
base::DictionaryValue* settings) {
|
||||
std::unique_ptr<base::DictionaryValue> custom_margins(new base::DictionaryValue());
|
||||
std::unique_ptr<base::DictionaryValue> custom_margins(
|
||||
new base::DictionaryValue());
|
||||
custom_margins->SetDouble(kSettingMarginTop, page_size_margins.margin_top);
|
||||
custom_margins->SetDouble(kSettingMarginBottom, page_size_margins.margin_bottom);
|
||||
custom_margins->SetDouble(kSettingMarginBottom,
|
||||
page_size_margins.margin_bottom);
|
||||
custom_margins->SetDouble(kSettingMarginLeft, page_size_margins.margin_left);
|
||||
custom_margins->SetDouble(kSettingMarginRight, page_size_margins.margin_right);
|
||||
custom_margins->SetDouble(kSettingMarginRight,
|
||||
page_size_margins.margin_right);
|
||||
settings->Set(kSettingMarginsCustom, std::move(custom_margins));
|
||||
}
|
||||
|
||||
|
@ -83,7 +86,8 @@ void PrintSettingsToJobSettings(const PrintSettings& settings,
|
|||
auto margin_type = settings.margin_type();
|
||||
job_settings->SetInteger(kSettingMarginsType, settings.margin_type());
|
||||
if (margin_type == CUSTOM_MARGINS) {
|
||||
const auto& margins_in_points = settings.requested_custom_margins_in_points();
|
||||
const auto& margins_in_points =
|
||||
settings.requested_custom_margins_in_points();
|
||||
|
||||
PageSizeMargins page_size_margins;
|
||||
|
||||
|
@ -130,7 +134,6 @@ void PrintSettingsToJobSettings(const PrintSettings& settings,
|
|||
job_settings->SetInteger(kSettingPreviewPageCount, 1);
|
||||
}
|
||||
|
||||
|
||||
class PrintingContextDelegate : public PrintingContext::Delegate {
|
||||
public:
|
||||
PrintingContextDelegate(int render_process_id, int render_frame_id);
|
||||
|
@ -152,8 +155,7 @@ PrintingContextDelegate::PrintingContextDelegate(int render_process_id,
|
|||
: render_process_id_(render_process_id),
|
||||
render_frame_id_(render_frame_id) {}
|
||||
|
||||
PrintingContextDelegate::~PrintingContextDelegate() {
|
||||
}
|
||||
PrintingContextDelegate::~PrintingContextDelegate() {}
|
||||
|
||||
gfx::NativeView PrintingContextDelegate::GetParentView() {
|
||||
content::WebContents* wc = GetWebContents();
|
||||
|
@ -243,17 +245,14 @@ void PrintJobWorker::GetSettings(bool ask_user_for_settings,
|
|||
BrowserThread::UI, FROM_HERE,
|
||||
base::Bind(&HoldRefCallback, WrapRefCounted(owner_),
|
||||
base::Bind(&PrintJobWorker::GetSettingsWithUI,
|
||||
base::Unretained(this),
|
||||
document_page_count,
|
||||
has_selection,
|
||||
is_scripted)));
|
||||
base::Unretained(this), document_page_count,
|
||||
has_selection, is_scripted)));
|
||||
} else if (!device_name.empty()) {
|
||||
BrowserThread::PostTask(
|
||||
BrowserThread::UI, FROM_HERE,
|
||||
base::Bind(&HoldRefCallback, WrapRefCounted(owner_),
|
||||
base::Bind(&PrintJobWorker::InitWithDeviceName,
|
||||
base::Unretained(this),
|
||||
device_name)));
|
||||
base::Unretained(this), device_name)));
|
||||
} else {
|
||||
BrowserThread::PostTask(
|
||||
BrowserThread::UI, FROM_HERE,
|
||||
|
@ -268,13 +267,11 @@ void PrintJobWorker::SetSettings(
|
|||
DCHECK(task_runner_->RunsTasksInCurrentSequence());
|
||||
|
||||
BrowserThread::PostTask(
|
||||
BrowserThread::UI,
|
||||
FROM_HERE,
|
||||
base::Bind(&HoldRefCallback,
|
||||
WrapRefCounted(owner_),
|
||||
base::Bind(&PrintJobWorker::UpdatePrintSettings,
|
||||
base::Unretained(this),
|
||||
base::Passed(&new_settings))));
|
||||
BrowserThread::UI, FROM_HERE,
|
||||
base::Bind(
|
||||
&HoldRefCallback, WrapRefCounted(owner_),
|
||||
base::Bind(&PrintJobWorker::UpdatePrintSettings,
|
||||
base::Unretained(this), base::Passed(&new_settings))));
|
||||
}
|
||||
|
||||
void PrintJobWorker::UpdatePrintSettings(
|
||||
|
@ -296,17 +293,15 @@ void PrintJobWorker::GetSettingsDone(PrintingContext::Result result) {
|
|||
// We can't use OnFailure() here since owner_ may not support notifications.
|
||||
|
||||
// PrintJob will create the new PrintedDocument.
|
||||
owner_->PostTask(FROM_HERE,
|
||||
base::Bind(&PrintJobWorkerOwner::GetSettingsDone,
|
||||
WrapRefCounted(owner_),
|
||||
printing_context_->settings(),
|
||||
result));
|
||||
owner_->PostTask(
|
||||
FROM_HERE,
|
||||
base::Bind(&PrintJobWorkerOwner::GetSettingsDone, WrapRefCounted(owner_),
|
||||
printing_context_->settings(), result));
|
||||
}
|
||||
|
||||
void PrintJobWorker::GetSettingsWithUI(
|
||||
int document_page_count,
|
||||
bool has_selection,
|
||||
bool is_scripted) {
|
||||
void PrintJobWorker::GetSettingsWithUI(int document_page_count,
|
||||
bool has_selection,
|
||||
bool is_scripted) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
// weak_factory_ creates pointers valid only on owner_ thread.
|
||||
|
|
|
@ -13,8 +13,7 @@ namespace printing {
|
|||
PrintJobWorkerOwner::PrintJobWorkerOwner()
|
||||
: task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
|
||||
|
||||
PrintJobWorkerOwner::~PrintJobWorkerOwner() {
|
||||
}
|
||||
PrintJobWorkerOwner::~PrintJobWorkerOwner() {}
|
||||
|
||||
bool PrintJobWorkerOwner::RunsTasksInCurrentSequence() const {
|
||||
return task_runner_->RunsTasksInCurrentSequence();
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
#include "content/public/browser/render_view_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "printing/page_size_margins.h"
|
||||
#include "printing/print_job_constants.h"
|
||||
#include "printing/pdf_metafile_skia.h"
|
||||
#include "printing/print_job_constants.h"
|
||||
|
||||
#include "atom/common/node_includes.h"
|
||||
|
||||
|
@ -35,9 +35,9 @@ void StopWorker(int document_cookie) {
|
|||
scoped_refptr<printing::PrinterQuery> printer_query =
|
||||
queue->PopPrinterQuery(document_cookie);
|
||||
if (printer_query.get()) {
|
||||
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
||||
base::Bind(&printing::PrinterQuery::StopWorker,
|
||||
printer_query));
|
||||
BrowserThread::PostTask(
|
||||
BrowserThread::IO, FROM_HERE,
|
||||
base::Bind(&printing::PrinterQuery::StopWorker, printer_query));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,15 +61,13 @@ void FreeNodeBufferData(char* data, void* hint) {
|
|||
|
||||
namespace printing {
|
||||
|
||||
|
||||
PrintPreviewMessageHandler::PrintPreviewMessageHandler(
|
||||
WebContents* web_contents)
|
||||
: content::WebContentsObserver(web_contents) {
|
||||
DCHECK(web_contents);
|
||||
}
|
||||
|
||||
PrintPreviewMessageHandler::~PrintPreviewMessageHandler() {
|
||||
}
|
||||
PrintPreviewMessageHandler::~PrintPreviewMessageHandler() {}
|
||||
|
||||
void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
|
||||
const PrintHostMsg_DidPreviewDocument_Params& params) {
|
||||
|
@ -82,12 +80,9 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
|
|||
}
|
||||
|
||||
BrowserThread::PostTaskAndReplyWithResult(
|
||||
BrowserThread::IO,
|
||||
FROM_HERE,
|
||||
base::Bind(&CopyPDFDataOnIOThread, params),
|
||||
BrowserThread::IO, FROM_HERE, base::Bind(&CopyPDFDataOnIOThread, params),
|
||||
base::Bind(&PrintPreviewMessageHandler::RunPrintToPDFCallback,
|
||||
base::Unretained(this),
|
||||
params.preview_request_id,
|
||||
base::Unretained(this), params.preview_request_id,
|
||||
params.data_size));
|
||||
}
|
||||
|
||||
|
@ -104,8 +99,7 @@ bool PrintPreviewMessageHandler::OnMessageReceived(
|
|||
IPC_BEGIN_MESSAGE_MAP(PrintPreviewMessageHandler, message)
|
||||
IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting,
|
||||
OnMetafileReadyForPrinting)
|
||||
IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed,
|
||||
OnPrintPreviewFailed)
|
||||
IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, OnPrintPreviewFailed)
|
||||
IPC_MESSAGE_UNHANDLED(handled = false)
|
||||
IPC_END_MESSAGE_MAP()
|
||||
return handled;
|
||||
|
@ -122,21 +116,23 @@ void PrintPreviewMessageHandler::PrintToPDF(
|
|||
rfh->Send(new PrintMsg_PrintPreview(rfh->GetRoutingID(), options));
|
||||
}
|
||||
|
||||
void PrintPreviewMessageHandler::RunPrintToPDFCallback(
|
||||
int request_id, uint32_t data_size, char* data) {
|
||||
void PrintPreviewMessageHandler::RunPrintToPDFCallback(int request_id,
|
||||
uint32_t data_size,
|
||||
char* data) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
||||
v8::Locker locker(isolate);
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
if (data) {
|
||||
v8::Local<v8::Value> buffer = node::Buffer::New(isolate,
|
||||
data, static_cast<size_t>(data_size), &FreeNodeBufferData, nullptr)
|
||||
.ToLocalChecked();
|
||||
v8::Local<v8::Value> buffer =
|
||||
node::Buffer::New(isolate, data, static_cast<size_t>(data_size),
|
||||
&FreeNodeBufferData, nullptr)
|
||||
.ToLocalChecked();
|
||||
print_to_pdf_callback_map_[request_id].Run(v8::Null(isolate), buffer);
|
||||
} else {
|
||||
v8::Local<v8::String> error_message = v8::String::NewFromUtf8(isolate,
|
||||
"Failed to generate PDF");
|
||||
v8::Local<v8::String> error_message =
|
||||
v8::String::NewFromUtf8(isolate, "Failed to generate PDF");
|
||||
print_to_pdf_callback_map_[request_id].Run(
|
||||
v8::Exception::Error(error_message), v8::Null(isolate));
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "base/run_loop.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/timer/timer.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/chrome_notification_types.h"
|
||||
#include "chrome/browser/printing/print_job.h"
|
||||
|
@ -22,6 +21,7 @@
|
|||
#include "chrome/browser/ui/simple_message_box.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
#include "chrome/common/print_messages.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/notification_details.h"
|
||||
#include "content/public/browser/notification_service.h"
|
||||
|
@ -42,9 +42,7 @@ using content::BrowserThread;
|
|||
|
||||
namespace printing {
|
||||
|
||||
namespace {
|
||||
|
||||
} // namespace
|
||||
namespace {} // namespace
|
||||
|
||||
PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents)
|
||||
: content::WebContentsObserver(web_contents),
|
||||
|
@ -67,12 +65,12 @@ PrintViewManagerBase::~PrintViewManagerBase() {
|
|||
|
||||
#if !defined(DISABLE_BASIC_PRINTING)
|
||||
bool PrintViewManagerBase::PrintNow(content::RenderFrameHost* rfh,
|
||||
bool silent, bool print_background,
|
||||
bool silent,
|
||||
bool print_background,
|
||||
const base::string16& device_name) {
|
||||
int32_t id = rfh->GetRoutingID();
|
||||
return PrintNowInternal(
|
||||
rfh,
|
||||
std::make_unique<PrintMsg_PrintPages>(id, silent, print_background, device_name));
|
||||
return PrintNowInternal(rfh, std::make_unique<PrintMsg_PrintPages>(
|
||||
id, silent, print_background, device_name));
|
||||
}
|
||||
#endif // !DISABLE_BASIC_PRINTING
|
||||
|
||||
|
@ -114,7 +112,7 @@ void PrintViewManagerBase::OnDidGetDocumentCookie(int cookie) {
|
|||
}
|
||||
|
||||
void PrintViewManagerBase::OnDidPrintPage(
|
||||
const PrintHostMsg_DidPrintPage_Params& params) {
|
||||
const PrintHostMsg_DidPrintPage_Params& params) {
|
||||
if (!OpportunisticallyCreatePrintJob(params.document_cookie))
|
||||
return;
|
||||
|
||||
|
@ -153,18 +151,15 @@ void PrintViewManagerBase::OnDidPrintPage(
|
|||
|
||||
#if !defined(OS_WIN)
|
||||
// Update the rendered document. It will send notifications to the listener.
|
||||
document->SetPage(params.page_number,
|
||||
std::move(metafile),
|
||||
params.page_size,
|
||||
document->SetPage(params.page_number, std::move(metafile), params.page_size,
|
||||
params.content_area);
|
||||
|
||||
ShouldQuitFromInnerMessageLoop();
|
||||
#else
|
||||
print_job_->AppendPrintedPage(params.page_number);
|
||||
if (metafile_must_be_valid) {
|
||||
bool print_text_with_gdi =
|
||||
document->settings().print_text_with_gdi() &&
|
||||
!document->settings().printer_is_xps();
|
||||
bool print_text_with_gdi = document->settings().print_text_with_gdi() &&
|
||||
!document->settings().printer_is_xps();
|
||||
|
||||
scoped_refptr<base::RefCountedBytes> bytes = new base::RefCountedBytes(
|
||||
reinterpret_cast<const unsigned char*>(shared_buf.memory()),
|
||||
|
@ -172,8 +167,7 @@ void PrintViewManagerBase::OnDidPrintPage(
|
|||
|
||||
document->DebugDumpData(bytes.get(), FILE_PATH_LITERAL(".pdf"));
|
||||
print_job_->StartPdfToEmfConversion(
|
||||
bytes, params.page_size, params.content_area,
|
||||
print_text_with_gdi);
|
||||
bytes, params.page_size, params.content_area, print_text_with_gdi);
|
||||
}
|
||||
#endif // !OS_WIN
|
||||
}
|
||||
|
@ -284,8 +278,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
|
|||
return false;
|
||||
|
||||
// We can't print if there is no renderer.
|
||||
if (!web_contents() ||
|
||||
!web_contents()->GetRenderViewHost() ||
|
||||
if (!web_contents() || !web_contents()->GetRenderViewHost() ||
|
||||
!web_contents()->GetRenderViewHost()->IsRenderViewLive()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -318,8 +311,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
|
|||
void PrintViewManagerBase::ShouldQuitFromInnerMessageLoop() {
|
||||
// Look at the reason.
|
||||
DCHECK(print_job_->document());
|
||||
if (print_job_->document() &&
|
||||
print_job_->document()->IsComplete() &&
|
||||
if (print_job_->document() && print_job_->document()->IsComplete() &&
|
||||
inside_inner_message_loop_) {
|
||||
// We are in a message loop created by RenderAllMissingPagesNow. Quit from
|
||||
// it.
|
||||
|
@ -361,8 +353,7 @@ void PrintViewManagerBase::DisconnectFromCurrentPrintJob() {
|
|||
bool result = RenderAllMissingPagesNow();
|
||||
|
||||
// Verify that assertion.
|
||||
if (print_job_.get() &&
|
||||
print_job_->document() &&
|
||||
if (print_job_.get() && print_job_->document() &&
|
||||
!print_job_->document()->IsComplete()) {
|
||||
DCHECK(!result);
|
||||
// That failed.
|
||||
|
|
|
@ -15,11 +15,9 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(printing::PrintViewManagerBasic);
|
|||
namespace printing {
|
||||
|
||||
PrintViewManagerBasic::PrintViewManagerBasic(content::WebContents* web_contents)
|
||||
: PrintViewManagerBase(web_contents) {
|
||||
}
|
||||
: PrintViewManagerBase(web_contents) {}
|
||||
|
||||
PrintViewManagerBasic::~PrintViewManagerBasic() {
|
||||
}
|
||||
PrintViewManagerBasic::~PrintViewManagerBasic() {}
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
void PrintViewManagerBasic::RenderProcessGone(base::TerminationStatus status) {
|
||||
|
|
|
@ -89,24 +89,24 @@ void PrinterQuery::GetSettings(GetSettingsAskParam ask_user_for_settings,
|
|||
margin_type, is_scripted, is_modifiable, base::string16()));
|
||||
}
|
||||
|
||||
void PrinterQuery::GetSettings(
|
||||
GetSettingsAskParam ask_user_for_settings,
|
||||
int expected_page_count,
|
||||
bool has_selection,
|
||||
MarginType margin_type,
|
||||
bool is_scripted,
|
||||
bool is_modifiable,
|
||||
const base::string16& device_name,
|
||||
const base::Closure& callback) {
|
||||
void PrinterQuery::GetSettings(GetSettingsAskParam ask_user_for_settings,
|
||||
int expected_page_count,
|
||||
bool has_selection,
|
||||
MarginType margin_type,
|
||||
bool is_scripted,
|
||||
bool is_modifiable,
|
||||
const base::string16& device_name,
|
||||
const base::Closure& callback) {
|
||||
DCHECK(RunsTasksInCurrentSequence());
|
||||
DCHECK(!is_print_dialog_box_shown_);
|
||||
StartWorker(callback);
|
||||
|
||||
is_print_dialog_box_shown_ = false;
|
||||
worker_->PostTask(FROM_HERE,
|
||||
base::Bind(&PrintJobWorker::GetSettings, base::Unretained(worker_.get()),
|
||||
is_print_dialog_box_shown_, expected_page_count, has_selection,
|
||||
margin_type, is_scripted, is_modifiable, device_name));
|
||||
worker_->PostTask(
|
||||
FROM_HERE,
|
||||
base::Bind(&PrintJobWorker::GetSettings, base::Unretained(worker_.get()),
|
||||
is_print_dialog_box_shown_, expected_page_count, has_selection,
|
||||
margin_type, is_scripted, is_modifiable, device_name));
|
||||
}
|
||||
|
||||
void PrinterQuery::SetSettings(
|
||||
|
@ -114,10 +114,9 @@ void PrinterQuery::SetSettings(
|
|||
const base::Closure& callback) {
|
||||
StartWorker(callback);
|
||||
|
||||
worker_->PostTask(FROM_HERE,
|
||||
base::Bind(&PrintJobWorker::SetSettings,
|
||||
base::Unretained(worker_.get()),
|
||||
base::Passed(&new_settings)));
|
||||
worker_->PostTask(FROM_HERE, base::Bind(&PrintJobWorker::SetSettings,
|
||||
base::Unretained(worker_.get()),
|
||||
base::Passed(&new_settings)));
|
||||
}
|
||||
|
||||
void PrinterQuery::StartWorker(const base::Closure& callback) {
|
||||
|
|
|
@ -16,11 +16,9 @@
|
|||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/common/child_process_host.h"
|
||||
#include "printing/features/features.h"
|
||||
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "chrome/browser/printing/print_view_manager_basic.h"
|
||||
|
@ -86,15 +84,15 @@ PrintingMessageFilter::PrintingMessageFilter(int render_process_id)
|
|||
DCHECK(queue_.get());
|
||||
}
|
||||
|
||||
PrintingMessageFilter::~PrintingMessageFilter() {
|
||||
}
|
||||
PrintingMessageFilter::~PrintingMessageFilter() {}
|
||||
|
||||
void PrintingMessageFilter::OnDestruct() const {
|
||||
BrowserThread::DeleteOnUIThread::Destruct(this);
|
||||
}
|
||||
|
||||
void PrintingMessageFilter::OverrideThreadForMessage(
|
||||
const IPC::Message& message, BrowserThread::ID* thread) {
|
||||
const IPC::Message& message,
|
||||
BrowserThread::ID* thread) {
|
||||
#if defined(OS_ANDROID)
|
||||
if (message.type() == PrintHostMsg_AllocateTempFileForPrinting::ID ||
|
||||
message.type() == PrintHostMsg_TempFileForPrintingWritten::ID) {
|
||||
|
@ -174,8 +172,9 @@ void PrintingMessageFilter::OnGetDefaultPrintSettings(IPC::Message* reply_msg) {
|
|||
printer_query, reply_msg));
|
||||
}
|
||||
|
||||
void PrintingMessageFilter::OnInitSettingWithDeviceName(const base::string16& device_name,
|
||||
IPC::Message* reply_msg) {
|
||||
void PrintingMessageFilter::OnInitSettingWithDeviceName(
|
||||
const base::string16& device_name,
|
||||
IPC::Message* reply_msg) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
scoped_refptr<PrinterQuery> printer_query;
|
||||
printer_query = queue_->PopPrinterQuery(0);
|
||||
|
@ -187,17 +186,10 @@ void PrintingMessageFilter::OnInitSettingWithDeviceName(const base::string16& de
|
|||
// Loads default settings. This is asynchronous, only the IPC message sender
|
||||
// will hang until the settings are retrieved.
|
||||
printer_query->GetSettings(
|
||||
PrinterQuery::GetSettingsAskParam::DEFAULTS,
|
||||
0,
|
||||
false,
|
||||
DEFAULT_MARGINS,
|
||||
true,
|
||||
true,
|
||||
device_name,
|
||||
base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply,
|
||||
this,
|
||||
printer_query,
|
||||
reply_msg));
|
||||
PrinterQuery::GetSettingsAskParam::DEFAULTS, 0, false, DEFAULT_MARGINS,
|
||||
true, true, device_name,
|
||||
base::Bind(&PrintingMessageFilter::OnGetDefaultPrintSettingsReply, this,
|
||||
printer_query, reply_msg));
|
||||
}
|
||||
|
||||
void PrintingMessageFilter::OnGetDefaultPrintSettingsReply(
|
||||
|
@ -289,7 +281,8 @@ void PrintingMessageFilter::UpdateFileDescriptor(int render_view_id, int fd) {
|
|||
#endif
|
||||
|
||||
void PrintingMessageFilter::OnUpdatePrintSettings(
|
||||
int document_cookie, const base::DictionaryValue& job_settings,
|
||||
int document_cookie,
|
||||
const base::DictionaryValue& job_settings,
|
||||
IPC::Message* reply_msg) {
|
||||
std::unique_ptr<base::DictionaryValue> new_settings(job_settings.DeepCopy());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue