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

Side by Side Diff: chrome/service/cloud_print/print_system_win.cc

Issue 6037019: Fixed a crash with some HP printer drivers (when invoking PTGetPrintCapabilit... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 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
« no previous file with comments | « no previous file | printing/backend/print_backend_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/service/cloud_print/print_system.h" 5 #include "chrome/service/cloud_print/print_system.h"
6 6
7 #include <objidl.h> 7 #include <objidl.h>
8 #include <winspool.h> 8 #include <winspool.h>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 NOTREACHED(); 376 NOTREACHED();
377 return false; 377 return false;
378 } 378 }
379 last_page_printed_ = -1; 379 last_page_printed_ = -1;
380 // We only support PDFs for now. 380 // We only support PDFs for now.
381 if (print_data_mime_type != "application/pdf") { 381 if (print_data_mime_type != "application/pdf") {
382 NOTREACHED(); 382 NOTREACHED();
383 return false; 383 return false;
384 } 384 }
385 385
386 if (!printing::XPSModule::Init()) { 386 printing::ScopedXPSInitializer xps_initializer;
387 if (!xps_initializer.initialized()) {
387 // TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll) 388 // TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll)
388 return false; 389 return false;
389 } 390 }
390 DevMode pt_dev_mode; 391 DevMode pt_dev_mode;
391 HRESULT hr = PrintTicketToDevMode(printer_name, print_ticket, 392 HRESULT hr = PrintTicketToDevMode(printer_name, print_ticket,
392 &pt_dev_mode); 393 &pt_dev_mode);
393 if (FAILED(hr)) { 394 if (FAILED(hr)) {
394 NOTREACHED(); 395 NOTREACHED();
395 return false; 396 return false;
396 } 397 }
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 handler->Start(); 612 handler->Start();
612 } 613 }
613 614
614 bool PrintSystemWin::IsValidPrinter(const std::string& printer_name) { 615 bool PrintSystemWin::IsValidPrinter(const std::string& printer_name) {
615 return print_backend_->IsValidPrinter(printer_name); 616 return print_backend_->IsValidPrinter(printer_name);
616 } 617 }
617 618
618 bool PrintSystemWin::ValidatePrintTicket( 619 bool PrintSystemWin::ValidatePrintTicket(
619 const std::string& printer_name, 620 const std::string& printer_name,
620 const std::string& print_ticket_data) { 621 const std::string& print_ticket_data) {
621 if (!printing::XPSModule::Init()) { 622 printing::ScopedXPSInitializer xps_initializer;
623 if (!xps_initializer.initialized()) {
622 // TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll) 624 // TODO(sanjeevr): Handle legacy proxy case (with no prntvpt.dll)
623 return false; 625 return false;
624 } 626 }
625 bool ret = false; 627 bool ret = false;
626 HPTPROVIDER provider = NULL; 628 HPTPROVIDER provider = NULL;
627 printing::XPSModule::OpenProvider(UTF8ToWide(printer_name.c_str()), 629 printing::XPSModule::OpenProvider(UTF8ToWide(printer_name.c_str()),
628 1, 630 1,
629 &provider); 631 &provider);
630 if (provider) { 632 if (provider) {
631 ScopedComPtr<IStream> print_ticket_stream; 633 ScopedComPtr<IStream> print_ticket_stream;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 RpcStringFree(reinterpret_cast<RPC_WSTR *>(&proxy_id_as_string)); 728 RpcStringFree(reinterpret_cast<RPC_WSTR *>(&proxy_id_as_string));
727 return ret; 729 return ret;
728 } 730 }
729 731
730 scoped_refptr<PrintSystem> PrintSystem::CreateInstance( 732 scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
731 const DictionaryValue* print_system_settings) { 733 const DictionaryValue* print_system_settings) {
732 return new PrintSystemWin; 734 return new PrintSystemWin;
733 } 735 }
734 736
735 } // namespace cloud_print 737 } // namespace cloud_print
OLDNEW
« no previous file with comments | « no previous file | printing/backend/print_backend_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698