OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // This implements the JavaScript class entrypoint for the plugin instance. | 5 // This implements the JavaScript class entrypoint for the plugin instance. |
6 // The Javascript API is defined as follows. | 6 // The Javascript API is defined as follows. |
7 // | 7 // |
8 // interface ChromotingScriptableObject { | 8 // interface ChromotingScriptableObject { |
9 // | 9 // |
10 // // Chromoting session API version (for this plugin). | 10 // // Chromoting session API version (for this plugin). |
11 // // This is compared with the javascript API version to verify that they are | 11 // // This is compared with the javascript API version to verify that they are |
12 // // compatible. | 12 // // compatible. |
13 // readonly attribute unsigned short apiVersion; | 13 // readonly attribute unsigned short apiVersion; |
14 // | 14 // |
15 // // The oldest API version that we support. | 15 // // The oldest API version that we support. |
16 // // This will differ from |apiVersion| if we decide to maintain backward | 16 // // This will differ from |apiVersion| if we decide to maintain backward |
17 // // compatibility with older API versions. | 17 // // compatibility with older API versions. |
18 // readonly attribute unsigned short apiMinVersion; | 18 // readonly attribute unsigned short apiMinVersion; |
19 // | 19 // |
20 // // Connection status. | 20 // // Connection status. |
21 // readonly attribute unsigned short status; | 21 // readonly attribute unsigned short status; |
22 // | 22 // |
23 // // Constants for connection status. | 23 // // Constants for connection status. |
24 // const unsigned short STATUS_UNKNOWN; | 24 // const unsigned short STATUS_UNKNOWN; |
Sergey Ulanov
2011/11/16 23:08:12
Since these values are not used anymore can we rem
Jamie
2011/11/17 22:06:18
Done.
| |
25 // const unsigned short STATUS_CONNECTING; | 25 // const unsigned short STATUS_CONNECTING; |
26 // const unsigned short STATUS_INITIALIZING; | 26 // const unsigned short STATUS_INITIALIZING; |
27 // const unsigned short STATUS_CONNECTED; | 27 // const unsigned short STATUS_CONNECTED; |
28 // const unsigned short STATUS_CLOSED; | 28 // const unsigned short STATUS_CLOSED; |
29 // const unsigned short STATUS_FAILED; | 29 // const unsigned short STATUS_FAILED; |
30 // | 30 // |
31 // // Constants for connection errors. | 31 // // Constants for connection errors. |
32 // const unsigned short ERROR_NONE; | 32 // const unsigned short ERROR_NONE; |
33 // const unsigned short ERROR_HOST_IS_OFFLINE; | 33 // const unsigned short ERROR_HOST_IS_OFFLINE; |
34 // const unsigned short ERROR_SESSION_REJECTED; | 34 // const unsigned short ERROR_SESSION_REJECTED; |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
113 | 113 |
114 namespace remoting { | 114 namespace remoting { |
115 | 115 |
116 class ChromotingInstance; | 116 class ChromotingInstance; |
117 class PepperXmppProxy; | 117 class PepperXmppProxy; |
118 | 118 |
119 class ChromotingScriptableObject | 119 class ChromotingScriptableObject |
120 : public pp::deprecated::ScriptableObject, | 120 : public pp::deprecated::ScriptableObject, |
121 public base::SupportsWeakPtr<ChromotingScriptableObject> { | 121 public base::SupportsWeakPtr<ChromotingScriptableObject> { |
122 public: | 122 public: |
123 // These state values are duplicated in the JS code. Remember to update both | |
124 // copies when making changes. | |
123 enum ConnectionStatus { | 125 enum ConnectionStatus { |
124 STATUS_UNKNOWN = 0, | 126 STATUS_UNKNOWN = 0, |
125 STATUS_CONNECTING, | 127 STATUS_CONNECTING, |
126 STATUS_INITIALIZING, | 128 STATUS_INITIALIZING, |
127 STATUS_CONNECTED, | 129 STATUS_CONNECTED, |
128 STATUS_CLOSED, | 130 STATUS_CLOSED, |
129 STATUS_FAILED, | 131 STATUS_FAILED, |
130 }; | 132 }; |
131 | 133 |
134 // These state values are duplicated in the JS code. Remember to update both | |
135 // copies when making changes. | |
132 enum ConnectionError { | 136 enum ConnectionError { |
133 ERROR_NONE = 0, | 137 ERROR_NONE = 0, |
134 ERROR_HOST_IS_OFFLINE, | 138 ERROR_HOST_IS_OFFLINE, |
135 ERROR_SESSION_REJECTED, | 139 ERROR_SESSION_REJECTED, |
136 ERROR_INCOMPATIBLE_PROTOCOL, | 140 ERROR_INCOMPATIBLE_PROTOCOL, |
137 ERROR_NETWORK_FAILURE, | 141 ERROR_NETWORK_FAILURE, |
138 }; | 142 }; |
139 | 143 |
140 ChromotingScriptableObject( | 144 ChromotingScriptableObject( |
141 ChromotingInstance* instance, | 145 ChromotingInstance* instance, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
190 | 194 |
191 std::string name; | 195 std::string name; |
192 pp::Var attribute; | 196 pp::Var attribute; |
193 MethodHandler method; | 197 MethodHandler method; |
194 }; | 198 }; |
195 | 199 |
196 // Routines to add new attribute, method properties. | 200 // Routines to add new attribute, method properties. |
197 void AddAttribute(const std::string& name, pp::Var attribute); | 201 void AddAttribute(const std::string& name, pp::Var attribute); |
198 void AddMethod(const std::string& name, MethodHandler handler); | 202 void AddMethod(const std::string& name, MethodHandler handler); |
199 | 203 |
200 void SignalConnectionInfoChange(); | 204 void SignalConnectionInfoChange(int status, int error); |
201 void SignalDesktopSizeChange(); | 205 void SignalDesktopSizeChange(); |
202 | 206 |
203 // Calls to these methods are posted to the plugin thread so that we | 207 // Calls to these methods are posted to the plugin thread so that we |
204 // call JavaScript with clean stack. This is necessary because | 208 // call JavaScript with clean stack. This is necessary because |
205 // JavaScript event handlers may destroy the plugin. | 209 // JavaScript event handlers may destroy the plugin. |
206 void DoSignalConnectionInfoChange(); | 210 void DoSignalConnectionInfoChange(int status, int error); |
207 void DoSignalDesktopSizeChange(); | 211 void DoSignalDesktopSizeChange(); |
208 void DoSendIq(const std::string& message_xml); | 212 void DoSendIq(const std::string& message_xml); |
209 | 213 |
210 pp::Var DoConnect(const std::vector<pp::Var>& args, pp::Var* exception); | 214 pp::Var DoConnect(const std::vector<pp::Var>& args, pp::Var* exception); |
211 pp::Var DoDisconnect(const std::vector<pp::Var>& args, pp::Var* exception); | 215 pp::Var DoDisconnect(const std::vector<pp::Var>& args, pp::Var* exception); |
212 | 216 |
213 // This method is called by JS to set scale-to-fit. | 217 // This method is called by JS to set scale-to-fit. |
214 pp::Var DoSetScaleToFit(const std::vector<pp::Var>& args, pp::Var* exception); | 218 pp::Var DoSetScaleToFit(const std::vector<pp::Var>& args, pp::Var* exception); |
215 | 219 |
216 // This method is called by Javascript to provide responses to sendIq() | 220 // This method is called by Javascript to provide responses to sendIq() |
(...skipping 13 matching lines...) Expand all Loading... | |
230 | 234 |
231 scoped_refptr<base::MessageLoopProxy> plugin_message_loop_; | 235 scoped_refptr<base::MessageLoopProxy> plugin_message_loop_; |
232 ScopedRunnableMethodFactory<ChromotingScriptableObject> task_factory_; | 236 ScopedRunnableMethodFactory<ChromotingScriptableObject> task_factory_; |
233 | 237 |
234 DISALLOW_COPY_AND_ASSIGN(ChromotingScriptableObject); | 238 DISALLOW_COPY_AND_ASSIGN(ChromotingScriptableObject); |
235 }; | 239 }; |
236 | 240 |
237 } // namespace remoting | 241 } // namespace remoting |
238 | 242 |
239 #endif // REMOTING_CLIENT_PLUGIN_CHROMOTING_SCRIPTABLE_OBJECT_H_ | 243 #endif // REMOTING_CLIENT_PLUGIN_CHROMOTING_SCRIPTABLE_OBJECT_H_ |
OLD | NEW |