JSON Wire Protocol
depcrecated
The JSONWireProtocol is decrecated and replaced by the WebDriver protocol.
#
statusQuery the server's current status. The server should respond with a general "HTTP 200 OK" response if it is alive and accepting commands. The response body should be a JSON object describing the state of the server. All server implementations should return two basic objects describing the server's current platform and when the server was built. All fields are optional; if omitted, the client should assume the value is unknown. Furthermore, server implementations may include additional fields not listed here.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object> status: An object describing the general status of the server.
#
newSessionCreate a new session. The server should attempt to create a session that most closely matches the desired and required capabilities. Required capabilities have higher priority than desired capabilities and must be set for the session to be created.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
desiredCapabilities | object | An object describing the session's desired capabilities. |
requiredCapabilities optional | object | An object describing the session's required capabilities (Optional). |
#
Returns- <Object> capabilities: An object describing the session's capabilities.
#
getSessionsReturns a list of the currently active sessions. Each session will be returned as a list of JSON objects containing id
and capabilities
.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object[]> capabilities: A list of the currently active sessions.
#
getSessionRetrieve the capabilities of the specified session.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object> capabilities: An object describing the session's capabilities.
#
deleteSessionDelete the session.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
setTimeoutsConfigure the amount of time that a particular type of operation can execute for before they are aborted and a |Timeout| error is returned to the client.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
type | string | The type of operation to set the timeout for. Valid values are: "script" for script timeouts, "implicit" for modifying the implicit wait timeout and "page load" for setting a page load timeout. |
ms | number | The amount of time, in milliseconds, that time-limited commands are permitted to run |
#
setAsyncTimeoutSet the amount of time, in milliseconds, that asynchronous scripts executed by /session/:sessionId/execute_async
are permitted to run before they are aborted and a Timeout
error is returned to the client.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
ms | number | The amount of time, in milliseconds, that time-limited commands are permitted to run |
#
setImplicitTimeoutSet the amount of time the driver should wait when searching for elements. When searching for a single element, the driver should poll the page until an element is found or the timeout expires, whichever occurs first. When searching for multiple elements, the driver should poll the page until at least one element is found or the timeout expires, at which point it should return an empty list. If this command is never sent, the driver should default to an implicit wait of 0ms.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
ms | number | The amount of time, in milliseconds, to wait on an element. |
#
getUrlRetrieve the URL of the current page.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> url: The current URL.
#
navigateToNavigate to a new URL.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
url | string | The URL to navigate to. |
#
backNavigate backwards in the browser history, if possible.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
forwardNavigate forwards in the browser history, if possible.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
refreshRefresh the current page.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
getTitleGet the current page title.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> title: The current page title.
#
getWindowHandleRetrieve the current window handle.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> windowHandle: The current window handle.
#
getWindowHandlesRetrieve the list of all window handles available to the session.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String[]> windowHandles: A list of window handles.
#
closeWindowClose the current window.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
switchToWindowChange focus to another window. The window to change focus to may be specified by its server assigned window handle, or by the value of its name
attribute.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
name | string | The window to change focus to |
#
switchToFrameChange focus to another frame on the page. If the frame id
is null
, the server should switch to the page's default content.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
id | string, number, object, null | Identifier for the frame to change focus to |
#
switchToParentFrameChange focus to the parent context. If the current context is the top level browsing context, the context remains unchanged.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
getWindowPositionGet the position of the current focussed window.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object> positon: The X and Y coordinates for the window, relative to the upper left corner of the screen.
#
setWindowPositionChange the position of the current focussed window.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
x | number | The X coordinate to position the window at, relative to the upper left corner of the screen. |
y | number | The Y coordinate to position the window at, relative to the upper left corner of the screen. |
#
Returns- <Object> positon: The X and Y coordinates for the window, relative to the upper left corner of the screen.
#
_getWindowSizeGet the size of the current focused window.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object> size: The size of the window.
#
_setWindowSizeChange the size of the current focused window.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
width | number | the new window width |
height | number | the new window height |
#
maximizeWindowMaximize the current focused window if not already maximized.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
findElementSearch for an element on the page, starting from the document root. The located element will be returned as a WebElement JSON object. The table below lists the locator strategies that each server should support. Each locator must return the first matching element located in the DOM.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
using | string | the locator strategy to use |
value | string | the search target |
#
Returns- <object> ELEMENT: A WebElement JSON object for the located element.
#
findElementsSearch for multiple elements on the page, starting from the document root. The located elements will be returned as a WebElement JSON objects. The table below lists the locator strategies that each server should support. Elements should be returned in the order located in the DOM.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
using | string | the locator strategy to use |
value | string | the search target |
#
Returns- <object[]> ELEMENTS: A list of WebElement JSON objects for the located elements.
#
findElementFromElementSearch for an element on the page, starting from the identified element. The located element will be returned as a WebElement JSON object. The table below lists the locator strategies that each server should support. Each locator must return the first matching element located in the DOM.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
using | string | the locator strategy to use |
value | string | the search target |
#
Returns- <object> ELEMENT: A WebElement JSON object for the located element.
#
findElementsFromElementSearch for multiple elements on the page, starting from the identified element. The located elements will be returned as a WebElement JSON objects. The table below lists the locator strategies that each server should support. Elements should be returned in the order located in the DOM.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
using | string | the locator strategy to use |
value | string | the search target |
#
Returns- <object[]> ELEMENTS: A list of WebElement JSON objects for the located elements.
#
getActiveElementGet the element on the page that currently has focus. The element will be returned as a WebElement JSON object.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> ELEMENT: A WebElement JSON object for the active element.
#
isElementSelectedDetermine if an OPTION
element, or an INPUT
element of type checkbox
or radiobutton
is currently selected.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Boolean> isSelected: Whether the element is selected.
#
isElementDisplayedDetermine if an element is currently displayed.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Boolean> isDisplayed: Whether the element is displayed.
#
getElementAttributeGet the value of an element's attribute.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
name | String | name of the attribute value to retrieve |
#
Returns- <String|Null> attribute: The value of the attribute, or null if it is not set on the element.
#
getElementCSSValueQuery the value of an element's computed CSS property. The CSS property to query should be specified using the CSS property name, not the JavaScript property name (e.g. background-color
instead of backgroundColor
).
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
propertyName | String | name of the CSS property to retrieve |
#
Returns- <String> propertyName: The value of the specified CSS property.
#
getElementTextReturns the visible text for the element.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <String> text: The visible text of the element.
#
getElementTagNameQuery for an element's tag name.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <String> tagName: The element's tag name, as a lowercase string.
#
getElementLocationDetermine an element's location on the page. The point (0, 0)
refers to the upper-left corner of the page. The element's coordinates are returned as a JSON object with x
and y
properties.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Object> location: The X and Y coordinates for the element on the page.
#
getElementLocationInViewDetermine an element's location on the screen once it has been scrolled into view.
Note: This is considered an internal command and should only be used to determine an element's location for correctly generating native events.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Object> location: The X and Y coordinates for the element on the page.
#
getElementSizeDetermine an element's size in pixels. The size will be returned as a JSON object with width
and height
properties.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Object> size: The width and height of the element, in pixels.
#
isElementEnabledDetermine if an element is currently enabled.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
Returns- <Boolean> isEnabled: Whether the element is enabled.
#
elementClickClick any mouse button (at the coordinates set by the last moveto command). Note that calling this command after calling buttondown and before calling button up (or any out-of-order interactions sequence) will yield undefined behaviour).
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
elementEqualsCompare elements with each other.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
otherElementId | String | ID of the element to compare against |
#
Returns- <Boolean> isEqual: Whether the two IDs refer to the same element.
#
elementSubmitJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the form element to be submitted |
#
elementClearJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
#
elementSendKeysJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
elementId | String | ID of the element to route the command to |
value | string[] | The sequence of keys to type. An array must be provided. |
#
sendKeysJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
value | string[] | The sequence of keys to type. An array must be provided. |
#
getPageSourceJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> source: The current page source.
#
executeScriptJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
script | string | the script to execute |
args optional | string, object, number, boolean, undefined[] | the script arguments |
#
Returns- <*> result: The script result.
#
executeAsyncScriptJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
script | string | the script to execute |
args | string, object, number, boolean, undefined[] | the script arguments |
#
Returns- <*> result: The script result.
#
getAllCookiesJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object[]> cookies: A list of cookies.
#
addCookieJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
cookie | object | A JSON object representing a cookie. It must have at least the name and value fields and could have more, including expiry-time and so on |
#
deleteAllCookiesJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
deleteCookieJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
name | String | name of the cookie to retrieve |
#
dismissAlertJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
acceptAlertJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
getAlertTextJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> alertText: The text of the currently displayed alert.
#
sendAlertTextJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
text | string | keystrokes to send to the prompt() dialog |
#
takeScreenshotJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> screenshot: screenshot as a base64 encoded PNG
#
getAvailableEnginesJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String[]> engines: A list of available engines
#
getActiveEngineJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> engine: The name of the active IME engine
#
isIMEActivatedJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Boolean> isActive: true if IME input is available and currently active, false otherwise
#
deactivateIMEJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
activateIMEJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
engine | string | name of the engine to activate |
#
getOrientationJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String> orientation: The current browser orientation corresponding to a value defined in ScreenOrientation: {LANDSCAPE|PORTRAIT}.
#
setOrientationJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
orientation | string | the new browser orientation as defined in ScreenOrientation: {LANDSCAPE |
#
moveToElementJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
element optional | string, null | opaque ID assigned to the element to move to, as described in the WebElement JSON Object, if not specified or is null, the offset is relative to current position of the mouse |
xoffset optional | number | x offset to move to, relative to the top-left corner of the element, if not specified, the mouse will move to the middle of the element |
yoffset optional | number | y offset to move to, relative to the top-left corner of the element, if not specified, the mouse will move to the middle of the element |
#
buttonDownClick and hold the left mouse button (at the coordinates set by the last moveto command). Note that the next mouse-related command that should follow is buttonup . Any other mouse command (such as click or another call to buttondown) will yield undefined behaviour.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
button optional | number | which button, enum: LEFT = 0, MIDDLE = 1 , RIGHT = 2, defaults to the left mouse button if not specified |
#
buttonUpReleases the mouse button previously held (where the mouse is currently at). Must be called once for every buttondown command issued. See the note in click and buttondown about implications of out-of-order commands.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
button optional | number | which button, enum: LEFT = 0, MIDDLE = 1 , RIGHT = 2, defaults to the left mouse button if not specified |
#
positionClickClicks at the current mouse coordinates (set by moveto).
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
button optional | number | which button, enum: LEFT = 0, RIGHT = 2, defaults to the left mouse button if not specified |
#
positionDoubleClickDouble-clicks at the current mouse coordinates (set by moveto).
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
touchClickSingle tap on the touch enabled device.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
element | string | ID of the element to single tap on. |
#
touchDownFinger down on the screen.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
x | number | x coordinate on the screen |
y | number | y coordinate on the screen |
#
touchUpFinger up on the screen.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
x | number | x coordinate on the screen |
y | number | y coordinate on the screen |
#
touchMoveFinger move on the screen.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
x | number | x coordinate on the screen |
y | number | y coordinate on the screen |
#
touchScrollFinger move on the screen.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
xoffset | number | the x offset in pixels to scroll by |
yoffset | number | the y offset in pixels to scroll by |
element optional | string | ID of the element where the scroll starts |
#
touchDoubleClickDouble tap on the touch screen using finger motion events.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
element | string | ID of the element to double tap on |
#
touchLongClickLong press on the touch screen using finger motion events.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
element | string | ID of the element to long press on |
#
touchFlickFlick on the touch screen using finger motion events. This flickcommand starts at a particulat screen location.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
xoffset optional | number | the x offset in pixels to flick by |
yoffset optional | number | the y offset in pixels to flick by |
element optional | string | ID of the element where the flick starts |
speed optional | number | the speed in pixels per seconds |
xspeed optional | number | the x speed in pixels per second |
yspeed optional | number | the y speed in pixels per second |
#
getGeoLocationGet the current geo location.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Object> location: The current geo location.
#
setGeoLocationSet the current geo location.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
location | object | the new location ({latitude: number, longitude: number, altitude: number} ) |
#
getLocalStorageGet all keys of the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String[]> keys: The list of keys.
#
setLocalStorageSet the storage item for the given key.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | string | the key to set |
value | string | the value to set |
#
clearLocalStorageClear the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
getLocalStorageItemGet the storage item for the given key.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | String | the key to get |
#
Returns- <String> item: The storage item of given key.
#
deleteLocalStorageItemJSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | String | the key to remove |
#
getLocalStorageSizeGet the number of items in the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Number> itemCnt: The number of items in the storage.
#
getSessionStorageGet all keys of the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String[]> keys: The list of keys.
#
setSessionStorageSet the storage item for the given key.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | string | the key to set |
value | string | the value to set |
#
clearSessionStorageClear the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
getSessionStorageItemGet the storage item for the given key.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | String | the key to get |
#
Returns- <String> item: The storage item of given key.
#
deleteSessionStorageItemRemove the storage item for the given key.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
key | String | the key to remove |
#
getSessionStorageSizeGet the number of items in the storage.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Number> itemCnt: The number of items in the storage.
#
getLogsGet the log for a given log type. Log buffer is reset after each request.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
ParametersName | Type | Details |
---|---|---|
type | string | the log type |
#
Returns- <Object[]> logs: The list of log entries.
#
getLogTypesGet available log types.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <String[]> logTypes: The list of available log types.
#
getApplicationCacheStatusGet the status of the html5 application cache.
JSON Wire Protocol command. More details can be found in the official protocol docs.
#
Usage#
Returns- <Number> statusCode: Status code for application cache:
{UNCACHED = 0, IDLE = 1, CHECKING = 2, DOWNLOADING = 3, UPDATE_READY = 4, OBSOLETE = 5}