1// Copyright 2014 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#ifndef REMOTING_HOST_CAST_EXTENSION_H_ 6#define REMOTING_HOST_CAST_EXTENSION_H_ 7 8#include <string> 9 10#include "base/memory/ref_counted.h" 11#include "base/memory/scoped_ptr.h" 12#include "remoting/host/host_extension.h" 13 14namespace base { 15class SingleThreadTaskRunner; 16} // namespace base 17 18namespace net { 19class URLRequestContextGetter; 20} // namespace net 21 22namespace remoting { 23 24namespace protocol { 25struct NetworkSettings; 26} // namespace protocol 27 28// CastExtension extends HostExtension to enable WebRTC support. 29class CastExtension : public HostExtension { 30 public: 31 CastExtension( 32 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, 33 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter, 34 const protocol::NetworkSettings& network_settings); 35 virtual ~CastExtension(); 36 37 // HostExtension interface. 38 virtual std::string capability() const OVERRIDE; 39 virtual scoped_ptr<HostExtensionSession> CreateExtensionSession( 40 ClientSessionControl* client_session_control, 41 protocol::ClientStub* client_stub) OVERRIDE; 42 43 private: 44 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; 45 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; 46 const protocol::NetworkSettings& network_settings_; 47 48 DISALLOW_COPY_AND_ASSIGN(CastExtension); 49}; 50 51} // namespace remoting 52 53#endif // REMOTING_HOST_CAST_EXTENSION_H_ 54 55