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

Side by Side Diff: extensions/browser/api/printer_provider/printer_provider_api.cc

Issue 1902873002: Convert //extensions/browser/api from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "extensions/browser/api/printer_provider/printer_provider_api.h" 5 #include "extensions/browser/api/printer_provider/printer_provider_api.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 api::printer_provider::OnGetPrintersRequested::kEventName)) { 516 api::printer_provider::OnGetPrintersRequested::kEventName)) {
517 callback.Run(base::ListValue(), true /* done */); 517 callback.Run(base::ListValue(), true /* done */);
518 return; 518 return;
519 } 519 }
520 520
521 // |pending_get_printers_requests_| take ownership of |request| which gets 521 // |pending_get_printers_requests_| take ownership of |request| which gets
522 // NULLed out. Save the pointer before passing it to the requests, as it will 522 // NULLed out. Save the pointer before passing it to the requests, as it will
523 // be needed later on. 523 // be needed later on.
524 int request_id = pending_get_printers_requests_.Add(callback); 524 int request_id = pending_get_printers_requests_.Add(callback);
525 525
526 scoped_ptr<base::ListValue> internal_args(new base::ListValue); 526 std::unique_ptr<base::ListValue> internal_args(new base::ListValue);
527 // Request id is not part of the public API, but it will be massaged out in 527 // Request id is not part of the public API, but it will be massaged out in
528 // custom bindings. 528 // custom bindings.
529 internal_args->AppendInteger(request_id); 529 internal_args->AppendInteger(request_id);
530 530
531 scoped_ptr<Event> event( 531 std::unique_ptr<Event> event(
532 new Event(events::PRINTER_PROVIDER_ON_GET_PRINTERS_REQUESTED, 532 new Event(events::PRINTER_PROVIDER_ON_GET_PRINTERS_REQUESTED,
533 api::printer_provider::OnGetPrintersRequested::kEventName, 533 api::printer_provider::OnGetPrintersRequested::kEventName,
534 std::move(internal_args))); 534 std::move(internal_args)));
535 // This callback is called synchronously during |BroadcastEvent|, so 535 // This callback is called synchronously during |BroadcastEvent|, so
536 // Unretained is safe. 536 // Unretained is safe.
537 event->will_dispatch_callback = 537 event->will_dispatch_callback =
538 base::Bind(&PrinterProviderAPIImpl::WillRequestPrinters, 538 base::Bind(&PrinterProviderAPIImpl::WillRequestPrinters,
539 base::Unretained(this), request_id); 539 base::Unretained(this), request_id);
540 540
541 event_router->BroadcastEvent(std::move(event)); 541 event_router->BroadcastEvent(std::move(event));
(...skipping 12 matching lines...) Expand all
554 EventRouter* event_router = EventRouter::Get(browser_context_); 554 EventRouter* event_router = EventRouter::Get(browser_context_);
555 if (!event_router->ExtensionHasEventListener( 555 if (!event_router->ExtensionHasEventListener(
556 extension_id, 556 extension_id,
557 api::printer_provider::OnGetCapabilityRequested::kEventName)) { 557 api::printer_provider::OnGetCapabilityRequested::kEventName)) {
558 callback.Run(base::DictionaryValue()); 558 callback.Run(base::DictionaryValue());
559 return; 559 return;
560 } 560 }
561 561
562 int request_id = pending_capability_requests_[extension_id].Add(callback); 562 int request_id = pending_capability_requests_[extension_id].Add(callback);
563 563
564 scoped_ptr<base::ListValue> internal_args(new base::ListValue); 564 std::unique_ptr<base::ListValue> internal_args(new base::ListValue);
565 // Request id is not part of the public API, but it will be massaged out in 565 // Request id is not part of the public API, but it will be massaged out in
566 // custom bindings. 566 // custom bindings.
567 internal_args->AppendInteger(request_id); 567 internal_args->AppendInteger(request_id);
568 internal_args->AppendString(internal_printer_id); 568 internal_args->AppendString(internal_printer_id);
569 569
570 scoped_ptr<Event> event( 570 std::unique_ptr<Event> event(
571 new Event(events::PRINTER_PROVIDER_ON_GET_CAPABILITY_REQUESTED, 571 new Event(events::PRINTER_PROVIDER_ON_GET_CAPABILITY_REQUESTED,
572 api::printer_provider::OnGetCapabilityRequested::kEventName, 572 api::printer_provider::OnGetCapabilityRequested::kEventName,
573 std::move(internal_args))); 573 std::move(internal_args)));
574 574
575 event_router->DispatchEventToExtension(extension_id, std::move(event)); 575 event_router->DispatchEventToExtension(extension_id, std::move(event));
576 } 576 }
577 577
578 void PrinterProviderAPIImpl::DispatchPrintRequested( 578 void PrinterProviderAPIImpl::DispatchPrintRequested(
579 const PrinterProviderPrintJob& job, 579 const PrinterProviderPrintJob& job,
580 const PrinterProviderAPI::PrintCallback& callback) { 580 const PrinterProviderAPI::PrintCallback& callback) {
581 std::string extension_id; 581 std::string extension_id;
582 std::string internal_printer_id; 582 std::string internal_printer_id;
583 if (!ParsePrinterId(job.printer_id, &extension_id, &internal_printer_id)) { 583 if (!ParsePrinterId(job.printer_id, &extension_id, &internal_printer_id)) {
584 callback.Run(false, PrinterProviderAPI::GetDefaultPrintError()); 584 callback.Run(false, PrinterProviderAPI::GetDefaultPrintError());
585 return; 585 return;
586 } 586 }
587 587
588 EventRouter* event_router = EventRouter::Get(browser_context_); 588 EventRouter* event_router = EventRouter::Get(browser_context_);
589 if (!event_router->ExtensionHasEventListener( 589 if (!event_router->ExtensionHasEventListener(
590 extension_id, api::printer_provider::OnPrintRequested::kEventName)) { 590 extension_id, api::printer_provider::OnPrintRequested::kEventName)) {
591 callback.Run(false, PrinterProviderAPI::GetDefaultPrintError()); 591 callback.Run(false, PrinterProviderAPI::GetDefaultPrintError());
592 return; 592 return;
593 } 593 }
594 594
595 api::printer_provider::PrintJob print_job; 595 api::printer_provider::PrintJob print_job;
596 print_job.printer_id = internal_printer_id; 596 print_job.printer_id = internal_printer_id;
597 597
598 JSONStringValueDeserializer deserializer(job.ticket_json); 598 JSONStringValueDeserializer deserializer(job.ticket_json);
599 scoped_ptr<base::Value> ticket_value = deserializer.Deserialize(NULL, NULL); 599 std::unique_ptr<base::Value> ticket_value =
600 deserializer.Deserialize(NULL, NULL);
600 if (!ticket_value || 601 if (!ticket_value ||
601 !api::printer_provider::PrintJob::Ticket::Populate(*ticket_value, 602 !api::printer_provider::PrintJob::Ticket::Populate(*ticket_value,
602 &print_job.ticket)) { 603 &print_job.ticket)) {
603 callback.Run(false, api::printer_provider::ToString( 604 callback.Run(false, api::printer_provider::ToString(
604 api::printer_provider::PRINT_ERROR_INVALID_TICKET)); 605 api::printer_provider::PRINT_ERROR_INVALID_TICKET));
605 return; 606 return;
606 } 607 }
607 608
608 print_job.content_type = job.content_type; 609 print_job.content_type = job.content_type;
609 print_job.title = base::UTF16ToUTF8(job.job_title); 610 print_job.title = base::UTF16ToUTF8(job.job_title);
610 int request_id = pending_print_requests_[extension_id].Add(job, callback); 611 int request_id = pending_print_requests_[extension_id].Add(job, callback);
611 612
612 scoped_ptr<base::ListValue> internal_args(new base::ListValue); 613 std::unique_ptr<base::ListValue> internal_args(new base::ListValue);
613 // Request id is not part of the public API and it will be massaged out in 614 // Request id is not part of the public API and it will be massaged out in
614 // custom bindings. 615 // custom bindings.
615 internal_args->AppendInteger(request_id); 616 internal_args->AppendInteger(request_id);
616 internal_args->Append(print_job.ToValue().release()); 617 internal_args->Append(print_job.ToValue().release());
617 scoped_ptr<Event> event( 618 std::unique_ptr<Event> event(
618 new Event(events::PRINTER_PROVIDER_ON_PRINT_REQUESTED, 619 new Event(events::PRINTER_PROVIDER_ON_PRINT_REQUESTED,
619 api::printer_provider::OnPrintRequested::kEventName, 620 api::printer_provider::OnPrintRequested::kEventName,
620 std::move(internal_args))); 621 std::move(internal_args)));
621 event_router->DispatchEventToExtension(extension_id, std::move(event)); 622 event_router->DispatchEventToExtension(extension_id, std::move(event));
622 } 623 }
623 624
624 const PrinterProviderPrintJob* PrinterProviderAPIImpl::GetPrintJob( 625 const PrinterProviderPrintJob* PrinterProviderAPIImpl::GetPrintJob(
625 const Extension* extension, 626 const Extension* extension,
626 int request_id) const { 627 int request_id) const {
627 auto it = pending_print_requests_.find(extension->id()); 628 auto it = pending_print_requests_.find(extension->id());
(...skipping 12 matching lines...) Expand all
640 api::printer_provider::OnGetUsbPrinterInfoRequested::kEventName)) { 641 api::printer_provider::OnGetUsbPrinterInfoRequested::kEventName)) {
641 callback.Run(base::DictionaryValue()); 642 callback.Run(base::DictionaryValue());
642 return; 643 return;
643 } 644 }
644 645
645 int request_id = 646 int request_id =
646 pending_usb_printer_info_requests_[extension_id].Add(callback); 647 pending_usb_printer_info_requests_[extension_id].Add(callback);
647 api::usb::Device api_device; 648 api::usb::Device api_device;
648 UsbGuidMap::Get(browser_context_)->GetApiDevice(device, &api_device); 649 UsbGuidMap::Get(browser_context_)->GetApiDevice(device, &api_device);
649 650
650 scoped_ptr<base::ListValue> internal_args(new base::ListValue()); 651 std::unique_ptr<base::ListValue> internal_args(new base::ListValue());
651 // Request id is not part of the public API and it will be massaged out in 652 // Request id is not part of the public API and it will be massaged out in
652 // custom bindings. 653 // custom bindings.
653 internal_args->AppendInteger(request_id); 654 internal_args->AppendInteger(request_id);
654 internal_args->Append(api_device.ToValue()); 655 internal_args->Append(api_device.ToValue());
655 scoped_ptr<Event> event( 656 std::unique_ptr<Event> event(
656 new Event(events::PRINTER_PROVIDER_ON_GET_USB_PRINTER_INFO_REQUESTED, 657 new Event(events::PRINTER_PROVIDER_ON_GET_USB_PRINTER_INFO_REQUESTED,
657 api::printer_provider::OnGetUsbPrinterInfoRequested::kEventName, 658 api::printer_provider::OnGetUsbPrinterInfoRequested::kEventName,
658 std::move(internal_args))); 659 std::move(internal_args)));
659 event_router->DispatchEventToExtension(extension_id, std::move(event)); 660 event_router->DispatchEventToExtension(extension_id, std::move(event));
660 } 661 }
661 662
662 void PrinterProviderAPIImpl::OnGetPrintersResult( 663 void PrinterProviderAPIImpl::OnGetPrintersResult(
663 const Extension* extension, 664 const Extension* extension,
664 int request_id, 665 int request_id,
665 const PrinterProviderInternalAPIObserver::PrinterInfoVector& result) { 666 const PrinterProviderInternalAPIObserver::PrinterInfoVector& result) {
666 base::ListValue printer_list; 667 base::ListValue printer_list;
667 668
668 // Update some printer description properties to better identify the extension 669 // Update some printer description properties to better identify the extension
669 // managing the printer. 670 // managing the printer.
670 for (const api::printer_provider::PrinterInfo& p : result) { 671 for (const api::printer_provider::PrinterInfo& p : result) {
671 scoped_ptr<base::DictionaryValue> printer(p.ToValue()); 672 std::unique_ptr<base::DictionaryValue> printer(p.ToValue());
672 UpdatePrinterWithExtensionInfo(printer.get(), extension); 673 UpdatePrinterWithExtensionInfo(printer.get(), extension);
673 printer_list.Append(std::move(printer)); 674 printer_list.Append(std::move(printer));
674 } 675 }
675 676
676 pending_get_printers_requests_.CompleteForExtension(extension->id(), 677 pending_get_printers_requests_.CompleteForExtension(extension->id(),
677 request_id, printer_list); 678 request_id, printer_list);
678 } 679 }
679 680
680 void PrinterProviderAPIImpl::OnGetCapabilityResult( 681 void PrinterProviderAPIImpl::OnGetCapabilityResult(
681 const Extension* extension, 682 const Extension* extension,
(...skipping 13 matching lines...) Expand all
695 pending_print_requests_[extension->id()].Complete( 696 pending_print_requests_[extension->id()].Complete(
696 request_id, error == api::printer_provider_internal::PRINT_ERROR_OK, 697 request_id, error == api::printer_provider_internal::PRINT_ERROR_OK,
697 error_str); 698 error_str);
698 } 699 }
699 700
700 void PrinterProviderAPIImpl::OnGetUsbPrinterInfoResult( 701 void PrinterProviderAPIImpl::OnGetUsbPrinterInfoResult(
701 const Extension* extension, 702 const Extension* extension,
702 int request_id, 703 int request_id,
703 const api::printer_provider::PrinterInfo* result) { 704 const api::printer_provider::PrinterInfo* result) {
704 if (result) { 705 if (result) {
705 scoped_ptr<base::DictionaryValue> printer(result->ToValue()); 706 std::unique_ptr<base::DictionaryValue> printer(result->ToValue());
706 UpdatePrinterWithExtensionInfo(printer.get(), extension); 707 UpdatePrinterWithExtensionInfo(printer.get(), extension);
707 pending_usb_printer_info_requests_[extension->id()].Complete(request_id, 708 pending_usb_printer_info_requests_[extension->id()].Complete(request_id,
708 *printer); 709 *printer);
709 } else { 710 } else {
710 pending_usb_printer_info_requests_[extension->id()].Complete( 711 pending_usb_printer_info_requests_[extension->id()].Complete(
711 request_id, base::DictionaryValue()); 712 request_id, base::DictionaryValue());
712 } 713 }
713 } 714 }
714 715
715 void PrinterProviderAPIImpl::OnExtensionUnloaded( 716 void PrinterProviderAPIImpl::OnExtensionUnloaded(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 return new PrinterProviderAPIImpl(context); 764 return new PrinterProviderAPIImpl(context);
764 } 765 }
765 766
766 // static 767 // static
767 std::string PrinterProviderAPI::GetDefaultPrintError() { 768 std::string PrinterProviderAPI::GetDefaultPrintError() {
768 return api::printer_provider_internal::ToString( 769 return api::printer_provider_internal::ToString(
769 api::printer_provider_internal::PRINT_ERROR_FAILED); 770 api::printer_provider_internal::PRINT_ERROR_FAILED);
770 } 771 }
771 772
772 } // namespace extensions 773 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698