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

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

Issue 54863002: Implement a salt for MediaSource IDs that can be cleared by a user. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed jois nit. Created 7 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: chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
index 845f72bae6bf1dd079cd70fd40d6cfc124e057bc..760072d792f1290027f9de5cd79fb80810d1dd88 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/browser/media_device_id.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h"
@@ -114,6 +115,30 @@ class WebrtcAudioPrivateTest : public AudioWaitingExtensionTest {
}
}
+ // Synchronously (from the calling thread's point of view) retrieve the
+ // source id in the |origin| on the IO thread. On return,
+ // |source_id_in_origin| contains the id |raw_device_id| is known by in
+ // the origin.
+ void GetSourceIDInOrigin(content::ResourceContext* resource_context,
+ GURL origin,
+ const std::string& raw_device_id,
+ std::string* source_id_in_origin) {
+ if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)) {
+ content::BrowserThread::PostTask(
+ content::BrowserThread::IO, FROM_HERE,
+ base::Bind(&WebrtcAudioPrivateTest::GetSourceIDInOrigin,
+ this, resource_context, origin, raw_device_id,
+ source_id_in_origin));
+ enumeration_event_.Wait();
+ } else {
+ *source_id_in_origin = content::GetHMACForMediaDeviceID(
+ resource_context,
+ origin,
+ raw_device_id);
+ enumeration_event_.Signal();
+ }
+ }
+
// Event used to signal completion of enumeration.
base::WaitableEvent enumeration_event_;
};
@@ -263,11 +288,17 @@ IN_PROC_BROWSER_TEST_F(WebrtcAudioPrivateTest, GetAssociatedSink) {
for (AudioDeviceNames::const_iterator device = devices.begin();
device != devices.end();
++device) {
- std::string raw_source_id = device->unique_id;
- VLOG(2) << "Trying to find associated sink for device " << raw_source_id;
+ scoped_refptr<WebrtcAudioPrivateGetAssociatedSinkFunction> function =
+ new WebrtcAudioPrivateGetAssociatedSinkFunction();
+
+ std::string raw_device_id = device->unique_id;
+ VLOG(2) << "Trying to find associated sink for device " << raw_device_id;
+ std::string source_id_in_origin;
GURL origin(GURL("http://www.google.com/").GetOrigin());
- std::string source_id_in_origin =
- content::GetHMACForMediaDeviceID(origin, raw_source_id);
+ GetSourceIDInOrigin(profile()->GetResourceContext(),
+ origin,
+ raw_device_id,
+ &source_id_in_origin);
ListValue parameters;
parameters.AppendString(origin.spec());
@@ -275,8 +306,6 @@ IN_PROC_BROWSER_TEST_F(WebrtcAudioPrivateTest, GetAssociatedSink) {
std::string parameter_string;
JSONWriter::Write(&parameters, &parameter_string);
- scoped_refptr<WebrtcAudioPrivateGetAssociatedSinkFunction> function =
- new WebrtcAudioPrivateGetAssociatedSinkFunction();
scoped_ptr<base::Value> result(
RunFunctionAndReturnSingleResult(function.get(),
parameter_string,

Powered by Google App Engine
This is Rietveld 408576698