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