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()); |