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

Unified Diff: chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc

Issue 2784563003: WebRTC Audio private API: removing WebRtcAudioPrivate(Set/Get)ActiveSinkFunction (Closed)
Patch Set: updated api version Created 3 years, 8 months 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: chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
index 772795511b7b0a5bdd3ee9fd5a1927e9b7ea3c27..ad70cbea0be7a6cb06628c40d5b44fca16951ac0 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc
@@ -23,7 +23,6 @@
#include "extensions/common/error_utils.h"
#include "extensions/common/permissions/permissions_data.h"
#include "media/audio/audio_device_description.h"
-#include "media/audio/audio_output_controller.h"
#include "url/gurl.h"
#include "url/origin.h"
@@ -139,41 +138,6 @@ void WebrtcAudioPrivateFunction::OnOutputDeviceDescriptions(
NOTREACHED();
}
-bool WebrtcAudioPrivateFunction::GetControllerList(const RequestInfo& request) {
- content::RenderProcessHost* rph = nullptr;
-
- // If |guest_process_id| is defined, directly use this id to find the
- // corresponding RenderProcessHost.
- if (request.guest_process_id.get()) {
- rph = content::RenderProcessHost::FromID(*request.guest_process_id);
- } else if (request.tab_id.get()) {
- int tab_id = *request.tab_id;
- content::WebContents* contents = NULL;
- if (!ExtensionTabUtil::GetTabById(tab_id, GetProfile(), true, NULL, NULL,
- &contents, NULL)) {
- error_ = extensions::ErrorUtils::FormatErrorMessage(
- extensions::tabs_constants::kTabNotFoundError,
- base::IntToString(tab_id));
- return false;
- }
- rph = contents->GetRenderProcessHost();
- } else {
- return false;
- }
-
- if (!rph)
- return false;
-
- rph->GetAudioOutputControllers(
- base::Bind(&WebrtcAudioPrivateFunction::OnControllerList, this));
- return true;
-}
-
-void WebrtcAudioPrivateFunction::OnControllerList(
- const content::RenderProcessHost::AudioOutputControllerList& list) {
- NOTREACHED();
-}
-
void WebrtcAudioPrivateFunction::CalculateHMAC(const std::string& raw_id) {
if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
BrowserThread::PostTask(
@@ -298,157 +262,6 @@ void WebrtcAudioPrivateGetSinksFunction::DoneOnUIThread() {
SendResponse(true);
}
-bool WebrtcAudioPrivateGetActiveSinkFunction::RunAsync() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- InitDeviceIDSalt();
-
- std::unique_ptr<wap::GetActiveSink::Params> params(
- wap::GetActiveSink::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params.get());
-
- return GetControllerList(params->request);
-}
-
-void WebrtcAudioPrivateGetActiveSinkFunction::OnControllerList(
- const RenderProcessHost::AudioOutputControllerList& controllers) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (controllers.empty()) {
- // If there is no current audio stream for the rvh, we return an
- // empty string as the sink ID.
- DVLOG(2) << "chrome.webrtcAudioPrivate.getActiveSink: No controllers.";
- results_.reset(
- wap::GetActiveSink::Results::Create(std::string()).release());
- SendResponse(true);
- } else {
- DVLOG(2) << "chrome.webrtcAudioPrivate.getActiveSink: "
- << controllers.size() << " controllers.";
- // TODO(joi): Debug-only, DCHECK that all items have the same ID.
-
- // Send the raw ID through CalculateHMAC, and send the result in
- // OnHMACCalculated.
- (*controllers.begin())->GetOutputDeviceId(
- base::Bind(&WebrtcAudioPrivateGetActiveSinkFunction::CalculateHMAC,
- this));
- }
-}
-
-void WebrtcAudioPrivateGetActiveSinkFunction::OnHMACCalculated(
- const std::string& hmac_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- std::string result = hmac_id;
- if (result.empty()) {
- DVLOG(2) << "Received empty ID, replacing with default ID.";
- result = media::AudioDeviceDescription::kDefaultDeviceId;
- }
- results_ = wap::GetActiveSink::Results::Create(result);
- SendResponse(true);
-}
-
-WebrtcAudioPrivateSetActiveSinkFunction::
- WebrtcAudioPrivateSetActiveSinkFunction()
- : num_remaining_sink_ids_(0) {
-}
-
-WebrtcAudioPrivateSetActiveSinkFunction::
-~WebrtcAudioPrivateSetActiveSinkFunction() {
-}
-
-bool WebrtcAudioPrivateSetActiveSinkFunction::RunAsync() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- std::unique_ptr<wap::SetActiveSink::Params> params(
- wap::SetActiveSink::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params.get());
-
- InitDeviceIDSalt();
-
- if (params->request.guest_process_id.get()) {
- request_info_.guest_process_id.reset(
- new int(*params->request.guest_process_id));
- } else if (params->request.tab_id.get()) {
- request_info_.tab_id.reset(new int(*params->request.tab_id));
- } else {
- return false;
- }
-
- sink_id_ = params->sink_id;
-
- return GetControllerList(request_info_);
-}
-
-void WebrtcAudioPrivateSetActiveSinkFunction::OnControllerList(
- const RenderProcessHost::AudioOutputControllerList& controllers) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- std::string requested_process_type;
- int requested_process_id;
- if (request_info_.guest_process_id.get()) {
- requested_process_type = "guestProcessId";
- requested_process_id = *request_info_.guest_process_id;
- } else {
- requested_process_type = "tabId";
- requested_process_id = *request_info_.tab_id;
- }
-
- controllers_ = controllers;
- num_remaining_sink_ids_ = controllers_.size();
- if (num_remaining_sink_ids_ == 0) {
- error_ = extensions::ErrorUtils::FormatErrorMessage(
- "No active stream for " + requested_process_type + " *",
- base::IntToString(requested_process_id));
- SendResponse(false);
- } else {
- // We need to get the output device IDs, and calculate the HMAC
- // for each, to find the raw ID for the ID provided to this API
- // function call.
- GetOutputDeviceDescriptions();
- }
-}
-
-void WebrtcAudioPrivateSetActiveSinkFunction::OnOutputDeviceDescriptions(
- std::unique_ptr<AudioDeviceDescriptions> device_descriptions) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
-
- std::string raw_sink_id;
- if (sink_id_ == media::AudioDeviceDescription::kDefaultDeviceId) {
- DVLOG(2) << "Received default ID, replacing with empty ID.";
- raw_sink_id = "";
- } else {
- for (AudioDeviceDescriptions::const_iterator it =
- device_descriptions->begin();
- it != device_descriptions->end(); ++it) {
- if (sink_id_ == CalculateHMACImpl(it->unique_id)) {
- raw_sink_id = it->unique_id;
- break;
- }
- }
-
- if (raw_sink_id.empty())
- DVLOG(2) << "Found no matching raw sink ID for HMAC " << sink_id_;
- }
-
- RenderProcessHost::AudioOutputControllerList::const_iterator it =
- controllers_.begin();
- for (; it != controllers_.end(); ++it) {
- (*it)->SwitchOutputDevice(raw_sink_id, base::Bind(
- &WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone, this));
- }
-}
-
-void WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone() {
- if (--num_remaining_sink_ids_ == 0) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::BindOnce(&WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread,
- this));
- }
-}
-
-void WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread() {
- SendResponse(true);
-}
-
WebrtcAudioPrivateGetAssociatedSinkFunction::
WebrtcAudioPrivateGetAssociatedSinkFunction() {
}

Powered by Google App Engine
This is Rietveld 408576698