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 |