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

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

Issue 10537182: The user's consent to crash dumps reporting can now be set via the UI (Windows only). The checkbox … (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 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
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 6a56ff762e65776a9430367252ff8c3c3e498768..882a79abf126b707aa97ffe85ece284d7cd666a2 100644
--- a/remoting/host/plugin/host_script_object.cc
+++ b/remoting/host/plugin/host_script_object.cc
@@ -52,6 +52,8 @@ const char* kFuncNameGenerateKeyPair = "generateKeyPair";
const char* kFuncNameUpdateDaemonConfig = "updateDaemonConfig";
const char* kFuncNameGetDaemonConfig = "getDaemonConfig";
const char* kFuncNameGetDaemonVersion = "getDaemonVersion";
+const char* kFuncNameGetUsageStatsConsent = "getUsageStatsConsent";
+const char* kFuncNameSetUsageStatsConsent = "setUsageStatsConsent";
const char* kFuncNameStartDaemon = "startDaemon";
const char* kFuncNameStopDaemon = "stopDaemon";
@@ -161,6 +163,8 @@ bool HostNPScriptObject::HasMethod(const std::string& method_name) {
method_name == kFuncNameUpdateDaemonConfig ||
method_name == kFuncNameGetDaemonConfig ||
method_name == kFuncNameGetDaemonVersion ||
+ method_name == kFuncNameGetUsageStatsConsent ||
+ method_name == kFuncNameSetUsageStatsConsent ||
method_name == kFuncNameStartDaemon ||
method_name == kFuncNameStopDaemon);
}
@@ -198,6 +202,10 @@ bool HostNPScriptObject::Invoke(const std::string& method_name,
return GetDaemonConfig(args, arg_count, result);
} else if (method_name == kFuncNameGetDaemonVersion) {
return GetDaemonVersion(args, arg_count, result);
+ } else if (method_name == kFuncNameGetUsageStatsConsent) {
+ return GetUsageStatsConsent(args, arg_count, result);
+ } else if (method_name == kFuncNameSetUsageStatsConsent) {
+ return SetUsageStatsConsent(args, arg_count, result);
} else if (method_name == kFuncNameStartDaemon) {
return StartDaemon(args, arg_count, result);
} else if (method_name == kFuncNameStopDaemon) {
@@ -371,6 +379,8 @@ bool HostNPScriptObject::Enumerate(std::vector<std::string>* values) {
kFuncNameUpdateDaemonConfig,
kFuncNameGetDaemonConfig,
kFuncNameGetDaemonVersion,
+ kFuncNameGetUsageStatsConsent,
+ kFuncNameSetUsageStatsConsent,
kFuncNameStartDaemon,
kFuncNameStopDaemon
};
@@ -758,6 +768,46 @@ bool HostNPScriptObject::GetDaemonVersion(const NPVariant* args,
return true;
}
+bool HostNPScriptObject::GetUsageStatsConsent(const NPVariant* args,
+ uint32_t arg_count,
+ NPVariant* result) {
+ if (arg_count != 1) {
+ SetException("GetUsageStatsConsent: bad number of arguments");
Jamie 2012/06/14 23:43:56 Nit: camelCase for the message (ie, the name as vi
alexeypa (please no reviews) 2012/06/19 23:27:29 Done.
+ return false;
+ }
+
+ ScopedRefNPObject callback_obj(ObjectFromNPVariant(args[0]));
+ if (!callback_obj.get()) {
+ SetException("GetUsageStatsConsent: invalid callback parameter");
Jamie 2012/06/14 23:43:56 And here.
alexeypa (please no reviews) 2012/06/19 23:27:29 Done.
+ return false;
+ }
+
+ // We control lifetime of the |daemon_controller_| so it's safe to
+ // use base::Unretained() here.
+ daemon_controller_->GetUsageStatsConsent(
+ base::Bind(&HostNPScriptObject::InvokeGetUsageStatsConsentCallback,
+ base::Unretained(this), callback_obj));
+
+ return true;
+}
+
+bool HostNPScriptObject::SetUsageStatsConsent(const NPVariant* args,
+ uint32_t arg_count,
+ NPVariant* result) {
+ if (arg_count != 1) {
+ SetException("setUsageStatsConsent: bad number of arguments");
+ return false;
+ }
+
+ if (!NPVARIANT_IS_BOOLEAN(args[0])) {
+ SetException("setUsageStatsConsent: invalid allowed parameter");
+ return false;
+ }
+
+ daemon_controller_->SetUsageStatsConsent(NPVARIANT_TO_BOOLEAN(args[0]));
+ return true;
+}
+
bool HostNPScriptObject::StartDaemon(const NPVariant* args,
uint32_t arg_count,
NPVariant* result) {
@@ -1138,6 +1188,24 @@ void HostNPScriptObject::InvokeGetDaemonVersionCallback(
g_npnetscape_funcs->releasevariantvalue(&version_val);
}
+void HostNPScriptObject::InvokeGetUsageStatsConsentCallback(
+ const ScopedRefNPObject& callback, bool set_by_policy, bool allowed) {
+ if (!plugin_message_loop_proxy_->BelongsToCurrentThread()) {
+ plugin_message_loop_proxy_->PostTask(
+ FROM_HERE, base::Bind(
+ &HostNPScriptObject::InvokeGetUsageStatsConsentCallback,
+ base::Unretained(this), callback, set_by_policy, allowed));
+ return;
+ }
+
+ NPVariant params[2];
+ BOOLEAN_TO_NPVARIANT(set_by_policy, params[0]);
+ BOOLEAN_TO_NPVARIANT(allowed, params[1]);
+ InvokeAndIgnoreResult(callback.get(), params, arraysize(params));
+ g_npnetscape_funcs->releasevariantvalue(&(params[0]));
+ g_npnetscape_funcs->releasevariantvalue(&(params[1]));
+}
+
void HostNPScriptObject::LogDebugInfo(const std::string& message) {
DCHECK(plugin_message_loop_proxy_->BelongsToCurrentThread());
if (log_debug_info_func_.get()) {

Powered by Google App Engine
This is Rietveld 408576698