OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/gaia/service_gaia_authenticator.h" | 5 #include "chrome/service/gaia/service_gaia_authenticator.h" |
6 | 6 |
7 #include "base/message_loop_proxy.h" | 7 #include "base/message_loop_proxy.h" |
8 #include "chrome/service/net/service_url_request_context.h" | 8 #include "chrome/service/net/service_url_request_context.h" |
9 #include "chrome/service/service_process.h" | 9 #include "chrome/service/service_process.h" |
10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 unsigned long* response_code, | 27 unsigned long* response_code, |
28 std::string* response_body) { | 28 std::string* response_body) { |
29 DCHECK(url.SchemeIsSecure()); | 29 DCHECK(url.SchemeIsSecure()); |
30 DCHECK(io_message_loop_proxy_); | 30 DCHECK(io_message_loop_proxy_); |
31 io_message_loop_proxy_->PostTask( | 31 io_message_loop_proxy_->PostTask( |
32 FROM_HERE, | 32 FROM_HERE, |
33 NewRunnableMethod(this, &ServiceGaiaAuthenticator::DoPost, url, | 33 NewRunnableMethod(this, &ServiceGaiaAuthenticator::DoPost, url, |
34 post_body)); | 34 post_body)); |
35 // TODO(sanjeevr): Waiting here until the network request completes is not | 35 // TODO(sanjeevr): Waiting here until the network request completes is not |
36 // desirable. We need to change Post to be asynchronous. | 36 // desirable. We need to change Post to be asynchronous. |
37 if (!http_post_completed_.Wait()) // Block until network request completes. | 37 // Block until network request completes. See OnURLFetchComplete. |
38 NOTREACHED(); // See OnURLFetchComplete. | 38 http_post_completed_.Wait(); |
39 | 39 |
40 *response_code = static_cast<int>(http_response_code_); | 40 *response_code = static_cast<int>(http_response_code_); |
41 *response_body = response_data_; | 41 *response_body = response_data_; |
42 return true; | 42 return true; |
43 } | 43 } |
44 | 44 |
45 // TODO(sanjeevr): This is a placeholder implementation. Need to move this logic | 45 // TODO(sanjeevr): This is a placeholder implementation. Need to move this logic |
46 // to a common location within the service process so that it can be resued by | 46 // to a common location within the service process so that it can be resued by |
47 // other classes needing a backoff delay calculation. | 47 // other classes needing a backoff delay calculation. |
48 int ServiceGaiaAuthenticator::GetBackoffDelaySeconds( | 48 int ServiceGaiaAuthenticator::GetBackoffDelaySeconds( |
(...skipping 27 matching lines...) Expand all Loading... |
76 http_response_code_ = source->response_code(); | 76 http_response_code_ = source->response_code(); |
77 response_data_ = source->GetResponseStringRef(); | 77 response_data_ = source->GetResponseStringRef(); |
78 delete source; | 78 delete source; |
79 // Add an extra reference because we want http_post_completed_ to remain | 79 // Add an extra reference because we want http_post_completed_ to remain |
80 // valid until after Signal() returns. | 80 // valid until after Signal() returns. |
81 scoped_refptr<ServiceGaiaAuthenticator> keep_alive(this); | 81 scoped_refptr<ServiceGaiaAuthenticator> keep_alive(this); |
82 // Wake the blocked thread in Post. | 82 // Wake the blocked thread in Post. |
83 http_post_completed_.Signal(); | 83 http_post_completed_.Signal(); |
84 // WARNING: DONT DO ANYTHING AFTER THIS CALL! |this| may be deleted! | 84 // WARNING: DONT DO ANYTHING AFTER THIS CALL! |this| may be deleted! |
85 } | 85 } |
OLD | NEW |