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

Side by Side Diff: third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp

Issue 2501163002: RTCPeerConnection: match createDataChannel signature in spec (Closed)
Patch Set: expand id tests Created 3 years, 8 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 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 #include "core/html/VoidCallback.h" 57 #include "core/html/VoidCallback.h"
58 #include "core/loader/FrameLoader.h" 58 #include "core/loader/FrameLoader.h"
59 #include "modules/crypto/CryptoResultImpl.h" 59 #include "modules/crypto/CryptoResultImpl.h"
60 #include "modules/mediastream/MediaConstraintsImpl.h" 60 #include "modules/mediastream/MediaConstraintsImpl.h"
61 #include "modules/mediastream/MediaStreamEvent.h" 61 #include "modules/mediastream/MediaStreamEvent.h"
62 #include "modules/peerconnection/RTCAnswerOptions.h" 62 #include "modules/peerconnection/RTCAnswerOptions.h"
63 #include "modules/peerconnection/RTCConfiguration.h" 63 #include "modules/peerconnection/RTCConfiguration.h"
64 #include "modules/peerconnection/RTCDTMFSender.h" 64 #include "modules/peerconnection/RTCDTMFSender.h"
65 #include "modules/peerconnection/RTCDataChannel.h" 65 #include "modules/peerconnection/RTCDataChannel.h"
66 #include "modules/peerconnection/RTCDataChannelEvent.h" 66 #include "modules/peerconnection/RTCDataChannelEvent.h"
67 #include "modules/peerconnection/RTCDataChannelInit.h"
67 #include "modules/peerconnection/RTCIceServer.h" 68 #include "modules/peerconnection/RTCIceServer.h"
68 #include "modules/peerconnection/RTCOfferOptions.h" 69 #include "modules/peerconnection/RTCOfferOptions.h"
69 #include "modules/peerconnection/RTCPeerConnectionErrorCallback.h" 70 #include "modules/peerconnection/RTCPeerConnectionErrorCallback.h"
70 #include "modules/peerconnection/RTCPeerConnectionIceEvent.h" 71 #include "modules/peerconnection/RTCPeerConnectionIceEvent.h"
71 #include "modules/peerconnection/RTCRtpReceiver.h" 72 #include "modules/peerconnection/RTCRtpReceiver.h"
72 #include "modules/peerconnection/RTCSessionDescription.h" 73 #include "modules/peerconnection/RTCSessionDescription.h"
73 #include "modules/peerconnection/RTCSessionDescriptionCallback.h" 74 #include "modules/peerconnection/RTCSessionDescriptionCallback.h"
74 #include "modules/peerconnection/RTCSessionDescriptionInit.h" 75 #include "modules/peerconnection/RTCSessionDescriptionInit.h"
75 #include "modules/peerconnection/RTCSessionDescriptionRequestImpl.h" 76 #include "modules/peerconnection/RTCSessionDescriptionRequestImpl.h"
76 #include "modules/peerconnection/RTCSessionDescriptionRequestPromiseImpl.h" 77 #include "modules/peerconnection/RTCSessionDescriptionRequestPromiseImpl.h"
(...skipping 1130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 rtp_receivers_.insert(id, rtp_receiver); 1208 rtp_receivers_.insert(id, rtp_receiver);
1208 rtp_receivers[i] = rtp_receiver; 1209 rtp_receivers[i] = rtp_receiver;
1209 } 1210 }
1210 } 1211 }
1211 return rtp_receivers; 1212 return rtp_receivers;
1212 } 1213 }
1213 1214
1214 RTCDataChannel* RTCPeerConnection::createDataChannel( 1215 RTCDataChannel* RTCPeerConnection::createDataChannel(
1215 ScriptState* script_state, 1216 ScriptState* script_state,
1216 String label, 1217 String label,
1217 const Dictionary& options, 1218 const RTCDataChannelInit& data_channel_dict,
1218 ExceptionState& exception_state) { 1219 ExceptionState& exception_state) {
1219 if (ThrowExceptionIfSignalingStateClosed(signaling_state_, exception_state)) 1220 if (ThrowExceptionIfSignalingStateClosed(signaling_state_, exception_state))
1220 return nullptr; 1221 return nullptr;
1221 1222
1222 WebRTCDataChannelInit init; 1223 WebRTCDataChannelInit init;
1223 DictionaryHelper::Get(options, "ordered", init.ordered); 1224 init.ordered = data_channel_dict.ordered();
1224 DictionaryHelper::Get(options, "negotiated", init.negotiated);
1225
1226 unsigned short value = 0;
1227 ExecutionContext* context = ExecutionContext::From(script_state); 1225 ExecutionContext* context = ExecutionContext::From(script_state);
1228 if (DictionaryHelper::Get(options, "id", value)) 1226 if (data_channel_dict.hasMaxRetransmitTime()) {
1229 init.id = value;
1230 if (DictionaryHelper::Get(options, "maxRetransmits", value)) {
1231 UseCounter::Count(
1232 context, UseCounter::kRTCPeerConnectionCreateDataChannelMaxRetransmits);
1233 init.max_retransmits = value;
1234 }
1235 if (DictionaryHelper::Get(options, "maxRetransmitTime", value)) {
1236 UseCounter::Count( 1227 UseCounter::Count(
1237 context, 1228 context,
1238 UseCounter::kRTCPeerConnectionCreateDataChannelMaxRetransmitTime); 1229 UseCounter::kRTCPeerConnectionCreateDataChannelMaxRetransmitTime);
1239 init.max_retransmit_time = value; 1230 init.max_retransmit_time = data_channel_dict.maxRetransmitTime();
1240 } 1231 }
1241 1232 if (data_channel_dict.hasMaxRetransmits()) {
1242 String protocol_string; 1233 UseCounter::Count(
1243 DictionaryHelper::Get(options, "protocol", protocol_string); 1234 context, UseCounter::kRTCPeerConnectionCreateDataChannelMaxRetransmits);
1244 init.protocol = protocol_string; 1235 init.max_retransmits = data_channel_dict.maxRetransmits();
1236 }
1237 init.protocol = data_channel_dict.protocol();
1238 init.negotiated = data_channel_dict.negotiated();
1239 if (data_channel_dict.hasId())
1240 init.id = data_channel_dict.id();
1245 1241
1246 RTCDataChannel* channel = RTCDataChannel::Create( 1242 RTCDataChannel* channel = RTCDataChannel::Create(
1247 GetExecutionContext(), peer_handler_.get(), label, init, exception_state); 1243 GetExecutionContext(), peer_handler_.get(), label, init, exception_state);
1248 if (exception_state.HadException()) 1244 if (exception_state.HadException())
1249 return nullptr; 1245 return nullptr;
1250 RTCDataChannel::ReadyState handler_state = channel->GetHandlerState(); 1246 RTCDataChannel::ReadyState handler_state = channel->GetHandlerState();
1251 if (handler_state != RTCDataChannel::kReadyStateConnecting) { 1247 if (handler_state != RTCDataChannel::kReadyStateConnecting) {
1252 // There was an early state transition. Don't miss it! 1248 // There was an early state transition. Don't miss it!
1253 channel->DidChangeReadyState(handler_state); 1249 channel->DidChangeReadyState(handler_state);
1254 } 1250 }
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
1566 visitor->Trace(local_streams_); 1562 visitor->Trace(local_streams_);
1567 visitor->Trace(remote_streams_); 1563 visitor->Trace(remote_streams_);
1568 visitor->Trace(rtp_receivers_); 1564 visitor->Trace(rtp_receivers_);
1569 visitor->Trace(dispatch_scheduled_event_runner_); 1565 visitor->Trace(dispatch_scheduled_event_runner_);
1570 visitor->Trace(scheduled_events_); 1566 visitor->Trace(scheduled_events_);
1571 EventTargetWithInlineData::Trace(visitor); 1567 EventTargetWithInlineData::Trace(visitor);
1572 SuspendableObject::Trace(visitor); 1568 SuspendableObject::Trace(visitor);
1573 } 1569 }
1574 1570
1575 } // namespace blink 1571 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698