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

Unified Diff: remoting/host/plugin/host_script_object.cc

Issue 23578017: Follow up cleanups for r222162. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | « remoting/host/plugin/host_script_object.h ('k') | remoting/host/setup/daemon_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/plugin/host_script_object.cc
diff --git a/remoting/host/plugin/host_script_object.cc b/remoting/host/plugin/host_script_object.cc
index 16888d38eb08b5520ef28a61adc88b3a4c07302b..39cd72da834d8b56278c7ecc5004de0d3e0f01a8 100644
--- a/remoting/host/plugin/host_script_object.cc
+++ b/remoting/host/plugin/host_script_object.cc
@@ -1102,13 +1102,14 @@ bool HostNPScriptObject::ClearPairedClients(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
if (pairing_registry_) {
pairing_registry_->ClearAllPairings(
base::Bind(&HostNPScriptObject::InvokeBooleanCallback, weak_ptr_,
- callback_obj));
+ base::Passed(&callback_obj)));
} else {
- InvokeBooleanCallback(callback_obj, false);
+ InvokeBooleanCallback(callback_obj.Pass(), false);
}
return true;
@@ -1133,14 +1134,15 @@ bool HostNPScriptObject::DeletePairedClient(const NPVariant* args,
}
std::string client_id = StringFromNPVariant(args[0]);
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[1]));
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[1])));
if (pairing_registry_) {
pairing_registry_->DeletePairing(
client_id,
base::Bind(&HostNPScriptObject::InvokeBooleanCallback,
- weak_ptr_, callback_obj));
+ weak_ptr_, base::Passed(&callback_obj)));
} else {
- InvokeBooleanCallback(callback_obj, false);
+ InvokeBooleanCallback(callback_obj.Pass(), false);
}
return true;
@@ -1161,7 +1163,7 @@ bool HostNPScriptObject::GetHostName(const NPVariant* args,
}
NPVariant host_name_val = NPVariantFromString(net::GetHostName());
- InvokeAndIgnoreResult(callback_obj.get(), &host_name_val, 1);
+ InvokeAndIgnoreResult(callback_obj, &host_name_val, 1);
g_npnetscape_funcs->releasevariantvalue(&host_name_val);
return true;
@@ -1195,7 +1197,7 @@ bool HostNPScriptObject::GetPinHash(const NPVariant* args,
NPVariant pin_hash_val = NPVariantFromString(
remoting::MakeHostPinHash(host_id, pin));
- InvokeAndIgnoreResult(callback_obj.get(), &pin_hash_val, 1);
+ InvokeAndIgnoreResult(callback_obj, &pin_hash_val, 1);
g_npnetscape_funcs->releasevariantvalue(&pin_hash_val);
return true;
@@ -1209,18 +1211,20 @@ bool HostNPScriptObject::GenerateKeyPair(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("generateKeyPair: invalid callback parameter");
return false;
}
- // TODO(wez): HostNPScriptObject needn't be touched on worker
- // thread, so make DoGenerateKeyPair static and pass it a callback
- // to run (crbug.com/156257).
+ base::Callback<void (const std::string&,
+ const std::string&)> wrapped_callback =
+ base::Bind(&HostNPScriptObject::InvokeGenerateKeyPairCallback, weak_ptr_,
+ base::Passed(&callback_obj));
worker_thread_->PostTask(
FROM_HERE, base::Bind(&HostNPScriptObject::DoGenerateKeyPair,
- base::Unretained(this), callback_obj));
+ plugin_task_runner_, wrapped_callback));
return true;
}
@@ -1243,8 +1247,9 @@ bool HostNPScriptObject::UpdateDaemonConfig(const NPVariant* args,
scoped_ptr<base::DictionaryValue> config_dict(
reinterpret_cast<base::DictionaryValue*>(config.release()));
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[1]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[1])));
+ if (!callback_obj->get()) {
SetException("updateDaemonConfig: invalid callback parameter");
return false;
}
@@ -1258,8 +1263,8 @@ bool HostNPScriptObject::UpdateDaemonConfig(const NPVariant* args,
daemon_controller_->UpdateConfig(
config_dict.Pass(),
- base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback,
- base::Unretained(this), callback_obj));
+ base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback, weak_ptr_,
+ base::Passed(&callback_obj)));
return true;
}
@@ -1271,16 +1276,16 @@ bool HostNPScriptObject::GetDaemonConfig(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("getDaemonConfig: invalid callback parameter");
return false;
}
daemon_controller_->GetConfig(
- base::Bind(&HostNPScriptObject::InvokeGetDaemonConfigCallback,
- base::Unretained(this), callback_obj));
-
+ base::Bind(&HostNPScriptObject::InvokeGetDaemonConfigCallback, weak_ptr_,
+ base::Passed(&callback_obj)));
return true;
}
@@ -1292,15 +1297,16 @@ bool HostNPScriptObject::GetDaemonVersion(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("getDaemonVersion: invalid callback parameter");
return false;
}
daemon_controller_->GetVersion(
- base::Bind(&HostNPScriptObject::InvokeGetDaemonVersionCallback,
- base::Unretained(this), callback_obj));
+ base::Bind(&HostNPScriptObject::InvokeGetDaemonVersionCallback, weak_ptr_,
+ base::Passed(&callback_obj)));
return true;
}
@@ -1313,8 +1319,9 @@ bool HostNPScriptObject::GetPairedClients(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("getPairedClients: invalid callback parameter");
return false;
}
@@ -1322,10 +1329,11 @@ bool HostNPScriptObject::GetPairedClients(const NPVariant* args,
if (pairing_registry_) {
pairing_registry_->GetAllPairings(
base::Bind(&HostNPScriptObject::InvokeGetPairedClientsCallback,
- weak_ptr_, callback_obj));
+ weak_ptr_, base::Passed(&callback_obj)));
} else {
scoped_ptr<base::ListValue> no_paired_clients(new base::ListValue);
- InvokeGetPairedClientsCallback(callback_obj, no_paired_clients.Pass());
+ InvokeGetPairedClientsCallback(callback_obj.Pass(),
+ no_paired_clients.Pass());
}
return true;
}
@@ -1338,15 +1346,16 @@ bool HostNPScriptObject::GetUsageStatsConsent(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("getUsageStatsConsent: invalid callback parameter");
return false;
}
daemon_controller_->GetUsageStatsConsent(
base::Bind(&HostNPScriptObject::InvokeGetUsageStatsConsentCallback,
- base::Unretained(this), callback_obj));
+ weak_ptr_, base::Passed(&callback_obj)));
return true;
}
@@ -1376,8 +1385,9 @@ bool HostNPScriptObject::StartDaemon(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[2]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[2])));
+ if (!callback_obj->get()) {
SetException("startDaemon: invalid callback parameter");
return false;
}
@@ -1385,8 +1395,8 @@ bool HostNPScriptObject::StartDaemon(const NPVariant* args,
daemon_controller_->SetConfigAndStart(
config_dict.Pass(),
NPVARIANT_TO_BOOLEAN(args[1]),
- base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback,
- base::Unretained(this), callback_obj));
+ base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback, weak_ptr_,
+ base::Passed(&callback_obj)));
return true;
}
@@ -1400,15 +1410,16 @@ bool HostNPScriptObject::StopDaemon(const NPVariant* args,
return false;
}
- ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
- if (!callback_obj.get()) {
+ scoped_ptr<ScopedRefNPObject> callback_obj(
+ new ScopedRefNPObject(ObjectFromNPVariant(args[0])));
+ if (!callback_obj->get()) {
SetException("stopDaemon: invalid callback parameter");
return false;
}
daemon_controller_->Stop(
- base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback,
- base::Unretained(this), callback_obj));
+ base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback, weak_ptr_,
+ base::Passed(&callback_obj)));
return true;
}
@@ -1420,7 +1431,7 @@ void HostNPScriptObject::NotifyStateChanged(State state) {
if (on_state_changed_func_.get()) {
NPVariant state_var;
INT32_TO_NPVARIANT(state, state_var);
- InvokeAndIgnoreResult(on_state_changed_func_.get(), &state_var, 1);
+ InvokeAndIgnoreResult(on_state_changed_func_, &state_var, 1);
}
}
@@ -1430,7 +1441,7 @@ void HostNPScriptObject::NotifyNatPolicyChanged(bool nat_traversal_enabled) {
if (on_nat_traversal_policy_changed_func_.get()) {
NPVariant policy;
BOOLEAN_TO_NPVARIANT(nat_traversal_enabled, policy);
- InvokeAndIgnoreResult(on_nat_traversal_policy_changed_func_.get(),
+ InvokeAndIgnoreResult(on_nat_traversal_policy_changed_func_,
&policy, 1);
}
}
@@ -1518,61 +1529,54 @@ bool HostNPScriptObject::LocalizeStringWithSubstitution(
return true;
}
-void HostNPScriptObject::DoGenerateKeyPair(const ScopedRefNPObject& callback) {
+// static
+void HostNPScriptObject::DoGenerateKeyPair(
+ const scoped_refptr<AutoThreadTaskRunner>& plugin_task_runner,
+ const base::Callback<void (const std::string&,
+ const std::string&)>& callback) {
scoped_refptr<RsaKeyPair> key_pair = RsaKeyPair::Generate();
- InvokeGenerateKeyPairCallback(callback, key_pair->ToString(),
- key_pair->GetPublicKey());
+ plugin_task_runner->PostTask(FROM_HERE,
+ base::Bind(callback, key_pair->ToString(),
+ key_pair->GetPublicKey()));
}
void HostNPScriptObject::InvokeGenerateKeyPairCallback(
- const ScopedRefNPObject& callback,
+ scoped_ptr<ScopedRefNPObject> callback,
const std::string& private_key,
const std::string& public_key) {
- if (!plugin_task_runner_->BelongsToCurrentThread()) {
- plugin_task_runner_->PostTask(
- FROM_HERE, base::Bind(
- &HostNPScriptObject::InvokeGenerateKeyPairCallback,
- weak_ptr_, callback, private_key, public_key));
- return;
- }
+ DCHECK(plugin_task_runner_->BelongsToCurrentThread());
NPVariant params[2];
params[0] = NPVariantFromString(private_key);
params[1] = NPVariantFromString(public_key);
- InvokeAndIgnoreResult(callback.get(), params, arraysize(params));
+ InvokeAndIgnoreResult(*callback, params, arraysize(params));
g_npnetscape_funcs->releasevariantvalue(&(params[0]));
g_npnetscape_funcs->releasevariantvalue(&(params[1]));
}
void HostNPScriptObject::InvokeAsyncResultCallback(
- const ScopedRefNPObject& callback,
+ scoped_ptr<ScopedRefNPObject> callback,
DaemonController::AsyncResult result) {
DCHECK(plugin_task_runner_->BelongsToCurrentThread());
NPVariant result_var;
INT32_TO_NPVARIANT(static_cast<int32>(result), result_var);
- InvokeAndIgnoreResult(callback.get(), &result_var, 1);
+ InvokeAndIgnoreResult(*callback, &result_var, 1);
g_npnetscape_funcs->releasevariantvalue(&result_var);
}
void HostNPScriptObject::InvokeBooleanCallback(
- const ScopedRefNPObject& callback, bool result) {
- if (!plugin_task_runner_->BelongsToCurrentThread()) {
- plugin_task_runner_->PostTask(
- FROM_HERE, base::Bind(
- &HostNPScriptObject::InvokeBooleanCallback,
- weak_ptr_, callback, result));
- return;
- }
+ scoped_ptr<ScopedRefNPObject> callback, bool result) {
+ DCHECK(plugin_task_runner_->BelongsToCurrentThread());
NPVariant result_var;
BOOLEAN_TO_NPVARIANT(result, result_var);
- InvokeAndIgnoreResult(callback.get(), &result_var, 1);
+ InvokeAndIgnoreResult(*callback, &result_var, 1);
g_npnetscape_funcs->releasevariantvalue(&result_var);
}
void HostNPScriptObject::InvokeGetDaemonConfigCallback(
- const ScopedRefNPObject& callback,
+ scoped_ptr<ScopedRefNPObject> callback,
scoped_ptr<base::DictionaryValue> config) {
DCHECK(plugin_task_runner_->BelongsToCurrentThread());
@@ -1583,40 +1587,34 @@ void HostNPScriptObject::InvokeGetDaemonConfigCallback(
base::JSONWriter::Write(config.get(), &config_str);
NPVariant config_val = NPVariantFromString(config_str);
- InvokeAndIgnoreResult(callback.get(), &config_val, 1);
+ InvokeAndIgnoreResult(*callback, &config_val, 1);
g_npnetscape_funcs->releasevariantvalue(&config_val);
}
void HostNPScriptObject::InvokeGetDaemonVersionCallback(
- const ScopedRefNPObject& callback, const std::string& version) {
+ scoped_ptr<ScopedRefNPObject> callback, const std::string& version) {
DCHECK(plugin_task_runner_->BelongsToCurrentThread());
NPVariant version_val = NPVariantFromString(version);
- InvokeAndIgnoreResult(callback.get(), &version_val, 1);
+ InvokeAndIgnoreResult(*callback, &version_val, 1);
g_npnetscape_funcs->releasevariantvalue(&version_val);
}
void HostNPScriptObject::InvokeGetPairedClientsCallback(
- const ScopedRefNPObject& callback,
+ scoped_ptr<ScopedRefNPObject> callback,
scoped_ptr<base::ListValue> paired_clients) {
- if (!plugin_task_runner_->BelongsToCurrentThread()) {
- plugin_task_runner_->PostTask(
- FROM_HERE, base::Bind(
- &HostNPScriptObject::InvokeGetPairedClientsCallback,
- weak_ptr_, callback, base::Passed(&paired_clients)));
- return;
- }
+ DCHECK(plugin_task_runner_->BelongsToCurrentThread());
std::string paired_clients_json;
base::JSONWriter::Write(paired_clients.get(), &paired_clients_json);
NPVariant paired_clients_val = NPVariantFromString(paired_clients_json);
- InvokeAndIgnoreResult(callback.get(), &paired_clients_val, 1);
+ InvokeAndIgnoreResult(*callback, &paired_clients_val, 1);
g_npnetscape_funcs->releasevariantvalue(&paired_clients_val);
}
void HostNPScriptObject::InvokeGetUsageStatsConsentCallback(
- const ScopedRefNPObject& callback,
+ scoped_ptr<ScopedRefNPObject> callback,
const DaemonController::UsageStatsConsent& consent) {
DCHECK(plugin_task_runner_->BelongsToCurrentThread());
@@ -1624,7 +1622,7 @@ void HostNPScriptObject::InvokeGetUsageStatsConsentCallback(
BOOLEAN_TO_NPVARIANT(consent.supported, params[0]);
BOOLEAN_TO_NPVARIANT(consent.allowed, params[1]);
BOOLEAN_TO_NPVARIANT(consent.set_by_policy, params[2]);
- InvokeAndIgnoreResult(callback.get(), params, arraysize(params));
+ InvokeAndIgnoreResult(*callback, params, arraysize(params));
g_npnetscape_funcs->releasevariantvalue(&(params[0]));
g_npnetscape_funcs->releasevariantvalue(&(params[1]));
g_npnetscape_funcs->releasevariantvalue(&(params[2]));
@@ -1637,7 +1635,7 @@ void HostNPScriptObject::LogDebugInfo(const std::string& message) {
am_currently_logging_ = true;
NPVariant log_message;
STRINGZ_TO_NPVARIANT(message.c_str(), log_message);
- bool is_good = InvokeAndIgnoreResult(log_debug_info_func_.get(),
+ bool is_good = InvokeAndIgnoreResult(log_debug_info_func_,
&log_message, 1);
if (!is_good) {
LOG(ERROR) << "ERROR - LogDebugInfo failed\n";
@@ -1646,13 +1644,13 @@ void HostNPScriptObject::LogDebugInfo(const std::string& message) {
}
}
-bool HostNPScriptObject::InvokeAndIgnoreResult(NPObject* func,
+bool HostNPScriptObject::InvokeAndIgnoreResult(const ScopedRefNPObject& func,
const NPVariant* args,
uint32_t arg_count) {
DCHECK(plugin_task_runner_->BelongsToCurrentThread());
NPVariant np_result;
- bool is_good = g_npnetscape_funcs->invokeDefault(plugin_, func, args,
+ bool is_good = g_npnetscape_funcs->invokeDefault(plugin_, func.get(), args,
arg_count, &np_result);
if (is_good)
g_npnetscape_funcs->releasevariantvalue(&np_result);
« no previous file with comments | « remoting/host/plugin/host_script_object.h ('k') | remoting/host/setup/daemon_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698