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

Side by Side 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: Now uses DictionaryValue 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/extensions/cast_streaming_native_handler.h" 5 #include "chrome/renderer/extensions/cast_streaming_native_handler.h"
6 6
7 #include <functional> 7 #include <functional>
8 #include <iterator> 8 #include <iterator>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 base::Unretained(this))); 177 base::Unretained(this)));
178 RouteFunction("StopCastRtpStream", 178 RouteFunction("StopCastRtpStream",
179 base::Bind(&CastStreamingNativeHandler::StopCastRtpStream, 179 base::Bind(&CastStreamingNativeHandler::StopCastRtpStream,
180 base::Unretained(this))); 180 base::Unretained(this)));
181 RouteFunction("DestroyCastUdpTransport", 181 RouteFunction("DestroyCastUdpTransport",
182 base::Bind(&CastStreamingNativeHandler::DestroyCastUdpTransport, 182 base::Bind(&CastStreamingNativeHandler::DestroyCastUdpTransport,
183 base::Unretained(this))); 183 base::Unretained(this)));
184 RouteFunction("SetDestinationCastUdpTransport", 184 RouteFunction("SetDestinationCastUdpTransport",
185 base::Bind(&CastStreamingNativeHandler::SetDestinationCastUdpTransport, 185 base::Bind(&CastStreamingNativeHandler::SetDestinationCastUdpTransport,
186 base::Unretained(this))); 186 base::Unretained(this)));
187 RouteFunction("SetOptionsCastUdpTransport",
188 base::Bind(&CastStreamingNativeHandler::SetOptionsCastUdpTransport,
189 base::Unretained(this)));
187 RouteFunction("ToggleLogging", 190 RouteFunction("ToggleLogging",
188 base::Bind(&CastStreamingNativeHandler::ToggleLogging, 191 base::Bind(&CastStreamingNativeHandler::ToggleLogging,
189 base::Unretained(this))); 192 base::Unretained(this)));
190 RouteFunction("GetRawEvents", 193 RouteFunction("GetRawEvents",
191 base::Bind(&CastStreamingNativeHandler::GetRawEvents, 194 base::Bind(&CastStreamingNativeHandler::GetRawEvents,
192 base::Unretained(this))); 195 base::Unretained(this)));
193 RouteFunction("GetStats", 196 RouteFunction("GetStats",
194 base::Bind(&CastStreamingNativeHandler::GetStats, 197 base::Bind(&CastStreamingNativeHandler::GetStats,
195 base::Unretained(this))); 198 base::Unretained(this)));
196 } 199 }
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 } 454 }
452 net::IPAddressNumber ip; 455 net::IPAddressNumber ip;
453 if (!net::ParseIPLiteralToNumber(destination->address, &ip)) { 456 if (!net::ParseIPLiteralToNumber(destination->address, &ip)) {
454 args.GetIsolate()->ThrowException(v8::Exception::TypeError( 457 args.GetIsolate()->ThrowException(v8::Exception::TypeError(
455 v8::String::NewFromUtf8(args.GetIsolate(), kInvalidDestination))); 458 v8::String::NewFromUtf8(args.GetIsolate(), kInvalidDestination)));
456 return; 459 return;
457 } 460 }
458 transport->SetDestination(net::IPEndPoint(ip, destination->port)); 461 transport->SetDestination(net::IPEndPoint(ip, destination->port));
459 } 462 }
460 463
464 void CastStreamingNativeHandler::SetOptionsCastUdpTransport(
465 const v8::FunctionCallbackInfo<v8::Value>& args) {
466 CHECK_EQ(2, args.Length());
467 CHECK(args[0]->IsInt32());
468 CHECK(args[1]->IsObject());
469
470 const int transport_id = args[0]->ToInt32()->Value();
471 CastUdpTransport* transport = GetUdpTransportOrThrow(transport_id);
472 if (!transport)
473 return;
474
475 scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
476 base::Value* options_value =
477 converter->FromV8Value(args[1], context()->v8_context());
478 base::DictionaryValue* options;
479 if (!options_value || !options_value->GetAsDictionary(&options)) {
480 delete options_value;
481 args.GetIsolate()->ThrowException(v8::Exception::TypeError(
482 v8::String::NewFromUtf8(args.GetIsolate(), kUnableToConvertArgs)));
483 return;
484 }
485 transport->SetOptions(make_scoped_ptr(options));
486 }
487
461 void CastStreamingNativeHandler::ToggleLogging( 488 void CastStreamingNativeHandler::ToggleLogging(
462 const v8::FunctionCallbackInfo<v8::Value>& args) { 489 const v8::FunctionCallbackInfo<v8::Value>& args) {
463 CHECK_EQ(2, args.Length()); 490 CHECK_EQ(2, args.Length());
464 CHECK(args[0]->IsInt32()); 491 CHECK(args[0]->IsInt32());
465 CHECK(args[1]->IsBoolean()); 492 CHECK(args[1]->IsBoolean());
466 493
467 const int stream_id = args[0]->ToInt32()->Value(); 494 const int stream_id = args[0]->ToInt32()->Value();
468 CastRtpStream* stream = GetRtpStreamOrThrow(stream_id); 495 CastRtpStream* stream = GetRtpStreamOrThrow(stream_id);
469 if (!stream) 496 if (!stream)
470 return; 497 return;
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 transport_id); 607 transport_id);
581 if (iter != udp_transport_map_.end()) 608 if (iter != udp_transport_map_.end())
582 return iter->second.get(); 609 return iter->second.get();
583 v8::Isolate* isolate = context()->v8_context()->GetIsolate(); 610 v8::Isolate* isolate = context()->v8_context()->GetIsolate();
584 isolate->ThrowException(v8::Exception::RangeError( 611 isolate->ThrowException(v8::Exception::RangeError(
585 v8::String::NewFromUtf8(isolate, kUdpTransportNotFound))); 612 v8::String::NewFromUtf8(isolate, kUdpTransportNotFound)));
586 return NULL; 613 return NULL;
587 } 614 }
588 615
589 } // namespace extensions 616 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698