Version: 1.0
Status: ⚫⚪⚪
Spark plugin for WPEFramework.
This document describes purpose and functionality of the Spark plugin. It includes detailed specification of its configuration, properties provided and notifications sent.
All identifiers on the interface described in this document are case-sensitive. Thus, unless stated otherwise, all keywords, entities, properties, relations and actions should be treated as such.
The table below provides and overview of acronyms used in this document and their definitions.
Acronym | Description |
---|---|
API | Application Programming Interface |
HTTP | Hypertext Transfer Protocol |
JSON | JavaScript Object Notation; a data interchange format |
JSON-RPC | A remote procedure call protocol encoded in JSON |
The table below provides and overview of terms and abbreviations used in this document and their definitions.
Term | Description |
---|---|
callsign | The name given to an instance of a plugin. One plugin can be instantiated multiple times, but each instance the instance name, callsign, must be unique. |
Ref ID | Description |
---|---|
HTTP | HTTP specification |
JSON-RPC | JSON-RPC 2.0 specification |
JSON | JSON specification |
WPEF | WPEFramework API Reference |
The Spark plugin provides web browsing functionality based on the Spark engine.
The plugin is designed to be loaded and executed within the WPEFramework. For more information on WPEFramework refer to [WPEF].
The table below lists configuration options of the plugin.
Name | Type | Description |
---|---|---|
callsign | string | Plugin instance name (default: Spark) |
classname | string | Class name: Spark |
locator | string | Library name: libWPEFrameworkSpark.so |
autostart | boolean | Determines if the plugin is to be started automatically along with the framework |
configuration | object | (optional) |
configuration?.url | string | (optional) The URL that is loaded upon starting the browser |
The following properties are provided by the Spark plugin:
Browser interface properties:
Property | Description |
---|---|
url | URL loaded in the browser |
visibility | Current browser visibility |
fps RO | Current number of frames per second the browser is rendering |
StateControl interface properties:
Property | Description |
---|---|
state | Running state of the service |
Provides access to the URL loaded in the browser.
Also see: urlchange
Name | Type | Description |
---|---|---|
(property) | string | URL loaded in the browser |
Code | Message | Description |
---|---|---|
15 | ERROR_INCORRECT_URL |
Incorrect URL given |
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.url"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "https://www.google.com"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.url",
"params": "https://www.google.com"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "null"
}
Provides access to the current browser visibility.
Also see: visibilitychange
Name | Type | Description |
---|---|---|
(property) | string | Current browser visibility (must be one of the following: visible, hidden) |
Code | Message | Description |
---|---|---|
30 | ERROR_BAD_REQUEST |
The property value is invalid |
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.visibility"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "visible"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.visibility",
"params": "visible"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "null"
}
Provides access to the current number of frames per second the browser is rendering.
This property is read-only.
Name | Type | Description |
---|---|---|
(property) | number | Current number of frames per second the browser is rendering |
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.fps"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": 30
}
Provides access to the running state of the service.
Also see: statechange
Name | Type | Description |
---|---|---|
(property) | string | Running state of the service (must be one of the following: resumed, suspended) |
Code | Message | Description |
---|---|---|
30 | ERROR_BAD_REQUEST |
The property value is invalid |
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.state"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "resumed"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"method": "Spark.1.state",
"params": "resumed"
}
{
"jsonrpc": "2.0",
"id": 1234567890,
"result": "null"
}
Notifications are autonomous events, triggered by the internals of the plugin, and broadcasted via JSON-RPC to all registered observers. Refer to [WPEF] for information on how to register for a notification.
The following events are provided by the Spark plugin:
Browser interface events:
Event | Description |
---|---|
urlchange | Signals a URL change in the browser |
visibilitychange | Signals a visibility change of the browser |
StateControl interface events:
Event | Description |
---|---|
statechange | Signals a state change of the service |
Signals a URL change in the browser
Name | Type | Description |
---|---|---|
params | object | |
params.url | string | The URL that has been loaded or requested |
params.loaded | boolean | Determines if the URL has just been loaded (true) or if URL change has been requested (false) |
{
"jsonrpc": "2.0",
"method": "client.events.1.urlchange",
"params": {
"url": "https://www.google.com",
"loaded": false
}
}
Signals a visibility change of the browser
Name | Type | Description |
---|---|---|
params | object | |
params.hidden | boolean | Determines if the browser has been hidden (true) or made visible (false) |
{
"jsonrpc": "2.0",
"method": "client.events.1.visibilitychange",
"params": {
"hidden": false
}
}
Notifies that the web page requests to close its window
This event carries no parameters.
{
"jsonrpc": "2.0",
"method": "client.events.1.pageclosure"
}
Signals a state change of the service
Name | Type | Description |
---|---|---|
params | object | |
params.suspended | boolean | Determines if the service has entered suspended state (true) or resumed state (false) |
{
"jsonrpc": "2.0",
"method": "client.events.1.statechange",
"params": {
"suspended": false
}
}