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 14 namespace base { 15 class SingleThreadTaskRunner; 16 } // namespace base 17 18 namespace net { 19 class URLRequestContextGetter; 20 } // namespace net 21 22 namespace remoting { 23 24 namespace protocol { 25 struct NetworkSettings; 26 } // namespace protocol 27 28 // CastExtension extends HostExtension to enable WebRTC support. 29 class 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