Index: headless/lib/browser/headless_print_manager.cc |
diff --git a/headless/lib/browser/headless_print_manager.cc b/headless/lib/browser/headless_print_manager.cc |
index 036c7471fcdc7cee8c35a46ad69b0121eb12c853..6e6efe40b460da151e579fe300cc2efc8e198f1c 100644 |
--- a/headless/lib/browser/headless_print_manager.cc |
+++ b/headless/lib/browser/headless_print_manager.cc |
@@ -173,6 +173,25 @@ HeadlessPrintManager::GetPrintParamsFromSettings( |
bool HeadlessPrintManager::OnMessageReceived( |
const IPC::Message& message, |
content::RenderFrameHost* render_frame_host) { |
+ if (!printing_rfh_ && |
+ (message.type() == PrintHostMsg_GetDefaultPrintSettings::ID || |
+ message.type() == PrintHostMsg_ScriptedPrint::ID)) { |
jzfeng
2017/05/19 01:01:08
nit: check for PrintHostMsg_DidPrintPage here?
Or
|
+ std::string type; |
+ switch (message.type()) { |
+ case PrintHostMsg_GetDefaultPrintSettings::ID: |
+ type = "GetDefaultPrintSettings"; |
+ break; |
+ case PrintHostMsg_ScriptedPrint::ID: |
+ type = "ScriptedPrint"; |
+ break; |
Sami
2017/05/19 13:10:01
Please add a default case too.
|
+ } |
+ DLOG(ERROR) |
+ << "Unexpected message received before GetPDFContents is called: " |
+ << type; |
+ render_frame_host->Send(new IPC::Message()); |
Sami
2017/05/19 13:10:01
Does this end up dropping the print request on the
|
+ return true; |
+ } |
+ |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(HeadlessPrintManager, message) |
IPC_MESSAGE_HANDLER(PrintHostMsg_ShowInvalidPrinterSettingsError, |
@@ -233,12 +252,6 @@ void HeadlessPrintManager::OnDidGetPrintedPagesCount(int cookie, |
void HeadlessPrintManager::OnDidPrintPage( |
const PrintHostMsg_DidPrintPage_Params& params) { |
- if (!callback_) { |
- DLOG(ERROR) |
- << "Unexpected PrintHostMsg_DidPrintPage message from the renderer"; |
- return; |
- } |
- |
const bool metafile_must_be_valid = expecting_first_page_; |
expecting_first_page_ = false; |