Tizen Web Runtime Update. Ming Jin Samsung Electronics



Similar documents
Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

Understanding the Permission and Access Control Model for Tizen Application Sandboxing. Onur Aciicmez & Andrew Blaich, Samsung

Extending Tizen Native Framework with Node.js

Tizen Technical Overview 枪 晦 随 鬴 缃 拜 枋 幞 垖 幁 穧 幤

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

Security starts in the head(er)

Tizen Architecture. Sunil Saxena, Intel Hobum (Vincent) Kwon, Samsung

Cloud Services MDM. ios User Guide

Android Basics. Xin Yang

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

Android Fundamentals 1

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Example of Standard API

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.

Introduction to Tizen and Tizen Mobile Architecture. Seokjae Jeong, Samsung Electronics

Configuring Salesforce

Leveraging Tizen IVI Platform for Realizing V2X Use Cases

Security Guide. BlackBerry Enterprise Service 12. for ios, Android, and Windows Phone. Version 12.0

Tizen SDK Annual Report Key Improvements. Changseok Oh (Samsung), Yeongkyoon Lee (S-Core)

ITG Software Engineering

Developing NFC Applications on the Android Platform. The Definitive Resource

Tizen Compliance Test (TCT) Hojun Jaygarl (Samsung Electronics), Cathy Shen (Intel)

Overview of CS 282 & Android

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Android Programming and Security

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

Making Web Application using Tizen Web UI Framework. Koeun Choi

Here to take you beyond Mobile Application development using Android Course details

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

Lecture 1 Introduction to Android

Qsync Install Qsync utility Login the NAS The address is :8080 bfsteelinc.info:8080

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Tizen Core APIs: A Core Framework Layer To Build In-House Applications. Jin-Woo Jeong

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

CA Process Automation

Android 5.0: Lollipop OS

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Elgg 1.8 Social Networking

Mocean Android SDK Developer Guide

Rights Management Services

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com

ZeroTurnaround License Server User Manual 1.4.0

How To Use Titanium Studio

HOW TO CONFIGURE PASS-THRU PROXY FOR ORACLE APPLICATIONS

Professional Tizen Application Development

Quick Start Guide Mobile Entrée 4

ANDROID INTRODUCTION TO ANDROID

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

Qt Features for Hybrid Web/Native Application Development

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

DiskPulse DISK CHANGE MONITOR

HTML5 the new. standard for Interactive Web

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

Android (Basic + Advance) Application Development

DEVELOPING NFC APPS for BLACKBERRY

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3 April 8, Integration Guide IBM

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

WebView addjavascriptinterface Remote Code Execution 23/09/2013

Crosswalk: build world class hybrid mobile apps

Safe Harbor Statement

Getting Started with the new VWO

Real World Java Web Security

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

JTouch Mobile Extension for Joomla! User Guide

jfqbi= = eqji=qççäâáí= = = aéîéäçééêûë=dìáçé=== oéäé~ëé=oko=

Multimedia Framework Overview. JongHyuk Choi

TOP 5 Defects & Tips. page 1 / 11

Sizmek Formats. IAB Mobile Pull. Build Guide

Introduction to TIZEN SDK

Harmonizing policy management with Murphy in GENIVI, AGL and TIZEN IVI

A Short Introduction to Android

SysPatrol - Server Security Monitor

Penetration Testing for iphone Applications Part 1

Sophos Mobile Control SaaS startup guide. Product version: 6

SAMSUNG SMARTTV: HOW-TO TO CREATING INSECURE DEVICE IN TODAY S WORLD. Sergey Belov

Introduction to Android Development. Jeff Avery CS349, Mar 2013

Login with Amazon Getting Started Guide for Android. Version 2.0

Mobilize Your ERP with ADF Mobile

Porting Existing PhoneGap Apps to Tizen OS - Development Story

Mobile Performance: for excellent User Experience

Thomas Röthlisberger IT Security Analyst

Part No. P Multimedia Call Center. Set Up and Operation Guide

Introduction to the AirWatch Browser Guide

Site Audit ( /site_audit) Generated on Fri, 22 Aug :14:

Android Development. Marc Mc Loughlin

An Introduction to Android

Transcription:

Tizen Web Runtime Update Ming Jin Samsung Electronics

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.

Quick Overview

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 4

Revisit: Web Apps on Tizen Devices User Interaction Networking Web Device Resources 5

Revisit: Tizen Web App Ecosystem Developer Store Verification & Filtering Develop SDK Download & Install Launch Packaging & Signing Upload Tap Web App User Play 6

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 7

Upcoming Features CSP (Content Security Policy) Navigation policy restriction AppCache download 8

Major Updates

Revisit: Web Runtime on Tizen Web Applications Native Applications Tizen Web Framework Tizen Native Framework Tizen API W3C / HTML5 Video Touch CSS3 WebGL Worker Device APIs BT Call NFC Msg Web UI F/W Web Runtime App / Shell Graphics / UI Content Web / Xml Base / Io Uix Media Messaging Net Telephony Social Text / Locales System Security Core App Framework Graphics / UI Location Multimedia Messaging Web Security System Base Connectivity Telephony PIM Linux Kernel and Device Drivers 10

Tizen Web Runtime Internal Blocks Tizen Web Runtime Wrt Installer (executable) Installer Wrt Client (executable) Wrt Core (library) Injected Bundle (library) Wrt Security (daemon) Wrt Launchpad (daemon) Job Processing View Module Core Module Wrt Wk2 Bundle Wrt Commons (library) Core App Framework Graphics / UI Location Multimedia Messaging Web Security System Base Connectivity Telephony PIM Linux Kernel and Device Drivers 11

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 12

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) 13

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 14

Installation/Update Flow Installation Start Initial Config Parsing Installation Task Update Task Installation Fail [No] Install Files Needs Encrypt? [Yes] Encrypt Resource Is Update? [No] [Yes] Update Files Unzip Package Check Configuration Check Certificate [Decompression Failure] [Invalid Format] [Invalid Certificate] Manifest Update DB Privilege Check SMACK rules [Security Error] Installation Success 15

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 Wrt Client Wrt Core WebCore JSC Wrt Commons App Core UI Proxy IPC App API Injected Bundle PIM API API IPC NPAPI Plugin Wrt Security (daemon) Process Module / Lib Privilege Check IPC 16

Launching Procedure Wrt-launchpad is introduced to preload WebKit and WRT libraries Caller application AMD launch Wrtlaunchpad launch pid fork, UID & Smack Wrt Client (UI Process) Create Ewk Context Init AppCore Create Window fork Web Process WebProcess Init Plugin Preloading Libraries preloaded by wrt-launchpad: -libappcore-efl.so -libappcore-common.so -libisf-imf-module.so -libewebkit2.so -libinjected-bundle.so -wrt-client appcore events Ewk View Add Composite Load URL Resource Loading Process Task IPC Fork 17

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 18

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 19

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 20

Resource Encryption at Install/Update Time Web app resources config.xml resources wrt-installer (2) (4) Configuration parser (1) Installer (3) Encryption task (6) WrtDB Process DB wrt-commons (5) ResourceEncryptor Class/lib Modules Data Flow Call (Callback) IPC fork 21

Resource Decryption at Loading Time UI Process wrt-client WrtClient Web Process (1) WrtDB wrt-commons Webkit Process ResourceDecryptor (3) Bundle DB Class/lib (4) (1) (2) Modules resource PageResourceLoadClient Data Flow Call (Callback) IPC fork 22

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. 23

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 24

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) 25

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/" /> 26

Typical Web App Directory Structure (on Device) bin {wrt-client soft link} config.xml {PackageId} res wgt signature files start file (index.html) arm {NPAPI} data res plugins shared data Additional files or directories x86 {NPAPI} trusted Packaged Web App Specific Files 27

Coming Soon

Content Security Policy (CSP) New fields required in config.xml: E.g.: <tizen:content-security-policy>, <tizen:content-security-policyreport-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. 29

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:allownavigation>) may result in opening up the URL in Browser 30

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 31