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

Side by Side Diff: content/browser/renderer_host/media/webrtc_identity_service_host.cc

Issue 15969025: Generates the DTLS identity in browser process and returns it to render process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/renderer_host/media/webrtc_identity_service_host.h"
6
7 #include "base/bind.h"
8 #include "content/common/media/webrtc_identity_messages.h"
9 #include "content/public/browser/render_process_host.h"
10 #include "net/base/net_errors.h"
11
12 namespace content {
13
14 WebRTCIdentityServiceHost::WebRTCIdentityServiceHost(
15 WebRTCIdentityStore* identity_store)
16 : pending_request_id_(-1), identity_store_(identity_store) {}
Ami GONE FROM CHROMIUM 2013/06/27 20:05:18 This assumes -1 is not a valid request_id. Should
jiayl 2013/06/27 21:08:37 Removed.
17
18 WebRTCIdentityServiceHost::~WebRTCIdentityServiceHost() {
19 if (cancel_callback_.is_null())
20 return;
21 cancel_callback_.Run();
22 }
23
24 bool WebRTCIdentityServiceHost::OnMessageReceived(const IPC::Message& message,
25 bool* message_was_ok) {
26 bool handled = true;
27 IPC_BEGIN_MESSAGE_MAP_EX(WebRTCIdentityServiceHost, message, *message_was_ok)
28 IPC_MESSAGE_HANDLER(WebRTCIdentityMsg_RequestIdentity, OnRequestIdentity)
29 IPC_MESSAGE_HANDLER(WebRTCIdentityMsg_CancelRequest, OnCancelRequest)
30 IPC_MESSAGE_UNHANDLED(handled = false)
31 IPC_END_MESSAGE_MAP_EX()
32 return handled;
33 }
34
35 void WebRTCIdentityServiceHost::OnRequestIdentity(
36 int request_id,
37 const GURL& origin,
38 const std::string& identity_name,
39 const std::string& common_name) {
40 if (!cancel_callback_.is_null()) {
Ami GONE FROM CHROMIUM 2013/06/27 20:05:18 || pending_request_id_ != -1 ? (put another way,
41 DLOG(WARNING)
42 << "The request is rejected because there is already a pending request";
43 SendErrorMessage(request_id, net::ERR_INSUFFICIENT_RESOURCES);
44 return;
45 }
46 bool success = identity_store_->RequestIdentity(
47 origin,
48 identity_name,
49 common_name,
50 base::Bind(&WebRTCIdentityServiceHost::OnComplete,
51 base::Unretained(this),
52 request_id),
53 &cancel_callback_);
54 if (success) {
55 pending_request_id_ = request_id;
56 } else {
57 SendErrorMessage(request_id, net::ERR_UNEXPECTED);
58 }
59 }
60
61 void WebRTCIdentityServiceHost::OnCancelRequest(int request_id) {
62 if (request_id != pending_request_id_ || cancel_callback_.is_null())
63 return;
64 cancel_callback_.Run();
65 cancel_callback_.Reset();
Ami GONE FROM CHROMIUM 2013/06/27 20:05:18 base::ResetAndRun(&cancel_callback_); ?
jiayl 2013/06/27 21:08:37 Done.
66 pending_request_id_ = -1;
67 }
68
69 void WebRTCIdentityServiceHost::OnComplete(int request_id,
70 int error,
71 const std::string& certificate,
72 const std::string& private_key) {
73 DCHECK_EQ(request_id, pending_request_id_);
Ami GONE FROM CHROMIUM 2013/06/27 20:05:18 Why does pending_request_id_ exist? If it's to saf
jiayl 2013/06/27 21:08:37 Done.
74
75 pending_request_id_ = -1;
76 cancel_callback_.Reset();
77 if (error == net::OK) {
78 Send(new WebRTCIdentityHostMsg_IdentityReady(
79 request_id, certificate, private_key));
80 } else {
81 SendErrorMessage(request_id, error);
82 }
83 }
84
85 void WebRTCIdentityServiceHost::SendErrorMessage(int request_id, int error) {
86 Send(new WebRTCIdentityHostMsg_RequestFailed(request_id, error));
87 }
88
89 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698