0

Remove TestMediaStreamRendererFactory and TestMediaStreamVideoRenderer

These test classes are no longer necessary now that the MediaStream module
is completely in Blink.

In a future CL, the CreateMediaStreamRendererFactory() method will be
removed from ContentRendererClient.

This CL also removes two tests that are obsolete and were marked as
flaky/timeout/slow.

Bug: 704136

Change-Id: Ia6bd0626ed24418870ed7171e004db8af0d602da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1910079
Reviewed-by: Peter Beverloo <peter@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#717018}
This commit is contained in:
Guido Urdaneta
2019-11-20 15:28:43 +00:00
committed by Commit Bot
parent 27c70dbb91
commit 16dc11baac
11 changed files with 2 additions and 334 deletions

@ -227,10 +227,6 @@ jumbo_static_library("content_shell_lib") {
"renderer/web_test/blink_test_helpers.h",
"renderer/web_test/blink_test_runner.cc",
"renderer/web_test/blink_test_runner.h",
"renderer/web_test/test_media_stream_renderer_factory.cc",
"renderer/web_test/test_media_stream_renderer_factory.h",
"renderer/web_test/test_media_stream_video_renderer.cc",
"renderer/web_test/test_media_stream_video_renderer.h",
"renderer/web_test/test_websocket_handshake_throttle_provider.cc",
"renderer/web_test/test_websocket_handshake_throttle_provider.h",
"renderer/web_test/web_test_content_renderer_client.cc",

@ -1,62 +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/web_test/test_media_stream_renderer_factory.h"
#include <utility>
#include "base/single_thread_task_runner.h"
#include "content/shell/renderer/web_test/test_media_stream_video_renderer.h"
#include "media/media_buildflags.h"
#include "third_party/blink/public/platform/web_media_stream.h"
#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/web_local_frame.h"
namespace {
static const int kVideoCaptureWidth = 352;
static const int kVideoCaptureHeight = 288;
static const int kVideoCaptureFrameDurationMs = 33;
bool IsMockMediaStreamWithVideo(const blink::WebMediaStream& web_stream) {
if (web_stream.IsNull())
return false;
blink::WebVector<blink::WebMediaStreamTrack> video_tracks =
web_stream.VideoTracks();
return video_tracks.size() > 0;
}
} // namespace
namespace content {
TestMediaStreamRendererFactory::TestMediaStreamRendererFactory() {}
TestMediaStreamRendererFactory::~TestMediaStreamRendererFactory() {}
scoped_refptr<blink::WebMediaStreamVideoRenderer>
TestMediaStreamRendererFactory::GetVideoRenderer(
const blink::WebMediaStream& web_stream,
const blink::WebMediaStreamVideoRenderer::RepaintCB& repaint_cb,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner) {
if (!IsMockMediaStreamWithVideo(web_stream))
return nullptr;
return new TestMediaStreamVideoRenderer(
std::move(io_task_runner),
gfx::Size(kVideoCaptureWidth, kVideoCaptureHeight),
base::TimeDelta::FromMilliseconds(kVideoCaptureFrameDurationMs),
repaint_cb);
}
scoped_refptr<blink::WebMediaStreamAudioRenderer>
TestMediaStreamRendererFactory::GetAudioRenderer(
const blink::WebMediaStream& web_stream,
blink::WebLocalFrame* web_frame,
const blink::WebString& device_id) {
return nullptr;
}
} // namespace content

@ -1,39 +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.
#ifndef CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_
#define CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_
#include <string>
#include "base/callback_forward.h"
#include "third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h"
namespace content {
// TestMediaStreamClient is a mock implementation of MediaStreamClient used when
// running web tests.
class TestMediaStreamRendererFactory
: public blink::WebMediaStreamRendererFactory {
public:
TestMediaStreamRendererFactory();
~TestMediaStreamRendererFactory() override;
// MediaStreamRendererFactory implementation.
scoped_refptr<blink::WebMediaStreamVideoRenderer> GetVideoRenderer(
const blink::WebMediaStream& web_stream,
const blink::WebMediaStreamVideoRenderer::RepaintCB& repaint_cb,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_render_task_runner)
override;
scoped_refptr<blink::WebMediaStreamAudioRenderer> GetAudioRenderer(
const blink::WebMediaStream& web_stream,
blink::WebLocalFrame* web_frame,
const blink::WebString& device_id) override;
};
} // namespace content
#endif // CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_

@ -1,84 +0,0 @@
// Copyright 2013 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/web_test/test_media_stream_video_renderer.h"
#include "base/bind.h"
#include "base/location.h"
#include "base/single_thread_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
#include "media/base/video_frame.h"
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"
namespace content {
TestMediaStreamVideoRenderer::TestMediaStreamVideoRenderer(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
const gfx::Size& size,
const base::TimeDelta& frame_duration,
const blink::WebMediaStreamVideoRenderer::RepaintCB& repaint_cb)
: task_runner_(blink::scheduler::GetSingleThreadTaskRunnerForTesting()),
io_task_runner_(io_task_runner),
size_(size),
state_(kStopped),
frame_duration_(frame_duration),
repaint_cb_(repaint_cb) {}
TestMediaStreamVideoRenderer::~TestMediaStreamVideoRenderer() {}
void TestMediaStreamVideoRenderer::Start() {
DVLOG(1) << "TestMediaStreamVideoRenderer::Start";
DCHECK(task_runner_->BelongsToCurrentThread());
state_ = kStarted;
task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&TestMediaStreamVideoRenderer::GenerateFrame, this));
}
void TestMediaStreamVideoRenderer::Stop() {
DVLOG(1) << "TestMediaStreamVideoRenderer::Stop";
DCHECK(task_runner_->BelongsToCurrentThread());
state_ = kStopped;
}
void TestMediaStreamVideoRenderer::Resume() {
DVLOG(1) << "TestMediaStreamVideoRenderer::Resume";
DCHECK(task_runner_->BelongsToCurrentThread());
if (state_ == kPaused)
state_ = kStarted;
}
void TestMediaStreamVideoRenderer::Pause() {
DVLOG(1) << "TestMediaStreamVideoRenderer::Pause";
DCHECK(task_runner_->BelongsToCurrentThread());
if (state_ == kStarted)
state_ = kPaused;
}
void TestMediaStreamVideoRenderer::GenerateFrame() {
DVLOG(1) << "TestMediaStreamVideoRenderer::GenerateFrame";
DCHECK(task_runner_->BelongsToCurrentThread());
if (state_ == kStopped)
return;
if (state_ == kStarted) {
// Always allocate a new frame filled with white color.
scoped_refptr<media::VideoFrame> video_frame =
media::VideoFrame::CreateColorFrame(size_, 255, 128, 128,
current_time_);
// TODO(wjia): set pixel data to pre-defined patterns if it's desired to
// verify frame content.
io_task_runner_->PostTask(FROM_HERE,
base::BindOnce(repaint_cb_, video_frame));
}
current_time_ += frame_duration_;
task_runner_->PostDelayedTask(
FROM_HERE,
base::BindOnce(&TestMediaStreamVideoRenderer::GenerateFrame, this),
frame_duration_);
}
} // namespace content

@ -1,64 +0,0 @@
// Copyright 2013 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 CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_VIDEO_RENDERER_H_
#define CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_VIDEO_RENDERER_H_
#include "base/macros.h"
#include "base/time/time.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_video_renderer.h"
#include "ui/gfx/geometry/size.h"
namespace base {
class SingleThreadTaskRunner;
}
namespace content {
// A blink::WebMediaStreamVideoRenderer that generates raw frames and
// passes them to webmediaplayer.
// Since non-black pixel values are required in the web test, e.g.,
// media/video-capture-canvas.html, this class should generate frame with
// only non-black pixels.
class TestMediaStreamVideoRenderer : public blink::WebMediaStreamVideoRenderer {
public:
TestMediaStreamVideoRenderer(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
const gfx::Size& size,
const base::TimeDelta& frame_duration,
const RepaintCB& repaint_cb);
// blink::WebMediaStreamVideoRenderer implementation.
void Start() override;
void Stop() override;
void Resume() override;
void Pause() override;
protected:
~TestMediaStreamVideoRenderer() override;
private:
enum State {
kStarted,
kPaused,
kStopped,
};
void GenerateFrame();
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
gfx::Size size_;
State state_;
base::TimeDelta current_time_;
base::TimeDelta frame_duration_;
RepaintCB repaint_cb_;
DISALLOW_COPY_AND_ASSIGN(TestMediaStreamVideoRenderer);
};
} // namespace content
#endif // CONTENT_SHELL_RENDERER_WEB_TEST_TEST_MEDIA_STREAM_VIDEO_RENDERER_H_

@ -22,7 +22,6 @@
#include "content/shell/renderer/shell_render_view_observer.h"
#include "content/shell/renderer/web_test/blink_test_helpers.h"
#include "content/shell/renderer/web_test/blink_test_runner.h"
#include "content/shell/renderer/web_test/test_media_stream_renderer_factory.h"
#include "content/shell/renderer/web_test/test_websocket_handshake_throttle_provider.h"
#include "content/shell/renderer/web_test/web_test_render_frame_observer.h"
#include "content/shell/renderer/web_test/web_test_render_thread_observer.h"
@ -36,6 +35,7 @@
#include "third_party/blink/public/platform/web_rtc_peer_connection_handler.h"
#include "third_party/blink/public/platform/web_runtime_features.h"
#include "third_party/blink/public/web/blink.h"
#include "third_party/blink/public/web/modules/mediastream/web_media_stream_renderer_factory.h"
#include "third_party/blink/public/web/web_plugin_params.h"
#include "third_party/blink/public/web/web_testing_support.h"
#include "third_party/blink/public/web/web_view.h"
@ -79,8 +79,7 @@ void WebTestContentRendererClient::RenderViewCreated(RenderView* render_view) {
std::unique_ptr<blink::WebMediaStreamRendererFactory>
WebTestContentRendererClient::CreateMediaStreamRendererFactory() {
return std::unique_ptr<blink::WebMediaStreamRendererFactory>(
new TestMediaStreamRendererFactory());
return blink::CreateWebMediaStreamRendererFactory();
}
std::unique_ptr<content::WebSocketHandshakeThrottleProvider>

@ -369,8 +369,6 @@ crbug.com/874695 fast/forms/select/input-select-after-resize.html [ Slow ]
crbug.com/874695 fast/forms/suggestion-picker/date-suggestion-picker-key-operations.html [ Slow ]
crbug.com/874695 fast/history/history-back-twice-with-subframes-assert.html [ Slow ]
crbug.com/874695 fast/media/mq-color-gamut-picture.html [ Slow ]
crbug.com/874695 fast/mediastream/MediaStreamTrack.html [ Slow ]
crbug.com/874695 fast/mediastream/MediaStreamTrack-observer-iterate-no-crash.html [ Slow ]
crbug.com/874695 fast/peerconnection/RTCPeerConnection-many.html [ Slow ]
crbug.com/874695 fast/peerconnection/RTCRtpSender-setParameters.html [ Slow ]
crbug.com/874695 fast/scroll-behavior/overscroll-behavior.html [ Slow ]

@ -4537,11 +4537,6 @@ crbug.com/771492 [ Win ] external/wpt/css/css-tables/table-model-fixup-2.html [
crbug.com/771492 [ Linux ] external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ]
crbug.com/771492 [ Mac ] external/wpt/css/css-tables/table-model-fixup-2.html [ Failure ]
# Suspended WebRTC tests
# Timeout due to events not firing
crbug.com/781935 fast/mediastream/MediaStreamTrack-observer-iterate-no-crash.html [ Timeout ]
crbug.com/781935 fast/mediastream/MediaStreamTrack.html [ Pass Failure Timeout ]
crbug.com/807191 fast/media/mq-color-gamut-picture.html [ Pass Failure Timeout ]
# Text rendering on Win7 failing image diffs, flakily.

@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL Tests that a disabled video track in a MediaStream is rendered as blackness assert_equals: No red component in pixel #0 expected 0 but got 255
Harness: the test ran to completion.

@ -1,30 +0,0 @@
<!DOCTYPE HTML>
<title>Verify that MediaStreamTracks created while dispatching MediaStreamSource
events do not crash.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
async_test(test => {
navigator.mediaDevices.getUserMedia({audio:true, video: true})
.then(test.step_func(stream => {
// |track| may be any of the audio or video tracks.
var track = stream.getTracks()[0];
assert_equals(track.readyState, "live");
track.onended = test.unreached_func("ended event should not be fired.");
track.onmute = test.step_func(() => {
assert_equals(track.readyState, "live");
track.clone();
track.stop();
assert_equals(track.readyState, "ended");
track.clone();
// Use a timeout to detect a misfire of the ended event.
test.step_timeout(test.step_func_done(() => {
assert_equals(track.readyState, "ended");
}));
});
track.enabled = false;
}))
.catch(test.unreached_func("getUserMedia failed"));
});
</script>

@ -1,37 +0,0 @@
<!DOCTYPE HTML>
<title>Tests MediaStreamTrack callbacks.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
async_test(test => {
navigator.mediaDevices.getUserMedia({audio:true, video: true})
.then(test.step_func(stream => {
// |track| may be any of the audio or video tracks.
var track = stream.getTracks()[0];
assert_equals(track.readyState, "live");
track.onmute = test.step_func(() => {
assert_equals(track.readyState, "live");
assert_true(track.muted);
track.onunmute = test.step_func(() => {
assert_equals(track.readyState, "live");
assert_false(track.muted);
track.stop();
assert_equals(track.readyState, "ended");
// Use a timeout to detect a misfire of the ended event.
test.step_timeout(test.step_func_done(() => {
assert_equals(track.readyState, "ended");
}));
});
track.enabled = true;
});
track.onended = test.unreached_func("ended event should not be fired.");
track.enabled = false;
}))
.catch(test.unreached_func("getUserMedia failed"));
});
</script>