Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: android_webview/browser/aw_print_manager.cc

Issue 2770713003: Enable page selection for WebView printing (Closed)
Patch Set: enable IsAskPrintSettingsEnabled Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "android_webview/browser/aw_print_manager.h" 5 #include "android_webview/browser/aw_print_manager.h"
6 6
7 #include "components/printing/browser/print_manager_utils.h" 7 #include "components/printing/browser/print_manager_utils.h"
8 #include "components/printing/common/print_messages.h"
9 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
10 #include "content/public/browser/render_frame_host.h" 9 #include "content/public/browser/render_frame_host.h"
11 10
12 DEFINE_WEB_CONTENTS_USER_DATA_KEY(android_webview::AwPrintManager); 11 DEFINE_WEB_CONTENTS_USER_DATA_KEY(android_webview::AwPrintManager);
13 12
14 namespace android_webview { 13 namespace android_webview {
15 14
16 // static 15 // static
17 AwPrintManager* AwPrintManager::CreateForWebContents( 16 AwPrintManager* AwPrintManager::CreateForWebContents(
18 content::WebContents* contents, 17 content::WebContents* contents,
(...skipping 27 matching lines...) Expand all
46 return rfh->Send(new PrintMsg_PrintPages(rfh->GetRoutingID())); 45 return rfh->Send(new PrintMsg_PrintPages(rfh->GetRoutingID()));
47 } 46 }
48 47
49 bool AwPrintManager::OnMessageReceived( 48 bool AwPrintManager::OnMessageReceived(
50 const IPC::Message& message, 49 const IPC::Message& message,
51 content::RenderFrameHost* render_frame_host) { 50 content::RenderFrameHost* render_frame_host) {
52 bool handled = true; 51 bool handled = true;
53 IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(AwPrintManager, message, render_frame_host) 52 IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(AwPrintManager, message, render_frame_host)
54 IPC_MESSAGE_HANDLER_WITH_PARAM_DELAY_REPLY( 53 IPC_MESSAGE_HANDLER_WITH_PARAM_DELAY_REPLY(
55 PrintHostMsg_GetDefaultPrintSettings, OnGetDefaultPrintSettings) 54 PrintHostMsg_GetDefaultPrintSettings, OnGetDefaultPrintSettings)
55 IPC_MESSAGE_HANDLER_WITH_PARAM_DELAY_REPLY(PrintHostMsg_ScriptedPrint,
56 OnScriptedPrint)
56 IPC_MESSAGE_UNHANDLED(handled = false) 57 IPC_MESSAGE_UNHANDLED(handled = false)
57 IPC_END_MESSAGE_MAP() 58 IPC_END_MESSAGE_MAP()
58 return handled ? true 59 return handled ? true
59 : PrintManager::OnMessageReceived(message, render_frame_host); 60 : PrintManager::OnMessageReceived(message, render_frame_host);
60 } 61 }
61 62
62 void AwPrintManager::OnGetDefaultPrintSettings( 63 void AwPrintManager::OnGetDefaultPrintSettings(
63 content::RenderFrameHost* render_frame_host, 64 content::RenderFrameHost* render_frame_host,
64 IPC::Message* reply_msg) { 65 IPC::Message* reply_msg) {
65 // Unlike the printing_message_filter, we do process this in UI thread. 66 // Unlike the printing_message_filter, we do process this in UI thread.
66 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 67 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
67 PrintMsg_Print_Params params; 68 PrintMsg_Print_Params params;
68 printing::RenderParamsFromPrintSettings(settings_, &params); 69 printing::RenderParamsFromPrintSettings(settings_, &params);
69 params.document_cookie = cookie_; 70 params.document_cookie = cookie_;
70 PrintHostMsg_GetDefaultPrintSettings::WriteReplyParams(reply_msg, params); 71 PrintHostMsg_GetDefaultPrintSettings::WriteReplyParams(reply_msg, params);
71 render_frame_host->Send(reply_msg); 72 render_frame_host->Send(reply_msg);
72 } 73 }
73 74
75 void AwPrintManager::OnScriptedPrint(
76 content::RenderFrameHost* render_frame_host,
77 const PrintHostMsg_ScriptedPrint_Params& scripted_params,
78 IPC::Message* reply_msg) {
79 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
80 PrintMsg_PrintPages_Params params;
81 printing::RenderParamsFromPrintSettings(settings_, &params.params);
82 params.params.document_cookie = scripted_params.cookie;
83 params.pages = printing::PageRange::GetPages(settings_.ranges());
84 PrintHostMsg_UpdatePrintSettings::WriteReplyParams(reply_msg, params, false);
Lei Zhang 2017/03/22 22:26:43 Shouldn't this be PrintHostMsg_ScriptedPrint::Writ
Shimi Zhang 2017/03/23 23:21:56 Done.
85 render_frame_host->Send(reply_msg);
86 }
87
74 } // namespace android_webview 88 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698