// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_HOST_CAST_EXTENSION_H_ #define REMOTING_HOST_CAST_EXTENSION_H_ #include #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" #include "remoting/host/host_extension.h" namespace base { class SingleThreadTaskRunner; } // namespace base namespace net { class URLRequestContextGetter; } // namespace net namespace remoting { namespace protocol { struct NetworkSettings; } // namespace protocol // CastExtension extends HostExtension to enable WebRTC support. class CastExtension : public HostExtension { public: CastExtension( scoped_refptr network_task_runner, scoped_refptr url_request_context_getter, const protocol::NetworkSettings& network_settings); ~CastExtension() override; // HostExtension interface. std::string capability() const override; scoped_ptr CreateExtensionSession( ClientSessionControl* client_session_control, protocol::ClientStub* client_stub) override; private: scoped_refptr network_task_runner_; scoped_refptr url_request_context_getter_; const protocol::NetworkSettings& network_settings_; DISALLOW_COPY_AND_ASSIGN(CastExtension); }; } // namespace remoting #endif // REMOTING_HOST_CAST_EXTENSION_H_