![Page 1: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/1.jpg)
Tizen Web Runtime
Update
Ming Jin
Samsung Electronics
![Page 2: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/2.jpg)
Table of Contents
• Quick Overview of This Talk
Background, Major Updates, Upcoming Features
• What Have Been Updated
Installation/Update Flow, WebKit2, Privilege Levels, Sandboxing, etc.
• Upcoming Features
Content Security Policy (CSP), Navigation Policy, etc.
![Page 3: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/3.jpg)
Quick Overview
![Page 4: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/4.jpg)
4
Revisit: What Is Web App and Web Runtime
• Web Application
• Using Web based technologies (HTML/JS/CSS/etc.)
• Accessing local device / platform resources
• Can be installed on the device
• Web Runtime
• Package management (installation, update, etc.)
• Execution and lifecycle (launching, pause, resume etc.)
• Runtime security (API/network access, sandboxing, etc.)
• Platform integration
![Page 5: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/5.jpg)
5
Revisit: Web Apps on Tizen Devices
Interaction
Device Resources
Networking
User
Web
![Page 6: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/6.jpg)
6
Revisit: Tizen Web App Ecosystem
Packaging &
Signing Upload
Verification &
Filtering
Download &
Install Launch
Tap
Play
Developer
Develop
SDK
Store
Web App User
![Page 7: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/7.jpg)
7
What Have Been Updated
• “Hosted” Web App support
• Updated installation and update flow
• WebKit2/EFL based process model
• Faster launching flow
• Update on suspend/resume, and localization
• Resource encryption/decryption
• Privilege-based API security
• Process sandboxing
• Web Dynamic Box support
![Page 8: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/8.jpg)
8
Upcoming Features
• CSP (Content Security Policy)
• Navigation policy restriction
• AppCache download
![Page 9: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/9.jpg)
Major Updates
![Page 10: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/10.jpg)
10
Core
Web Applications
Linux Kernel and Device Drivers
Native Applications
Tizen Web Framework
Web Runtime
W3C / HTML5
App Framework
Base Connectivity
Graphics / UI Location Messaging Multimedia
PIM Security System Telephony
Web
Video Touch
CSS3 WebGL
Worker • • •
Device APIs
BT Call
NFC Msg
• • •
Tizen Native Framework
App / Shell Content
Base / Io Media Messaging
Net
Security
Social
System
Telephony Text / Locales
Graphics / UI
Uix
Web / Xml
Tizen API
Web UI F/W
Revisit: Web Runtime on Tizen
![Page 11: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/11.jpg)
11
Tizen Web Runtime Internal Blocks
Core
Linux Kernel and Device Drivers
App Framework
Base Connectivity
Graphics / UI Location Messaging Multimedia
PIM Security System Telephony
Web
Tizen Web Runtime
Wrt
Launchpad
(daemon)
Wrt Commons (library)
Wrt Core (library)
Core Module
Wrt Client
(executable)
Wrt Installer
(executable)
View Module
Installer
Job
Processing
Injected
Bundle
(library)
Wrt Wk2
Bundle
Wrt
Security
(daemon)
![Page 12: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/12.jpg)
12
Hosted Web App Support
• What is “hosted” web app?
• A Web App with all of its resources located on a remote server
• For now, it needs to be packaged with minimal resources: config.xml,
signature(s)
• Restrictions:
• Start page should be specified in <tizen:content> extension
• All of rendered pages are remote pages
• Only W3C/HTML APIs are allowed in remote pages
• Created browsing context has the same origin as remote server origin
![Page 13: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/13.jpg)
13
Installation Flow Update
• New verification steps introduced:
• Higher-level privilege declaration is not allowed
• Invalid signature is not allowed
• New installation steps introduced:
• Resource encryption (if necessary)
• Smack rules population
• Deprecated steps:
• W3C Widget P&C <feature> tag checking is ignored (used as Store side
filtering purpose for now)
![Page 14: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/14.jpg)
14
Web App Update Flow
• Update criteria:
• Must have the same Tizen App ID
• Must have the same author signature
• Update triggering point:
• At installation request time, if the request satisfies the “update criteria”
• Update result:
• Web App data (settings, cookies, local storage etc.) must be preserved
![Page 15: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/15.jpg)
15
Installation/Update Flow
Initial Config
Parsing
Installation Start
Installation
Task Update Task
Unzip
Package
Check
Configuration
Check
Certificate
Installation Fail
Encrypt
Resource
Install Files Update Files
Privilege
Check
SMACK
rules
Manifest Update DB
Installation Success
Needs Encrypt?
Is Update?
[Yes]
[No]
[Yes] [No]
[Security
Error]
[Invalid Certificate]
[Invalid Format]
[Decompression Failure]
![Page 16: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/16.jpg)
16
WebKit2/EFL based Web App Process Model
• Each Web App has 1 UI Process and 1 Web Process
• UI Process manages lifecycle, and Web Process is responsible for rendering
• NPAPI plugins (if any) will run in separate processes
Wrt Client (UI Process) Web Process
IPC
Wrt Core
Wrt
Commons
App Core
UI Proxy
Wrt Client
WebCore JSC
Injected Bundle
NPAPI
Plugin
App
API
PIM
API
…
API
IPC
Module / Lib
Process
Wrt Security
(daemon)
IPC
Privilege Check
![Page 17: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/17.jpg)
17
Wrt Client
(UI Process) Web Process
Launching Procedure
• Wrt-launchpad is introduced to preload WebKit and WRT libraries
IPC
Process
Task
Fork
Caller
application
Wrt-
launchpad
launch
AMD
pid launch
fork,
UID & Smack
appcore events
Libraries preloaded by
wrt-launchpad:
-libappcore-efl.so
-libappcore-common.so
-libisf-imf-module.so
-libewebkit2.so
-libinjected-bundle.so
-wrt-client
Create Ewk
Context WebProcess
Init
Plugin
Preloading
Resource
Loading
fork
Load
URL
Init
AppCore
Create
Window
Ewk View Add
Composite
![Page 18: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/18.jpg)
18
Suspend / Resume
• By default, webviews will be suspended by WRT when the Web
App goes to background, unless the developer explicitly
enables it via <tizen:setting>
• Suspended activities include: JavaScript executions, timers, animations
• Even if a webview is not suspended in background, the painting
operations will not happen in background and the backing store will be
purged
• When switched to foreground, the suspended webviews will be
resumed
![Page 19: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/19.jpg)
19
Localization
• Folder-based localization
• Web App contents can be localized in file unit according to W3C Widget
P&C specification
• The localization requires page reloading, and the localized contents will
only be reflected at next launching time
• Element-based localization
• Configuration document can be localized with xml:lang attribute
• Content-based localization
• System locale change event can be listened with Tizen System Info API
• L10n routine needs to be implemented in locale change event handler
![Page 20: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/20.jpg)
20
Resource Encryption / Decryption
• Resources are encrypted during installation / update
• Enabled with <tizen:setting encryption=“enable”/> in config.xml
• Web App directory is scanned recursively
• Only resources with predefined extensions (html / js / css) are encrypted
• Information about encrypted resources are stored in WRT DB
• Resources are decrypted at runtime
• UI Process informs Bundle (WebProcess) about the decryption necessity
• Bundle performs resource decryption in willSendRequestForFrameCallback
• Resources are decrypted to base64 string and read by WebKit
![Page 21: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/21.jpg)
21
Resource Encryption at Install/Update Time
wrt-installer
WrtDB Encryption
task
wrt-commons
ResourceEncryptor
Web app resources
config.xml resources
Installer Configuration
parser
Data Flow
Call (Callback)
IPC
fork
Class/lib
Process
DB
Modules
(3) (1)
(2) (4)
(5)
(6)
![Page 22: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/22.jpg)
22
Resource Decryption at Loading Time
Web Process
UI Process
wrt-client
WrtDB
wrt-commons
ResourceDecryptor
resource
Webkit
WrtClient
Bundle
PageResourceLoadClient
Data Flow
Call (Callback)
IPC
fork
Class/lib
Process
DB
Modules (2)
(1)
(1)
(3)
(4)
![Page 23: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/23.jpg)
23
Privilege Levels and API Permissions
• Untrusted
• Location, web notification, media capture, full screen, unlimited storage
• Public
• Alarm, application, bluetooth, calendar, call history, contact, file system,
message port, messaging, power, push, setting, system, etc.
• Partner
• App manager, secure element, system manager, etc.
• Platform
• Bluetooth manager, lock manager, package manager, setting manager,
etc.
![Page 24: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/24.jpg)
24
Process Sandboxing
• Web App (UI/Web Process) Sandboxing
• UID: “app”
• GUID: “app”
• Process Smack label: {PkgID}
• Resource Smack label: {PkgID}
• Smack rules: basic application rules + privilege specific rules
• Web App private data (e.g., localstorage, indexed db, cookie,
etc.) is protected from the rest of system after sandboxing
![Page 25: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/25.jpg)
25
Web Dynamic Box
• Features:
• Included in a Web App package
• Installed, updated, and uninstalled as part of Web App package
• Supported sizes: 1x1, 2x1, 2x2
• Supports periodic update: minimum 30 min term
• Embeddable in viewer-like applications (e.g., home screen)
![Page 26: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/26.jpg)
26
Tizen Configuration Extensions Update
<tizen:application id=“PkgA.MyApp" package=“PkgA" required_version=“2.0" />
<tizen:privilege name="http://tizen.org/privilege/application.launch" />
<tizen:app-control>
<tizen:src name="edit.html"/>
<tizen:operation name="http://tizen.org/appcontrol/operation/edit"/>
<tizen:mime name="image/jpg" />
<tizen:uri name=""/>
</tizen:app-control>
<tizen:setting background-support="enable" />
<tizen:setting context-menu="disable" />
<tizen:setting encryption="enable" />
<tizen:setting screen-orientation="landscape" />
<tizen:setting install-location="internal-only" />
<tizen:content src="https://www.tizen.org/" />
![Page 27: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/27.jpg)
27
Typical Web App Directory Structure (on Device)
{PackageId}
bin {wrt-client soft link}
res wgt
config.xml
signature files
start file (index.html)
plugins
arm {NPAPI}
x86 {NPAPI} Additional
files or directories
data
shared
res
data
trusted Packaged Web App Specific Files
![Page 28: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/28.jpg)
Coming Soon
![Page 29: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/29.jpg)
29
Content Security Policy (CSP)
• New fields required in config.xml:
• E.g.: <tizen:content-security-policy>, <tizen:content-security-policy-
report-only>
• Possible default policy:
• "default-src '*'; script-src „self‟; style-src „self‟; object-src „none‟;“
• A Web App can define a fine-grained CSP policy by using
different directives:
• E.g., script-src, style-src, img-src, connect-src, frame-src, etc.
![Page 30: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/30.jpg)
30
Navigation Policy
• New field required in config.xml:
• E.g., <tizen:allow-navigation>
• Top-level window URL navigation is limited to the list of
domains specified in <tizen:allow-navigation>.
• Navigation to any other domains (not listed in <tizen:allow-
navigation>) may result in opening up the URL in Browser
![Page 31: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/31.jpg)
31
AppCache Download
• New field required in config.xml:
• E.g., <tizen:appcache-manifest-url>
• Upon installation, download the appcache resources specified
in appcache manifest URL
• Useful for hosted web apps to work offline or provide fallback
routines for offline
![Page 32: Tizen Web Runtime Updatedownload.tizen.org/...Tizen_Web_Runtime_Update.pdfTable of Contents • Quick Overview of This Talk Background, Major Updates, Upcoming Features • What Have](https://reader034.vdocument.in/reader034/viewer/2022042214/5eb8d1d5c2f5cb512b5671ac/html5/thumbnails/32.jpg)