Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: chrome/browser/printing/print_preview_message_handler.cc

Issue 7647010: Print preview page selection should not require a rerendering of draft pages. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed comment Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698