Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / renderer / media / media_stream_audio_source.cc
index 069f4e3..86888f8 100644 (file)
@@ -4,14 +4,28 @@
 
 #include "content/renderer/media/media_stream_audio_source.h"
 
+#include "content/renderer/render_frame_impl.h"
+#include "content/renderer/render_view_impl.h"
+
 namespace content {
 
+namespace {
+// TODO(miu): This is a temporary hack until the Chrome audio vertical is
+// migrated for the Cross-Site Isolation project.  http://crbug.com/392596
+int ToRenderViewId(int render_frame_id) {
+  RenderFrameImpl* const frame =
+      RenderFrameImpl::FromRoutingID(render_frame_id);
+  RenderViewImpl* const view = frame ? frame->render_view() : NULL;
+  return view ? view->GetRoutingID() : -1;
+}
+}  // namespace
+
 MediaStreamAudioSource::MediaStreamAudioSource(
-    int render_view_id,
+    int render_frame_id,
     const StreamDeviceInfo& device_info,
     const SourceStoppedCallback& stop_callback,
     PeerConnectionDependencyFactory* factory)
-    : render_view_id_(render_view_id),
+    : render_view_id_(ToRenderViewId(render_frame_id)),
       factory_(factory) {
   SetDeviceInfo(device_info);
   SetStopCallback(stop_callback);
@@ -43,14 +57,14 @@ void MediaStreamAudioSource::AddTrack(
       // last track is removed from the source. But in this case, the source is
       // is not even started. So we need to fail both adding the track and
       // trigger |stop_callback|.
-      callback.Run(this, false);
+      callback.Run(this, MEDIA_DEVICE_TRACK_START_FAILURE, "");
       StopSource();
       return;
     }
   }
 
   factory_->CreateLocalAudioTrack(track);
-  callback.Run(this, true);
+  callback.Run(this, MEDIA_DEVICE_OK, "");
 }
 
 }  // namespace content