summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-21 19:18:05 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-21 19:18:05 +0000
commitb719142cac87c33ec2d6e99a238b5ecd48f87d68 (patch)
treecb073e88f553db6c3acab1c18c1f9e31793a80b7 /chrome
parentb119a1e6bdd11040f93245e0b71d654a4883b40a (diff)
downloadchromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.zip
chromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.tar.gz
chromium_src-b719142cac87c33ec2d6e99a238b5ecd48f87d68.tar.bz2
Printing: Implement PrintingContext::UseDefaultSettings for Linux/Cairo.
BUG=none TEST=none Review URL: http://codereview.chromium.org/3389005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60087 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/printing/print_job_worker.cc18
-rw-r--r--chrome/browser/printing/print_job_worker.h5
-rw-r--r--chrome/browser/renderer_host/resource_message_filter.cc10
-rw-r--r--chrome/browser/renderer_host/resource_message_filter.h4
-rw-r--r--chrome/common/render_messages_internal.h2
-rw-r--r--chrome/renderer/mock_render_thread.cc2
-rw-r--r--chrome/renderer/print_web_view_helper.cc2
-rw-r--r--chrome/renderer/print_web_view_helper_linux.cc36
8 files changed, 21 insertions, 58 deletions
diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
index 3a9ae03..dbc9544 100644
--- a/chrome/browser/printing/print_job_worker.cc
+++ b/chrome/browser/printing/print_job_worker.cc
@@ -85,9 +85,11 @@ void PrintJobWorker::GetSettings(bool ask_user_for_settings,
parent_view, document_page_count,
has_selection));
#else
- PrintingContext::Result result = printing_context_.AskUserForSettings(
- parent_view, document_page_count, has_selection);
- GetSettingsDone(result);
+ printing_context_.AskUserForSettings(
+ parent_view,
+ document_page_count,
+ has_selection,
+ NewCallback(this, &PrintJobWorker::GetSettingsDone));
#endif
} else {
PrintingContext::Result result = printing_context_.UseDefaultSettings();
@@ -116,8 +118,14 @@ void PrintJobWorker::GetSettingsWithUI(gfx::NativeView parent_view,
bool has_selection) {
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
- PrintingContext::Result result = printing_context_.AskUserForSettings(
- parent_view, document_page_count, has_selection);
+ printing_context_.AskUserForSettings(
+ parent_view,
+ document_page_count,
+ has_selection,
+ NewCallback(this, &PrintJobWorker::GetSettingsWithUIDone));
+}
+
+void PrintJobWorker::GetSettingsWithUIDone(PrintingContext::Result result) {
message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
this, &PrintJobWorker::GetSettingsDone, result));
}
diff --git a/chrome/browser/printing/print_job_worker.h b/chrome/browser/printing/print_job_worker.h
index 0849ccc..f79ca86 100644
--- a/chrome/browser/printing/print_job_worker.h
+++ b/chrome/browser/printing/print_job_worker.h
@@ -87,6 +87,11 @@ class PrintJobWorker : public base::Thread {
void GetSettingsWithUI(gfx::NativeView parent_view,
int document_page_count,
bool has_selection);
+
+ // The callback used by PrintingContext::GetSettingsWithUI() to notify this
+ // object that the print settings are set. This is needed in order to bounce
+ // back into the IO thread for GetSettingsDone().
+ void GetSettingsWithUIDone(PrintingContext::Result result);
#endif
// Reports settings back to owner_.
diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc
index 4cac19c..2ab1aca 100644
--- a/chrome/browser/renderer_host/resource_message_filter.cc
+++ b/chrome/browser/renderer_host/resource_message_filter.cc
@@ -159,7 +159,6 @@ class WriteClipboardTask : public Task {
void RenderParamsFromPrintSettings(const printing::PrintSettings& settings,
ViewMsg_Print_Params* params) {
DCHECK(params);
-#if defined(OS_WIN) || defined(OS_MACOSX)
params->page_size = settings.page_setup_device_units().physical_size();
params->printable_size.SetSize(
settings.page_setup_device_units().content_area().width(),
@@ -176,9 +175,6 @@ void RenderParamsFromPrintSettings(const printing::PrintSettings& settings,
// Always use an invalid cookie.
params->document_cookie = 0;
params->selection_only = settings.selection_only;
-#else
- NOTIMPLEMENTED();
-#endif
}
class ClearCacheCompletion : public net::CompletionCallback {
@@ -497,10 +493,8 @@ bool ResourceMessageFilter::OnMessageReceived(const IPC::Message& msg) {
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ResolveProxy, OnResolveProxy)
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_GetDefaultPrintSettings,
OnGetDefaultPrintSettings)
-#if defined(OS_WIN) || defined(OS_MACOSX)
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_ScriptedPrint,
OnScriptedPrint)
-#endif
#if defined(OS_MACOSX)
IPC_MESSAGE_HANDLER(ViewHostMsg_AllocTransportDIB,
OnAllocTransportDIB)
@@ -1183,8 +1177,6 @@ void ResourceMessageFilter::OnGetDefaultPrintSettingsReply(
}
}
-#if defined(OS_WIN) || defined(OS_MACOSX)
-
void ResourceMessageFilter::OnScriptedPrint(
const ViewHostMsg_ScriptedPrint_Params& params,
IPC::Message* reply_msg) {
@@ -1235,8 +1227,6 @@ void ResourceMessageFilter::OnScriptedPrintReply(
}
}
-#endif // OS_WIN || OS_MACOSX
-
// static
Clipboard* ResourceMessageFilter::GetClipboard() {
// We have a static instance of the clipboard service for use by all message
diff --git a/chrome/browser/renderer_host/resource_message_filter.h b/chrome/browser/renderer_host/resource_message_filter.h
index 633d587..3dd76bb 100644
--- a/chrome/browser/renderer_host/resource_message_filter.h
+++ b/chrome/browser/renderer_host/resource_message_filter.h
@@ -303,7 +303,7 @@ class ResourceMessageFilter : public IPC::ChannelProxy::MessageFilter,
void OnGetDefaultPrintSettingsReply(
scoped_refptr<printing::PrinterQuery> printer_query,
IPC::Message* reply_msg);
-#if defined(OS_WIN) || defined(OS_MACOSX)
+
// A javascript code requested to print the current page. The renderer host
// have to show to the user the print dialog and returns the selected print
// settings.
@@ -313,7 +313,7 @@ class ResourceMessageFilter : public IPC::ChannelProxy::MessageFilter,
scoped_refptr<printing::PrinterQuery> printer_query,
int routing_id,
IPC::Message* reply_msg);
-#endif
+
// Browser side transport DIB allocation
void OnAllocTransportDIB(size_t size,
bool cache_in_browser,
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index ed5a914..070123d 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -1682,7 +1682,6 @@ IPC_BEGIN_MESSAGES(ViewHost)
IPC_SYNC_MESSAGE_ROUTED0_1(ViewHostMsg_GetDefaultPrintSettings,
ViewMsg_Print_Params /* default_settings */)
-#if defined(OS_WIN) || defined(OS_MACOSX)
// It's the renderer that controls the printing process when it is generated
// by javascript. This step is about showing UI to the user to select the
// final print settings. The output parameter is the same as
@@ -1691,7 +1690,6 @@ IPC_BEGIN_MESSAGES(ViewHost)
ViewHostMsg_ScriptedPrint_Params,
ViewMsg_PrintPages_Params
/* settings chosen by the user*/)
-#endif // defined(OS_WIN) || defined(OS_MACOSX)
// WebKit and JavaScript error messages to log to the console
// or debugger UI.
diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc
index 484ba54..359b713 100644
--- a/chrome/renderer/mock_render_thread.cc
+++ b/chrome/renderer/mock_render_thread.cc
@@ -92,11 +92,11 @@ void MockRenderThread::OnMessageReceived(const IPC::Message& msg) {
IPC_MESSAGE_HANDLER(ViewHostMsg_CreateWidget, OnMsgCreateWidget)
IPC_MESSAGE_HANDLER(ViewHostMsg_OpenChannelToExtension,
OnMsgOpenChannelToExtension)
-#if defined(OS_WIN) || defined(OS_MACOSX)
IPC_MESSAGE_HANDLER(ViewHostMsg_GetDefaultPrintSettings,
OnGetDefaultPrintSettings)
IPC_MESSAGE_HANDLER(ViewHostMsg_ScriptedPrint,
OnScriptedPrint)
+#if defined(OS_WIN) || defined(OS_MACOSX)
IPC_MESSAGE_HANDLER(ViewHostMsg_DidGetPrintedPagesCount,
OnDidGetPrintedPagesCount)
IPC_MESSAGE_HANDLER(ViewHostMsg_DidPrintPage, OnDidPrintPage)
diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index 3a37e9d..f56ff53 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -86,7 +86,6 @@ PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view)
PrintWebViewHelper::~PrintWebViewHelper() {}
-#if defined(OS_MACOSX) || defined(OS_WIN)
void PrintWebViewHelper::Print(WebFrame* frame, bool script_initiated) {
const int kMinSecondsToIgnoreJavascriptInitiatedPrint = 2;
const int kMaxSecondsToIgnoreJavascriptInitiatedPrint = 2 * 60; // 2 Minutes.
@@ -224,7 +223,6 @@ void PrintWebViewHelper::Print(WebFrame* frame, bool script_initiated) {
// printing resources, since we don't need them anymore.
DidFinishPrinting(print_cancelled);
}
-#endif // OS_MACOSX || OS_WIN
void PrintWebViewHelper::DidFinishPrinting(bool success) {
if (!success) {
diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc
index a616ee43..53e021a 100644
--- a/chrome/renderer/print_web_view_helper_linux.cc
+++ b/chrome/renderer/print_web_view_helper_linux.cc
@@ -46,42 +46,6 @@ static void FillDefaultPrintParams(ViewMsg_Print_Params* params) {
params->desired_dpi = params->dpi;
}
-void PrintWebViewHelper::Print(WebFrame* frame, bool script_initiated) {
- // If still not finished with earlier print request simply ignore.
- if (IsPrinting())
- return;
-
- ViewMsg_Print_Params default_settings;
- FillDefaultPrintParams(&default_settings);
- double content_width, content_height;
-
- {
- // PrepareFrameAndViewForPrint instance must be destructed before calling
- // PrintPages where another instance is created.
- PrepareFrameAndViewForPrint prepare(default_settings,
- frame,
- frame->view());
- GetPageSizeAndMarginsInPoints(frame, 0, default_settings,
- &content_width, &content_height,
- NULL, NULL, NULL, NULL);
- }
-
- default_settings.dpi = printing::kPointsPerInch;
- default_settings.min_shrink = 1.25;
- default_settings.max_shrink = 2.0;
- default_settings.desired_dpi = printing::kPointsPerInch;
- default_settings.document_cookie = 0;
- default_settings.selection_only = false;
-
- default_settings.printable_size = gfx::Size(
- static_cast<int>(content_width), static_cast<int>(content_height));
-
- ViewMsg_PrintPages_Params print_settings;
- print_settings.params = default_settings;
-
- PrintPages(print_settings, frame);
-}
-
void PrintWebViewHelper::PrintPages(const ViewMsg_PrintPages_Params& params,
WebFrame* frame) {
PrepareFrameAndViewForPrint prep_frame_view(params.params,