OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/host/plugin/host_script_object.h" | 5 #include "remoting/host/plugin/host_script_object.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 const char* kFuncNameClearPairedClients = "clearPairedClients"; | 50 const char* kFuncNameClearPairedClients = "clearPairedClients"; |
51 const char* kFuncNameDeletePairedClient = "deletePairedClient"; | 51 const char* kFuncNameDeletePairedClient = "deletePairedClient"; |
52 const char* kFuncNameGetHostName = "getHostName"; | 52 const char* kFuncNameGetHostName = "getHostName"; |
53 const char* kFuncNameGetPinHash = "getPinHash"; | 53 const char* kFuncNameGetPinHash = "getPinHash"; |
54 const char* kFuncNameGenerateKeyPair = "generateKeyPair"; | 54 const char* kFuncNameGenerateKeyPair = "generateKeyPair"; |
55 const char* kFuncNameUpdateDaemonConfig = "updateDaemonConfig"; | 55 const char* kFuncNameUpdateDaemonConfig = "updateDaemonConfig"; |
56 const char* kFuncNameGetDaemonConfig = "getDaemonConfig"; | 56 const char* kFuncNameGetDaemonConfig = "getDaemonConfig"; |
57 const char* kFuncNameGetDaemonVersion = "getDaemonVersion"; | 57 const char* kFuncNameGetDaemonVersion = "getDaemonVersion"; |
58 const char* kFuncNameGetPairedClients = "getPairedClients"; | 58 const char* kFuncNameGetPairedClients = "getPairedClients"; |
59 const char* kFuncNameGetUsageStatsConsent = "getUsageStatsConsent"; | 59 const char* kFuncNameGetUsageStatsConsent = "getUsageStatsConsent"; |
| 60 const char* kFuncNameInstallHost = "installHost"; |
60 const char* kFuncNameStartDaemon = "startDaemon"; | 61 const char* kFuncNameStartDaemon = "startDaemon"; |
61 const char* kFuncNameStopDaemon = "stopDaemon"; | 62 const char* kFuncNameStopDaemon = "stopDaemon"; |
62 | 63 |
63 // States. | 64 // States. |
64 const char* kAttrNameDisconnected = "DISCONNECTED"; | 65 const char* kAttrNameDisconnected = "DISCONNECTED"; |
65 const char* kAttrNameStarting = "STARTING"; | 66 const char* kAttrNameStarting = "STARTING"; |
66 const char* kAttrNameRequestedAccessCode = "REQUESTED_ACCESS_CODE"; | 67 const char* kAttrNameRequestedAccessCode = "REQUESTED_ACCESS_CODE"; |
67 const char* kAttrNameReceivedAccessCode = "RECEIVED_ACCESS_CODE"; | 68 const char* kAttrNameReceivedAccessCode = "RECEIVED_ACCESS_CODE"; |
68 const char* kAttrNameConnected = "CONNECTED"; | 69 const char* kAttrNameConnected = "CONNECTED"; |
69 const char* kAttrNameDisconnecting = "DISCONNECTING"; | 70 const char* kAttrNameDisconnecting = "DISCONNECTING"; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 method_name == kFuncNameClearPairedClients || | 147 method_name == kFuncNameClearPairedClients || |
147 method_name == kFuncNameDeletePairedClient || | 148 method_name == kFuncNameDeletePairedClient || |
148 method_name == kFuncNameGetHostName || | 149 method_name == kFuncNameGetHostName || |
149 method_name == kFuncNameGetPinHash || | 150 method_name == kFuncNameGetPinHash || |
150 method_name == kFuncNameGenerateKeyPair || | 151 method_name == kFuncNameGenerateKeyPair || |
151 method_name == kFuncNameUpdateDaemonConfig || | 152 method_name == kFuncNameUpdateDaemonConfig || |
152 method_name == kFuncNameGetDaemonConfig || | 153 method_name == kFuncNameGetDaemonConfig || |
153 method_name == kFuncNameGetDaemonVersion || | 154 method_name == kFuncNameGetDaemonVersion || |
154 method_name == kFuncNameGetPairedClients || | 155 method_name == kFuncNameGetPairedClients || |
155 method_name == kFuncNameGetUsageStatsConsent || | 156 method_name == kFuncNameGetUsageStatsConsent || |
| 157 method_name == kFuncNameInstallHost || |
156 method_name == kFuncNameStartDaemon || | 158 method_name == kFuncNameStartDaemon || |
157 method_name == kFuncNameStopDaemon); | 159 method_name == kFuncNameStopDaemon); |
158 } | 160 } |
159 | 161 |
160 bool HostNPScriptObject::InvokeDefault(const NPVariant* args, | 162 bool HostNPScriptObject::InvokeDefault(const NPVariant* args, |
161 uint32_t arg_count, | 163 uint32_t arg_count, |
162 NPVariant* result) { | 164 NPVariant* result) { |
163 VLOG(2) << "InvokeDefault"; | 165 VLOG(2) << "InvokeDefault"; |
164 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); | 166 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
165 SetException("exception during default invocation"); | 167 SetException("exception during default invocation"); |
(...skipping 25 matching lines...) Expand all Loading... |
191 } else if (method_name == kFuncNameUpdateDaemonConfig) { | 193 } else if (method_name == kFuncNameUpdateDaemonConfig) { |
192 return UpdateDaemonConfig(args, arg_count, result); | 194 return UpdateDaemonConfig(args, arg_count, result); |
193 } else if (method_name == kFuncNameGetDaemonConfig) { | 195 } else if (method_name == kFuncNameGetDaemonConfig) { |
194 return GetDaemonConfig(args, arg_count, result); | 196 return GetDaemonConfig(args, arg_count, result); |
195 } else if (method_name == kFuncNameGetDaemonVersion) { | 197 } else if (method_name == kFuncNameGetDaemonVersion) { |
196 return GetDaemonVersion(args, arg_count, result); | 198 return GetDaemonVersion(args, arg_count, result); |
197 } else if (method_name == kFuncNameGetPairedClients) { | 199 } else if (method_name == kFuncNameGetPairedClients) { |
198 return GetPairedClients(args, arg_count, result); | 200 return GetPairedClients(args, arg_count, result); |
199 } else if (method_name == kFuncNameGetUsageStatsConsent) { | 201 } else if (method_name == kFuncNameGetUsageStatsConsent) { |
200 return GetUsageStatsConsent(args, arg_count, result); | 202 return GetUsageStatsConsent(args, arg_count, result); |
| 203 } else if (method_name == kFuncNameInstallHost) { |
| 204 return InstallHost(args, arg_count, result); |
201 } else if (method_name == kFuncNameStartDaemon) { | 205 } else if (method_name == kFuncNameStartDaemon) { |
202 return StartDaemon(args, arg_count, result); | 206 return StartDaemon(args, arg_count, result); |
203 } else if (method_name == kFuncNameStopDaemon) { | 207 } else if (method_name == kFuncNameStopDaemon) { |
204 return StopDaemon(args, arg_count, result); | 208 return StopDaemon(args, arg_count, result); |
205 } else { | 209 } else { |
206 SetException("Invoke: unknown method " + method_name); | 210 SetException("Invoke: unknown method " + method_name); |
207 return false; | 211 return false; |
208 } | 212 } |
209 } | 213 } |
210 | 214 |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 kFuncNameClearPairedClients, | 430 kFuncNameClearPairedClients, |
427 kFuncNameDeletePairedClient, | 431 kFuncNameDeletePairedClient, |
428 kFuncNameGetHostName, | 432 kFuncNameGetHostName, |
429 kFuncNameGetPinHash, | 433 kFuncNameGetPinHash, |
430 kFuncNameGenerateKeyPair, | 434 kFuncNameGenerateKeyPair, |
431 kFuncNameUpdateDaemonConfig, | 435 kFuncNameUpdateDaemonConfig, |
432 kFuncNameGetDaemonConfig, | 436 kFuncNameGetDaemonConfig, |
433 kFuncNameGetDaemonVersion, | 437 kFuncNameGetDaemonVersion, |
434 kFuncNameGetPairedClients, | 438 kFuncNameGetPairedClients, |
435 kFuncNameGetUsageStatsConsent, | 439 kFuncNameGetUsageStatsConsent, |
| 440 kFuncNameInstallHost, |
436 kFuncNameStartDaemon, | 441 kFuncNameStartDaemon, |
437 kFuncNameStopDaemon | 442 kFuncNameStopDaemon |
438 }; | 443 }; |
439 for (size_t i = 0; i < arraysize(entries); ++i) { | 444 for (size_t i = 0; i < arraysize(entries); ++i) { |
440 values->push_back(entries[i]); | 445 values->push_back(entries[i]); |
441 } | 446 } |
442 return true; | 447 return true; |
443 } | 448 } |
444 | 449 |
445 // string username, string auth_token | 450 // string username, string auth_token |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 SetException("getUsageStatsConsent: invalid callback parameter"); | 800 SetException("getUsageStatsConsent: invalid callback parameter"); |
796 return false; | 801 return false; |
797 } | 802 } |
798 | 803 |
799 daemon_controller_->GetUsageStatsConsent( | 804 daemon_controller_->GetUsageStatsConsent( |
800 base::Bind(&HostNPScriptObject::InvokeGetUsageStatsConsentCallback, | 805 base::Bind(&HostNPScriptObject::InvokeGetUsageStatsConsentCallback, |
801 weak_ptr_, base::Passed(&callback_obj))); | 806 weak_ptr_, base::Passed(&callback_obj))); |
802 return true; | 807 return true; |
803 } | 808 } |
804 | 809 |
| 810 bool HostNPScriptObject::InstallHost(const NPVariant* args, |
| 811 uint32_t arg_count, |
| 812 NPVariant* result) { |
| 813 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
| 814 |
| 815 if (arg_count != 1) { |
| 816 SetException("installHost: bad number of arguments"); |
| 817 return false; |
| 818 } |
| 819 |
| 820 scoped_ptr<ScopedRefNPObject> callback_obj( |
| 821 new ScopedRefNPObject(ObjectFromNPVariant(args[0]))); |
| 822 if (!callback_obj->get()) { |
| 823 SetException("installHost: invalid callback parameter"); |
| 824 return false; |
| 825 } |
| 826 |
| 827 daemon_controller_->InstallHost( |
| 828 base::Bind(&HostNPScriptObject::InvokeAsyncResultCallback, weak_ptr_, |
| 829 base::Passed(&callback_obj))); |
| 830 return true; |
| 831 } |
| 832 |
805 bool HostNPScriptObject::StartDaemon(const NPVariant* args, | 833 bool HostNPScriptObject::StartDaemon(const NPVariant* args, |
806 uint32_t arg_count, | 834 uint32_t arg_count, |
807 NPVariant* result) { | 835 NPVariant* result) { |
808 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); | 836 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
809 | 837 |
810 if (arg_count != 3) { | 838 if (arg_count != 3) { |
811 SetException("startDaemon: bad number of arguments"); | 839 SetException("startDaemon: bad number of arguments"); |
812 return false; | 840 return false; |
813 } | 841 } |
814 | 842 |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 } | 1134 } |
1107 | 1135 |
1108 void HostNPScriptObject::SetException(const std::string& exception_string) { | 1136 void HostNPScriptObject::SetException(const std::string& exception_string) { |
1109 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); | 1137 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
1110 | 1138 |
1111 g_npnetscape_funcs->setexception(parent_, exception_string.c_str()); | 1139 g_npnetscape_funcs->setexception(parent_, exception_string.c_str()); |
1112 HOST_LOG << exception_string; | 1140 HOST_LOG << exception_string; |
1113 } | 1141 } |
1114 | 1142 |
1115 } // namespace remoting | 1143 } // namespace remoting |
OLD | NEW |