OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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/browser/local_discovery/privet_http_impl.h" | 5 #include "chrome/browser/local_discovery/privet_http_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 replacements.SetPathStr(path); | 80 replacements.SetPathStr(path); |
81 if (!query_params.empty()) { | 81 if (!query_params.empty()) { |
82 replacements.SetQueryStr(query_params); | 82 replacements.SetQueryStr(query_params); |
83 } | 83 } |
84 return url.ReplaceComponents(replacements); | 84 return url.ReplaceComponents(replacements); |
85 } | 85 } |
86 | 86 |
87 } // namespace | 87 } // namespace |
88 | 88 |
89 PrivetInfoOperationImpl::PrivetInfoOperationImpl( | 89 PrivetInfoOperationImpl::PrivetInfoOperationImpl( |
90 PrivetHTTPClientImpl* privet_client, | 90 PrivetHTTPClient* privet_client, |
91 const PrivetJSONOperation::ResultCallback& callback) | 91 const PrivetJSONOperation::ResultCallback& callback) |
92 : privet_client_(privet_client), callback_(callback) { | 92 : privet_client_(privet_client), callback_(callback) { |
93 } | 93 } |
94 | 94 |
95 PrivetInfoOperationImpl::~PrivetInfoOperationImpl() { | 95 PrivetInfoOperationImpl::~PrivetInfoOperationImpl() { |
96 } | 96 } |
97 | 97 |
98 void PrivetInfoOperationImpl::Start() { | 98 void PrivetInfoOperationImpl::Start() { |
99 url_fetcher_ = privet_client_->CreateURLFetcher( | 99 url_fetcher_ = privet_client_->CreateURLFetcher( |
100 CreatePrivetURL(kPrivetInfoPath), net::URLFetcher::GET, this); | 100 CreatePrivetURL(kPrivetInfoPath), net::URLFetcher::GET, this); |
(...skipping 13 matching lines...) Expand all Loading... |
114 callback_.Run(NULL); | 114 callback_.Run(NULL); |
115 } | 115 } |
116 | 116 |
117 void PrivetInfoOperationImpl::OnParsedJson(PrivetURLFetcher* fetcher, | 117 void PrivetInfoOperationImpl::OnParsedJson(PrivetURLFetcher* fetcher, |
118 const base::DictionaryValue* value, | 118 const base::DictionaryValue* value, |
119 bool has_error) { | 119 bool has_error) { |
120 callback_.Run(value); | 120 callback_.Run(value); |
121 } | 121 } |
122 | 122 |
123 PrivetRegisterOperationImpl::PrivetRegisterOperationImpl( | 123 PrivetRegisterOperationImpl::PrivetRegisterOperationImpl( |
124 PrivetHTTPClientImpl* privet_client, | 124 PrivetHTTPClient* privet_client, |
125 const std::string& user, | 125 const std::string& user, |
126 PrivetRegisterOperation::Delegate* delegate) | 126 PrivetRegisterOperation::Delegate* delegate) |
127 : user_(user), delegate_(delegate), privet_client_(privet_client), | 127 : user_(user), |
| 128 delegate_(delegate), |
| 129 privet_client_(privet_client), |
128 ongoing_(false) { | 130 ongoing_(false) { |
129 } | 131 } |
130 | 132 |
131 PrivetRegisterOperationImpl::~PrivetRegisterOperationImpl() { | 133 PrivetRegisterOperationImpl::~PrivetRegisterOperationImpl() { |
132 } | 134 } |
133 | 135 |
134 void PrivetRegisterOperationImpl::Start() { | 136 void PrivetRegisterOperationImpl::Start() { |
135 ongoing_ = true; | 137 ongoing_ = true; |
136 next_response_handler_ = | 138 next_response_handler_ = |
137 base::Bind(&PrivetRegisterOperationImpl::StartResponse, | 139 base::Bind(&PrivetRegisterOperationImpl::StartResponse, |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 309 } |
308 | 310 |
309 void PrivetRegisterOperationImpl::StartInfoOperation() { | 311 void PrivetRegisterOperationImpl::StartInfoOperation() { |
310 info_operation_ = privet_client_->CreateInfoOperation( | 312 info_operation_ = privet_client_->CreateInfoOperation( |
311 base::Bind(&PrivetRegisterOperationImpl::OnPrivetInfoDone, | 313 base::Bind(&PrivetRegisterOperationImpl::OnPrivetInfoDone, |
312 base::Unretained(this))); | 314 base::Unretained(this))); |
313 info_operation_->Start(); | 315 info_operation_->Start(); |
314 } | 316 } |
315 | 317 |
316 PrivetRegisterOperationImpl::Cancelation::Cancelation( | 318 PrivetRegisterOperationImpl::Cancelation::Cancelation( |
317 PrivetHTTPClientImpl* privet_client, | 319 PrivetHTTPClient* privet_client, |
318 const std::string& user) { | 320 const std::string& user) { |
319 url_fetcher_ = | 321 url_fetcher_ = |
320 privet_client->CreateURLFetcher( | 322 privet_client->CreateURLFetcher( |
321 CreatePrivetRegisterURL(kPrivetActionCancel, user), | 323 CreatePrivetRegisterURL(kPrivetActionCancel, user), |
322 net::URLFetcher::POST, this); | 324 net::URLFetcher::POST, this); |
323 url_fetcher_->DoNotRetryOnTransientError(); | 325 url_fetcher_->DoNotRetryOnTransientError(); |
324 url_fetcher_->Start(); | 326 url_fetcher_->Start(); |
325 } | 327 } |
326 | 328 |
327 PrivetRegisterOperationImpl::Cancelation::~Cancelation() { | 329 PrivetRegisterOperationImpl::Cancelation::~Cancelation() { |
(...skipping 10 matching lines...) Expand all Loading... |
338 bool has_error) { | 340 bool has_error) { |
339 } | 341 } |
340 | 342 |
341 void PrivetRegisterOperationImpl::Cancelation::Cleanup() { | 343 void PrivetRegisterOperationImpl::Cancelation::Cleanup() { |
342 // Nothing needs to be done, as base::Owned will delete this object, | 344 // Nothing needs to be done, as base::Owned will delete this object, |
343 // this callback is just here to pass ownership of the Cancelation to | 345 // this callback is just here to pass ownership of the Cancelation to |
344 // the message loop. | 346 // the message loop. |
345 } | 347 } |
346 | 348 |
347 PrivetJSONOperationImpl::PrivetJSONOperationImpl( | 349 PrivetJSONOperationImpl::PrivetJSONOperationImpl( |
348 PrivetHTTPClientImpl* privet_client, | 350 PrivetHTTPClient* privet_client, |
349 const std::string& path, | 351 const std::string& path, |
350 const std::string& query_params, | 352 const std::string& query_params, |
351 const PrivetJSONOperation::ResultCallback& callback) | 353 const PrivetJSONOperation::ResultCallback& callback) |
352 : privet_client_(privet_client), path_(path), query_params_(query_params), | 354 : privet_client_(privet_client), |
| 355 path_(path), |
| 356 query_params_(query_params), |
353 callback_(callback) { | 357 callback_(callback) { |
354 } | 358 } |
355 | 359 |
356 PrivetJSONOperationImpl::~PrivetJSONOperationImpl() { | 360 PrivetJSONOperationImpl::~PrivetJSONOperationImpl() { |
357 } | 361 } |
358 | 362 |
359 void PrivetJSONOperationImpl::Start() { | 363 void PrivetJSONOperationImpl::Start() { |
360 url_fetcher_ = privet_client_->CreateURLFetcher( | 364 url_fetcher_ = privet_client_->CreateURLFetcher( |
361 CreatePrivetParamURL(path_, query_params_), net::URLFetcher::GET, this); | 365 CreatePrivetParamURL(path_, query_params_), net::URLFetcher::GET, this); |
362 url_fetcher_->DoNotRetryOnTransientError(); | 366 url_fetcher_->DoNotRetryOnTransientError(); |
(...skipping 17 matching lines...) Expand all Loading... |
380 callback_.Run(value); | 384 callback_.Run(value); |
381 } | 385 } |
382 | 386 |
383 void PrivetJSONOperationImpl::OnNeedPrivetToken( | 387 void PrivetJSONOperationImpl::OnNeedPrivetToken( |
384 PrivetURLFetcher* fetcher, | 388 PrivetURLFetcher* fetcher, |
385 const PrivetURLFetcher::TokenCallback& callback) { | 389 const PrivetURLFetcher::TokenCallback& callback) { |
386 privet_client_->RefreshPrivetToken(callback); | 390 privet_client_->RefreshPrivetToken(callback); |
387 } | 391 } |
388 | 392 |
389 PrivetDataReadOperationImpl::PrivetDataReadOperationImpl( | 393 PrivetDataReadOperationImpl::PrivetDataReadOperationImpl( |
390 PrivetHTTPClientImpl* privet_client, | 394 PrivetHTTPClient* privet_client, |
391 const std::string& path, | 395 const std::string& path, |
392 const std::string& query_params, | 396 const std::string& query_params, |
393 const PrivetDataReadOperation::ResultCallback& callback) | 397 const PrivetDataReadOperation::ResultCallback& callback) |
394 : privet_client_(privet_client), path_(path), query_params_(query_params), | 398 : privet_client_(privet_client), |
395 callback_(callback), has_range_(false), save_to_file_(false) { | 399 path_(path), |
| 400 query_params_(query_params), |
| 401 callback_(callback), |
| 402 has_range_(false), |
| 403 save_to_file_(false) { |
396 } | 404 } |
397 | 405 |
398 PrivetDataReadOperationImpl::~PrivetDataReadOperationImpl() { | 406 PrivetDataReadOperationImpl::~PrivetDataReadOperationImpl() { |
399 } | 407 } |
400 | 408 |
401 | 409 |
402 void PrivetDataReadOperationImpl::Start() { | 410 void PrivetDataReadOperationImpl::Start() { |
403 url_fetcher_ = privet_client_->CreateURLFetcher( | 411 url_fetcher_ = privet_client_->CreateURLFetcher( |
404 CreatePrivetParamURL(path_, query_params_), net::URLFetcher::GET, this); | 412 CreatePrivetParamURL(path_, query_params_), net::URLFetcher::GET, this); |
405 url_fetcher_->DoNotRetryOnTransientError(); | 413 url_fetcher_->DoNotRetryOnTransientError(); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 bool PrivetDataReadOperationImpl::OnRawData(PrivetURLFetcher* fetcher, | 459 bool PrivetDataReadOperationImpl::OnRawData(PrivetURLFetcher* fetcher, |
452 bool is_file, | 460 bool is_file, |
453 const std::string& data_str, | 461 const std::string& data_str, |
454 const base::FilePath& file_path) { | 462 const base::FilePath& file_path) { |
455 ResponseType type = (is_file) ? RESPONSE_TYPE_FILE : RESPONSE_TYPE_STRING; | 463 ResponseType type = (is_file) ? RESPONSE_TYPE_FILE : RESPONSE_TYPE_STRING; |
456 callback_.Run(type, data_str, file_path); | 464 callback_.Run(type, data_str, file_path); |
457 return true; | 465 return true; |
458 } | 466 } |
459 | 467 |
460 PrivetLocalPrintOperationImpl::PrivetLocalPrintOperationImpl( | 468 PrivetLocalPrintOperationImpl::PrivetLocalPrintOperationImpl( |
461 PrivetHTTPClientImpl* privet_client, | 469 PrivetHTTPClient* privet_client, |
462 PrivetLocalPrintOperation::Delegate* delegate) | 470 PrivetLocalPrintOperation::Delegate* delegate) |
463 : privet_client_(privet_client), | 471 : privet_client_(privet_client), |
464 delegate_(delegate), | 472 delegate_(delegate), |
465 use_pdf_(false), | 473 use_pdf_(false), |
466 has_extended_workflow_(false), | 474 has_extended_workflow_(false), |
467 started_(false), | 475 started_(false), |
468 offline_(false), | 476 offline_(false), |
469 dpi_(printing::kDefaultPdfDpi), | 477 dpi_(printing::kDefaultPdfDpi), |
470 invalid_job_retries_(0), | 478 invalid_job_retries_(0), |
471 weak_factory_(this) { | 479 weak_factory_(this) { |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
818 | 826 |
819 PrivetHTTPClientImpl::PrivetHTTPClientImpl( | 827 PrivetHTTPClientImpl::PrivetHTTPClientImpl( |
820 const std::string& name, | 828 const std::string& name, |
821 const net::HostPortPair& host_port, | 829 const net::HostPortPair& host_port, |
822 net::URLRequestContextGetter* request_context) | 830 net::URLRequestContextGetter* request_context) |
823 : name_(name), request_context_(request_context), host_port_(host_port) {} | 831 : name_(name), request_context_(request_context), host_port_(host_port) {} |
824 | 832 |
825 PrivetHTTPClientImpl::~PrivetHTTPClientImpl() { | 833 PrivetHTTPClientImpl::~PrivetHTTPClientImpl() { |
826 } | 834 } |
827 | 835 |
828 scoped_ptr<PrivetRegisterOperation> | 836 const std::string& PrivetHTTPClientImpl::GetName() { |
829 PrivetHTTPClientImpl::CreateRegisterOperation( | 837 return name_; |
830 const std::string& user, | |
831 PrivetRegisterOperation::Delegate* delegate) { | |
832 return scoped_ptr<PrivetRegisterOperation>( | |
833 new PrivetRegisterOperationImpl(this, user, delegate)); | |
834 } | 838 } |
835 | 839 |
836 scoped_ptr<PrivetJSONOperation> PrivetHTTPClientImpl::CreateInfoOperation( | 840 scoped_ptr<PrivetJSONOperation> PrivetHTTPClientImpl::CreateInfoOperation( |
837 const PrivetJSONOperation::ResultCallback& callback) { | 841 const PrivetJSONOperation::ResultCallback& callback) { |
838 return scoped_ptr<PrivetJSONOperation>( | 842 return scoped_ptr<PrivetJSONOperation>( |
839 new PrivetInfoOperationImpl(this, callback)); | 843 new PrivetInfoOperationImpl(this, callback)); |
840 } | 844 } |
841 | 845 |
842 scoped_ptr<PrivetJSONOperation> | |
843 PrivetHTTPClientImpl::CreateCapabilitiesOperation( | |
844 const PrivetJSONOperation::ResultCallback& callback) { | |
845 return scoped_ptr<PrivetJSONOperation>( | |
846 new PrivetJSONOperationImpl(this, kPrivetCapabilitiesPath, "", callback)); | |
847 } | |
848 | |
849 scoped_ptr<PrivetLocalPrintOperation> | |
850 PrivetHTTPClientImpl::CreateLocalPrintOperation( | |
851 PrivetLocalPrintOperation::Delegate* delegate) { | |
852 return scoped_ptr<PrivetLocalPrintOperation>( | |
853 new PrivetLocalPrintOperationImpl(this, delegate)); | |
854 } | |
855 | |
856 scoped_ptr<PrivetJSONOperation> | |
857 PrivetHTTPClientImpl::CreateStorageListOperation( | |
858 const std::string& path, | |
859 const PrivetJSONOperation::ResultCallback& callback) { | |
860 std::string url_param = base::StringPrintf(kPrivetStorageParamPathFormat, | |
861 path.c_str()); | |
862 return scoped_ptr<PrivetJSONOperation>( | |
863 new PrivetJSONOperationImpl(this, kPrivetStorageListPath, url_param, | |
864 callback)); | |
865 } | |
866 | |
867 | |
868 scoped_ptr<PrivetDataReadOperation> | |
869 PrivetHTTPClientImpl::CreateStorageReadOperation( | |
870 const std::string& path, | |
871 const PrivetDataReadOperation::ResultCallback& callback) { | |
872 std::string url_param = base::StringPrintf(kPrivetStorageParamPathFormat, | |
873 path.c_str()); | |
874 return scoped_ptr<PrivetDataReadOperation>( | |
875 new PrivetDataReadOperationImpl(this, kPrivetStorageContentPath, | |
876 url_param, callback)); | |
877 } | |
878 | |
879 const std::string& PrivetHTTPClientImpl::GetName() { | |
880 return name_; | |
881 } | |
882 | |
883 scoped_ptr<PrivetURLFetcher> PrivetHTTPClientImpl::CreateURLFetcher( | 846 scoped_ptr<PrivetURLFetcher> PrivetHTTPClientImpl::CreateURLFetcher( |
884 const GURL& url, net::URLFetcher::RequestType request_type, | 847 const GURL& url, |
885 PrivetURLFetcher::Delegate* delegate) const { | 848 net::URLFetcher::RequestType request_type, |
| 849 PrivetURLFetcher::Delegate* delegate) { |
886 GURL::Replacements replacements; | 850 GURL::Replacements replacements; |
887 replacements.SetHostStr(host_port_.host()); | 851 replacements.SetHostStr(host_port_.host()); |
888 std::string port(base::IntToString(host_port_.port())); // Keep string alive. | 852 std::string port(base::IntToString(host_port_.port())); // Keep string alive. |
889 replacements.SetPortStr(port); | 853 replacements.SetPortStr(port); |
890 return scoped_ptr<PrivetURLFetcher>( | 854 return scoped_ptr<PrivetURLFetcher>( |
891 new PrivetURLFetcher(url.ReplaceComponents(replacements), | 855 new PrivetURLFetcher(url.ReplaceComponents(replacements), |
892 request_type, | 856 request_type, |
893 request_context_.get(), | 857 request_context_.get(), |
894 delegate)); | 858 delegate)); |
895 } | 859 } |
(...skipping 23 matching lines...) Expand all Loading... |
919 | 883 |
920 TokenCallbackVector token_callbacks; | 884 TokenCallbackVector token_callbacks; |
921 token_callbacks_.swap(token_callbacks); | 885 token_callbacks_.swap(token_callbacks); |
922 | 886 |
923 for (TokenCallbackVector::iterator i = token_callbacks.begin(); | 887 for (TokenCallbackVector::iterator i = token_callbacks.begin(); |
924 i != token_callbacks.end(); i++) { | 888 i != token_callbacks.end(); i++) { |
925 i->Run(token); | 889 i->Run(token); |
926 } | 890 } |
927 } | 891 } |
928 | 892 |
| 893 PrivetV1HTTPClientImpl::PrivetV1HTTPClientImpl( |
| 894 scoped_ptr<PrivetHTTPClient> info_client) |
| 895 : info_client_(info_client.Pass()) { |
| 896 } |
| 897 |
| 898 PrivetV1HTTPClientImpl::~PrivetV1HTTPClientImpl() { |
| 899 } |
| 900 |
| 901 const std::string& PrivetV1HTTPClientImpl::GetName() { |
| 902 return info_client()->GetName(); |
| 903 } |
| 904 |
| 905 scoped_ptr<PrivetJSONOperation> PrivetV1HTTPClientImpl::CreateInfoOperation( |
| 906 const PrivetJSONOperation::ResultCallback& callback) { |
| 907 return info_client()->CreateInfoOperation(callback); |
| 908 } |
| 909 |
| 910 scoped_ptr<PrivetRegisterOperation> |
| 911 PrivetV1HTTPClientImpl::CreateRegisterOperation( |
| 912 const std::string& user, |
| 913 PrivetRegisterOperation::Delegate* delegate) { |
| 914 return scoped_ptr<PrivetRegisterOperation>( |
| 915 new PrivetRegisterOperationImpl(info_client(), user, delegate)); |
| 916 } |
| 917 |
| 918 scoped_ptr<PrivetJSONOperation> |
| 919 PrivetV1HTTPClientImpl::CreateCapabilitiesOperation( |
| 920 const PrivetJSONOperation::ResultCallback& callback) { |
| 921 return scoped_ptr<PrivetJSONOperation>(new PrivetJSONOperationImpl( |
| 922 info_client(), kPrivetCapabilitiesPath, "", callback)); |
| 923 } |
| 924 |
| 925 scoped_ptr<PrivetLocalPrintOperation> |
| 926 PrivetV1HTTPClientImpl::CreateLocalPrintOperation( |
| 927 PrivetLocalPrintOperation::Delegate* delegate) { |
| 928 return scoped_ptr<PrivetLocalPrintOperation>( |
| 929 new PrivetLocalPrintOperationImpl(info_client(), delegate)); |
| 930 } |
| 931 |
| 932 scoped_ptr<PrivetJSONOperation> |
| 933 PrivetV1HTTPClientImpl::CreateStorageListOperation( |
| 934 const std::string& path, |
| 935 const PrivetJSONOperation::ResultCallback& callback) { |
| 936 std::string url_param = |
| 937 base::StringPrintf(kPrivetStorageParamPathFormat, path.c_str()); |
| 938 return scoped_ptr<PrivetJSONOperation>(new PrivetJSONOperationImpl( |
| 939 info_client(), kPrivetStorageListPath, url_param, callback)); |
| 940 } |
| 941 |
| 942 scoped_ptr<PrivetDataReadOperation> |
| 943 PrivetV1HTTPClientImpl::CreateStorageReadOperation( |
| 944 const std::string& path, |
| 945 const PrivetDataReadOperation::ResultCallback& callback) { |
| 946 std::string url_param = |
| 947 base::StringPrintf(kPrivetStorageParamPathFormat, path.c_str()); |
| 948 return scoped_ptr<PrivetDataReadOperation>(new PrivetDataReadOperationImpl( |
| 949 info_client(), kPrivetStorageContentPath, url_param, callback)); |
| 950 } |
| 951 |
929 } // namespace local_discovery | 952 } // namespace local_discovery |
OLD | NEW |