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

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

Issue 551883004: Cast: Let the extension control if DSCP is on or off. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments addressed Created 6 years, 3 months 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
« no previous file with comments | « chrome/renderer/extensions/cast_streaming_native_handler.h ('k') | chrome/renderer/media/cast_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « chrome/renderer/extensions/cast_streaming_native_handler.h ('k') | chrome/renderer/media/cast_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698