Index: content/renderer/media/aec_dump_message_filter.cc |
diff --git a/content/renderer/media/aec_dump_message_filter.cc b/content/renderer/media/aec_dump_message_filter.cc |
deleted file mode 100644 |
index 76f104ca4592496237b0a7d7a2009f39eaee35f8..0000000000000000000000000000000000000000 |
--- a/content/renderer/media/aec_dump_message_filter.cc |
+++ /dev/null |
@@ -1,176 +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/renderer/media/aec_dump_message_filter.h" |
- |
-#include "base/single_thread_task_runner.h" |
-#include "content/common/media/aec_dump_messages.h" |
-#include "content/renderer/media/webrtc_logging.h" |
-#include "ipc/ipc_logging.h" |
-#include "ipc/ipc_sender.h" |
- |
-namespace { |
-const int kInvalidDelegateId = -1; |
-} |
- |
-namespace content { |
- |
-AecDumpMessageFilter* AecDumpMessageFilter::g_filter = NULL; |
- |
-AecDumpMessageFilter::AecDumpMessageFilter( |
- const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, |
- const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner) |
- : sender_(NULL), |
- delegate_id_counter_(1), |
- io_task_runner_(io_task_runner), |
- main_task_runner_(main_task_runner) { |
- DCHECK(!g_filter); |
- g_filter = this; |
-} |
- |
-AecDumpMessageFilter::~AecDumpMessageFilter() { |
- DCHECK_EQ(g_filter, this); |
- g_filter = NULL; |
-} |
- |
-// static |
-scoped_refptr<AecDumpMessageFilter> AecDumpMessageFilter::Get() { |
- return g_filter; |
-} |
- |
-void AecDumpMessageFilter::AddDelegate( |
- AecDumpMessageFilter::AecDumpDelegate* delegate) { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- DCHECK(delegate); |
- DCHECK_EQ(kInvalidDelegateId, GetIdForDelegate(delegate)); |
- |
- int id = delegate_id_counter_++; |
- delegates_[id] = delegate; |
- |
- io_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&AecDumpMessageFilter::RegisterAecDumpConsumer, this, id)); |
-} |
- |
-void AecDumpMessageFilter::RemoveDelegate( |
- AecDumpMessageFilter::AecDumpDelegate* delegate) { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- DCHECK(delegate); |
- |
- int id = GetIdForDelegate(delegate); |
- DCHECK_NE(kInvalidDelegateId, id); |
- delegates_.erase(id); |
- |
- io_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&AecDumpMessageFilter::UnregisterAecDumpConsumer, this, id)); |
-} |
- |
-void AecDumpMessageFilter::Send(IPC::Message* message) { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- if (sender_) |
- sender_->Send(message); |
- else |
- delete message; |
-} |
- |
-void AecDumpMessageFilter::RegisterAecDumpConsumer(int id) { |
- Send(new AecDumpMsg_RegisterAecDumpConsumer(id)); |
-} |
- |
-void AecDumpMessageFilter::UnregisterAecDumpConsumer(int id) { |
- Send(new AecDumpMsg_UnregisterAecDumpConsumer(id)); |
-} |
- |
-bool AecDumpMessageFilter::OnMessageReceived(const IPC::Message& message) { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(AecDumpMessageFilter, message) |
- IPC_MESSAGE_HANDLER(AecDumpMsg_EnableAecDump, OnEnableAecDump) |
- IPC_MESSAGE_HANDLER(AecDumpMsg_DisableAecDump, OnDisableAecDump) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- return handled; |
-} |
- |
-void AecDumpMessageFilter::OnFilterAdded(IPC::Sender* sender) { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- sender_ = sender; |
-} |
- |
-void AecDumpMessageFilter::OnFilterRemoved() { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- |
- // Once removed, a filter will not be used again. At this time the |
- // observer must be notified so it releases its reference. |
- OnChannelClosing(); |
-} |
- |
-void AecDumpMessageFilter::OnChannelClosing() { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- sender_ = NULL; |
- main_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&AecDumpMessageFilter::DoChannelClosingOnDelegates, this)); |
-} |
- |
-void AecDumpMessageFilter::OnEnableAecDump( |
- int id, |
- IPC::PlatformFileForTransit file_handle) { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- main_task_runner_->PostTask( |
- FROM_HERE, base::Bind(&AecDumpMessageFilter::DoEnableAecDump, this, id, |
- file_handle)); |
-} |
- |
-void AecDumpMessageFilter::OnDisableAecDump() { |
- DCHECK(io_task_runner_->BelongsToCurrentThread()); |
- main_task_runner_->PostTask( |
- FROM_HERE, base::Bind(&AecDumpMessageFilter::DoDisableAecDump, this)); |
-} |
- |
-void AecDumpMessageFilter::DoEnableAecDump( |
- int id, |
- IPC::PlatformFileForTransit file_handle) { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- DelegateMap::iterator it = delegates_.find(id); |
- if (it != delegates_.end()) { |
- it->second->OnAecDumpFile(file_handle); |
- } else { |
- // Delegate has been removed, we must close the file. |
- base::File file = IPC::PlatformFileForTransitToFile(file_handle); |
- DCHECK(file.IsValid()); |
- file.Close(); |
- } |
-} |
- |
-void AecDumpMessageFilter::DoDisableAecDump() { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- for (DelegateMap::iterator it = delegates_.begin(); |
- it != delegates_.end(); ++it) { |
- it->second->OnDisableAecDump(); |
- } |
-} |
- |
-void AecDumpMessageFilter::DoChannelClosingOnDelegates() { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- for (DelegateMap::iterator it = delegates_.begin(); |
- it != delegates_.end(); ++it) { |
- it->second->OnIpcClosing(); |
- } |
- delegates_.clear(); |
-} |
- |
-int AecDumpMessageFilter::GetIdForDelegate( |
- AecDumpMessageFilter::AecDumpDelegate* delegate) { |
- DCHECK(main_task_runner_->BelongsToCurrentThread()); |
- for (DelegateMap::iterator it = delegates_.begin(); |
- it != delegates_.end(); ++it) { |
- if (it->second == delegate) |
- return it->first; |
- } |
- return kInvalidDelegateId; |
-} |
- |
-} // namespace content |