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

Side by Side Diff: content/renderer/media/rtc_peer_connection_handler.h

Issue 698803002: Use WeakPtr for RTCPeerConnectionHandler and RTCPeerConnectionTracker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_
6 #define CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_ 6 #define CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 static void ConvertOfferOptionsToConstraints( 101 static void ConvertOfferOptionsToConstraints(
102 const blink::WebRTCOfferOptions& options, 102 const blink::WebRTCOfferOptions& options,
103 RTCMediaConstraints* output); 103 RTCMediaConstraints* output);
104 104
105 void associateWithFrame(blink::WebFrame* frame); 105 void associateWithFrame(blink::WebFrame* frame);
106 106
107 // Initialize method only used for unit test. 107 // Initialize method only used for unit test.
108 bool InitializeForTest( 108 bool InitializeForTest(
109 const blink::WebRTCConfiguration& server_configuration, 109 const blink::WebRTCConfiguration& server_configuration,
110 const blink::WebMediaConstraints& options, 110 const blink::WebMediaConstraints& options,
111 PeerConnectionTracker* peer_connection_tracker); 111 const base::WeakPtr<PeerConnectionTracker>& peer_connection_tracker);
112 112
113 // blink::WebRTCPeerConnectionHandler implementation 113 // blink::WebRTCPeerConnectionHandler implementation
114 virtual bool initialize( 114 virtual bool initialize(
115 const blink::WebRTCConfiguration& server_configuration, 115 const blink::WebRTCConfiguration& server_configuration,
116 const blink::WebMediaConstraints& options) override; 116 const blink::WebMediaConstraints& options) override;
117 117
118 virtual void createOffer( 118 virtual void createOffer(
119 const blink::WebRTCSessionDescriptionRequest& request, 119 const blink::WebRTCSessionDescriptionRequest& request,
120 const blink::WebMediaConstraints& options) override; 120 const blink::WebMediaConstraints& options) override;
121 virtual void createOffer( 121 virtual void createOffer(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 // Asynchronously calls native_peer_connection_->getStats on the signaling 170 // Asynchronously calls native_peer_connection_->getStats on the signaling
171 // thread. If the |track_id| is empty, the |track_type| parameter is ignored. 171 // thread. If the |track_id| is empty, the |track_type| parameter is ignored.
172 void GetStats(webrtc::StatsObserver* observer, 172 void GetStats(webrtc::StatsObserver* observer,
173 webrtc::PeerConnectionInterface::StatsOutputLevel level, 173 webrtc::PeerConnectionInterface::StatsOutputLevel level,
174 const std::string& track_id, 174 const std::string& track_id,
175 blink::WebMediaStreamSource::Type track_type); 175 blink::WebMediaStreamSource::Type track_type);
176 176
177 // Tells the |client_| to close RTCPeerConnection. 177 // Tells the |client_| to close RTCPeerConnection.
178 void CloseClientPeerConnection(); 178 void CloseClientPeerConnection();
179 179
180 PeerConnectionTracker* peer_connection_tracker();
181
182 protected: 180 protected:
183 webrtc::PeerConnectionInterface* native_peer_connection() { 181 webrtc::PeerConnectionInterface* native_peer_connection() {
184 return native_peer_connection_.get(); 182 return native_peer_connection_.get();
185 } 183 }
186 184
187 class Observer; 185 class Observer;
188 friend class Observer; 186 friend class Observer;
189 187
190 void OnSignalingChange( 188 void OnSignalingChange(
191 webrtc::PeerConnectionInterface::SignalingState new_state); 189 webrtc::PeerConnectionInterface::SignalingState new_state);
(...skipping 23 matching lines...) Expand all
215 // RenderThreadImpl. 213 // RenderThreadImpl.
216 PeerConnectionDependencyFactory* const dependency_factory_; 214 PeerConnectionDependencyFactory* const dependency_factory_;
217 215
218 blink::WebFrame* frame_; 216 blink::WebFrame* frame_;
219 217
220 // Libjingle's signaling thread. 218 // Libjingle's signaling thread.
221 const scoped_refptr<base::SingleThreadTaskRunner> signaling_thread_; 219 const scoped_refptr<base::SingleThreadTaskRunner> signaling_thread_;
222 220
223 ScopedVector<WebRtcMediaStreamAdapter> local_streams_; 221 ScopedVector<WebRtcMediaStreamAdapter> local_streams_;
224 222
225 PeerConnectionTracker* peer_connection_tracker_; 223 base::WeakPtr<PeerConnectionTracker> peer_connection_tracker_;
226 224
227 MediaStreamTrackMetrics track_metrics_; 225 MediaStreamTrackMetrics track_metrics_;
228 226
229 // Counter for a UMA stat reported at destruction time. 227 // Counter for a UMA stat reported at destruction time.
230 int num_data_channels_created_; 228 int num_data_channels_created_;
231 229
232 // Counter for number of IPv4 and IPv6 local candidates. 230 // Counter for number of IPv4 and IPv6 local candidates.
233 int num_local_candidates_ipv4_; 231 int num_local_candidates_ipv4_;
234 int num_local_candidates_ipv6_; 232 int num_local_candidates_ipv6_;
235 233
236 // |native_peer_connection_| is the libjingle native PeerConnection object. 234 // |native_peer_connection_| is the libjingle native PeerConnection object.
237 scoped_refptr<webrtc::PeerConnectionInterface> native_peer_connection_; 235 scoped_refptr<webrtc::PeerConnectionInterface> native_peer_connection_;
238 scoped_refptr<Observer> peer_connection_observer_; 236 scoped_refptr<Observer> peer_connection_observer_;
239 237
240 typedef std::map<webrtc::MediaStreamInterface*, 238 typedef std::map<webrtc::MediaStreamInterface*,
241 content::RemoteMediaStreamImpl*> RemoteStreamMap; 239 content::RemoteMediaStreamImpl*> RemoteStreamMap;
242 RemoteStreamMap remote_streams_; 240 RemoteStreamMap remote_streams_;
243 scoped_refptr<webrtc::UMAObserver> uma_observer_; 241 scoped_refptr<webrtc::UMAObserver> uma_observer_;
244 base::TimeTicks ice_connection_checking_start_; 242 base::TimeTicks ice_connection_checking_start_;
245 base::WeakPtrFactory<RTCPeerConnectionHandler> weak_factory_; 243 base::WeakPtrFactory<RTCPeerConnectionHandler> weak_factory_;
246 244
247 DISALLOW_COPY_AND_ASSIGN(RTCPeerConnectionHandler); 245 DISALLOW_COPY_AND_ASSIGN(RTCPeerConnectionHandler);
248 }; 246 };
249 247
250 } // namespace content 248 } // namespace content
251 249
252 #endif // CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_ 250 #endif // CONTENT_RENDERER_MEDIA_RTC_PEER_CONNECTION_HANDLER_H_
OLDNEW
« no previous file with comments | « content/renderer/media/peer_connection_tracker.h ('k') | content/renderer/media/rtc_peer_connection_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698