Index: chrome/browser/printing/printing_message_filter.cc |
diff --git a/chrome/browser/printing/printing_message_filter.cc b/chrome/browser/printing/printing_message_filter.cc |
index 6af14f7f13139f166d1dea644f004294a9b5dcdd..8a8271927a46f950a19bafb5e136a968b52865a9 100644 |
--- a/chrome/browser/printing/printing_message_filter.cc |
+++ b/chrome/browser/printing/printing_message_filter.cc |
@@ -34,6 +34,7 @@ |
#if defined(OS_ANDROID) |
#include "base/strings/string_number_conversions.h" |
+#include "chrome/browser/android/tab_android.h" |
#include "chrome/browser/printing/print_view_manager_basic.h" |
#include "printing/printing_context_android.h" |
#endif |
@@ -129,6 +130,10 @@ bool PrintingMessageFilter::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(PrintHostMsg_TempFileForPrintingWritten, |
OnTempFileForPrintingWritten) |
#endif |
+#if defined(OS_ANDROID) |
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(PrintHostMsg_InitiateAndroidPrint, |
Vitaly Buka (NO REVIEWS)
2014/11/21 17:05:12
don't need new message
|
+ OnInitiateAndroidPrint) |
+#endif |
IPC_MESSAGE_HANDLER(PrintHostMsg_IsPrintingEnabled, OnIsPrintingEnabled) |
IPC_MESSAGE_HANDLER_DELAY_REPLY(PrintHostMsg_GetDefaultPrintSettings, |
OnGetDefaultPrintSettings) |
@@ -323,6 +328,9 @@ void PrintingMessageFilter::OnScriptedPrint( |
printer_query = |
queue_->CreatePrinterQuery(render_process_id_, reply_msg->routing_id()); |
} |
+ |
+ DLOG(INFO) << "DGN OnScriptedPrint - cookie: " << params.cookie; |
+ |
printer_query->GetSettings( |
Vitaly Buka (NO REVIEWS)
2014/11/21 17:05:12
Here it goes into Printing::AskUserForSettings and
|
PrinterQuery::ASK_USER, |
params.expected_pages_count, |
@@ -338,6 +346,9 @@ void PrintingMessageFilter::OnScriptedPrintReply( |
scoped_refptr<PrinterQuery> printer_query, |
IPC::Message* reply_msg) { |
PrintMsg_PrintPages_Params params; |
+ |
+DLOG(INFO) << "DGN OnScriptedPrintReply"; |
+ |
#if defined(OS_ANDROID) |
// We need to save the routing ID here because Send method below deletes the |
// |reply_msg| before we can get the routing ID for the Android code. |
@@ -373,6 +384,9 @@ void PrintingMessageFilter::OnScriptedPrintReply( |
#if defined(OS_ANDROID) |
void PrintingMessageFilter::UpdateFileDescriptor(int render_view_id, int fd) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ |
+ DLOG(INFO) << "DGN UpdateFileDescriptor"; |
+ |
content::WebContents* wc = GetWebContentsForRenderView(render_view_id); |
if (!wc) |
return; |
@@ -380,6 +394,37 @@ void PrintingMessageFilter::UpdateFileDescriptor(int render_view_id, int fd) { |
PrintViewManagerBasic::FromWebContents(wc); |
print_view_manager->set_file_descriptor(base::FileDescriptor(fd, false)); |
} |
+ |
+void PrintingMessageFilter::ShowPrintDialog(int render_view_id) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ content::WebContents* wc = GetWebContentsForRenderView(render_view_id); |
Vitaly Buka (NO REVIEWS)
2014/11/21 17:05:13
PrintingContext::Delegate suppose provide necessar
|
+ TabAndroid* tab = TabAndroid::FromWebContents(wc); |
+ if (tab) tab->ShowPrintDialog(); |
+} |
+ |
+void PrintingMessageFilter::OnInitiateAndroidPrint(int cookie, IPC::Message* reply_msg) { |
+ |
+ DLOG(INFO) << "DGN OnInitiateAndroidPrint - cookie: " << cookie; |
+ |
+ scoped_refptr<PrinterQuery> printer_query = queue_->PopPrinterQuery(cookie); |
+ if (!printer_query.get()) { |
+ printer_query = |
+ queue_->CreatePrinterQuery(render_process_id_, reply_msg->routing_id()); |
dgn
2014/11/20 12:26:16
Here I'm trying to get/create the PrinterQuery tha
|
+ } |
+ printer_query->SetInitiatedFromAndroidScript(); |
dgn
2014/11/20 12:26:16
Placeholder method for test. Eventusally this woul
|
+ |
+ // we want it to be retrieved by the upcoming OnScriptedPrint call (that does not work) |
+ queue_->QueuePrinterQuery(printer_query.get()); |
+ |
+ BrowserThread::PostTask( |
+ BrowserThread::UI, FROM_HERE, |
+ base::Bind(&PrintingMessageFilter::ShowPrintDialog, |
+ this, |
+ reply_msg->routing_id())); |
+ DLOG(INFO) << "DGN OnInitiateAndroidPrint - Post task returned"; |
+ Send(reply_msg); // TODO: Send that only once java's onFinish is called. |
+} |
+ |
#endif |
void PrintingMessageFilter::OnUpdatePrintSettings( |