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

Side by Side Diff: chrome/test/chromedriver/server/http_handler.cc

Issue 1551503002: Convert Pass()→std::move() in //chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/test/chromedriver/server/http_handler.h" 5 #include "chrome/test/chromedriver/server/http_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/callback.h" 11 #include "base/callback.h"
11 #include "base/json/json_reader.h" 12 #include "base/json/json_reader.h"
12 #include "base/json/json_writer.h" 13 #include "base/json/json_writer.h"
13 #include "base/logging.h" // For CHECK macros. 14 #include "base/logging.h" // For CHECK macros.
14 #include "base/macros.h" 15 #include "base/macros.h"
15 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
16 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
17 #include "base/strings/string_split.h" 18 #include "base/strings/string_split.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 url_base_(url_base), 79 url_base_(url_base),
79 received_shutdown_(false), 80 received_shutdown_(false),
80 weak_ptr_factory_(this) { 81 weak_ptr_factory_(this) {
81 #if defined(OS_MACOSX) 82 #if defined(OS_MACOSX)
82 base::mac::ScopedNSAutoreleasePool autorelease_pool; 83 base::mac::ScopedNSAutoreleasePool autorelease_pool;
83 #endif 84 #endif
84 context_getter_ = new URLRequestContextGetter(io_task_runner); 85 context_getter_ = new URLRequestContextGetter(io_task_runner);
85 socket_factory_ = CreateSyncWebSocketFactory(context_getter_.get()); 86 socket_factory_ = CreateSyncWebSocketFactory(context_getter_.get());
86 adb_.reset(new AdbImpl(io_task_runner, adb_port)); 87 adb_.reset(new AdbImpl(io_task_runner, adb_port));
87 device_manager_.reset(new DeviceManager(adb_.get())); 88 device_manager_.reset(new DeviceManager(adb_.get()));
88 port_server_ = port_server.Pass(); 89 port_server_ = std::move(port_server);
89 port_manager_.reset(new PortManager(12000, 13000)); 90 port_manager_.reset(new PortManager(12000, 13000));
90 91
91 CommandMapping commands[] = { 92 CommandMapping commands[] = {
92 CommandMapping( 93 CommandMapping(
93 kPost, 94 kPost,
94 internal::kNewSessionPathPattern, 95 internal::kNewSessionPathPattern,
95 base::Bind(&ExecuteCreateSession, 96 base::Bind(&ExecuteCreateSession,
96 &session_thread_map_, 97 &session_thread_map_,
97 WrapToCommand( 98 WrapToCommand(
98 "InitSession", 99 "InitSession",
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 CHECK(thread_checker_.CalledOnValidThread()); 584 CHECK(thread_checker_.CalledOnValidThread());
584 585
585 if (received_shutdown_) 586 if (received_shutdown_)
586 return; 587 return;
587 588
588 std::string path = request.path; 589 std::string path = request.path;
589 if (!base::StartsWith(path, url_base_, base::CompareCase::SENSITIVE)) { 590 if (!base::StartsWith(path, url_base_, base::CompareCase::SENSITIVE)) {
590 scoped_ptr<net::HttpServerResponseInfo> response( 591 scoped_ptr<net::HttpServerResponseInfo> response(
591 new net::HttpServerResponseInfo(net::HTTP_BAD_REQUEST)); 592 new net::HttpServerResponseInfo(net::HTTP_BAD_REQUEST));
592 response->SetBody("unhandled request", "text/plain"); 593 response->SetBody("unhandled request", "text/plain");
593 send_response_func.Run(response.Pass()); 594 send_response_func.Run(std::move(response));
594 return; 595 return;
595 } 596 }
596 597
597 path.erase(0, url_base_.length()); 598 path.erase(0, url_base_.length());
598 599
599 HandleCommand(request, path, send_response_func); 600 HandleCommand(request, path, send_response_func);
600 601
601 if (path == kShutdownPath) 602 if (path == kShutdownPath)
602 received_shutdown_ = true; 603 received_shutdown_ = true;
603 } 604 }
(...skipping 26 matching lines...) Expand all
630 const std::string& trimmed_path, 631 const std::string& trimmed_path,
631 const HttpResponseSenderFunc& send_response_func) { 632 const HttpResponseSenderFunc& send_response_func) {
632 base::DictionaryValue params; 633 base::DictionaryValue params;
633 std::string session_id; 634 std::string session_id;
634 CommandMap::const_iterator iter = command_map_->begin(); 635 CommandMap::const_iterator iter = command_map_->begin();
635 while (true) { 636 while (true) {
636 if (iter == command_map_->end()) { 637 if (iter == command_map_->end()) {
637 scoped_ptr<net::HttpServerResponseInfo> response( 638 scoped_ptr<net::HttpServerResponseInfo> response(
638 new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND)); 639 new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND));
639 response->SetBody("unknown command: " + trimmed_path, "text/plain"); 640 response->SetBody("unknown command: " + trimmed_path, "text/plain");
640 send_response_func.Run(response.Pass()); 641 send_response_func.Run(std::move(response));
641 return; 642 return;
642 } 643 }
643 if (internal::MatchesCommand( 644 if (internal::MatchesCommand(
644 request.method, trimmed_path, *iter, &session_id, &params)) { 645 request.method, trimmed_path, *iter, &session_id, &params)) {
645 break; 646 break;
646 } 647 }
647 ++iter; 648 ++iter;
648 } 649 }
649 650
650 if (request.data.length()) { 651 if (request.data.length()) {
651 base::DictionaryValue* body_params; 652 base::DictionaryValue* body_params;
652 scoped_ptr<base::Value> parsed_body = base::JSONReader::Read(request.data); 653 scoped_ptr<base::Value> parsed_body = base::JSONReader::Read(request.data);
653 if (!parsed_body || !parsed_body->GetAsDictionary(&body_params)) { 654 if (!parsed_body || !parsed_body->GetAsDictionary(&body_params)) {
654 scoped_ptr<net::HttpServerResponseInfo> response( 655 scoped_ptr<net::HttpServerResponseInfo> response(
655 new net::HttpServerResponseInfo(net::HTTP_BAD_REQUEST)); 656 new net::HttpServerResponseInfo(net::HTTP_BAD_REQUEST));
656 response->SetBody("missing command parameters", "text/plain"); 657 response->SetBody("missing command parameters", "text/plain");
657 send_response_func.Run(response.Pass()); 658 send_response_func.Run(std::move(response));
658 return; 659 return;
659 } 660 }
660 params.MergeDictionary(body_params); 661 params.MergeDictionary(body_params);
661 } 662 }
662 663
663 iter->command.Run(params, 664 iter->command.Run(params,
664 session_id, 665 session_id,
665 base::Bind(&HttpHandler::PrepareResponse, 666 base::Bind(&HttpHandler::PrepareResponse,
666 weak_ptr_factory_.GetWeakPtr(), 667 weak_ptr_factory_.GetWeakPtr(),
667 trimmed_path, 668 trimmed_path,
668 send_response_func)); 669 send_response_func));
669 } 670 }
670 671
671 void HttpHandler::PrepareResponse( 672 void HttpHandler::PrepareResponse(
672 const std::string& trimmed_path, 673 const std::string& trimmed_path,
673 const HttpResponseSenderFunc& send_response_func, 674 const HttpResponseSenderFunc& send_response_func,
674 const Status& status, 675 const Status& status,
675 scoped_ptr<base::Value> value, 676 scoped_ptr<base::Value> value,
676 const std::string& session_id) { 677 const std::string& session_id) {
677 CHECK(thread_checker_.CalledOnValidThread()); 678 CHECK(thread_checker_.CalledOnValidThread());
678 scoped_ptr<net::HttpServerResponseInfo> response = 679 scoped_ptr<net::HttpServerResponseInfo> response =
679 PrepareResponseHelper(trimmed_path, status, value.Pass(), session_id); 680 PrepareResponseHelper(trimmed_path, status, std::move(value), session_id);
680 send_response_func.Run(response.Pass()); 681 send_response_func.Run(std::move(response));
681 if (trimmed_path == kShutdownPath) 682 if (trimmed_path == kShutdownPath)
682 quit_func_.Run(); 683 quit_func_.Run();
683 } 684 }
684 685
685 scoped_ptr<net::HttpServerResponseInfo> HttpHandler::PrepareResponseHelper( 686 scoped_ptr<net::HttpServerResponseInfo> HttpHandler::PrepareResponseHelper(
686 const std::string& trimmed_path, 687 const std::string& trimmed_path,
687 const Status& status, 688 const Status& status,
688 scoped_ptr<base::Value> value, 689 scoped_ptr<base::Value> value,
689 const std::string& session_id) { 690 const std::string& session_id) {
690 if (status.code() == kUnknownCommand) { 691 if (status.code() == kUnknownCommand) {
691 scoped_ptr<net::HttpServerResponseInfo> response( 692 scoped_ptr<net::HttpServerResponseInfo> response(
692 new net::HttpServerResponseInfo(net::HTTP_NOT_IMPLEMENTED)); 693 new net::HttpServerResponseInfo(net::HTTP_NOT_IMPLEMENTED));
693 response->SetBody("unimplemented command: " + trimmed_path, "text/plain"); 694 response->SetBody("unimplemented command: " + trimmed_path, "text/plain");
694 return response.Pass(); 695 return response;
695 } 696 }
696 697
697 if (status.IsError()) { 698 if (status.IsError()) {
698 Status full_status(status); 699 Status full_status(status);
699 full_status.AddDetails(base::StringPrintf( 700 full_status.AddDetails(base::StringPrintf(
700 "Driver info: chromedriver=%s,platform=%s %s %s", 701 "Driver info: chromedriver=%s,platform=%s %s %s",
701 kChromeDriverVersion, 702 kChromeDriverVersion,
702 base::SysInfo::OperatingSystemName().c_str(), 703 base::SysInfo::OperatingSystemName().c_str(),
703 base::SysInfo::OperatingSystemVersion().c_str(), 704 base::SysInfo::OperatingSystemVersion().c_str(),
704 base::SysInfo::OperatingSystemArchitecture().c_str())); 705 base::SysInfo::OperatingSystemArchitecture().c_str()));
705 scoped_ptr<base::DictionaryValue> error(new base::DictionaryValue()); 706 scoped_ptr<base::DictionaryValue> error(new base::DictionaryValue());
706 error->SetString("message", full_status.message()); 707 error->SetString("message", full_status.message());
707 value.reset(error.release()); 708 value.reset(error.release());
708 } 709 }
709 if (!value) 710 if (!value)
710 value = base::Value::CreateNullValue(); 711 value = base::Value::CreateNullValue();
711 712
712 base::DictionaryValue body_params; 713 base::DictionaryValue body_params;
713 body_params.SetInteger("status", status.code()); 714 body_params.SetInteger("status", status.code());
714 body_params.Set("value", value.release()); 715 body_params.Set("value", value.release());
715 body_params.SetString("sessionId", session_id); 716 body_params.SetString("sessionId", session_id);
716 std::string body; 717 std::string body;
717 base::JSONWriter::WriteWithOptions( 718 base::JSONWriter::WriteWithOptions(
718 body_params, base::JSONWriter::OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION, 719 body_params, base::JSONWriter::OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION,
719 &body); 720 &body);
720 scoped_ptr<net::HttpServerResponseInfo> response( 721 scoped_ptr<net::HttpServerResponseInfo> response(
721 new net::HttpServerResponseInfo(net::HTTP_OK)); 722 new net::HttpServerResponseInfo(net::HTTP_OK));
722 response->SetBody(body, "application/json; charset=utf-8"); 723 response->SetBody(body, "application/json; charset=utf-8");
723 return response.Pass(); 724 return response;
724 } 725 }
725 726
726 namespace internal { 727 namespace internal {
727 728
728 const char kNewSessionPathPattern[] = "session"; 729 const char kNewSessionPathPattern[] = "session";
729 730
730 bool MatchesMethod(HttpMethod command_method, const std::string& method) { 731 bool MatchesMethod(HttpMethod command_method, const std::string& method) {
731 std::string lower_method = base::ToLowerASCII(method); 732 std::string lower_method = base::ToLowerASCII(method);
732 switch (command_method) { 733 switch (command_method) {
733 case kGet: 734 case kGet:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 params.SetString(name, decoded); 778 params.SetString(name, decoded);
778 } else if (command_path_parts[i] != path_parts[i]) { 779 } else if (command_path_parts[i] != path_parts[i]) {
779 return false; 780 return false;
780 } 781 }
781 } 782 }
782 out_params->MergeDictionary(&params); 783 out_params->MergeDictionary(&params);
783 return true; 784 return true;
784 } 785 }
785 786
786 } // namespace internal 787 } // namespace internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698