Overview
rdkbrowser2 is the browser application based on WPE, it is integrated with following components which enables it with new features compared with legacy rdkbrowser.
- injectedBundle : Provides integration Layer for Service manager and Player inside WPE, adds ability to send messages between JavaScript & other application.
- pxcore-libnode : pxcore - Provides a lightweight Frame-buffer library, pxscene - 2D scene graph API library.
- wpe-webkit : WebKit porting which is used with Wayland.
- rdk-logger : Provides console and file level message logging feature to RDK component.
- westeros : Wayland compositor library that allows applications to create their own Wayland displays, which allows nesting and embedding of third party application
How to Launch rdkbrowser2 ?
rdkbrowser2 can be launched in two different ways:
Server Mode: --server - Launch the browser in a server(“tab”) mode
It could be directly launched as:
/usr/bin/rdkbrowser2 --server
Also can launch _rdkbrowser2_server.sh, script file to run rdkbrowser2 as a server.
Standalone mode: --url <url> - Launch opening a specific URL
web pages could be launched using rdkbrowser2 by passing the URL.
/usr/bin/rdkbrowser2 --url http://www.google.com
Architecture Diagram
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IlotWW9nb21heWEgTWFoYXJhbmEiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiWi1Zb2dvbWF5YSBNYWhhcmFuYSIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMTQ0OTAwNjU4IiwiZGlhZ3JhbU5hbWUiOiJyZGticm93c2VyMl9hcmNoaXRlY3R1cmUuZHJhd2lvIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6InJka2Jyb3dzZXIyIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjo3MTAxNDIxNSwiZWRpdGFibGUiOmZhbHNlLCJjZW9JZCI6NzEwMTQyMTUsInBhZ2VJZCI6IiIsImxib3giOnRydWUsInNlcnZlckNvbmZpZyI6eyJlbWFpbHByZXZpZXciOiIxIn0sIm9kcml2ZUlkIjoiIiwicmV2aXNpb24iOjEsIm1hY3JvSWQiOiI2MWZmZDhlOC1iYTc1LTRiMmQtOTEzZS1iYTA1ODMyZDA1ZTYiLCJwcmV2aWV3TmFtZSI6InJka2Jyb3dzZXIyX2FyY2hpdGVjdHVyZS5kcmF3aW8ucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6Im51bGwiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE2MTQ2OTQ1NDAwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
Webkit : Thin layer to link against from the applications .
WebCore : Provides rendering, layout, network access, multimedia, accessibility support etc.
JavaScript Core : Javascript engine.
Platform : Provides platform-specific hooks to implement generic algorithms.
rdkbrowser2 Controls
rdkbrowser2-control is an app for discovering RDKBrowser2 RtRemote Server Object and invoking its RtRemote based API.
Only works in conjunction with /usr/bin/rdkbrowser2.sh
Usage:
start rdkbrowser2: /usr/bin/rdkbrowser2.sh 'about:blank'
start /usr/bin/rdkbrowser2-control in a separate shell
Sample control sequence:
rdkbrowser2tab = rt.locate()
rdkbrowser2tab.transparentBackground = false
rdkbrowser2tab.proxies = [ { "pattern" : "*" , "useproxy" : "http://<ip>:<port>" }]
rdkbrowser2tab.url = "https://www.google.com/"
rdkbrowser2tab.evaluateJavaScript( "startTest()" )
|