Index: chrome/common/extensions/api/gcd_private.idl |
diff --git a/chrome/common/extensions/api/gcd_private.idl b/chrome/common/extensions/api/gcd_private.idl |
index 69c517a030629e014c15e0451bcda331b5afa383..0718faf4808ebc55a65124ae31a3c1c306780641 100644 |
--- a/chrome/common/extensions/api/gcd_private.idl |
+++ b/chrome/common/extensions/api/gcd_private.idl |
@@ -29,6 +29,29 @@ namespace gcdPrivate { |
DOMString deviceDescription; |
}; |
+ enum Status { |
+ // populateWifiPassword was true and the password has not been prefetched. |
+ wifiPasswordError, |
+ |
+ // populateWifiPassword was true and the message cannot be parsed as a setup |
+ // message. |
+ setupParseError, |
+ |
+ // Could not connect to the device. |
+ connectionError, |
+ |
+ // Error in establishing session. |
+ sessionError, |
+ |
+ // Success. |
+ success |
+ }; |
+ |
+ enum ConfirmationType { |
+ displayCode, |
+ audio |
+ }; |
+ |
callback CloudDeviceListCallback = void(GCDDevice[] devices); |
// |commandDefinitions| : Is "commandDefs" value of device described at |
@@ -46,6 +69,31 @@ namespace gcdPrivate { |
// TODO(vitalybuka): consider to describe object in IDL. |
callback CommandListCallback = void(object[] commands); |
+ // Called when the confirmation code is available or on error. |
+ // |sessionId| is the session ID (identifies the session for future calls) |
+ // |status| is the status (success or type of error) |
+ // |code| is the confirmation code or empty on error |
+ // |confirmationType| is the type of confirmation required |
+ callback ConfirmationCodeCallback = void(long sessionId, |
+ Status status, |
+ DOMString code, |
+ ConfirmationType type); |
+ |
+ // Called to indicated the session is established. |
+ // |status| is the status (success or type of error) |
+ callback SessionEstablishedCallback = void(Status status); |
+ |
+ // Called when the response to the message sent is available or on error. |
+ // |status| is the status (success or type of error) |
+ // |response| is the response object or null on error |
+ callback MessageResponseCallback = void(Status status, |
+ object response); |
+ |
+ // Called as a response to |prefetchWifiPassword| |
+ // |success| Denotes whether the password fetch has succeeded or failed. |
+ callback SuccessCallback = void(boolean success); |
+ |
+ |
interface Functions { |
// Returns the list of cloud devices visible locally or available in the |
// cloud for user account. |
@@ -56,31 +104,33 @@ namespace gcdPrivate { |
// onDeviceStateChanged and onDeviceRemoved events, or it will do nothing. |
static void queryForNewLocalDevices(); |
- // Starts device setup process. Returns id of setup process. Id should be |
- // used as |setupId| in all subsequent setup related calls, and for |
- // filtering setup events. |
- static long startSetup(DOMString deviceId); |
- |
- // Sets WiFi network as reply to |onGetWifiNetworks| event. |
- // |setupId| : The value returned by |startSetup|. |
- // |network| : The wifi network for device setup. |
- static void setWiFiNetwork(long setupId, DOMString network); |
- |
- // Sets WiFi network password as reply to |onGetWifiPassword| event. |
- // |setupId| : The value returned by |startSetup|. |
- // |password| : The password for network selected with |setWiFiNetwork|. |
- static void setWiFiPassword(long setupId, DOMString password); |
- |
- // Confirms that security code known to application match to the code known |
- // to device. |
- // |setupId| : The value returned by |startSetup|. |
- static void confirmCode(long setupId); |
- |
- // Stops registration process. |
- // This call triggers |onSetupError| event. App should wait this even before |
- // starting new registration. |
- // |setupId| : The value returned by |startSetup|. |
- static void stopSetup(long setupId); |
+ // Cache the WiFi password in the browser process for use during |
+ // provisioning. This is done to allow the gathering of the wifi password to |
+ // not be done while connected to the device's network. Callback is called |
+ // with true if wifi password was cached and false if it was unavailable. |
+ static void prefetchWifiPassword(DOMString ssid, SuccessCallback callback); |
+ |
+ // Establish the session. |
+ static void establishSession(DOMString ipAddress, |
+ long port, |
+ ConfirmationCodeCallback callback); |
+ |
+ // Confirm that the code is correct. Device will still need to confirm. |
+ static void confirmCode(long sessionId, |
+ SessionEstablishedCallback callback); |
+ |
+ // Send an encrypted message to the device. |api| is the API path and |
+ // |input| is the input object. If the message is a setup message with a |
+ // wifi ssid specified but no password, the password cached from |
+ // |prefetchWifiPassword| will be used and the call will fail if it's not |
+ // available. For open networks use an empty string as the password. |
+ static void sendMessage(long sessionId, |
+ DOMString api, |
+ object input, |
+ MessageResponseCallback callback); |
+ |
+ // Terminate the session with the device. |
+ static void terminateSession(long sessionId); |
// Returns command definitions. |
// |deviceId| : The device to get command definitions for. |
@@ -133,32 +183,5 @@ namespace gcdPrivate { |
// Notifies that device has disappeared. |
// |deviceId| : The device has disappeared. |
static void onDeviceRemoved(DOMString deviceId); |
- |
- // Notifies app that setup is waiting for a wifi network. App should reply |
- // with |setWiFiNetwork|. |
- // |setupId| : The value returned by |startSetup|. |
- static void onGetWifiNetwork(long setupId); |
- |
- // Notifies app that setup is waiting for password for the network provided |
- // with |setWiFiNetwork|. Even will be called if setup flow would unable to |
- // get password from the system. |
- // App should reply with |setWiFiPassword|. |
- // |setupId| : The value returned by |startSetup|. |
- static void onGetWifiPassword(long setupId); |
- |
- // Notifies app that setup is waiting for confirmation that code is the same |
- // as code known to device. App should reply with |confirmCode|, or |
- // |stopSetup| if code does not match. |
- // |confirmationCode| : The code to confirm. |
- // |setupId| : The value returned by |startSetup|. |
- static void onConfirmCode(long setupId, DOMString confirmationCode); |
- |
- // Notifies app that setup is completed successfully. |
- // |setupId| : The value returned by |startSetup|. |
- static void onSetupSuccess(long setupId); |
- |
- // Notifies app that setup is failed or stopped. |
- // |setupId| : The value returned by |startSetup|. |
- static void onSetupError(long setupId); |
}; |
}; |