peer_connection_tracker_host.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/browser_message_filter.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PeerConnectionInfo; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace base { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ListValue; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace base 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace content { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This class is the host for PeerConnectionTracker in the browser process 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// managed by RenderProcessHostImpl. It passes IPC messages between 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// WebRTCInternals and PeerConnectionTracker. 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PeerConnectionTrackerHost : public BrowserMessageFilter { 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PeerConnectionTrackerHost(int render_process_id); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // content::BrowserMessageFilter override. 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void OverrideThreadForMessage(const IPC::Message& message, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) BrowserThread::ID* thread) OVERRIDE; 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~PeerConnectionTrackerHost(); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Handlers for peer connection messages coming from the renderer. 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAddPeerConnection(const PeerConnectionInfo& info); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnRemovePeerConnection(int lid); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnUpdatePeerConnection( 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int lid, const std::string& type, const std::string& value); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAddStats(int lid, const base::ListValue& value); 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void OnGetUserMedia(const std::string& origin, 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool audio, 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool video, 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const std::string& audio_constraints, 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const std::string& video_constraints); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int render_process_id_; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(PeerConnectionTrackerHost); 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace content 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_ 54