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

Side by Side Diff: chrome/browser/ui/webui/print_preview_handler.cc

Issue 9003014: Replace WebUI::tab_contents() with web_contents() and switch all users to use web_contents.h inst... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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/ui/webui/print_preview_handler.h" 5 #include "chrome/browser/ui/webui/print_preview_handler.h"
6 6
7 #include <ctype.h> 7 #include <ctype.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 23 matching lines...) Expand all
34 #include "chrome/browser/printing/printer_manager_dialog.h" 34 #include "chrome/browser/printing/printer_manager_dialog.h"
35 #include "chrome/browser/profiles/profile.h" 35 #include "chrome/browser/profiles/profile.h"
36 #include "chrome/browser/ui/browser_list.h" 36 #include "chrome/browser/ui/browser_list.h"
37 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 37 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
38 #include "chrome/browser/ui/webui/cloud_print_signin_dialog.h" 38 #include "chrome/browser/ui/webui/cloud_print_signin_dialog.h"
39 #include "chrome/browser/ui/webui/print_preview_ui.h" 39 #include "chrome/browser/ui/webui/print_preview_ui.h"
40 #include "chrome/common/chrome_paths.h" 40 #include "chrome/common/chrome_paths.h"
41 #include "chrome/common/pref_names.h" 41 #include "chrome/common/pref_names.h"
42 #include "chrome/common/print_messages.h" 42 #include "chrome/common/print_messages.h"
43 #include "content/browser/renderer_host/render_view_host.h" 43 #include "content/browser/renderer_host/render_view_host.h"
44 #include "content/browser/tab_contents/tab_contents.h" 44 #include "content/browser/renderer_host/render_view_host_delegate.h"
45 #include "content/browser/tab_contents/navigation_controller.h"
45 #include "content/public/browser/browser_thread.h" 46 #include "content/public/browser/browser_thread.h"
46 #include "content/public/browser/navigation_entry.h" 47 #include "content/public/browser/navigation_entry.h"
48 #include "content/public/browser/web_contents.h"
47 #include "printing/backend/print_backend.h" 49 #include "printing/backend/print_backend.h"
48 #include "printing/metafile.h" 50 #include "printing/metafile.h"
49 #include "printing/metafile_impl.h" 51 #include "printing/metafile_impl.h"
50 #include "printing/page_range.h" 52 #include "printing/page_range.h"
51 #include "printing/page_size_margins.h" 53 #include "printing/page_size_margins.h"
52 #include "printing/print_settings.h" 54 #include "printing/print_settings.h"
53 #include "unicode/ulocdata.h" 55 #include "unicode/ulocdata.h"
54 56
55 #if !defined(OS_MACOSX) 57 #if !defined(OS_MACOSX)
56 #include "base/command_line.h" 58 #include "base/command_line.h"
57 #include "chrome/common/chrome_switches.h" 59 #include "chrome/common/chrome_switches.h"
58 #endif 60 #endif
59 61
60 using content::BrowserThread; 62 using content::BrowserThread;
61 using content::NavigationEntry; 63 using content::NavigationEntry;
62 using content::OpenURLParams; 64 using content::OpenURLParams;
63 using content::Referrer; 65 using content::Referrer;
66 using content::WebContents;
64 using printing::Metafile; 67 using printing::Metafile;
65 68
66 namespace { 69 namespace {
67 70
68 enum UserActionBuckets { 71 enum UserActionBuckets {
69 PRINT_TO_PRINTER, 72 PRINT_TO_PRINTER,
70 PRINT_TO_PDF, 73 PRINT_TO_PDF,
71 CANCEL, 74 CANCEL,
72 FALLBACK_TO_ADVANCED_SETTINGS_DIALOG, 75 FALLBACK_TO_ADVANCED_SETTINGS_DIALOG,
73 PREVIEW_FAILED, 76 PREVIEW_FAILED,
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 base::Bind(&PrintPreviewHandler::HandleSaveLastPrinter, 257 base::Bind(&PrintPreviewHandler::HandleSaveLastPrinter,
255 base::Unretained(this))); 258 base::Unretained(this)));
256 web_ui()->RegisterMessageCallback("getInitialSettings", 259 web_ui()->RegisterMessageCallback("getInitialSettings",
257 base::Bind(&PrintPreviewHandler::HandleGetInitialSettings, 260 base::Bind(&PrintPreviewHandler::HandleGetInitialSettings,
258 base::Unretained(this))); 261 base::Unretained(this)));
259 } 262 }
260 263
261 TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const { 264 TabContentsWrapper* PrintPreviewHandler::preview_tab_wrapper() const {
262 return TabContentsWrapper::GetCurrentWrapperForContents(preview_tab()); 265 return TabContentsWrapper::GetCurrentWrapperForContents(preview_tab());
263 } 266 }
264 TabContents* PrintPreviewHandler::preview_tab() const { 267
265 return web_ui()->tab_contents(); 268 WebContents* PrintPreviewHandler::preview_tab() const {
269 return web_ui()->web_contents();
266 } 270 }
267 271
268 void PrintPreviewHandler::HandleGetPrinters(const ListValue* /*args*/) { 272 void PrintPreviewHandler::HandleGetPrinters(const ListValue* /*args*/) {
269 scoped_refptr<PrintSystemTaskProxy> task = 273 scoped_refptr<PrintSystemTaskProxy> task =
270 new PrintSystemTaskProxy(AsWeakPtr(), 274 new PrintSystemTaskProxy(AsWeakPtr(),
271 print_backend_.get(), 275 print_backend_.get(),
272 has_logged_printers_count_); 276 has_logged_printers_count_);
273 has_logged_printers_count_ = true; 277 has_logged_printers_count_ = true;
274 278
275 BrowserThread::PostTask( 279 BrowserThread::PostTask(
(...skipping 30 matching lines...) Expand all
306 310
307 // Retrieve the page title and url and send it to the renderer process if 311 // Retrieve the page title and url and send it to the renderer process if
308 // headers and footers are to be displayed. 312 // headers and footers are to be displayed.
309 bool display_header_footer = false; 313 bool display_header_footer = false;
310 if (!settings->GetBoolean(printing::kSettingHeaderFooterEnabled, 314 if (!settings->GetBoolean(printing::kSettingHeaderFooterEnabled,
311 &display_header_footer)) { 315 &display_header_footer)) {
312 NOTREACHED(); 316 NOTREACHED();
313 } 317 }
314 if (display_header_footer) { 318 if (display_header_footer) {
315 settings->SetString(printing::kSettingHeaderFooterTitle, 319 settings->SetString(printing::kSettingHeaderFooterTitle,
316 initiator_tab->tab_contents()->GetTitle()); 320 initiator_tab->web_contents()->GetTitle());
317 std::string url; 321 std::string url;
318 NavigationEntry* entry = 322 NavigationEntry* entry =
319 initiator_tab->tab_contents()->GetController().GetActiveEntry(); 323 initiator_tab->web_contents()->GetController().GetActiveEntry();
320 if (entry) 324 if (entry)
321 url = entry->GetVirtualURL().spec(); 325 url = entry->GetVirtualURL().spec();
322 settings->SetString(printing::kSettingHeaderFooterURL, url); 326 settings->SetString(printing::kSettingHeaderFooterURL, url);
323 } 327 }
324 328
325 bool generate_draft_data = false; 329 bool generate_draft_data = false;
326 bool success = settings->GetBoolean(printing::kSettingGenerateDraftData, 330 bool success = settings->GetBoolean(printing::kSettingGenerateDraftData,
327 &generate_draft_data); 331 &generate_draft_data);
328 DCHECK(success); 332 DCHECK(success);
329 333
330 if (!generate_draft_data) { 334 if (!generate_draft_data) {
331 double draft_page_count_double = -1; 335 double draft_page_count_double = -1;
332 success = args->GetDouble(1, &draft_page_count_double); 336 success = args->GetDouble(1, &draft_page_count_double);
333 DCHECK(success); 337 DCHECK(success);
334 int draft_page_count = static_cast<int>(draft_page_count_double); 338 int draft_page_count = static_cast<int>(draft_page_count_double);
335 339
336 bool preview_modifiable = false; 340 bool preview_modifiable = false;
337 success = args->GetBoolean(2, &preview_modifiable); 341 success = args->GetBoolean(2, &preview_modifiable);
338 DCHECK(success); 342 DCHECK(success);
339 343
340 if (draft_page_count != -1 && preview_modifiable && 344 if (draft_page_count != -1 && preview_modifiable &&
341 print_preview_ui->GetAvailableDraftPageCount() != draft_page_count) { 345 print_preview_ui->GetAvailableDraftPageCount() != draft_page_count) {
342 settings->SetBoolean(printing::kSettingGenerateDraftData, true); 346 settings->SetBoolean(printing::kSettingGenerateDraftData, true);
343 } 347 }
344 } 348 }
345 349
346 VLOG(1) << "Print preview request start"; 350 VLOG(1) << "Print preview request start";
347 RenderViewHost* rvh = initiator_tab->tab_contents()->GetRenderViewHost(); 351 RenderViewHost* rvh = initiator_tab->web_contents()->GetRenderViewHost();
348 rvh->Send(new PrintMsg_PrintPreview(rvh->routing_id(), *settings)); 352 rvh->Send(new PrintMsg_PrintPreview(rvh->routing_id(), *settings));
349 } 353 }
350 354
351 void PrintPreviewHandler::HandlePrint(const ListValue* args) { 355 void PrintPreviewHandler::HandlePrint(const ListValue* args) {
352 ReportStats(); 356 ReportStats();
353 357
354 // Record the number of times the user requests to regenerate preview data 358 // Record the number of times the user requests to regenerate preview data
355 // before printing. 359 // before printing.
356 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforePrint", 360 UMA_HISTOGRAM_COUNTS("PrintPreview.RegeneratePreviewRequest.BeforePrint",
357 regenerate_preview_request_count_); 361 regenerate_preview_request_count_);
358 362
359 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 363 TabContentsWrapper* initiator_tab = GetInitiatorTab();
360 CHECK(initiator_tab); 364 CHECK(initiator_tab);
361 365
362 RenderViewHost* init_rvh = initiator_tab->tab_contents()->GetRenderViewHost(); 366 RenderViewHost* init_rvh = initiator_tab->web_contents()->GetRenderViewHost();
363 init_rvh->Send(new PrintMsg_ResetScriptedPrintCount(init_rvh->routing_id())); 367 init_rvh->Send(new PrintMsg_ResetScriptedPrintCount(init_rvh->routing_id()));
364 368
365 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args)); 369 scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args));
366 if (!settings.get()) 370 if (!settings.get())
367 return; 371 return;
368 372
369 // Storing last used color model. 373 // Storing last used color model.
370 int color_model; 374 int color_model;
371 if (!settings->GetInteger(printing::kSettingColor, &color_model)) 375 if (!settings->GetInteger(printing::kSettingColor, &color_model))
372 color_model = printing::GRAY; 376 color_model = printing::GRAY;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 // association with the initiator tab yet. 423 // association with the initiator tab yet.
420 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui()); 424 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui());
421 print_preview_ui->OnHidePreviewTab(); 425 print_preview_ui->OnHidePreviewTab();
422 426
423 // Do this so the initiator tab can open a new print preview tab. 427 // Do this so the initiator tab can open a new print preview tab.
424 ClearInitiatorTabDetails(); 428 ClearInitiatorTabDetails();
425 429
426 // The PDF being printed contains only the pages that the user selected, 430 // The PDF being printed contains only the pages that the user selected,
427 // so ignore the page range and print all pages. 431 // so ignore the page range and print all pages.
428 settings->Remove(printing::kSettingPageRange, NULL); 432 settings->Remove(printing::kSettingPageRange, NULL);
429 RenderViewHost* rvh = web_ui()->tab_contents()->GetRenderViewHost(); 433 RenderViewHost* rvh = web_ui()->web_contents()->GetRenderViewHost();
430 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings)); 434 rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->routing_id(), *settings));
431 } 435 }
432 initiator_tab->print_view_manager()->PrintPreviewDone(); 436 initiator_tab->print_view_manager()->PrintPreviewDone();
433 } 437 }
434 438
435 void PrintPreviewHandler::HandlePrintToPdf( 439 void PrintPreviewHandler::HandlePrintToPdf(
436 const base::DictionaryValue& settings) { 440 const base::DictionaryValue& settings) {
437 if (print_to_pdf_path_.get()) { 441 if (print_to_pdf_path_.get()) {
438 // User has already selected a path, no need to show the dialog again. 442 // User has already selected a path, no need to show the dialog again.
439 PostPrintToPdfTask(); 443 PostPrintToPdfTask();
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 662
659 if (print_preview_ui->source_is_modifiable()) { 663 if (print_preview_ui->source_is_modifiable()) {
660 GetLastUsedMarginSettings(&initial_settings); 664 GetLastUsedMarginSettings(&initial_settings);
661 GetNumberFormatAndMeasurementSystem(&initial_settings); 665 GetNumberFormatAndMeasurementSystem(&initial_settings);
662 } 666 }
663 web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings); 667 web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings);
664 } 668 }
665 669
666 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() { 670 void PrintPreviewHandler::ActivateInitiatorTabAndClosePreviewTab() {
667 TabContentsWrapper* initiator_tab = GetInitiatorTab(); 671 TabContentsWrapper* initiator_tab = GetInitiatorTab();
668 if (initiator_tab) { 672 if (initiator_tab)
669 static_cast<RenderViewHostDelegate*>( 673 initiator_tab->web_contents()->GetRenderViewHost()->delegate()->Activate();
670 initiator_tab->tab_contents())->Activate();
671 }
672 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui()); 674 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(web_ui());
673 print_preview_ui->OnClosePrintPreviewTab(); 675 print_preview_ui->OnClosePrintPreviewTab();
674 } 676 }
675 677
676 void PrintPreviewHandler::SendPrinterCapabilities( 678 void PrintPreviewHandler::SendPrinterCapabilities(
677 const DictionaryValue& settings_info) { 679 const DictionaryValue& settings_info) {
678 VLOG(1) << "Get printer capabilities finished"; 680 VLOG(1) << "Get printer capabilities finished";
679 web_ui()->CallJavascriptFunction("updateWithPrinterCapabilities", 681 web_ui()->CallJavascriptFunction("updateWithPrinterCapabilities",
680 settings_info); 682 settings_info);
681 } 683 }
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 return; 857 return;
856 858
857 // We no longer require the initiator tab details. Remove those details 859 // We no longer require the initiator tab details. Remove those details
858 // associated with the preview tab to allow the initiator tab to create 860 // associated with the preview tab to allow the initiator tab to create
859 // another preview tab. 861 // another preview tab.
860 printing::PrintPreviewTabController* tab_controller = 862 printing::PrintPreviewTabController* tab_controller =
861 printing::PrintPreviewTabController::GetInstance(); 863 printing::PrintPreviewTabController::GetInstance();
862 if (tab_controller) 864 if (tab_controller)
863 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper()); 865 tab_controller->EraseInitiatorTabInfo(preview_tab_wrapper());
864 } 866 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | chrome/browser/ui/webui/print_preview_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698