| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "base/memory/ref_counted_memory.h" | 10 #include "base/memory/ref_counted_memory.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 NOTREACHED(); | 88 NOTREACHED(); |
| 89 return; | 89 return; |
| 90 } | 90 } |
| 91 | 91 |
| 92 TabContents* print_preview_tab = GetPrintPreviewTab(); | 92 TabContents* print_preview_tab = GetPrintPreviewTab(); |
| 93 if (!print_preview_tab || !print_preview_tab->web_ui()) | 93 if (!print_preview_tab || !print_preview_tab->web_ui()) |
| 94 return; | 94 return; |
| 95 | 95 |
| 96 PrintPreviewUI* print_preview_ui = | 96 PrintPreviewUI* print_preview_ui = |
| 97 static_cast<PrintPreviewUI*>(print_preview_tab->web_ui()); | 97 static_cast<PrintPreviewUI*>(print_preview_tab->web_ui()); |
| 98 |
| 99 if (!params.is_modifiable || params.clear_preview_data) |
| 100 print_preview_ui->ClearAllPreviewData(); |
| 101 |
| 98 print_preview_ui->OnDidGetPreviewPageCount(params); | 102 print_preview_ui->OnDidGetPreviewPageCount(params); |
| 99 } | 103 } |
| 100 | 104 |
| 101 void PrintPreviewMessageHandler::OnDidPreviewPage( | 105 void PrintPreviewMessageHandler::OnDidPreviewPage( |
| 102 const PrintHostMsg_DidPreviewPage_Params& params) { | 106 const PrintHostMsg_DidPreviewPage_Params& params) { |
| 103 TabContents* print_preview_tab = GetPrintPreviewTab(); | 107 TabContents* print_preview_tab = GetPrintPreviewTab(); |
| 104 if (!print_preview_tab || !print_preview_tab->web_ui()) | 108 if (!print_preview_tab || !print_preview_tab->web_ui()) |
| 105 return; | 109 return; |
| 106 | 110 |
| 107 PrintPreviewUI* print_preview_ui = | 111 PrintPreviewUI* print_preview_ui = |
| 108 static_cast<PrintPreviewUI*>(print_preview_tab->web_ui()); | 112 static_cast<PrintPreviewUI*>(print_preview_tab->web_ui()); |
| 109 int page_number = params.page_number; | 113 int page_number = params.page_number; |
| 110 | |
| 111 if (page_number == FIRST_PAGE_INDEX) | |
| 112 print_preview_ui->ClearAllPreviewData(); | |
| 113 | |
| 114 if (page_number >= FIRST_PAGE_INDEX && params.data_size) { | 114 if (page_number >= FIRST_PAGE_INDEX && params.data_size) { |
| 115 RefCountedBytes* data_bytes = | 115 RefCountedBytes* data_bytes = |
| 116 GetDataFromHandle(params.metafile_data_handle, params.data_size); | 116 GetDataFromHandle(params.metafile_data_handle, params.data_size); |
| 117 DCHECK(data_bytes); | 117 DCHECK(data_bytes); |
| 118 | 118 |
| 119 print_preview_ui->SetPrintPreviewDataForIndex(page_number, data_bytes); | 119 print_preview_ui->SetPrintPreviewDataForIndex(page_number, data_bytes); |
| 120 print_preview_ui->OnDidPreviewPage(page_number, params.preview_request_id); | 120 print_preview_ui->OnDidPreviewPage(page_number, params.preview_request_id); |
| 121 } | 121 } |
| 122 } | 122 } |
| 123 | 123 |
| 124 void PrintPreviewMessageHandler::OnPagesReadyForPreview( | 124 void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( |
| 125 const PrintHostMsg_DidPreviewDocument_Params& params) { | 125 const PrintHostMsg_DidPreviewDocument_Params& params) { |
| 126 // Always try to stop the worker. | 126 // Always try to stop the worker. |
| 127 StopWorker(params.document_cookie); | 127 StopWorker(params.document_cookie); |
| 128 | 128 |
| 129 if (params.expected_pages_count <= 0) { | 129 if (params.expected_pages_count <= 0) { |
| 130 NOTREACHED(); | 130 NOTREACHED(); |
| 131 return; | 131 return; |
| 132 } | 132 } |
| 133 | 133 |
| 134 // Get the print preview tab. | 134 // Get the print preview tab. |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 bool PrintPreviewMessageHandler::OnMessageReceived( | 214 bool PrintPreviewMessageHandler::OnMessageReceived( |
| 215 const IPC::Message& message) { | 215 const IPC::Message& message) { |
| 216 bool handled = true; | 216 bool handled = true; |
| 217 IPC_BEGIN_MESSAGE_MAP(PrintPreviewMessageHandler, message) | 217 IPC_BEGIN_MESSAGE_MAP(PrintPreviewMessageHandler, message) |
| 218 IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview, | 218 IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview, |
| 219 OnRequestPrintPreview) | 219 OnRequestPrintPreview) |
| 220 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPreviewPageCount, | 220 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPreviewPageCount, |
| 221 OnDidGetPreviewPageCount) | 221 OnDidGetPreviewPageCount) |
| 222 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPreviewPage, | 222 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPreviewPage, |
| 223 OnDidPreviewPage) | 223 OnDidPreviewPage) |
| 224 IPC_MESSAGE_HANDLER(PrintHostMsg_PagesReadyForPreview, | 224 IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting, |
| 225 OnPagesReadyForPreview) | 225 OnMetafileReadyForPrinting) |
| 226 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, | 226 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, |
| 227 OnPrintPreviewFailed) | 227 OnPrintPreviewFailed) |
| 228 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetDefaultPageLayout, | 228 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetDefaultPageLayout, |
| 229 OnDidGetDefaultPageLayout) | 229 OnDidGetDefaultPageLayout) |
| 230 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewCancelled, | 230 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewCancelled, |
| 231 OnPrintPreviewCancelled) | 231 OnPrintPreviewCancelled) |
| 232 IPC_MESSAGE_UNHANDLED(handled = false) | 232 IPC_MESSAGE_UNHANDLED(handled = false) |
| 233 IPC_END_MESSAGE_MAP() | 233 IPC_END_MESSAGE_MAP() |
| 234 return handled; | 234 return handled; |
| 235 } | 235 } |
| 236 | 236 |
| 237 void PrintPreviewMessageHandler::DidStartLoading() { | 237 void PrintPreviewMessageHandler::DidStartLoading() { |
| 238 if (tab_contents()->delegate() && | 238 if (tab_contents()->delegate() && |
| 239 printing::PrintPreviewTabController::IsPrintPreviewTab(tab_contents())) { | 239 printing::PrintPreviewTabController::IsPrintPreviewTab(tab_contents())) { |
| 240 tab_contents()->SetContentRestrictions(CONTENT_RESTRICTION_PRINT); | 240 tab_contents()->SetContentRestrictions(CONTENT_RESTRICTION_PRINT); |
| 241 } | 241 } |
| 242 } | 242 } |
| 243 | 243 |
| 244 } // namespace printing | 244 } // namespace printing |
| OLD | NEW |