| Index: chrome/renderer/extensions/cast_streaming_native_handler.cc
|
| diff --git a/chrome/renderer/extensions/cast_streaming_native_handler.cc b/chrome/renderer/extensions/cast_streaming_native_handler.cc
|
| index 9b50ae1db578a73b63ff6c0d5c2392ba93c4966c..a42ad90919aa6bcd75deb4eab58b22ac615526a4 100644
|
| --- a/chrome/renderer/extensions/cast_streaming_native_handler.cc
|
| +++ b/chrome/renderer/extensions/cast_streaming_native_handler.cc
|
| @@ -184,6 +184,9 @@ CastStreamingNativeHandler::CastStreamingNativeHandler(ScriptContext* context)
|
| RouteFunction("SetDestinationCastUdpTransport",
|
| base::Bind(&CastStreamingNativeHandler::SetDestinationCastUdpTransport,
|
| base::Unretained(this)));
|
| + RouteFunction("SetOptionsCastUdpTransport",
|
| + base::Bind(&CastStreamingNativeHandler::SetOptionsCastUdpTransport,
|
| + base::Unretained(this)));
|
| RouteFunction("ToggleLogging",
|
| base::Bind(&CastStreamingNativeHandler::ToggleLogging,
|
| base::Unretained(this)));
|
| @@ -458,6 +461,30 @@ void CastStreamingNativeHandler::SetDestinationCastUdpTransport(
|
| transport->SetDestination(net::IPEndPoint(ip, destination->port));
|
| }
|
|
|
| +void CastStreamingNativeHandler::SetOptionsCastUdpTransport(
|
| + const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| + CHECK_EQ(2, args.Length());
|
| + CHECK(args[0]->IsInt32());
|
| + CHECK(args[1]->IsObject());
|
| +
|
| + const int transport_id = args[0]->ToInt32()->Value();
|
| + CastUdpTransport* transport = GetUdpTransportOrThrow(transport_id);
|
| + if (!transport)
|
| + return;
|
| +
|
| + scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
|
| + base::Value* options_value =
|
| + converter->FromV8Value(args[1], context()->v8_context());
|
| + base::DictionaryValue* options;
|
| + if (!options_value || !options_value->GetAsDictionary(&options)) {
|
| + delete options_value;
|
| + args.GetIsolate()->ThrowException(v8::Exception::TypeError(
|
| + v8::String::NewFromUtf8(args.GetIsolate(), kUnableToConvertArgs)));
|
| + return;
|
| + }
|
| + transport->SetOptions(make_scoped_ptr(options));
|
| +}
|
| +
|
| void CastStreamingNativeHandler::ToggleLogging(
|
| const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| CHECK_EQ(2, args.Length());
|
|
|