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

Side by Side Diff: content/renderer/media/peer_connection_tracker.cc

Issue 2928033002: Move GetDocument method from WebFrame to WebLocalFrame. (Closed)
Patch Set: Split a DCHECK in two as suggested by boliu@. Created 3 years, 6 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 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 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/renderer/media/peer_connection_tracker.h" 5 #include "content/renderer/media/peer_connection_tracker.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <string>
11 #include <utility> 12 #include <utility>
13 #include <vector>
12 14
13 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
14 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
16 #include "base/threading/thread_task_runner_handle.h" 18 #include "base/threading/thread_task_runner_handle.h"
17 #include "base/values.h" 19 #include "base/values.h"
18 #include "content/common/media/peer_connection_tracker_messages.h" 20 #include "content/common/media/peer_connection_tracker_messages.h"
19 #include "content/renderer/media/rtc_peer_connection_handler.h" 21 #include "content/renderer/media/rtc_peer_connection_handler.h"
20 #include "content/renderer/render_thread_impl.h" 22 #include "content/renderer/render_thread_impl.h"
21 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" 23 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
22 #include "third_party/WebKit/public/platform/WebMediaStream.h" 24 #include "third_party/WebKit/public/platform/WebMediaStream.h"
23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 25 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
24 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 26 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
25 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" 27 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h"
26 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h" 28 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h"
27 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" 29 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h"
28 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h " 30 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h "
29 #include "third_party/WebKit/public/web/WebDocument.h" 31 #include "third_party/WebKit/public/web/WebDocument.h"
30 #include "third_party/WebKit/public/web/WebFrame.h" 32 #include "third_party/WebKit/public/web/WebLocalFrame.h"
31 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" 33 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
32 34
33 using webrtc::MediaConstraintsInterface; 35 using webrtc::MediaConstraintsInterface;
34 using webrtc::StatsReport; 36 using webrtc::StatsReport;
35 using webrtc::StatsReports; 37 using webrtc::StatsReports;
36 using blink::WebRTCPeerConnectionHandlerClient; 38 using blink::WebRTCPeerConnectionHandlerClient;
37 39
38 namespace content { 40 namespace content {
39 41
40 // TODO(hta): This module should be redesigned to reduce string copies. 42 // TODO(hta): This module should be redesigned to reduce string copies.
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 transport_type = "relay"; 131 transport_type = "relay";
130 break; 132 break;
131 case webrtc::PeerConnectionInterface::kAll: 133 case webrtc::PeerConnectionInterface::kAll:
132 transport_type = "all"; 134 transport_type = "all";
133 break; 135 break;
134 case webrtc::PeerConnectionInterface::kNoHost: 136 case webrtc::PeerConnectionInterface::kNoHost:
135 transport_type = "noHost"; 137 transport_type = "noHost";
136 break; 138 break;
137 default: 139 default:
138 NOTREACHED(); 140 NOTREACHED();
139 }; 141 }
140 return transport_type; 142 return transport_type;
141 } 143 }
142 144
143 static const char* SerializeBundlePolicy( 145 static const char* SerializeBundlePolicy(
144 webrtc::PeerConnectionInterface::BundlePolicy policy) { 146 webrtc::PeerConnectionInterface::BundlePolicy policy) {
145 const char* policy_str = ""; 147 const char* policy_str = "";
146 switch (policy) { 148 switch (policy) {
147 case webrtc::PeerConnectionInterface::kBundlePolicyBalanced: 149 case webrtc::PeerConnectionInterface::kBundlePolicyBalanced:
148 policy_str = "balanced"; 150 policy_str = "balanced";
149 break; 151 break;
150 case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle: 152 case webrtc::PeerConnectionInterface::kBundlePolicyMaxBundle:
151 policy_str = "max-bundle"; 153 policy_str = "max-bundle";
152 break; 154 break;
153 case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat: 155 case webrtc::PeerConnectionInterface::kBundlePolicyMaxCompat:
154 policy_str = "max-compat"; 156 policy_str = "max-compat";
155 break; 157 break;
156 default: 158 default:
157 NOTREACHED(); 159 NOTREACHED();
158 }; 160 }
159 return policy_str; 161 return policy_str;
160 } 162 }
161 163
162 static const char* SerializeRtcpMuxPolicy( 164 static const char* SerializeRtcpMuxPolicy(
163 webrtc::PeerConnectionInterface::RtcpMuxPolicy policy) { 165 webrtc::PeerConnectionInterface::RtcpMuxPolicy policy) {
164 const char* policy_str = ""; 166 const char* policy_str = "";
165 switch (policy) { 167 switch (policy) {
166 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate: 168 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyNegotiate:
167 policy_str = "negotiate"; 169 policy_str = "negotiate";
168 break; 170 break;
169 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire: 171 case webrtc::PeerConnectionInterface::kRtcpMuxPolicyRequire:
170 policy_str = "require"; 172 policy_str = "require";
171 break; 173 break;
172 default: 174 default:
173 NOTREACHED(); 175 NOTREACHED();
174 }; 176 }
175 return policy_str; 177 return policy_str;
176 } 178 }
177 179
178 static std::string SerializeConfiguration( 180 static std::string SerializeConfiguration(
179 const webrtc::PeerConnectionInterface::RTCConfiguration& config) { 181 const webrtc::PeerConnectionInterface::RTCConfiguration& config) {
180 std::ostringstream oss; 182 std::ostringstream oss;
181 // TODO(hbos): Add serialization of certificate. 183 // TODO(hbos): Add serialization of certificate.
182 oss << "{ iceServers: " << SerializeServers(config.servers) 184 oss << "{ iceServers: " << SerializeServers(config.servers)
183 << ", iceTransportPolicy: " << SerializeIceTransportType(config.type) 185 << ", iceTransportPolicy: " << SerializeIceTransportType(config.type)
184 << ", bundlePolicy: " << SerializeBundlePolicy(config.bundle_policy) 186 << ", bundlePolicy: " << SerializeBundlePolicy(config.bundle_policy)
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 auto result = base::MakeUnique<base::DictionaryValue>(); 307 auto result = base::MakeUnique<base::DictionaryValue>();
306 result->Set("stats", std::move(stats)); 308 result->Set("stats", std::move(stats));
307 result->SetString("id", report.id()->ToString()); 309 result->SetString("id", report.id()->ToString());
308 result->SetString("type", report.TypeToString()); 310 result->SetString("type", report.TypeToString());
309 311
310 return result; 312 return result;
311 } 313 }
312 314
313 class InternalStatsObserver : public webrtc::StatsObserver { 315 class InternalStatsObserver : public webrtc::StatsObserver {
314 public: 316 public:
315 InternalStatsObserver(int lid) 317 explicit InternalStatsObserver(int lid)
316 : lid_(lid), main_thread_(base::ThreadTaskRunnerHandle::Get()) {} 318 : lid_(lid), main_thread_(base::ThreadTaskRunnerHandle::Get()) {}
317 319
318 void OnComplete(const StatsReports& reports) override { 320 void OnComplete(const StatsReports& reports) override {
319 std::unique_ptr<base::ListValue> list(new base::ListValue()); 321 std::unique_ptr<base::ListValue> list(new base::ListValue());
320 322
321 for (const auto* r : reports) { 323 for (const auto* r : reports) {
322 std::unique_ptr<base::DictionaryValue> report = GetDictValue(*r); 324 std::unique_ptr<base::DictionaryValue> report = GetDictValue(*r);
323 if (report) 325 if (report)
324 list->Append(std::move(report)); 326 list->Append(std::move(report));
325 } 327 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 it.first->StopEventLog(); 431 it.first->StopEventLog();
430 return; 432 return;
431 } 433 }
432 } 434 }
433 } 435 }
434 436
435 void PeerConnectionTracker::RegisterPeerConnection( 437 void PeerConnectionTracker::RegisterPeerConnection(
436 RTCPeerConnectionHandler* pc_handler, 438 RTCPeerConnectionHandler* pc_handler,
437 const webrtc::PeerConnectionInterface::RTCConfiguration& config, 439 const webrtc::PeerConnectionInterface::RTCConfiguration& config,
438 const blink::WebMediaConstraints& constraints, 440 const blink::WebMediaConstraints& constraints,
439 const blink::WebFrame* frame) { 441 const blink::WebLocalFrame* frame) {
440 DCHECK(main_thread_.CalledOnValidThread()); 442 DCHECK(main_thread_.CalledOnValidThread());
441 DCHECK_EQ(GetLocalIDForHandler(pc_handler), -1); 443 DCHECK_EQ(GetLocalIDForHandler(pc_handler), -1);
442 DVLOG(1) << "PeerConnectionTracker::RegisterPeerConnection()"; 444 DVLOG(1) << "PeerConnectionTracker::RegisterPeerConnection()";
443 PeerConnectionInfo info; 445 PeerConnectionInfo info;
444 446
445 info.lid = GetNextLocalID(); 447 info.lid = GetNextLocalID();
446 info.rtc_configuration = SerializeConfiguration(config); 448 info.rtc_configuration = SerializeConfiguration(config);
447 449
448 info.constraints = SerializeMediaConstraints(constraints); 450 info.constraints = SerializeMediaConstraints(constraints);
449 if (frame) 451 if (frame)
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 if (id == -1) 583 if (id == -1)
582 return; 584 return;
583 SendPeerConnectionUpdate( 585 SendPeerConnectionUpdate(
584 id, source == SOURCE_LOCAL ? "addStream" : "onAddStream", 586 id, source == SOURCE_LOCAL ? "addStream" : "onAddStream",
585 SerializeMediaDescriptor(stream)); 587 SerializeMediaDescriptor(stream));
586 } 588 }
587 589
588 void PeerConnectionTracker::TrackRemoveStream( 590 void PeerConnectionTracker::TrackRemoveStream(
589 RTCPeerConnectionHandler* pc_handler, 591 RTCPeerConnectionHandler* pc_handler,
590 const blink::WebMediaStream& stream, 592 const blink::WebMediaStream& stream,
591 Source source){ 593 Source source) {
592 DCHECK(main_thread_.CalledOnValidThread()); 594 DCHECK(main_thread_.CalledOnValidThread());
593 int id = GetLocalIDForHandler(pc_handler); 595 int id = GetLocalIDForHandler(pc_handler);
594 if (id == -1) 596 if (id == -1)
595 return; 597 return;
596 SendPeerConnectionUpdate( 598 SendPeerConnectionUpdate(
597 id, source == SOURCE_LOCAL ? "removeStream" : "onRemoveStream", 599 id, source == SOURCE_LOCAL ? "removeStream" : "onRemoveStream",
598 SerializeMediaDescriptor(stream)); 600 SerializeMediaDescriptor(stream));
599 } 601 }
600 602
601 void PeerConnectionTracker::TrackCreateDataChannel( 603 void PeerConnectionTracker::TrackCreateDataChannel(
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 DCHECK(main_thread_.CalledOnValidThread()); 745 DCHECK(main_thread_.CalledOnValidThread());
744 SendTarget()->Send(new PeerConnectionTrackerHost_UpdatePeerConnection( 746 SendTarget()->Send(new PeerConnectionTrackerHost_UpdatePeerConnection(
745 local_id, std::string(callback_type), value)); 747 local_id, std::string(callback_type), value));
746 } 748 }
747 749
748 void PeerConnectionTracker::OverrideSendTargetForTesting(RenderThread* target) { 750 void PeerConnectionTracker::OverrideSendTargetForTesting(RenderThread* target) {
749 send_target_for_test_ = target; 751 send_target_for_test_ = target;
750 } 752 }
751 753
752 } // namespace content 754 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/peer_connection_tracker.h ('k') | content/renderer/media/rtc_peer_connection_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698