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

Unified Diff: chrome/renderer/extensions/webrtc_native_handler.cc

Issue 83043005: Cast Extensions API: Factory method for creating a cast session (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove castSendTransport.create Created 7 years, 1 month 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/renderer/extensions/webrtc_native_handler.cc
diff --git a/chrome/renderer/extensions/webrtc_native_handler.cc b/chrome/renderer/extensions/webrtc_native_handler.cc
index c10d061d5009bb35ccfcbaaf32b2cd86793b760d..8f9fcb61272483520c806f4f21e4689d90732f35 100644
--- a/chrome/renderer/extensions/webrtc_native_handler.cc
+++ b/chrome/renderer/extensions/webrtc_native_handler.cc
@@ -147,8 +147,8 @@ void FromCastRtpParams(const CastRtpParams& cast_params,
WebRtcNativeHandler::WebRtcNativeHandler(ChromeV8Context* context)
: ObjectBackedNativeHandler(context),
last_transport_id_(0) {
- RouteFunction("CreateCastSendTransport",
- base::Bind(&WebRtcNativeHandler::CreateCastSendTransport,
+ RouteFunction("CreateSession",
+ base::Bind(&WebRtcNativeHandler::CreateCastSession,
base::Unretained(this)));
RouteFunction("DestroyCastSendTransport",
base::Bind(&WebRtcNativeHandler::DestroyCastSendTransport,
@@ -162,9 +162,6 @@ WebRtcNativeHandler::WebRtcNativeHandler(ChromeV8Context* context)
RouteFunction("StopCastSendTransport",
base::Bind(&WebRtcNativeHandler::StopCastSendTransport,
base::Unretained(this)));
- RouteFunction("CreateCastUdpTransport",
- base::Bind(&WebRtcNativeHandler::CreateCastUdpTransport,
- base::Unretained(this)));
RouteFunction("DestroyCastUdpTransport",
base::Bind(&WebRtcNativeHandler::DestroyCastUdpTransport,
base::Unretained(this)));
@@ -176,31 +173,42 @@ WebRtcNativeHandler::WebRtcNativeHandler(ChromeV8Context* context)
WebRtcNativeHandler::~WebRtcNativeHandler() {
}
-void WebRtcNativeHandler::CreateCastSendTransport(
+void WebRtcNativeHandler::CreateCastSession(
const v8::FunctionCallbackInfo<v8::Value>& args) {
CHECK_EQ(3, args.Length());
- CHECK(args[0]->IsInt32());
+ CHECK(args[0]->IsObject());
CHECK(args[1]->IsObject());
CHECK(args[2]->IsFunction());
- const int inner_transport_id = args[0]->ToInt32()->Value();
- CastUdpTransport* inner_transport = GetUdpTransportOrThrow(
- inner_transport_id);
- if (!inner_transport)
+ blink::WebDOMMediaStreamTrack track1 =
+ blink::WebDOMMediaStreamTrack::fromV8Value(args[0]);
+ if (track1.isNull())
return;
-
- blink::WebDOMMediaStreamTrack track =
+ blink::WebDOMMediaStreamTrack track2 =
blink::WebDOMMediaStreamTrack::fromV8Value(args[1]);
- if (track.isNull())
+ if (track2.isNull())
return;
- const int transport_id = last_transport_id_++;
- send_transport_map_[transport_id] =
- linked_ptr<CastSendTransport>(
- new CastSendTransport(inner_transport, track.component()));
- v8::Handle<v8::Value> transport_id_v8 = v8::Integer::New(transport_id);
- context()->CallFunction(v8::Handle<v8::Function>::Cast(args[2]), 1,
- &transport_id_v8);
+ scoped_refptr<CastSession> session(new CastSession());
+
+ const int stream1_id = last_transport_id_++;
+ send_transport_map_[stream1_id] =
+ linked_ptr<CastSendTransport>(
+ new CastSendTransport(track1.component(), session));
+ const int stream2_id = last_transport_id_++;
+ send_transport_map_[stream2_id] =
+ linked_ptr<CastSendTransport>(
+ new CastSendTransport(track2.component(), session));
+ const int udp_id = last_transport_id_++;
+ udp_transport_map_[udp_id] =
+ linked_ptr<CastUdpTransport>(new CastUdpTransport(session));
+
+ v8::Handle<v8::Value> callback_args[3];
+ callback_args[0] = v8::Integer::New(stream1_id);
+ callback_args[1] = v8::Integer::New(stream2_id);
+ callback_args[2] = v8::Integer::New(udp_id);
+ context()->CallFunction(v8::Handle<v8::Function>::Cast(args[2]),
+ 3, callback_args);
not at google - send to devlin 2013/11/25 19:41:11 so this will definitely be async eventually, right
Alpha Left Google 2013/11/26 04:22:45 Okay done.
}
void WebRtcNativeHandler::DestroyCastSendTransport(
@@ -277,20 +285,6 @@ void WebRtcNativeHandler::StopCastSendTransport(
transport->Stop();
}
-void WebRtcNativeHandler::CreateCastUdpTransport(
- const v8::FunctionCallbackInfo<v8::Value>& args) {
- CHECK_EQ(1, args.Length());
- CHECK(args[0]->IsFunction());
-
- const int transport_id = last_transport_id_++;
- udp_transport_map_[transport_id] =
- linked_ptr<CastUdpTransport>(new CastUdpTransport());
-
- v8::Handle<v8::Value> transport_id_v8 = v8::Integer::New(transport_id);
- context()->CallFunction(v8::Handle<v8::Function>::Cast(args[0]), 1,
- &transport_id_v8);
-}
-
void WebRtcNativeHandler::DestroyCastUdpTransport(
const v8::FunctionCallbackInfo<v8::Value>& args) {
CHECK_EQ(1, args.Length());

Powered by Google App Engine
This is Rietveld 408576698