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

Unified Diff: webkit/plugins/ppapi/ppb_transport_impl.cc

Issue 7713021: Add SetProperty() in the PPB_Transport_Dev interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 9 years, 4 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
« webkit/glue/p2p_transport.cc ('K') | « webkit/plugins/ppapi/ppb_transport_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppb_transport_impl.cc
diff --git a/webkit/plugins/ppapi/ppb_transport_impl.cc b/webkit/plugins/ppapi/ppb_transport_impl.cc
index 3048c60a3f5af5a68122e3a26ca4de21065159f6..bf4142b9600b59b0c6c50167c3a602438992f7c5 100644
--- a/webkit/plugins/ppapi/ppb_transport_impl.cc
+++ b/webkit/plugins/ppapi/ppb_transport_impl.cc
@@ -4,8 +4,11 @@
#include "webkit/plugins/ppapi/ppb_transport_impl.h"
+#include "base/json/json_reader.h"
+#include "base/json/json_writer.h"
#include "base/message_loop.h"
#include "base/string_util.h"
+#include "base/values.h"
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/socket/socket.h"
@@ -29,6 +32,9 @@ namespace {
const char kUdpProtocolName[] = "udp";
const char kTcpProtocolName[] = "tcp";
+const int kMinBufferSize = 1024;
+const int kMaxBufferSize = 1024 * 1024;
+
int MapNetError(int result) {
if (result > 0)
return result;
@@ -97,6 +103,72 @@ PP_Bool PPB_Transport_Impl::IsWritable() {
return PP_FromBool(writable_);
}
+const char kStringListSeparator = ',';
brettw 2011/08/25 16:48:43 It doesn't look like you use this.
Sergey Ulanov 2011/08/25 17:36:53 Done.
+
+int32_t PPB_Transport_Impl::SetProperty(PP_TransportProperty property,
+ PP_Var value) {
+ // SetProperty() may be called only before Connect().
+ if (started_)
+ return PP_ERROR_FAILED;
+
+ switch (property) {
+ case PP_TRANSPORTPROPERTY_STUN_SERVER: {
+ StringVar* value_str = StringVar::FromPPVar(value);
+ if (!value_str)
+ return PP_ERROR_BADARGUMENT;
+ config_.stun_server = value_str->value();
+ break;
+ }
+
+ case PP_TRANSPORTPROPERTY_RELAY_SERVER: {
+ StringVar* value_str = StringVar::FromPPVar(value);
+ if (!value_str)
+ return PP_ERROR_BADARGUMENT;
+ config_.relay_server = value_str->value();
+ break;
+ }
+
+ case PP_TRANSPORTPROPERTY_RELAY_TOKEN: {
+ StringVar* value_str = StringVar::FromPPVar(value);
+ if (!value_str)
+ return PP_ERROR_BADARGUMENT;
+ config_.relay_token = value_str->value();
+ break;
+ }
+
+ case PP_TRANSPORTPROPERTY_TCP_RECEIVE_WINDOW: {
+ if (!use_tcp_)
+ return PP_ERROR_BADARGUMENT;
+
+ int32_t int_value = value.value.as_int;
+ if (value.type != PP_VARTYPE_INT32 || int_value < kMinBufferSize ||
+ int_value > kMaxBufferSize) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ config_.tcp_receive_window = int_value;
+ break;
+ }
+
+ case PP_TRANSPORTPROPERTY_TCP_SEND_WINDOW: {
+ if (!use_tcp_)
+ return PP_ERROR_BADARGUMENT;
+
+ int32_t int_value = value.value.as_int;
+ if (value.type != PP_VARTYPE_INT32 || int_value < kMinBufferSize ||
+ int_value > kMaxBufferSize) {
+ return PP_ERROR_BADARGUMENT;
+ }
+ config_.tcp_send_window = int_value;
+ break;
+ }
+
+ default:
+ return PP_ERROR_BADARGUMENT;
+ };
brettw 2011/08/25 16:48:43 Don't think you need the ;
Sergey Ulanov 2011/08/25 17:36:53 Done.
+
+ return PP_OK;
+}
+
int32_t PPB_Transport_Impl::Connect(PP_CompletionCallback callback) {
if (!p2p_transport_.get())
return PP_ERROR_FAILED;
@@ -108,7 +180,7 @@ int32_t PPB_Transport_Impl::Connect(PP_CompletionCallback callback) {
P2PTransport::Protocol protocol = use_tcp_ ?
P2PTransport::PROTOCOL_TCP : P2PTransport::PROTOCOL_UDP;
- if (!p2p_transport_->Init(name_, protocol, "", this))
+ if (!p2p_transport_->Init(name_, protocol, config_, this))
return PP_ERROR_FAILED;
started_ = true;
« webkit/glue/p2p_transport.cc ('K') | « webkit/plugins/ppapi/ppb_transport_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698