| Index: content/shell/renderer/test_runner/mock_webrtc_peer_connection_handler.cc
|
| diff --git a/content/shell/renderer/test_runner/mock_webrtc_peer_connection_handler.cc b/content/shell/renderer/test_runner/mock_webrtc_peer_connection_handler.cc
|
| deleted file mode 100644
|
| index ffc8a60954571f5b9cddfb392cd24f50fd7d6117..0000000000000000000000000000000000000000
|
| --- a/content/shell/renderer/test_runner/mock_webrtc_peer_connection_handler.cc
|
| +++ /dev/null
|
| @@ -1,410 +0,0 @@
|
| -// 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.
|
| -
|
| -#include "content/shell/renderer/test_runner/mock_webrtc_peer_connection_handler.h"
|
| -
|
| -#include "content/shell/renderer/test_runner/mock_constraints.h"
|
| -#include "content/shell/renderer/test_runner/mock_webrtc_data_channel_handler.h"
|
| -#include "content/shell/renderer/test_runner/mock_webrtc_dtmf_sender_handler.h"
|
| -#include "content/shell/renderer/test_runner/test_interfaces.h"
|
| -#include "content/shell/renderer/test_runner/web_test_delegate.h"
|
| -#include "third_party/WebKit/public/platform/WebMediaConstraints.h"
|
| -#include "third_party/WebKit/public/platform/WebMediaStream.h"
|
| -#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
|
| -#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
|
| -#include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h"
|
| -#include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h"
|
| -#include "third_party/WebKit/public/platform/WebRTCStatsResponse.h"
|
| -#include "third_party/WebKit/public/platform/WebRTCVoidRequest.h"
|
| -#include "third_party/WebKit/public/platform/WebString.h"
|
| -#include "third_party/WebKit/public/platform/WebVector.h"
|
| -
|
| -using namespace blink;
|
| -
|
| -namespace content {
|
| -
|
| -class RTCSessionDescriptionRequestSuccededTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RTCSessionDescriptionRequestSuccededTask(
|
| - MockWebRTCPeerConnectionHandler* object,
|
| - const WebRTCSessionDescriptionRequest& request,
|
| - const WebRTCSessionDescription& result)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - request_(request),
|
| - result_(result) {}
|
| -
|
| - void RunIfValid() override { request_.requestSucceeded(result_); }
|
| -
|
| - private:
|
| - WebRTCSessionDescriptionRequest request_;
|
| - WebRTCSessionDescription result_;
|
| -};
|
| -
|
| -class RTCSessionDescriptionRequestFailedTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RTCSessionDescriptionRequestFailedTask(
|
| - MockWebRTCPeerConnectionHandler* object,
|
| - const WebRTCSessionDescriptionRequest& request)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - request_(request) {}
|
| -
|
| - void RunIfValid() override { request_.requestFailed("TEST_ERROR"); }
|
| -
|
| - private:
|
| - WebRTCSessionDescriptionRequest request_;
|
| -};
|
| -
|
| -class RTCStatsRequestSucceededTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RTCStatsRequestSucceededTask(MockWebRTCPeerConnectionHandler* object,
|
| - const blink::WebRTCStatsRequest& request,
|
| - const blink::WebRTCStatsResponse& response)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - request_(request),
|
| - response_(response) {}
|
| -
|
| - void RunIfValid() override { request_.requestSucceeded(response_); }
|
| -
|
| - private:
|
| - blink::WebRTCStatsRequest request_;
|
| - blink::WebRTCStatsResponse response_;
|
| -};
|
| -
|
| -class RTCVoidRequestTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RTCVoidRequestTask(MockWebRTCPeerConnectionHandler* object,
|
| - const WebRTCVoidRequest& request,
|
| - bool succeeded)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - request_(request),
|
| - succeeded_(succeeded) {}
|
| -
|
| - void RunIfValid() override {
|
| - if (succeeded_)
|
| - request_.requestSucceeded();
|
| - else
|
| - request_.requestFailed("TEST_ERROR");
|
| - }
|
| -
|
| - private:
|
| - WebRTCVoidRequest request_;
|
| - bool succeeded_;
|
| -};
|
| -
|
| -class RTCPeerConnectionStateTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RTCPeerConnectionStateTask(
|
| - MockWebRTCPeerConnectionHandler* object,
|
| - WebRTCPeerConnectionHandlerClient* client,
|
| - WebRTCPeerConnectionHandlerClient::ICEConnectionState connection_state,
|
| - WebRTCPeerConnectionHandlerClient::ICEGatheringState gathering_state)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - client_(client),
|
| - connection_state_(connection_state),
|
| - gathering_state_(gathering_state) {}
|
| -
|
| - void RunIfValid() override {
|
| - client_->didChangeICEGatheringState(gathering_state_);
|
| - client_->didChangeICEConnectionState(connection_state_);
|
| - }
|
| -
|
| - private:
|
| - WebRTCPeerConnectionHandlerClient* client_;
|
| - WebRTCPeerConnectionHandlerClient::ICEConnectionState connection_state_;
|
| - WebRTCPeerConnectionHandlerClient::ICEGatheringState gathering_state_;
|
| -};
|
| -
|
| -class RemoteDataChannelTask
|
| - : public WebMethodTask<MockWebRTCPeerConnectionHandler> {
|
| - public:
|
| - RemoteDataChannelTask(MockWebRTCPeerConnectionHandler* object,
|
| - WebRTCPeerConnectionHandlerClient* client,
|
| - WebTestDelegate* delegate)
|
| - : WebMethodTask<MockWebRTCPeerConnectionHandler>(object),
|
| - client_(client),
|
| - delegate_(delegate) {}
|
| -
|
| - void RunIfValid() override {
|
| - WebRTCDataChannelInit init;
|
| - WebRTCDataChannelHandler* remote_data_channel =
|
| - new MockWebRTCDataChannelHandler(
|
| - "MockRemoteDataChannel", init, delegate_);
|
| - client_->didAddRemoteDataChannel(remote_data_channel);
|
| - }
|
| -
|
| - private:
|
| - WebRTCPeerConnectionHandlerClient* client_;
|
| - WebTestDelegate* delegate_;
|
| -};
|
| -
|
| -/////////////////////
|
| -
|
| -MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() {
|
| -}
|
| -
|
| -MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() {
|
| -}
|
| -
|
| -MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler(
|
| - WebRTCPeerConnectionHandlerClient* client,
|
| - TestInterfaces* interfaces)
|
| - : client_(client),
|
| - stopped_(false),
|
| - stream_count_(0),
|
| - interfaces_(interfaces) {
|
| -}
|
| -
|
| -bool MockWebRTCPeerConnectionHandler::initialize(
|
| - const WebRTCConfiguration& configuration,
|
| - const WebMediaConstraints& constraints) {
|
| - if (MockConstraints::VerifyConstraints(constraints)) {
|
| - interfaces_->GetDelegate()->PostTask(new RTCPeerConnectionStateTask(
|
| - this,
|
| - client_,
|
| - WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted,
|
| - WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete));
|
| - return true;
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::createOffer(
|
| - const WebRTCSessionDescriptionRequest& request,
|
| - const WebMediaConstraints& constraints) {
|
| - WebString should_succeed;
|
| - if (constraints.getMandatoryConstraintValue("succeed", should_succeed) &&
|
| - should_succeed == "true") {
|
| - WebRTCSessionDescription session_description;
|
| - session_description.initialize("offer", "local");
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCSessionDescriptionRequestSuccededTask(
|
| - this, request, session_description));
|
| - } else
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCSessionDescriptionRequestFailedTask(this, request));
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::createOffer(
|
| - const WebRTCSessionDescriptionRequest& request,
|
| - const blink::WebRTCOfferOptions& options) {
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCSessionDescriptionRequestFailedTask(this, request));
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::createAnswer(
|
| - const WebRTCSessionDescriptionRequest& request,
|
| - const WebMediaConstraints& constraints) {
|
| - if (!remote_description_.isNull()) {
|
| - WebRTCSessionDescription session_description;
|
| - session_description.initialize("answer", "local");
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCSessionDescriptionRequestSuccededTask(
|
| - this, request, session_description));
|
| - } else
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCSessionDescriptionRequestFailedTask(this, request));
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::setLocalDescription(
|
| - const WebRTCVoidRequest& request,
|
| - const WebRTCSessionDescription& local_description) {
|
| - if (!local_description.isNull() && local_description.sdp() == "local") {
|
| - local_description_ = local_description;
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCVoidRequestTask(this, request, true));
|
| - } else
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCVoidRequestTask(this, request, false));
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::setRemoteDescription(
|
| - const WebRTCVoidRequest& request,
|
| - const WebRTCSessionDescription& remote_description) {
|
| -
|
| - if (!remote_description.isNull() && remote_description.sdp() == "remote") {
|
| - UpdateRemoteStreams();
|
| - remote_description_ = remote_description;
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCVoidRequestTask(this, request, true));
|
| - } else
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCVoidRequestTask(this, request, false));
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::UpdateRemoteStreams() {
|
| - // Find all removed streams.
|
| - // Set the readyState of the remote tracks to ended, remove them from the
|
| - // stream and notify the client.
|
| - StreamMap::iterator removed_it = remote_streams_.begin();
|
| - while (removed_it != remote_streams_.end()) {
|
| - if (local_streams_.find(removed_it->first) != local_streams_.end()) {
|
| - removed_it++;
|
| - continue;
|
| - }
|
| -
|
| - // The stream have been removed. Loop through all tracks and set the
|
| - // source as ended and remove them from the stream.
|
| - blink::WebMediaStream stream = removed_it->second;
|
| - blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
|
| - stream.audioTracks(audio_tracks);
|
| - for (size_t i = 0; i < audio_tracks.size(); ++i) {
|
| - audio_tracks[i].source().setReadyState(
|
| - blink::WebMediaStreamSource::ReadyStateEnded);
|
| - stream.removeTrack(audio_tracks[i]);
|
| - }
|
| -
|
| - blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
|
| - stream.videoTracks(video_tracks);
|
| - for (size_t i = 0; i < video_tracks.size(); ++i) {
|
| - video_tracks[i].source().setReadyState(
|
| - blink::WebMediaStreamSource::ReadyStateEnded);
|
| - stream.removeTrack(video_tracks[i]);
|
| - }
|
| - client_->didRemoveRemoteStream(stream);
|
| - remote_streams_.erase(removed_it++);
|
| - }
|
| -
|
| - // Find all new streams;
|
| - // Create new sources and tracks and notify the client about the new stream.
|
| - StreamMap::iterator added_it = local_streams_.begin();
|
| - while (added_it != local_streams_.end()) {
|
| - if (remote_streams_.find(added_it->first) != remote_streams_.end()) {
|
| - added_it++;
|
| - continue;
|
| - }
|
| -
|
| - const blink::WebMediaStream& stream = added_it->second;
|
| -
|
| - blink::WebVector<blink::WebMediaStreamTrack> local_audio_tracks;
|
| - stream.audioTracks(local_audio_tracks);
|
| - blink::WebVector<blink::WebMediaStreamTrack>
|
| - remote_audio_tracks(local_audio_tracks.size());
|
| -
|
| - for (size_t i = 0; i < local_audio_tracks.size(); ++i) {
|
| - blink::WebMediaStreamSource webkit_source;
|
| - webkit_source.initialize(local_audio_tracks[i].id(),
|
| - blink::WebMediaStreamSource::TypeAudio,
|
| - local_audio_tracks[i].id(),
|
| - true /* remote */, true /* readonly */);
|
| - remote_audio_tracks[i].initialize(webkit_source);
|
| - }
|
| -
|
| - blink::WebVector<blink::WebMediaStreamTrack> local_video_tracks;
|
| - stream.videoTracks(local_video_tracks);
|
| - blink::WebVector<blink::WebMediaStreamTrack>
|
| - remote_video_tracks(local_video_tracks.size());
|
| - for (size_t i = 0; i < local_video_tracks.size(); ++i) {
|
| - blink::WebMediaStreamSource webkit_source;
|
| - webkit_source.initialize(local_video_tracks[i].id(),
|
| - blink::WebMediaStreamSource::TypeVideo,
|
| - local_video_tracks[i].id(),
|
| - true /* remote */, true /* readonly */);
|
| - remote_video_tracks[i].initialize(webkit_source);
|
| - }
|
| -
|
| - blink::WebMediaStream new_remote_stream;
|
| - new_remote_stream.initialize(remote_audio_tracks,
|
| - remote_video_tracks);
|
| - remote_streams_[added_it->first] = new_remote_stream;
|
| - client_->didAddRemoteStream(new_remote_stream);
|
| - ++added_it;
|
| - }
|
| -}
|
| -
|
| -WebRTCSessionDescription MockWebRTCPeerConnectionHandler::localDescription() {
|
| - return local_description_;
|
| -}
|
| -
|
| -WebRTCSessionDescription MockWebRTCPeerConnectionHandler::remoteDescription() {
|
| - return remote_description_;
|
| -}
|
| -
|
| -bool MockWebRTCPeerConnectionHandler::updateICE(
|
| - const WebRTCConfiguration& configuration,
|
| - const WebMediaConstraints& constraints) {
|
| - return true;
|
| -}
|
| -
|
| -bool MockWebRTCPeerConnectionHandler::addICECandidate(
|
| - const WebRTCICECandidate& ice_candidate) {
|
| - client_->didGenerateICECandidate(ice_candidate);
|
| - return true;
|
| -}
|
| -
|
| -bool MockWebRTCPeerConnectionHandler::addICECandidate(
|
| - const WebRTCVoidRequest& request,
|
| - const WebRTCICECandidate& ice_candidate) {
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCVoidRequestTask(this, request, true));
|
| - return true;
|
| -}
|
| -
|
| -bool MockWebRTCPeerConnectionHandler::addStream(
|
| - const WebMediaStream& stream,
|
| - const WebMediaConstraints& constraints) {
|
| - if (local_streams_.find(stream.id().utf8()) != local_streams_.end())
|
| - return false;
|
| - ++stream_count_;
|
| - client_->negotiationNeeded();
|
| - local_streams_[stream.id().utf8()] = stream;
|
| - return true;
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::removeStream(
|
| - const WebMediaStream& stream) {
|
| - --stream_count_;
|
| - local_streams_.erase(stream.id().utf8());
|
| - client_->negotiationNeeded();
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::getStats(
|
| - const WebRTCStatsRequest& request) {
|
| - WebRTCStatsResponse response = request.createResponse();
|
| - double current_date =
|
| - interfaces_->GetDelegate()->GetCurrentTimeInMillisecond();
|
| - if (request.hasSelector()) {
|
| - // FIXME: There is no check that the fetched values are valid.
|
| - size_t report_index =
|
| - response.addReport("Mock video", "ssrc", current_date);
|
| - response.addStatistic(report_index, "type", "video");
|
| - } else {
|
| - for (int i = 0; i < stream_count_; ++i) {
|
| - size_t report_index =
|
| - response.addReport("Mock audio", "ssrc", current_date);
|
| - response.addStatistic(report_index, "type", "audio");
|
| - report_index = response.addReport("Mock video", "ssrc", current_date);
|
| - response.addStatistic(report_index, "type", "video");
|
| - }
|
| - }
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RTCStatsRequestSucceededTask(this, request, response));
|
| -}
|
| -
|
| -WebRTCDataChannelHandler* MockWebRTCPeerConnectionHandler::createDataChannel(
|
| - const WebString& label,
|
| - const blink::WebRTCDataChannelInit& init) {
|
| - interfaces_->GetDelegate()->PostTask(
|
| - new RemoteDataChannelTask(this, client_, interfaces_->GetDelegate()));
|
| -
|
| - return new MockWebRTCDataChannelHandler(
|
| - label, init, interfaces_->GetDelegate());
|
| -}
|
| -
|
| -WebRTCDTMFSenderHandler* MockWebRTCPeerConnectionHandler::createDTMFSender(
|
| - const WebMediaStreamTrack& track) {
|
| - return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate());
|
| -}
|
| -
|
| -void MockWebRTCPeerConnectionHandler::stop() {
|
| - stopped_ = true;
|
| - task_list_.RevokeAll();
|
| -}
|
| -
|
| -} // namespace content
|
|
|