Chromium Code Reviews| 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..8fae11904b969df9281123bc378e808dd6c46729 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,28 @@ 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]->IsString()); |
| + |
| + const int transport_id = args[0]->ToInt32()->Value(); |
| + CastUdpTransport* transport = GetUdpTransportOrThrow(transport_id); |
| + if (!transport) |
| + return; |
| + |
| + scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create()); |
| + std::string option_data; |
|
Alpha Left Google
2014/09/09 00:30:45
If the option is using the type base::DictionaryVa
hubbe
2014/09/09 20:10:01
Done.
|
| + if (args[1]->IsNull()) { |
| + args.GetIsolate()->ThrowException(v8::Exception::TypeError( |
| + v8::String::NewFromUtf8(args.GetIsolate(), kUnableToConvertArgs))); |
| + } else { |
| + option_data = *v8::String::Utf8Value(args[1]); |
| + } |
| + transport->SetOptions(option_data); |
| +} |
| + |
| void CastStreamingNativeHandler::ToggleLogging( |
| const v8::FunctionCallbackInfo<v8::Value>& args) { |
| CHECK_EQ(2, args.Length()); |