Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(612)

Unified Diff: content/browser/renderer_host/media/audio_input_renderer_host.cc

Issue 2531333005: Unit tests of AudioInputRendererHost. Some cleanups. (Closed)
Patch Set: Small comments describing tests. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/audio_input_renderer_host.cc
diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.cc b/content/browser/renderer_host/media/audio_input_renderer_host.cc
index aefb4244231883e9dc98317e040b713e4f7bf4f9..661924a6af911544f298605d7216555337909ce5 100644
--- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
@@ -16,7 +16,9 @@
#include "base/process/process.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
+#include "base/sync_socket.h"
#include "build/build_config.h"
+#include "content/browser/bad_message.h"
#include "content/browser/media/capture/desktop_capture_device_uma_types.h"
#include "content/browser/media/capture/web_contents_audio_input_stream.h"
#include "content/browser/media/media_internals.h"
@@ -48,8 +50,9 @@ void LogMessage(int stream_id, const std::string& msg, bool add_prefix) {
if (add_prefix)
oss << "AIRH::";
oss << msg;
- content::MediaStreamManager::SendMessageToNativeLog(oss.str());
- DVLOG(1) << oss.str();
+ const std::string message = oss.str();
+ content::MediaStreamManager::SendMessageToNativeLog(message);
+ DVLOG(1) << message;
}
} // namespace
@@ -105,8 +108,7 @@ AudioInputRendererHost::AudioInputRendererHost(
audio_mirroring_manager_(audio_mirroring_manager),
user_input_monitor_(user_input_monitor),
audio_log_(MediaInternals::GetInstance()->CreateAudioLog(
- media::AudioLogFactory::AUDIO_INPUT_CONTROLLER)),
- weak_factory_(this) {}
+ media::AudioLogFactory::AUDIO_INPUT_CONTROLLER)) {}
AudioInputRendererHost::~AudioInputRendererHost() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -184,22 +186,9 @@ void AudioInputRendererHost::DoCompleteCreation(
DCHECK_CURRENTLY_ON(BrowserThread::IO);
AudioEntry* entry = LookupByController(controller);
- if (!entry) {
- NOTREACHED() << "AudioInputController is invalid.";
- return;
- }
-
- if (!PeerHandle()) {
- NOTREACHED() << "Renderer process handle is invalid.";
- DeleteEntryOnError(entry, INVALID_PEER_HANDLE);
- return;
- }
-
- if (!entry->controller->SharedMemoryAndSyncSocketMode()) {
- NOTREACHED() << "Only shared-memory/sync-socket mode is supported.";
- DeleteEntryOnError(entry, INVALID_LATENCY_MODE);
- return;
- }
+ DCHECK(entry);
+ DCHECK(PeerHandle());
+ DCHECK(entry->controller->SharedMemoryAndSyncSocketMode());
// Once the audio stream is created then complete the creation process by
// mapping shared memory and sharing with the renderer process.
@@ -239,10 +228,7 @@ void AudioInputRendererHost::DoSendRecordingMessage(
// TODO(henrika): See crbug.com/115262 for details on why this method
// should be implemented.
AudioEntry* entry = LookupByController(controller);
- if (!entry) {
- NOTREACHED() << "AudioInputController is invalid.";
- return;
- }
+ DCHECK(entry) << "AudioInputController is invalid.";
LogMessage(
entry->stream_id, "DoSendRecordingMessage: stream is now started", true);
}
@@ -252,10 +238,7 @@ void AudioInputRendererHost::DoHandleError(
media::AudioInputController::ErrorCode error_code) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
AudioEntry* entry = LookupByController(controller);
- if (!entry) {
- NOTREACHED() << "AudioInputController is invalid.";
- return;
- }
+ DCHECK(entry);
std::ostringstream oss;
oss << "AIC reports error_code=" << error_code;
@@ -269,10 +252,7 @@ void AudioInputRendererHost::DoLog(media::AudioInputController* controller,
const std::string& message) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
AudioEntry* entry = LookupByController(controller);
- if (!entry) {
- NOTREACHED() << "AudioInputController is invalid.";
- return;
- }
+ DCHECK(entry);
// Add stream ID and current audio level reported by AIC to native log.
LogMessage(entry->stream_id, message, false);
@@ -320,44 +300,41 @@ void AudioInputRendererHost::DoCreateStream(
const AudioInputHostMsg_CreateStream_Config& config) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- std::ostringstream oss;
- oss << "[stream_id=" << stream_id << "] "
- << "AIRH::OnCreateStream(render_frame_id=" << render_frame_id
- << ", session_id=" << session_id << ")";
DCHECK_GT(render_frame_id, 0);
// media::AudioParameters is validated in the deserializer.
- if (LookupById(stream_id) != NULL) {
+ if (LookupById(stream_id)) {
SendErrorMessage(stream_id, STREAM_ALREADY_EXISTS);
MaybeUnregisterKeyboardMicStream(config);
return;
}
+ // Check if we have the permission to open the device and which device to use.
+ const StreamDeviceInfo* info =
+ media_stream_manager_->audio_input_device_manager()
+ ->GetOpenedDeviceInfoById(session_id);
+ if (!info) {
+ SendErrorMessage(stream_id, PERMISSION_DENIED);
+ DLOG(WARNING) << "No permission has been granted to input stream with "
+ << "session_id=" << session_id;
+ MaybeUnregisterKeyboardMicStream(config);
+ return;
+ }
+
+ const MediaStreamType& type = info->device.type;
+ const std::string& device_id = info->device.id;
+ const std::string& device_name = info->device.name;
media::AudioParameters audio_params(config.params);
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kUseFakeDeviceForMediaStream)) {
audio_params.set_format(media::AudioParameters::AUDIO_FAKE);
}
- // Check if we have the permission to open the device and which device to use.
- MediaStreamType type = MEDIA_NO_SERVICE;
- std::string device_name;
- std::string device_id = media::AudioDeviceDescription::kDefaultDeviceId;
- if (audio_params.format() != media::AudioParameters::AUDIO_FAKE) {
- const StreamDeviceInfo* info = media_stream_manager_->
- audio_input_device_manager()->GetOpenedDeviceInfoById(session_id);
- if (!info) {
- SendErrorMessage(stream_id, PERMISSION_DENIED);
- DLOG(WARNING) << "No permission has been granted to input stream with "
- << "session_id=" << session_id;
- MaybeUnregisterKeyboardMicStream(config);
- return;
- }
- type = info->device.type;
- device_id = info->device.id;
- device_name = info->device.name;
- oss << ": device_name=" << device_name;
- }
+ std::ostringstream oss;
+ oss << "[stream_id=" << stream_id << "] "
+ << "AIRH::OnCreateStream(render_frame_id=" << render_frame_id
+ << ", session_id=" << session_id << ")"
+ << ": device_name=" << device_name;
// Create a new AudioEntry structure.
std::unique_ptr<AudioEntry> entry(new AudioEntry());
@@ -450,8 +427,9 @@ void AudioInputRendererHost::DoCreateStream(
}
#endif
- MediaStreamManager::SendMessageToNativeLog(oss.str());
- DVLOG(1) << oss.str();
+ const std::string log_message = oss.str();
+ MediaStreamManager::SendMessageToNativeLog(log_message);
+ DVLOG(1) << log_message;
// Since the controller was created successfully, create an entry and add it
// to the map.
@@ -499,6 +477,12 @@ void AudioInputRendererHost::OnCloseStream(int stream_id) {
void AudioInputRendererHost::OnSetVolume(int stream_id, double volume) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ if (volume < 0 || volume > 1) {
+ bad_message::ReceivedBadMessage(this,
+ bad_message::AIRH_VOLUME_OUT_OF_RANGE);
+ return;
+ }
+
AudioEntry* entry = LookupById(stream_id);
if (!entry) {
SendErrorMessage(stream_id, INVALID_AUDIO_ENTRY);
@@ -575,7 +559,7 @@ AudioInputRendererHost::AudioEntry* AudioInputRendererHost::LookupById(
AudioEntryMap::iterator i = audio_entries_.find(stream_id);
if (i != audio_entries_.end())
return i->second;
- return NULL;
+ return nullptr;
}
AudioInputRendererHost::AudioEntry* AudioInputRendererHost::LookupByController(
@@ -589,7 +573,7 @@ AudioInputRendererHost::AudioEntry* AudioInputRendererHost::LookupByController(
if (controller == i->second->controller.get())
return i->second;
}
- return NULL;
+ return nullptr;
}
void AudioInputRendererHost::MaybeUnregisterKeyboardMicStream(

Powered by Google App Engine
This is Rietveld 408576698