diff options
author | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 08:15:46 +0000 |
---|---|---|
committer | ukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 08:15:46 +0000 |
commit | ac506f83614dc9d010b237d204d59e1c6c6a744e (patch) | |
tree | bbf86669dc1cf7bd0390c52c8595b3df1fb502fd /remoting/client | |
parent | 1e0c8e079bbd88d841e6d2459f96f78faee64035 (diff) | |
download | chromium_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')
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. |