| 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/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 return TabContentsWrapper::GetCurrentWrapperForContents(tab_contents()); | 84 return TabContentsWrapper::GetCurrentWrapperForContents(tab_contents()); |
| 85 } | 85 } |
| 86 | 86 |
| 87 PrintPreviewUI* PrintPreviewMessageHandler::OnFailure(int document_cookie) { | 87 PrintPreviewUI* PrintPreviewMessageHandler::OnFailure(int document_cookie) { |
| 88 // Always need to stop the worker. | 88 // Always need to stop the worker. |
| 89 StopWorker(document_cookie); | 89 StopWorker(document_cookie); |
| 90 | 90 |
| 91 // Inform the print preview tab of the failure. | 91 // Inform the print preview tab of the failure. |
| 92 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | 92 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); |
| 93 // User might have closed it already. | 93 // User might have closed it already. |
| 94 if (!print_preview_tab || !print_preview_tab->tab_contents()->web_ui()) | 94 if (!print_preview_tab || !print_preview_tab->tab_contents()->GetWebUI()) |
| 95 return NULL; | 95 return NULL; |
| 96 | 96 |
| 97 return static_cast<PrintPreviewUI*>( | 97 return static_cast<PrintPreviewUI*>( |
| 98 print_preview_tab->tab_contents()->web_ui()); | 98 print_preview_tab->tab_contents()->GetWebUI()); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void PrintPreviewMessageHandler::OnRequestPrintPreview( | 101 void PrintPreviewMessageHandler::OnRequestPrintPreview( |
| 102 bool source_is_modifiable) { | 102 bool source_is_modifiable) { |
| 103 PrintPreviewTabController::PrintPreview(tab_contents_wrapper()); | 103 PrintPreviewTabController::PrintPreview(tab_contents_wrapper()); |
| 104 PrintPreviewUI::SetSourceIsModifiable(GetPrintPreviewTab(), | 104 PrintPreviewUI::SetSourceIsModifiable(GetPrintPreviewTab(), |
| 105 source_is_modifiable); | 105 source_is_modifiable); |
| 106 } | 106 } |
| 107 | 107 |
| 108 void PrintPreviewMessageHandler::OnDidGetPreviewPageCount( | 108 void PrintPreviewMessageHandler::OnDidGetPreviewPageCount( |
| 109 const PrintHostMsg_DidGetPreviewPageCount_Params& params) { | 109 const PrintHostMsg_DidGetPreviewPageCount_Params& params) { |
| 110 if (params.page_count <= 0) { | 110 if (params.page_count <= 0) { |
| 111 NOTREACHED(); | 111 NOTREACHED(); |
| 112 return; | 112 return; |
| 113 } | 113 } |
| 114 | 114 |
| 115 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | 115 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); |
| 116 if (!print_preview_tab || !print_preview_tab->tab_contents()->web_ui()) | 116 if (!print_preview_tab || !print_preview_tab->tab_contents()->GetWebUI()) |
| 117 return; | 117 return; |
| 118 | 118 |
| 119 PrintPreviewUI* print_preview_ui = | 119 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| 120 static_cast<PrintPreviewUI*>(print_preview_tab->tab_contents()->web_ui()); | 120 print_preview_tab->tab_contents()->GetWebUI()); |
| 121 | 121 |
| 122 if (!params.is_modifiable || params.clear_preview_data) | 122 if (!params.is_modifiable || params.clear_preview_data) |
| 123 print_preview_ui->ClearAllPreviewData(); | 123 print_preview_ui->ClearAllPreviewData(); |
| 124 | 124 |
| 125 print_preview_ui->OnDidGetPreviewPageCount(params); | 125 print_preview_ui->OnDidGetPreviewPageCount(params); |
| 126 } | 126 } |
| 127 | 127 |
| 128 void PrintPreviewMessageHandler::OnDidPreviewPage( | 128 void PrintPreviewMessageHandler::OnDidPreviewPage( |
| 129 const PrintHostMsg_DidPreviewPage_Params& params) { | 129 const PrintHostMsg_DidPreviewPage_Params& params) { |
| 130 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | 130 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); |
| 131 if (!print_preview_tab || !print_preview_tab->tab_contents()->web_ui()) | 131 if (!print_preview_tab || !print_preview_tab->tab_contents()->GetWebUI()) |
| 132 return; | 132 return; |
| 133 | 133 |
| 134 PrintPreviewUI* print_preview_ui = | 134 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| 135 static_cast<PrintPreviewUI*>(print_preview_tab->tab_contents()->web_ui()); | 135 print_preview_tab->tab_contents()->GetWebUI()); |
| 136 int page_number = params.page_number; | 136 int page_number = params.page_number; |
| 137 if (page_number >= FIRST_PAGE_INDEX && params.data_size) { | 137 if (page_number >= FIRST_PAGE_INDEX && params.data_size) { |
| 138 RefCountedBytes* data_bytes = | 138 RefCountedBytes* data_bytes = |
| 139 GetDataFromHandle(params.metafile_data_handle, params.data_size); | 139 GetDataFromHandle(params.metafile_data_handle, params.data_size); |
| 140 DCHECK(data_bytes); | 140 DCHECK(data_bytes); |
| 141 | 141 |
| 142 print_preview_ui->SetPrintPreviewDataForIndex(page_number, data_bytes); | 142 print_preview_ui->SetPrintPreviewDataForIndex(page_number, data_bytes); |
| 143 print_preview_ui->OnDidPreviewPage(page_number, params.preview_request_id); | 143 print_preview_ui->OnDidPreviewPage(page_number, params.preview_request_id); |
| 144 } | 144 } |
| 145 } | 145 } |
| 146 | 146 |
| 147 void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( | 147 void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( |
| 148 const PrintHostMsg_DidPreviewDocument_Params& params) { | 148 const PrintHostMsg_DidPreviewDocument_Params& params) { |
| 149 // Always try to stop the worker. | 149 // Always try to stop the worker. |
| 150 StopWorker(params.document_cookie); | 150 StopWorker(params.document_cookie); |
| 151 | 151 |
| 152 if (params.expected_pages_count <= 0) { | 152 if (params.expected_pages_count <= 0) { |
| 153 NOTREACHED(); | 153 NOTREACHED(); |
| 154 return; | 154 return; |
| 155 } | 155 } |
| 156 | 156 |
| 157 // Get the print preview tab. | 157 // Get the print preview tab. |
| 158 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | 158 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); |
| 159 // User might have closed it already. | 159 // User might have closed it already. |
| 160 if (!print_preview_tab || !print_preview_tab->tab_contents()->web_ui()) | 160 if (!print_preview_tab || !print_preview_tab->tab_contents()->GetWebUI()) |
| 161 return; | 161 return; |
| 162 | 162 |
| 163 PrintPreviewUI* print_preview_ui = | 163 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| 164 static_cast<PrintPreviewUI*>(print_preview_tab->tab_contents()->web_ui()); | 164 print_preview_tab->tab_contents()->GetWebUI()); |
| 165 | 165 |
| 166 if (params.reuse_existing_data) { | 166 if (params.reuse_existing_data) { |
| 167 // Need to match normal rendering where we are expected to send this. | 167 // Need to match normal rendering where we are expected to send this. |
| 168 PrintHostMsg_DidGetPreviewPageCount_Params temp_params; | 168 PrintHostMsg_DidGetPreviewPageCount_Params temp_params; |
| 169 temp_params.page_count = params.expected_pages_count; | 169 temp_params.page_count = params.expected_pages_count; |
| 170 temp_params.document_cookie = params.document_cookie; | 170 temp_params.document_cookie = params.document_cookie; |
| 171 temp_params.is_modifiable = params.modifiable; | 171 temp_params.is_modifiable = params.modifiable; |
| 172 temp_params.preview_request_id = params.preview_request_id; | 172 temp_params.preview_request_id = params.preview_request_id; |
| 173 print_preview_ui->OnDidGetPreviewPageCount(temp_params); | 173 print_preview_ui->OnDidGetPreviewPageCount(temp_params); |
| 174 print_preview_ui->OnReusePreviewData(params.preview_request_id); | 174 print_preview_ui->OnReusePreviewData(params.preview_request_id); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 192 void PrintPreviewMessageHandler::OnPrintPreviewFailed(int document_cookie) { | 192 void PrintPreviewMessageHandler::OnPrintPreviewFailed(int document_cookie) { |
| 193 PrintPreviewUI* print_preview_ui = OnFailure(document_cookie); | 193 PrintPreviewUI* print_preview_ui = OnFailure(document_cookie); |
| 194 if (!print_preview_ui) | 194 if (!print_preview_ui) |
| 195 return; | 195 return; |
| 196 print_preview_ui->OnPrintPreviewFailed(); | 196 print_preview_ui->OnPrintPreviewFailed(); |
| 197 } | 197 } |
| 198 | 198 |
| 199 void PrintPreviewMessageHandler::OnDidGetDefaultPageLayout( | 199 void PrintPreviewMessageHandler::OnDidGetDefaultPageLayout( |
| 200 const PageSizeMargins& page_layout_in_points) { | 200 const PageSizeMargins& page_layout_in_points) { |
| 201 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); | 201 TabContentsWrapper* print_preview_tab = GetPrintPreviewTab(); |
| 202 if (!print_preview_tab || !print_preview_tab->tab_contents()->web_ui()) | 202 if (!print_preview_tab || !print_preview_tab->tab_contents()->GetWebUI()) |
| 203 return; | 203 return; |
| 204 | 204 |
| 205 PrintPreviewUI* print_preview_ui = | 205 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( |
| 206 static_cast<PrintPreviewUI*>(print_preview_tab->tab_contents()->web_ui()); | 206 print_preview_tab->tab_contents()->GetWebUI()); |
| 207 print_preview_ui->OnDidGetDefaultPageLayout(page_layout_in_points); | 207 print_preview_ui->OnDidGetDefaultPageLayout(page_layout_in_points); |
| 208 } | 208 } |
| 209 | 209 |
| 210 void PrintPreviewMessageHandler::OnPrintPreviewCancelled(int document_cookie) { | 210 void PrintPreviewMessageHandler::OnPrintPreviewCancelled(int document_cookie) { |
| 211 // Always need to stop the worker. | 211 // Always need to stop the worker. |
| 212 StopWorker(document_cookie); | 212 StopWorker(document_cookie); |
| 213 } | 213 } |
| 214 | 214 |
| 215 void PrintPreviewMessageHandler::OnInvalidPrinterSettings(int document_cookie) { | 215 void PrintPreviewMessageHandler::OnInvalidPrinterSettings(int document_cookie) { |
| 216 PrintPreviewUI* print_preview_ui = OnFailure(document_cookie); | 216 PrintPreviewUI* print_preview_ui = OnFailure(document_cookie); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 return; | 256 return; |
| 257 } | 257 } |
| 258 // If |tab| is navigating and it has a print preview tab, notify |tab| to | 258 // If |tab| is navigating and it has a print preview tab, notify |tab| to |
| 259 // consider print preview done so it unfreezes the renderer in the case of | 259 // consider print preview done so it unfreezes the renderer in the case of |
| 260 // window.print(). | 260 // window.print(). |
| 261 if (preview_tab) | 261 if (preview_tab) |
| 262 tab->print_view_manager()->PrintPreviewDone(); | 262 tab->print_view_manager()->PrintPreviewDone(); |
| 263 } | 263 } |
| 264 | 264 |
| 265 } // namespace printing | 265 } // namespace printing |
| OLD | NEW |