Chromium Code Reviews| 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 "content/browser/media/webrtc_identity_store.h" | 5 #include "content/browser/media/webrtc_identity_store.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 180 backend_(new WebRTCIdentityStoreBackend(path, policy)) {} | 180 backend_(new WebRTCIdentityStoreBackend(path, policy)) {} |
| 181 | 181 |
| 182 WebRTCIdentityStore::~WebRTCIdentityStore() { backend_->Close(); } | 182 WebRTCIdentityStore::~WebRTCIdentityStore() { backend_->Close(); } |
| 183 | 183 |
| 184 base::Closure WebRTCIdentityStore::RequestIdentity( | 184 base::Closure WebRTCIdentityStore::RequestIdentity( |
| 185 const GURL& origin, | 185 const GURL& origin, |
| 186 const std::string& identity_name, | 186 const std::string& identity_name, |
| 187 const std::string& common_name, | 187 const std::string& common_name, |
| 188 const CompletionCallback& callback) { | 188 const CompletionCallback& callback) { |
| 189 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 189 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 190 | |
| 191 WebRTCIdentityRequestHandle* handle = | |
| 192 new WebRTCIdentityRequestHandle(this, callback); | |
| 193 | |
| 194 WebRTCIdentityRequest* request = | 190 WebRTCIdentityRequest* request = |
| 195 FindRequest(origin, identity_name, common_name); | 191 FindRequest(origin, identity_name, common_name); |
| 196 | |
| 197 // If there is no identical request in flight, create a new one, queue it, | 192 // If there is no identical request in flight, create a new one, queue it, |
| 198 // and make the backend request. | 193 // and make the backend request. |
| 199 if (!request) { | 194 if (!request) { |
| 200 request = new WebRTCIdentityRequest(origin, identity_name, common_name); | 195 scoped_ptr<WebRTCIdentityRequest> new_request( |
| 196 new WebRTCIdentityRequest(origin, identity_name, common_name)); | |
| 201 | 197 |
| 202 if (!backend_->FindIdentity( | 198 if (!backend_->FindIdentity( |
| 203 origin, | 199 origin, |
| 204 identity_name, | 200 identity_name, |
| 205 common_name, | 201 common_name, |
| 206 base::Bind( | 202 base::Bind( |
| 207 &WebRTCIdentityStore::BackendFindCallback, this, request))) { | 203 &WebRTCIdentityStore::BackendFindCallback, |
| 208 delete request; | 204 this, new_request.get()))) { |
| 209 return base::Closure(); | 205 return base::Closure(); |
| 210 } | 206 } |
| 207 // |request| will delete itself after the result is posted. | |
| 208 request = new_request.release(); | |
|
Ami GONE FROM CHROMIUM
2013/08/12 17:56:34
TBH I think the old code made it easier to see how
| |
| 211 in_flight_requests_.push_back(request); | 209 in_flight_requests_.push_back(request); |
| 212 } | 210 } |
| 213 | 211 |
| 212 WebRTCIdentityRequestHandle* handle = | |
| 213 new WebRTCIdentityRequestHandle(this, callback); | |
| 214 request->AddCallback( | 214 request->AddCallback( |
| 215 handle, | 215 handle, |
| 216 base::Bind(&WebRTCIdentityRequestHandle::OnRequestComplete, | 216 base::Bind(&WebRTCIdentityRequestHandle::OnRequestComplete, |
| 217 base::Owned(handle))); | 217 base::Owned(handle))); |
| 218 handle->OnRequestStarted(request); | 218 handle->OnRequestStarted(request); |
| 219 return base::Bind(&WebRTCIdentityRequestHandle::Cancel, | 219 return base::Bind(&WebRTCIdentityRequestHandle::Cancel, |
| 220 base::Unretained(handle)); | 220 base::Unretained(handle)); |
| 221 } | 221 } |
| 222 | 222 |
| 223 void WebRTCIdentityStore::DeleteBetween(base::Time delete_begin, | 223 void WebRTCIdentityStore::DeleteBetween(base::Time delete_begin, |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 if (in_flight_requests_[i]->origin_ == origin && | 299 if (in_flight_requests_[i]->origin_ == origin && |
| 300 in_flight_requests_[i]->identity_name_ == identity_name && | 300 in_flight_requests_[i]->identity_name_ == identity_name && |
| 301 in_flight_requests_[i]->common_name_ == common_name) { | 301 in_flight_requests_[i]->common_name_ == common_name) { |
| 302 return in_flight_requests_[i]; | 302 return in_flight_requests_[i]; |
| 303 } | 303 } |
| 304 } | 304 } |
| 305 return NULL; | 305 return NULL; |
| 306 } | 306 } |
| 307 | 307 |
| 308 } // namespace content | 308 } // namespace content |
| OLD | NEW |