| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 }; | 133 }; |
| 134 | 134 |
| 135 class PrintServerWatcherWin | 135 class PrintServerWatcherWin |
| 136 : public PrintSystem::PrintServerWatcher, | 136 : public PrintSystem::PrintServerWatcher, |
| 137 public PrintSystemWatcherWin::Delegate { | 137 public PrintSystemWatcherWin::Delegate { |
| 138 public: | 138 public: |
| 139 PrintServerWatcherWin() : delegate_(NULL) {} | 139 PrintServerWatcherWin() : delegate_(NULL) {} |
| 140 | 140 |
| 141 // PrintSystem::PrintServerWatcher implementation. | 141 // PrintSystem::PrintServerWatcher implementation. |
| 142 virtual bool StartWatching( | 142 virtual bool StartWatching( |
| 143 PrintSystem::PrintServerWatcher::Delegate* delegate) OVERRIDE{ | 143 PrintSystem::PrintServerWatcher::Delegate* delegate) override{ |
| 144 delegate_ = delegate; | 144 delegate_ = delegate; |
| 145 return watcher_.Start(std::string(), this); | 145 return watcher_.Start(std::string(), this); |
| 146 } | 146 } |
| 147 | 147 |
| 148 virtual bool StopWatching() OVERRIDE{ | 148 virtual bool StopWatching() override{ |
| 149 bool ret = watcher_.Stop(); | 149 bool ret = watcher_.Stop(); |
| 150 delegate_ = NULL; | 150 delegate_ = NULL; |
| 151 return ret; | 151 return ret; |
| 152 } | 152 } |
| 153 | 153 |
| 154 // PrintSystemWatcherWin::Delegate implementation. | 154 // PrintSystemWatcherWin::Delegate implementation. |
| 155 virtual void OnPrinterAdded() OVERRIDE { | 155 virtual void OnPrinterAdded() override { |
| 156 delegate_->OnPrinterAdded(); | 156 delegate_->OnPrinterAdded(); |
| 157 } | 157 } |
| 158 virtual void OnPrinterDeleted() OVERRIDE {} | 158 virtual void OnPrinterDeleted() override {} |
| 159 virtual void OnPrinterChanged() OVERRIDE {} | 159 virtual void OnPrinterChanged() override {} |
| 160 virtual void OnJobChanged() OVERRIDE {} | 160 virtual void OnJobChanged() override {} |
| 161 | 161 |
| 162 protected: | 162 protected: |
| 163 virtual ~PrintServerWatcherWin() {} | 163 virtual ~PrintServerWatcherWin() {} |
| 164 | 164 |
| 165 private: | 165 private: |
| 166 PrintSystem::PrintServerWatcher::Delegate* delegate_; | 166 PrintSystem::PrintServerWatcher::Delegate* delegate_; |
| 167 PrintSystemWatcherWin watcher_; | 167 PrintSystemWatcherWin watcher_; |
| 168 | 168 |
| 169 DISALLOW_COPY_AND_ASSIGN(PrintServerWatcherWin); | 169 DISALLOW_COPY_AND_ASSIGN(PrintServerWatcherWin); |
| 170 }; | 170 }; |
| 171 | 171 |
| 172 class PrinterWatcherWin | 172 class PrinterWatcherWin |
| 173 : public PrintSystem::PrinterWatcher, | 173 : public PrintSystem::PrinterWatcher, |
| 174 public PrintSystemWatcherWin::Delegate { | 174 public PrintSystemWatcherWin::Delegate { |
| 175 public: | 175 public: |
| 176 explicit PrinterWatcherWin(const std::string& printer_name) | 176 explicit PrinterWatcherWin(const std::string& printer_name) |
| 177 : printer_name_(printer_name), | 177 : printer_name_(printer_name), |
| 178 delegate_(NULL) { | 178 delegate_(NULL) { |
| 179 } | 179 } |
| 180 | 180 |
| 181 // PrintSystem::PrinterWatcher implementation. | 181 // PrintSystem::PrinterWatcher implementation. |
| 182 virtual bool StartWatching( | 182 virtual bool StartWatching( |
| 183 PrintSystem::PrinterWatcher::Delegate* delegate) OVERRIDE { | 183 PrintSystem::PrinterWatcher::Delegate* delegate) override { |
| 184 delegate_ = delegate; | 184 delegate_ = delegate; |
| 185 return watcher_.Start(printer_name_, this); | 185 return watcher_.Start(printer_name_, this); |
| 186 } | 186 } |
| 187 | 187 |
| 188 virtual bool StopWatching() OVERRIDE { | 188 virtual bool StopWatching() override { |
| 189 bool ret = watcher_.Stop(); | 189 bool ret = watcher_.Stop(); |
| 190 delegate_ = NULL; | 190 delegate_ = NULL; |
| 191 return ret; | 191 return ret; |
| 192 } | 192 } |
| 193 | 193 |
| 194 virtual bool GetCurrentPrinterInfo( | 194 virtual bool GetCurrentPrinterInfo( |
| 195 printing::PrinterBasicInfo* printer_info) OVERRIDE { | 195 printing::PrinterBasicInfo* printer_info) override { |
| 196 return watcher_.GetCurrentPrinterInfo(printer_info); | 196 return watcher_.GetCurrentPrinterInfo(printer_info); |
| 197 } | 197 } |
| 198 | 198 |
| 199 // PrintSystemWatcherWin::Delegate implementation. | 199 // PrintSystemWatcherWin::Delegate implementation. |
| 200 virtual void OnPrinterAdded() OVERRIDE { | 200 virtual void OnPrinterAdded() override { |
| 201 NOTREACHED(); | 201 NOTREACHED(); |
| 202 } | 202 } |
| 203 virtual void OnPrinterDeleted() OVERRIDE { | 203 virtual void OnPrinterDeleted() override { |
| 204 delegate_->OnPrinterDeleted(); | 204 delegate_->OnPrinterDeleted(); |
| 205 } | 205 } |
| 206 virtual void OnPrinterChanged() OVERRIDE { | 206 virtual void OnPrinterChanged() override { |
| 207 delegate_->OnPrinterChanged(); | 207 delegate_->OnPrinterChanged(); |
| 208 } | 208 } |
| 209 virtual void OnJobChanged() OVERRIDE { | 209 virtual void OnJobChanged() override { |
| 210 delegate_->OnJobChanged(); | 210 delegate_->OnJobChanged(); |
| 211 } | 211 } |
| 212 | 212 |
| 213 protected: | 213 protected: |
| 214 virtual ~PrinterWatcherWin() {} | 214 virtual ~PrinterWatcherWin() {} |
| 215 | 215 |
| 216 private: | 216 private: |
| 217 std::string printer_name_; | 217 std::string printer_name_; |
| 218 PrintSystem::PrinterWatcher::Delegate* delegate_; | 218 PrintSystem::PrinterWatcher::Delegate* delegate_; |
| 219 PrintSystemWatcherWin watcher_; | 219 PrintSystemWatcherWin watcher_; |
| 220 | 220 |
| 221 DISALLOW_COPY_AND_ASSIGN(PrinterWatcherWin); | 221 DISALLOW_COPY_AND_ASSIGN(PrinterWatcherWin); |
| 222 }; | 222 }; |
| 223 | 223 |
| 224 class JobSpoolerWin : public PrintSystem::JobSpooler { | 224 class JobSpoolerWin : public PrintSystem::JobSpooler { |
| 225 public: | 225 public: |
| 226 JobSpoolerWin() : core_(new Core) {} | 226 JobSpoolerWin() : core_(new Core) {} |
| 227 | 227 |
| 228 // PrintSystem::JobSpooler implementation. | 228 // PrintSystem::JobSpooler implementation. |
| 229 virtual bool Spool(const std::string& print_ticket, | 229 virtual bool Spool(const std::string& print_ticket, |
| 230 const std::string& print_ticket_mime_type, | 230 const std::string& print_ticket_mime_type, |
| 231 const base::FilePath& print_data_file_path, | 231 const base::FilePath& print_data_file_path, |
| 232 const std::string& print_data_mime_type, | 232 const std::string& print_data_mime_type, |
| 233 const std::string& printer_name, | 233 const std::string& printer_name, |
| 234 const std::string& job_title, | 234 const std::string& job_title, |
| 235 const std::vector<std::string>& tags, | 235 const std::vector<std::string>& tags, |
| 236 JobSpooler::Delegate* delegate) OVERRIDE { | 236 JobSpooler::Delegate* delegate) override { |
| 237 // TODO(gene): add tags handling. | 237 // TODO(gene): add tags handling. |
| 238 scoped_refptr<printing::PrintBackend> print_backend( | 238 scoped_refptr<printing::PrintBackend> print_backend( |
| 239 printing::PrintBackend::CreateInstance(NULL)); | 239 printing::PrintBackend::CreateInstance(NULL)); |
| 240 crash_keys::ScopedPrinterInfo crash_key( | 240 crash_keys::ScopedPrinterInfo crash_key( |
| 241 print_backend->GetPrinterDriverInfo(printer_name)); | 241 print_backend->GetPrinterDriverInfo(printer_name)); |
| 242 return core_->Spool(print_ticket, print_ticket_mime_type, | 242 return core_->Spool(print_ticket, print_ticket_mime_type, |
| 243 print_data_file_path, print_data_mime_type, | 243 print_data_file_path, print_data_mime_type, |
| 244 printer_name, job_title, delegate); | 244 printer_name, job_title, delegate); |
| 245 } | 245 } |
| 246 | 246 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 XFORM xform = {0}; | 332 XFORM xform = {0}; |
| 333 xform.eDx = static_cast<float>(-offset_x); | 333 xform.eDx = static_cast<float>(-offset_x); |
| 334 xform.eDy = static_cast<float>(-offset_y); | 334 xform.eDy = static_cast<float>(-offset_y); |
| 335 xform.eM11 = xform.eM22 = 1.0 / scale_factor; | 335 xform.eM11 = xform.eM22 = 1.0 / scale_factor; |
| 336 SetWorldTransform(printer_dc_.Get(), &xform); | 336 SetWorldTransform(printer_dc_.Get(), &xform); |
| 337 } | 337 } |
| 338 | 338 |
| 339 // ServiceUtilityProcessHost::Client implementation. | 339 // ServiceUtilityProcessHost::Client implementation. |
| 340 virtual void OnRenderPDFPagesToMetafilePageDone( | 340 virtual void OnRenderPDFPagesToMetafilePageDone( |
| 341 double scale_factor, | 341 double scale_factor, |
| 342 const printing::MetafilePlayer& emf) OVERRIDE { | 342 const printing::MetafilePlayer& emf) override { |
| 343 PreparePageDCForPrinting(printer_dc_.Get(), scale_factor); | 343 PreparePageDCForPrinting(printer_dc_.Get(), scale_factor); |
| 344 ::StartPage(printer_dc_.Get()); | 344 ::StartPage(printer_dc_.Get()); |
| 345 emf.SafePlayback(printer_dc_.Get()); | 345 emf.SafePlayback(printer_dc_.Get()); |
| 346 ::EndPage(printer_dc_.Get()); | 346 ::EndPage(printer_dc_.Get()); |
| 347 } | 347 } |
| 348 | 348 |
| 349 // ServiceUtilityProcessHost::Client implementation. | 349 // ServiceUtilityProcessHost::Client implementation. |
| 350 virtual void OnRenderPDFPagesToMetafileDone(bool success) OVERRIDE { | 350 virtual void OnRenderPDFPagesToMetafileDone(bool success) override { |
| 351 PrintJobDone(success); | 351 PrintJobDone(success); |
| 352 } | 352 } |
| 353 | 353 |
| 354 virtual void OnChildDied() OVERRIDE { PrintJobDone(false); } | 354 virtual void OnChildDied() override { PrintJobDone(false); } |
| 355 | 355 |
| 356 // base::win::ObjectWatcher::Delegate implementation. | 356 // base::win::ObjectWatcher::Delegate implementation. |
| 357 virtual void OnObjectSignaled(HANDLE object) OVERRIDE { | 357 virtual void OnObjectSignaled(HANDLE object) override { |
| 358 // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed. | 358 // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed. |
| 359 tracked_objects::ScopedProfile tracking_profile( | 359 tracked_objects::ScopedProfile tracking_profile( |
| 360 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 360 FROM_HERE_WITH_EXPLICIT_FUNCTION( |
| 361 "Core_OnObjectSignaled")); | 361 "Core_OnObjectSignaled")); |
| 362 | 362 |
| 363 DCHECK(xps_print_job_); | 363 DCHECK(xps_print_job_); |
| 364 DCHECK(object == job_progress_event_.Get()); | 364 DCHECK(object == job_progress_event_.Get()); |
| 365 ResetEvent(job_progress_event_.Get()); | 365 ResetEvent(job_progress_event_.Get()); |
| 366 if (!delegate_) | 366 if (!delegate_) |
| 367 return; | 367 return; |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 // request to fetch printer capabilities and defaults. | 527 // request to fetch printer capabilities and defaults. |
| 528 class PrinterCapsHandler : public ServiceUtilityProcessHost::Client { | 528 class PrinterCapsHandler : public ServiceUtilityProcessHost::Client { |
| 529 public: | 529 public: |
| 530 PrinterCapsHandler( | 530 PrinterCapsHandler( |
| 531 const std::string& printer_name, | 531 const std::string& printer_name, |
| 532 const PrintSystem::PrinterCapsAndDefaultsCallback& callback) | 532 const PrintSystem::PrinterCapsAndDefaultsCallback& callback) |
| 533 : printer_name_(printer_name), callback_(callback) { | 533 : printer_name_(printer_name), callback_(callback) { |
| 534 } | 534 } |
| 535 | 535 |
| 536 // ServiceUtilityProcessHost::Client implementation. | 536 // ServiceUtilityProcessHost::Client implementation. |
| 537 virtual void OnChildDied() OVERRIDE { | 537 virtual void OnChildDied() override { |
| 538 OnGetPrinterCapsAndDefaults(false, printer_name_, | 538 OnGetPrinterCapsAndDefaults(false, printer_name_, |
| 539 printing::PrinterCapsAndDefaults()); | 539 printing::PrinterCapsAndDefaults()); |
| 540 } | 540 } |
| 541 | 541 |
| 542 virtual void OnGetPrinterCapsAndDefaults( | 542 virtual void OnGetPrinterCapsAndDefaults( |
| 543 bool succeeded, | 543 bool succeeded, |
| 544 const std::string& printer_name, | 544 const std::string& printer_name, |
| 545 const printing::PrinterCapsAndDefaults& caps_and_defaults) OVERRIDE { | 545 const printing::PrinterCapsAndDefaults& caps_and_defaults) override { |
| 546 callback_.Run(succeeded, printer_name, caps_and_defaults); | 546 callback_.Run(succeeded, printer_name, caps_and_defaults); |
| 547 callback_.Reset(); | 547 callback_.Reset(); |
| 548 Release(); | 548 Release(); |
| 549 } | 549 } |
| 550 | 550 |
| 551 virtual void OnGetPrinterSemanticCapsAndDefaults( | 551 virtual void OnGetPrinterSemanticCapsAndDefaults( |
| 552 bool succeeded, | 552 bool succeeded, |
| 553 const std::string& printer_name, | 553 const std::string& printer_name, |
| 554 const printing::PrinterSemanticCapsAndDefaults& semantic_info) OVERRIDE { | 554 const printing::PrinterSemanticCapsAndDefaults& semantic_info) override { |
| 555 printing::PrinterCapsAndDefaults printer_info; | 555 printing::PrinterCapsAndDefaults printer_info; |
| 556 if (succeeded) { | 556 if (succeeded) { |
| 557 printer_info.caps_mime_type = kContentTypeJSON; | 557 printer_info.caps_mime_type = kContentTypeJSON; |
| 558 scoped_ptr<base::DictionaryValue> description( | 558 scoped_ptr<base::DictionaryValue> description( |
| 559 PrinterSemanticCapsAndDefaultsToCdd(semantic_info)); | 559 PrinterSemanticCapsAndDefaultsToCdd(semantic_info)); |
| 560 if (description) { | 560 if (description) { |
| 561 base::JSONWriter::WriteWithOptions( | 561 base::JSONWriter::WriteWithOptions( |
| 562 description.get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, | 562 description.get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, |
| 563 &printer_info.printer_capabilities); | 563 &printer_info.printer_capabilities); |
| 564 } | 564 } |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 | 619 |
| 620 std::string printer_name_; | 620 std::string printer_name_; |
| 621 PrintSystem::PrinterCapsAndDefaultsCallback callback_; | 621 PrintSystem::PrinterCapsAndDefaultsCallback callback_; |
| 622 }; | 622 }; |
| 623 | 623 |
| 624 class PrintSystemWin : public PrintSystem { | 624 class PrintSystemWin : public PrintSystem { |
| 625 public: | 625 public: |
| 626 PrintSystemWin(); | 626 PrintSystemWin(); |
| 627 | 627 |
| 628 // PrintSystem implementation. | 628 // PrintSystem implementation. |
| 629 virtual PrintSystemResult Init() OVERRIDE; | 629 virtual PrintSystemResult Init() override; |
| 630 virtual PrintSystem::PrintSystemResult EnumeratePrinters( | 630 virtual PrintSystem::PrintSystemResult EnumeratePrinters( |
| 631 printing::PrinterList* printer_list) OVERRIDE; | 631 printing::PrinterList* printer_list) override; |
| 632 virtual void GetPrinterCapsAndDefaults( | 632 virtual void GetPrinterCapsAndDefaults( |
| 633 const std::string& printer_name, | 633 const std::string& printer_name, |
| 634 const PrinterCapsAndDefaultsCallback& callback) OVERRIDE; | 634 const PrinterCapsAndDefaultsCallback& callback) override; |
| 635 virtual bool IsValidPrinter(const std::string& printer_name) OVERRIDE; | 635 virtual bool IsValidPrinter(const std::string& printer_name) override; |
| 636 virtual bool ValidatePrintTicket( | 636 virtual bool ValidatePrintTicket( |
| 637 const std::string& printer_name, | 637 const std::string& printer_name, |
| 638 const std::string& print_ticket_data, | 638 const std::string& print_ticket_data, |
| 639 const std::string& print_ticket_data_mime_type) OVERRIDE; | 639 const std::string& print_ticket_data_mime_type) override; |
| 640 virtual bool GetJobDetails(const std::string& printer_name, | 640 virtual bool GetJobDetails(const std::string& printer_name, |
| 641 PlatformJobId job_id, | 641 PlatformJobId job_id, |
| 642 PrintJobDetails *job_details) OVERRIDE; | 642 PrintJobDetails *job_details) override; |
| 643 virtual PrintSystem::PrintServerWatcher* CreatePrintServerWatcher() OVERRIDE; | 643 virtual PrintSystem::PrintServerWatcher* CreatePrintServerWatcher() override; |
| 644 virtual PrintSystem::PrinterWatcher* CreatePrinterWatcher( | 644 virtual PrintSystem::PrinterWatcher* CreatePrinterWatcher( |
| 645 const std::string& printer_name) OVERRIDE; | 645 const std::string& printer_name) override; |
| 646 virtual PrintSystem::JobSpooler* CreateJobSpooler() OVERRIDE; | 646 virtual PrintSystem::JobSpooler* CreateJobSpooler() override; |
| 647 virtual bool UseCddAndCjt() OVERRIDE; | 647 virtual bool UseCddAndCjt() override; |
| 648 virtual std::string GetSupportedMimeTypes() OVERRIDE; | 648 virtual std::string GetSupportedMimeTypes() override; |
| 649 | 649 |
| 650 private: | 650 private: |
| 651 std::string PrintSystemWin::GetPrinterDriverInfo( | 651 std::string PrintSystemWin::GetPrinterDriverInfo( |
| 652 const std::string& printer_name) const; | 652 const std::string& printer_name) const; |
| 653 | 653 |
| 654 scoped_refptr<printing::PrintBackend> print_backend_; | 654 scoped_refptr<printing::PrintBackend> print_backend_; |
| 655 bool use_cdd_; | 655 bool use_cdd_; |
| 656 DISALLOW_COPY_AND_ASSIGN(PrintSystemWin); | 656 DISALLOW_COPY_AND_ASSIGN(PrintSystemWin); |
| 657 }; | 657 }; |
| 658 | 658 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 } | 830 } |
| 831 | 831 |
| 832 } // namespace | 832 } // namespace |
| 833 | 833 |
| 834 scoped_refptr<PrintSystem> PrintSystem::CreateInstance( | 834 scoped_refptr<PrintSystem> PrintSystem::CreateInstance( |
| 835 const base::DictionaryValue* print_system_settings) { | 835 const base::DictionaryValue* print_system_settings) { |
| 836 return new PrintSystemWin; | 836 return new PrintSystemWin; |
| 837 } | 837 } |
| 838 | 838 |
| 839 } // namespace cloud_print | 839 } // namespace cloud_print |
| OLD | NEW |