| Index: content/renderer/media/rtc_data_channel_handler.h
|
| diff --git a/content/renderer/media/rtc_data_channel_handler.h b/content/renderer/media/rtc_data_channel_handler.h
|
| index 79addde172835073e9ee19e277eddfd5bb0b3f5d..181ba9717beac2edc876617403ab55f58ede5104 100644
|
| --- a/content/renderer/media/rtc_data_channel_handler.h
|
| +++ b/content/renderer/media/rtc_data_channel_handler.h
|
| @@ -6,9 +6,7 @@
|
| #define CONTENT_RENDERER_MEDIA_RTC_DATA_CHANNEL_HANDLER_H_
|
|
|
| #include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/threading/thread_checker.h"
|
| +#include "base/threading/non_thread_safe.h"
|
| #include "content/common/content_export.h"
|
| #include "third_party/libjingle/source/talk/app/webrtc/peerconnectioninterface.h"
|
| #include "third_party/WebKit/public/platform/WebRTCDataChannelHandler.h"
|
| @@ -23,20 +21,11 @@
|
| // Callbacks to the webrtc::DataChannelObserver implementation also occur on
|
| // the main render thread.
|
| class CONTENT_EXPORT RtcDataChannelHandler
|
| - : NON_EXPORTED_BASE(public blink::WebRTCDataChannelHandler) {
|
| + : NON_EXPORTED_BASE(public blink::WebRTCDataChannelHandler),
|
| + NON_EXPORTED_BASE(public webrtc::DataChannelObserver),
|
| + NON_EXPORTED_BASE(public base::NonThreadSafe) {
|
| public:
|
| - // This object can* be constructed on libjingle's signaling thread and then
|
| - // ownership is passed to the UI thread where it's eventually given to WebKit.
|
| - // The reason we must construct and hook ourselves up as an observer on the
|
| - // signaling thread is to avoid missing out on any state changes or messages
|
| - // that may occur before we've fully connected with webkit.
|
| - // This period is basically between when the ctor is called and until
|
| - // setClient is called.
|
| - // * For local data channels, the object will be construced on the main thread
|
| - // and we don't have the issue described above.
|
| - RtcDataChannelHandler(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& main_thread,
|
| - webrtc::DataChannelInterface* channel);
|
| + explicit RtcDataChannelHandler(webrtc::DataChannelInterface* channel);
|
| virtual ~RtcDataChannelHandler();
|
|
|
| // blink::WebRTCDataChannelHandler implementation.
|
| @@ -55,46 +44,14 @@
|
| virtual bool sendRawData(const char* data, size_t length) override;
|
| virtual void close() override;
|
|
|
| - const scoped_refptr<webrtc::DataChannelInterface>& channel() const;
|
| + // webrtc::DataChannelObserver implementation.
|
| + void OnStateChange() override;
|
| + void OnMessage(const webrtc::DataBuffer& buffer) override;
|
|
|
| private:
|
| - void OnStateChange(webrtc::DataChannelInterface::DataState state);
|
| - void OnMessage(scoped_ptr<webrtc::DataBuffer> buffer);
|
| void RecordMessageSent(size_t num_bytes);
|
|
|
| - class CONTENT_EXPORT Observer
|
| - : public NON_EXPORTED_BASE(
|
| - base::RefCountedThreadSafe<RtcDataChannelHandler::Observer>),
|
| - public NON_EXPORTED_BASE(webrtc::DataChannelObserver) {
|
| - public:
|
| - Observer(RtcDataChannelHandler* handler,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& main_thread,
|
| - webrtc::DataChannelInterface* channel);
|
| -
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& main_thread() const;
|
| - const scoped_refptr<webrtc::DataChannelInterface>& channel() const;
|
| -
|
| - void ClearHandler();
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<RtcDataChannelHandler::Observer>;
|
| - ~Observer() override;
|
| -
|
| - // webrtc::DataChannelObserver implementation.
|
| - void OnStateChange() override;
|
| - void OnMessage(const webrtc::DataBuffer& buffer) override;
|
| -
|
| - void OnStateChangeImpl(webrtc::DataChannelInterface::DataState state);
|
| - void OnMessageImpl(scoped_ptr<webrtc::DataBuffer> buffer);
|
| -
|
| - RtcDataChannelHandler* handler_;
|
| - const scoped_refptr<base::SingleThreadTaskRunner> main_thread_;
|
| - const scoped_refptr<webrtc::DataChannelInterface> channel_;
|
| - };
|
| -
|
| - scoped_refptr<Observer> observer_;
|
| - base::ThreadChecker thread_checker_;
|
| -
|
| + scoped_refptr<webrtc::DataChannelInterface> channel_;
|
| blink::WebRTCDataChannelHandlerClient* webkit_client_;
|
| };
|
|
|
|
|