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 |