summaryrefslogtreecommitdiffstats
path: root/remoting/client
diff options
context:
space:
mode:
authorukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 08:15:46 +0000
committerukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 08:15:46 +0000
commitac506f83614dc9d010b237d204d59e1c6c6a744e (patch)
treebbf86669dc1cf7bd0390c52c8595b3df1fb502fd /remoting/client
parent1e0c8e079bbd88d841e6d2459f96f78faee64035 (diff)
downloadchromium_src-ac506f83614dc9d010b237d204d59e1c6c6a744e.zip
chromium_src-ac506f83614dc9d010b237d204d59e1c6c6a744e.tar.gz
chromium_src-ac506f83614dc9d010b237d204d59e1c6c6a744e.tar.bz2
Revert 86575 - Revert 86573 - Add separate nonce version of connect calls to ChromotingScriptableObject.
It causes PPAPITest.Transport failure on Vista, but sergeyu told me PPAPITest.Trasnport is flaky and the failure has nothing to do with the original CL. BUG=none TEST=manual Review URL: http://codereview.chromium.org/7042022 TBR=garykac@chromium.org Review URL: http://codereview.chromium.org/7069005 Review URL: http://codereview.chromium.org/7068006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/client')
-rw-r--r--remoting/client/appengine/static_files/chromoting_session.js8
-rw-r--r--remoting/client/plugin/chromoting_scriptable_object.cc109
-rw-r--r--remoting/client/plugin/chromoting_scriptable_object.h20
3 files changed, 80 insertions, 57 deletions
diff --git a/remoting/client/appengine/static_files/chromoting_session.js b/remoting/client/appengine/static_files/chromoting_session.js
index b6960df..8b96642 100644
--- a/remoting/client/appengine/static_files/chromoting_session.js
+++ b/remoting/client/appengine/static_files/chromoting_session.js
@@ -54,8 +54,7 @@ function registerConnection() {
var clientjid = xhr.responseText;
chromoting.plugin.sendIq = sendIq;
- // TODO:(jamiewalch): Pass in the correct nonce.
- chromoting.plugin.connectSandboxed(clientjid, chromoting.hostjid);
+ chromoting.plugin.connect(chromoting.hostjid, clientjid);
// TODO(ajwong): This should just be feedIq();
window.setTimeout(feedIq, 1000);
} else {
@@ -132,9 +131,8 @@ function init() {
if (chromoting.connectMethod == "sandboxed") {
registerConnection();
} else {
- // TODO:(jamiewalch): Pass in the correct nonce.
- plugin.connect(chromoting.username, chromoting.hostjid,
- chromoting.talkToken, '');
+ plugin.connectUnsandboxed(chromoting.hostjid, chromoting.username,
+ chromoting.talkToken);
}
} else {
addToDebugLog('ERROR: chromoting plugin not loaded');
diff --git a/remoting/client/plugin/chromoting_scriptable_object.cc b/remoting/client/plugin/chromoting_scriptable_object.cc
index 106141f..89c8793 100644
--- a/remoting/client/plugin/chromoting_scriptable_object.cc
+++ b/remoting/client/plugin/chromoting_scriptable_object.cc
@@ -85,8 +85,8 @@ void ChromotingScriptableObject::Init() {
AddAttribute(kRoundTripLatencyAttribute, Var());
AddMethod("connect", &ChromotingScriptableObject::DoConnect);
- AddMethod("connectSandboxed",
- &ChromotingScriptableObject::DoConnectSandboxed);
+ AddMethod("connectUnsandboxed",
+ &ChromotingScriptableObject::DoConnectUnsandboxed);
AddMethod("disconnect", &ChromotingScriptableObject::DoDisconnect);
AddMethod("submitLoginInfo", &ChromotingScriptableObject::DoSubmitLogin);
AddMethod("setScaleToFit", &ChromotingScriptableObject::DoSetScaleToFit);
@@ -327,79 +327,100 @@ void ChromotingScriptableObject::SendIq(const std::string& message_xml) {
cb.Call(Var(), Var(message_xml), &exception);
if (!exception.is_undefined())
- LogDebugInfo("Exception when invoking loginChallenge JS callback.");
+ LogDebugInfo("Exception when invoking sendiq JS callback.");
}
Var ChromotingScriptableObject::DoConnect(const std::vector<Var>& args,
Var* exception) {
- if (args.size() != 4) {
- *exception = Var("Usage: connect(username, host_jid, auth_token)");
- return Var();
- }
-
- ClientConfig config;
-
- if (!args[0].is_string()) {
- *exception = Var("The username must be a string.");
- return Var();
- }
- config.username = args[0].AsString();
-
- if (!args[1].is_string()) {
+ // Parameter order is:
+ // host_jid
+ // client_jid
+ // access_code (optional)
+ unsigned int arg = 0;
+ if (!args[arg].is_string()) {
*exception = Var("The host_jid must be a string.");
return Var();
}
- config.host_jid = args[1].AsString();
+ std::string host_jid = args[arg++].AsString();
- if (!args[2].is_string()) {
- *exception = Var("The auth_token must be a string.");
+ if (!args[arg].is_string()) {
+ *exception = Var("The client_jid must be a string.");
return Var();
}
- config.auth_token = args[2].AsString();
+ std::string client_jid = args[arg++].AsString();
+
+ std::string access_code;
+ if (args.size() > arg) {
+ if (!args[arg].is_string()) {
+ *exception = Var("The access code must be a string.");
+ return Var();
+ }
+ access_code = args[arg++].AsString();
+ }
- if (!args[3].is_string()) {
- *exception = Var("nonce must be a string.");
+ if (args.size() != arg) {
+ *exception = Var("Too many agruments passed to connect().");
return Var();
}
- config.nonce = args[3].AsString();
LogDebugInfo("Connecting to host.");
- instance_->Connect(config);
+ VLOG(1) << "client_jid: " << client_jid << ", host_jid: " << host_jid
+ << ", access_code: " << access_code;
+ instance_->ConnectSandboxed(client_jid, host_jid, access_code);
return Var();
}
-Var ChromotingScriptableObject::DoConnectSandboxed(
- const std::vector<Var>& args, Var* exception) {
- if (args.size() != 3) {
- *exception = Var("Usage: connectSandboxed(your_jid, host_jid, nonce)");
+Var ChromotingScriptableObject::DoConnectUnsandboxed(
+ const std::vector<Var>& args,
+ Var* exception) {
+ // Parameter order is:
+ // host_jid
+ // username
+ // xmpp_token
+ // access_code (optional)
+ unsigned int arg = 0;
+ if (!args[arg].is_string()) {
+ *exception = Var("The host_jid must be a string.");
return Var();
}
+ std::string host_jid = args[arg++].AsString();
- std::string your_jid;
- if (!args[0].is_string()) {
- *exception = Var("your_jid must be a string.");
+ if (!args[arg].is_string()) {
+ *exception = Var("The username must be a string.");
return Var();
}
- your_jid = args[0].AsString();
+ std::string username = args[arg++].AsString();
- std::string host_jid;
- if (!args[1].is_string()) {
- *exception = Var("host_jid must be a string.");
+ if (!args[arg].is_string()) {
+ *exception = Var("The auth_token must be a string.");
return Var();
}
- host_jid = args[1].AsString();
+ std::string auth_token = args[arg++].AsString();
+
+ std::string access_code;
+ if (args.size() > arg) {
+ if (!args[arg].is_string()) {
+ *exception = Var("The access code must be a string.");
+ return Var();
+ }
+ access_code = args[arg++].AsString();
+ }
- std::string nonce;
- if (!args[2].is_string()) {
- *exception = Var("nonce must be a string.");
+ if (args.size() != arg) {
+ *exception = Var("Too many agruments passed to connect().");
return Var();
}
- nonce = args[2].AsString();
- VLOG(1) << "your_jid: " << your_jid << ", host_jid: " << host_jid
- << ", nonce: " << nonce;
- instance_->ConnectSandboxed(your_jid, host_jid, nonce);
+ LogDebugInfo("Connecting to host.");
+ ClientConfig config;
+ config.host_jid = host_jid;
+ config.username = username;
+ config.auth_token = auth_token;
+ config.nonce = access_code;
+ VLOG(1) << "host_jid: " << host_jid << ", username: " << username
+ << ", access_code: " << access_code;
+ instance_->Connect(config);
return Var();
}
diff --git a/remoting/client/plugin/chromoting_scriptable_object.h b/remoting/client/plugin/chromoting_scriptable_object.h
index 8ee2d12f..9c8545b 100644
--- a/remoting/client/plugin/chromoting_scriptable_object.h
+++ b/remoting/client/plugin/chromoting_scriptable_object.h
@@ -74,12 +74,16 @@
//
// // Methods for establishing a Chromoting connection.
// //
-// // Either use connect() or connectSandboxed(), not both. If using
-// // connectSandboxed(), sendIq must be set, and responses to calls on
-// // sendIq must be piped back into onIq().
-// void connect(string username, string host_jid, string auth_token,
-// string nonce);
-// void connectSandboxed(string your_jid, string host_jid, string nonce);
+// // When using the sandboxed versions, sendIq must be set and responses to
+// // calls on sendIq must be piped back into onIq().
+// void connect(string host_jid, string client_jid,
+// optional string access_code);
+// // Non-sandboxed version used for debugging/testing.
+// // TODO(garykac): Remove this version once we no longer need it.
+// void connectUnsandboxed(string host_jid, string username,
+// string xmpp_token, optional string access_code);
+//
+// // Terminating a Chromoting connection.
// void disconnect();
//
// // Method for submitting login information.
@@ -193,8 +197,8 @@ class ChromotingScriptableObject
void SignalDesktopSizeChange();
pp::Var DoConnect(const std::vector<pp::Var>& args, pp::Var* exception);
- pp::Var DoConnectSandboxed(const std::vector<pp::Var>& args,
- pp::Var* exception);
+ pp::Var DoConnectUnsandboxed(const std::vector<pp::Var>& args,
+ pp::Var* exception);
pp::Var DoDisconnect(const std::vector<pp::Var>& args, pp::Var* exception);
// This method is called by JS to provide login information.