| Index: components/test_runner/mock_webrtc_dtmf_sender_handler.cc
|
| diff --git a/components/test_runner/mock_webrtc_dtmf_sender_handler.cc b/components/test_runner/mock_webrtc_dtmf_sender_handler.cc
|
| index 4a4d33c15dbf59874c4df0a918aee935b4520303..363b6da984baf7985d89d44c5f46ca00fe863447 100644
|
| --- a/components/test_runner/mock_webrtc_dtmf_sender_handler.cc
|
| +++ b/components/test_runner/mock_webrtc_dtmf_sender_handler.cc
|
| @@ -4,7 +4,10 @@
|
|
|
| #include "components/test_runner/mock_webrtc_dtmf_sender_handler.h"
|
|
|
| +#include "base/bind.h"
|
| +#include "base/bind_helpers.h"
|
| #include "base/logging.h"
|
| +#include "components/test_runner/web_task.h"
|
| #include "components/test_runner/web_test_delegate.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
|
| #include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandlerClient.h"
|
| @@ -13,29 +16,12 @@ using namespace blink;
|
|
|
| namespace test_runner {
|
|
|
| -class DTMFSenderToneTask : public WebMethodTask<MockWebRTCDTMFSenderHandler> {
|
| - public:
|
| - DTMFSenderToneTask(MockWebRTCDTMFSenderHandler* object,
|
| - WebRTCDTMFSenderHandlerClient* client)
|
| - : WebMethodTask<MockWebRTCDTMFSenderHandler>(object), client_(client) {}
|
| -
|
| - void RunIfValid() override {
|
| - WebString tones = object_->currentToneBuffer();
|
| - object_->ClearToneBuffer();
|
| - client_->didPlayTone(tones);
|
| - }
|
| -
|
| - private:
|
| - WebRTCDTMFSenderHandlerClient* client_;
|
| -};
|
| -
|
| -/////////////////////
|
| -
|
| MockWebRTCDTMFSenderHandler::MockWebRTCDTMFSenderHandler(
|
| const WebMediaStreamTrack& track,
|
| WebTestDelegate* delegate)
|
| - : client_(0), track_(track), delegate_(delegate) {
|
| -}
|
| + : client_(0), track_(track), delegate_(delegate), weak_factory_(this) {}
|
| +
|
| +MockWebRTCDTMFSenderHandler::~MockWebRTCDTMFSenderHandler() {}
|
|
|
| void MockWebRTCDTMFSenderHandler::setClient(
|
| WebRTCDTMFSenderHandlerClient* client) {
|
| @@ -62,9 +48,17 @@ bool MockWebRTCDTMFSenderHandler::insertDTMF(const WebString& tones,
|
| return false;
|
|
|
| tone_buffer_ = tones;
|
| - delegate_->PostTask(new DTMFSenderToneTask(this, client_));
|
| - delegate_->PostTask(new DTMFSenderToneTask(this, client_));
|
| + base::Closure closure = base::Bind(&MockWebRTCDTMFSenderHandler::PlayTone,
|
| + weak_factory_.GetWeakPtr());
|
| + delegate_->PostTask(new WebCallbackTask(closure));
|
| + delegate_->PostTask(new WebCallbackTask(closure));
|
| return true;
|
| }
|
|
|
| +void MockWebRTCDTMFSenderHandler::PlayTone() {
|
| + WebString tones = currentToneBuffer();
|
| + ClearToneBuffer();
|
| + client_->didPlayTone(tones);
|
| +}
|
| +
|
| } // namespace test_runner
|
|
|