OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/printing/print_preview_message_handler.h" | 5 #include "chrome/browser/printing/print_preview_message_handler.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
11 #include "base/memory/ref_counted_memory.h" | 11 #include "base/memory/ref_counted_memory.h" |
12 #include "base/shared_memory.h" | 12 #include "base/shared_memory.h" |
13 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
14 #include "chrome/browser/printing/print_job_manager.h" | 14 #include "chrome/browser/printing/print_job_manager.h" |
15 #include "chrome/browser/printing/print_preview_tab_controller.h" | 15 #include "chrome/browser/printing/print_preview_tab_controller.h" |
16 #include "chrome/browser/printing/print_view_manager.h" | 16 #include "chrome/browser/printing/print_view_manager.h" |
17 #include "chrome/browser/printing/printer_query.h" | 17 #include "chrome/browser/printing/printer_query.h" |
18 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 18 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
19 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" | 19 #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" |
20 #include "chrome/common/print_messages.h" | 20 #include "chrome/common/print_messages.h" |
21 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
22 #include "content/public/browser/render_view_host.h" | 22 #include "content/public/browser/render_view_host.h" |
23 #include "content/public/browser/web_contents.h" | 23 #include "content/public/browser/web_contents.h" |
24 #include "content/public/browser/web_ui.h" | 24 #include "content/public/browser/web_ui.h" |
25 #include "printing/page_size_margins.h" | 25 #include "printing/page_size_margins.h" |
26 #include "printing/print_job_constants.h" | 26 #include "printing/print_job_constants.h" |
27 #include "ui/gfx/rect.h" | |
Lei Zhang
2012/04/26 00:19:51
nit: not needed since all we do is pass the Rect t
kmadhusu
2012/04/26 22:18:51
Done.
| |
27 | 28 |
28 using content::BrowserThread; | 29 using content::BrowserThread; |
29 using content::NavigationController; | 30 using content::NavigationController; |
30 using content::WebContents; | 31 using content::WebContents; |
31 | 32 |
32 namespace { | 33 namespace { |
33 | 34 |
34 void StopWorker(int document_cookie) { | 35 void StopWorker(int document_cookie) { |
35 if (document_cookie <= 0) | 36 if (document_cookie <= 0) |
36 return; | 37 return; |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
207 } | 208 } |
208 | 209 |
209 void PrintPreviewMessageHandler::OnInvalidPrinterSettings(int document_cookie) { | 210 void PrintPreviewMessageHandler::OnInvalidPrinterSettings(int document_cookie) { |
210 StopWorker(document_cookie); | 211 StopWorker(document_cookie); |
211 PrintPreviewUI* print_preview_ui = GetPrintPreviewUI(); | 212 PrintPreviewUI* print_preview_ui = GetPrintPreviewUI(); |
212 if (!print_preview_ui) | 213 if (!print_preview_ui) |
213 return; | 214 return; |
214 print_preview_ui->OnInvalidPrinterSettings(); | 215 print_preview_ui->OnInvalidPrinterSettings(); |
215 } | 216 } |
216 | 217 |
218 void PrintPreviewMessageHandler::OnPrintPreviewScalingDisabled() { | |
219 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | |
Lei Zhang
2012/04/26 00:19:51
Just rewrite this method as:
PrintPreviewUI* prin
kmadhusu
2012/04/26 22:18:51
Done.
| |
220 if (!print_preview_tab || !print_preview_tab->web_contents()->GetWebUI()) | |
221 return; | |
222 | |
223 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( | |
224 print_preview_tab->web_contents()->GetWebUI()->GetController()); | |
225 print_preview_ui->OnPrintPreviewScalingDisabled(); | |
226 } | |
227 | |
217 bool PrintPreviewMessageHandler::OnMessageReceived( | 228 bool PrintPreviewMessageHandler::OnMessageReceived( |
218 const IPC::Message& message) { | 229 const IPC::Message& message) { |
219 bool handled = true; | 230 bool handled = true; |
220 IPC_BEGIN_MESSAGE_MAP(PrintPreviewMessageHandler, message) | 231 IPC_BEGIN_MESSAGE_MAP(PrintPreviewMessageHandler, message) |
221 IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview, | 232 IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview, |
222 OnRequestPrintPreview) | 233 OnRequestPrintPreview) |
223 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPreviewPageCount, | 234 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPreviewPageCount, |
224 OnDidGetPreviewPageCount) | 235 OnDidGetPreviewPageCount) |
225 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPreviewPage, | 236 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPreviewPage, |
226 OnDidPreviewPage) | 237 OnDidPreviewPage) |
227 IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting, | 238 IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting, |
228 OnMetafileReadyForPrinting) | 239 OnMetafileReadyForPrinting) |
229 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, | 240 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, |
230 OnPrintPreviewFailed) | 241 OnPrintPreviewFailed) |
231 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetDefaultPageLayout, | 242 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetDefaultPageLayout, |
232 OnDidGetDefaultPageLayout) | 243 OnDidGetDefaultPageLayout) |
233 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewCancelled, | 244 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewCancelled, |
234 OnPrintPreviewCancelled) | 245 OnPrintPreviewCancelled) |
235 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewInvalidPrinterSettings, | 246 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewInvalidPrinterSettings, |
236 OnInvalidPrinterSettings) | 247 OnInvalidPrinterSettings) |
248 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewScalingDisabled, | |
249 OnPrintPreviewScalingDisabled) | |
237 IPC_MESSAGE_UNHANDLED(handled = false) | 250 IPC_MESSAGE_UNHANDLED(handled = false) |
238 IPC_END_MESSAGE_MAP() | 251 IPC_END_MESSAGE_MAP() |
239 return handled; | 252 return handled; |
240 } | 253 } |
241 | 254 |
242 void PrintPreviewMessageHandler::NavigateToPendingEntry( | 255 void PrintPreviewMessageHandler::NavigateToPendingEntry( |
243 const GURL& url, | 256 const GURL& url, |
244 NavigationController::ReloadType reload_type) { | 257 NavigationController::ReloadType reload_type) { |
245 TabContentsWrapper* tab = tab_contents_wrapper(); | 258 TabContentsWrapper* tab = tab_contents_wrapper(); |
246 TabContentsWrapper* preview_tab = GetPrintPreviewTab(); | 259 TabContentsWrapper* preview_tab = GetPrintPreviewTab(); |
247 if (tab == preview_tab) { | 260 if (tab == preview_tab) { |
248 // Cloud print sign-in reloads the page. | 261 // Cloud print sign-in reloads the page. |
249 DCHECK(PrintPreviewTabController::IsPrintPreviewURL(url)); | 262 DCHECK(PrintPreviewTabController::IsPrintPreviewURL(url)); |
250 DCHECK_EQ(NavigationController::RELOAD, reload_type); | 263 DCHECK_EQ(NavigationController::RELOAD, reload_type); |
251 return; | 264 return; |
252 } | 265 } |
253 // If |tab| is navigating and it has a print preview tab, notify |tab| to | 266 // If |tab| is navigating and it has a print preview tab, notify |tab| to |
254 // consider print preview done so it unfreezes the renderer in the case of | 267 // consider print preview done so it unfreezes the renderer in the case of |
255 // window.print(). | 268 // window.print(). |
256 if (preview_tab) | 269 if (preview_tab) |
257 tab->print_view_manager()->PrintPreviewDone(); | 270 tab->print_view_manager()->PrintPreviewDone(); |
258 } | 271 } |
259 | 272 |
260 } // namespace printing | 273 } // namespace printing |
OLD | NEW |