SlideShare a Scribd company logo
yliao@mozilla.com
system browser on
Firefox OS v2.1
• system: manage browser iframes & mozbrowser events	

• search: provide search results & new browser tab	

• verticalhome: present browser entry & bookmarks	

• bookmark: add/remove/update bookmarks on the verticalhome	

• settings: provide interface to clear browsing history & data
system browser apps
interactions
system search
settings
verticalhome
bookmark
MozActivity: 	

save-bookmark & 	

remove-bookmark
window.open & mozapp.launch
IAC: search
IAC: search-results
MozActivity: view
mozbrowseropenwindow
navigator.mozSettings:	

clear.browser.history &	

clear.browser.private-data
• (DataStore API) dataStore: places	

• browsing history	

• (DataStore API) dataStore: bookmarks_store	

• bookmarks	

• indexedDB: places_idb_store	

• used in search app, synced with dataStore: places
data storages
system
searchverticalhome
bookmark
read/write
read/write
data manipulation
indexedDB:	

places_idb_store
dataStore:	

places
dataStore:	

bookmarks_store
read/write
read
read
read/remove
system app
div#screen	

	

 div#statusbar (Rocketbar module)	

	

 	

 div#rocketbar
form#roketbar-form	

	

 div#rocketbar-backdrop	

	

 div#rocketbar-results
div#search (SearchWindow module)
div#AppChromeNO.
div.browser-container
iframe#browserNO.
rocketbar
div#screen	

	

 …	

	

 div#windows	

	

 	

 div#AppWindow_NO. (AppWindow)
div#AppChromeNO. (AppChrome)
	

 div.titlebar	

	

 	

 	

 div.identification-overlay	

	

 	

 	

 div.fade-overlay	

	

 	

 	

 div.touch-blocker	

	

 	

 	

 div.browser-container	

	

 	

 	

 	

 div.screenshot-overlay
iframe#browserNO.
app window
app window
div#AppWindow_NO.	

	

 form#BrowserContextMenuNO. (BrowserContextMenu)	

	

 div#AppChromeNO.	

	

 	

 gaia-progress	

	

 	

 div.controls	

	

 div.titlebar	

	

 div.identification-overlay	

	

 div.fade-overlay	

	

 div.touch-blocker	

	

 div.browser-container	

	

 	

 div.screenshot-overlay	

	

 	

 iframe#browserNO.
• AppWindowManager	

• AppWindow	

• AppChrome	

• AppWindowFactory	

• WrapperFactory	

• Rocketbar	

• SearchWindow
modules
• BrowserConfigHelper	

• BrowserFrame	

• BrowserContextMenu	

• BrowserMixin	

• BrowserSettings	

• BookmarksDatabase	

• Places
System browser
settings change
browserSettings
settings
change	

clear.browser.history
change	

clear.browser.private-data
places
clear()
app
clearBrowserData()
search app
{!
"name": "Browser",!
"description": "Gaia System Web Browser",!
"type": "certified",!
"role": "search",!
"launch_path": “/newtab.html",!
search app
newtab.html :	

!
body	

	

 h2#top-sites-header	

	

 section#top-sites	

	

 	

 div.top-site	

	

 	

 div.top-site	

	

 	

 …	

	

 h2#history-header	

	

 section#history	

	

 	

 h3	

	

 	

 ul	

	

 	

 div.result	

	

 	

 div.result
new tab
index.html	

!
body	

	

 div#search-results	

	

 	

 div#offline-message	

	

 	

 div#suggestions-wrapper	

	

 	

 	

 section#suggestions	

	

 	

 div#suggestions-notice-wrapper	

	

 	

 section#contacts	

	

 	

 section#places	

	

 	

 section.apps	

	

 	

 	

 gaia-grid#icons	

	

 menu#contextmenu	

	

 	

 menuitem#add-to-homescreen
showing search results
indexedDB
DBName: places_idb_store, objectStore: places
keyPath index unique description
url O O
frecency O incremented by 1 for now
visited O timestamp
visits [timestamp, timestamp, …]
title
screenshot Blob
icons { ‘icon URI’: { sizes: [‘180x180’,…]}}
DBName: places_idb_store, objectStore: visits (not
in use on v2.1)
keyPath index unique description
date O O O
url
title
icons { ‘icon URI’: { sizes: [‘180x180’, …]}}
meta
dataset { url:‘plaintext url’ }
indexedDB
• launch search app through
mozapp.launch	

• click browser app on home screen	

• click new window in browser app
context menu	

launch
launch browser app
appWindowFactory
browserFrame
Event: webapps-launch
new AppChrome
appWindow
new AppWindow
appChrome
new BrowserFrame
System browser
System browser
• launch search app through window.open	

• submit search on rocket bar	

• click home screen bookmark	

• click history or top site	

launch
System browser
System browser
• Page loading browser events in general:	

• mozbrowserloadstart	

• mozbrowserlocationchange	

• mozbrowsertitlechange	

• mozbrowsericonchange	

• mozbrowserloadend	

load a page
page loading
appWindow appChrome
mozbrowsertitlechange
mozbrowserlocationchange
places
appiconchange	

apploaded
update app chrome
mozbrowsericonchange
mozbrowserloaded
apptitlechange	

applocationchange
update dataStore entries
click app chrome
• Handle chrome UI events:	

!
!
!
• Handle chrome UI events:	

• activate rocket bar	

• navigation	

• open chrome menu	

click app chrome
System browser
open menu
div#AppWindow_NO.
form#BrowserContextMenuNO.
header.contextmenu-header
menu.contextmenu-list
button[data-id=“new-window”]
button[data-id=“show-windows”]
button[data-id=“add-to-homescreen”]
button[data-id=“share”]
button#ctx-cancel-button
div#AppChromeNO.	

	

 …
System browser
• When a user long press on links,
images, videos, …etc.	

mozbrowsercontextmenu
System browser
MozActivity ‘view’
bookmark app
• To save a link to homescreen:	

• Handles MozActivity ‘save-bookmark’	

• Saves the entry in ‘bookmarks_store’
using BookmarksDatabase
save bookmark
System browser

More Related Content

PDF
jQuery Mobile Workshop
PDF
Rapid Application Development with SwiftUI and Firebase
PDF
Multi screen HTML5
PDF
Introduction to App Engine Development
PDF
SwiftUI and Combine All the Things
PDF
Begin three.js.key
PDF
Web gl & three.js.key
PDF
ENEI16 - WebGL with Three.js
jQuery Mobile Workshop
Rapid Application Development with SwiftUI and Firebase
Multi screen HTML5
Introduction to App Engine Development
SwiftUI and Combine All the Things
Begin three.js.key
Web gl & three.js.key
ENEI16 - WebGL with Three.js

Similar to System browser (20)

PDF
Webdriver io presentation
PPTX
Webinar: Building Your First Application with MongoDB
PDF
CUST-1 Share Document Library Extension Points
PDF
Browser and bookmark in FirefoxOS on Aug.21.2014
PPTX
PnP Webcast - Introduction to SharePoint Site Designs and Site Scripts
PPTX
MongoDB and Hadoop: Driving Business Insights
PPTX
Go Fullstack: JSF for Public Sites (CONFESS 2013)
PDF
Back to the 90s' - Revenge of the static website
PDF
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
PDF
ADF Mobile: 10 Things you don't get from the developers guide
PPT
Learn javascript easy steps
PPTX
Hdv309 - Real World Sandboxed Solutions
PDF
Who's afraid of front end databases?
PDF
SharePoint goes Microsoft Graph
PPTX
Windows 8 Pure Imagination - 2012-11-24 - Getting your HTML5 game Windows 8 r...
PDF
GDG Addis - An Introduction to Django and App Engine
PDF
MongoDB and Ruby on Rails
PDF
JUDCon 2014: Gearing up for mobile development with AeroGear
PPTX
Go Fullstack: JSF for Public Sites (CONFESS 2012)
PDF
WinAppDriver Development
Webdriver io presentation
Webinar: Building Your First Application with MongoDB
CUST-1 Share Document Library Extension Points
Browser and bookmark in FirefoxOS on Aug.21.2014
PnP Webcast - Introduction to SharePoint Site Designs and Site Scripts
MongoDB and Hadoop: Driving Business Insights
Go Fullstack: JSF for Public Sites (CONFESS 2013)
Back to the 90s' - Revenge of the static website
ADF Mobile: 10 Things you don't get from the developers guide - Luc Bors
ADF Mobile: 10 Things you don't get from the developers guide
Learn javascript easy steps
Hdv309 - Real World Sandboxed Solutions
Who's afraid of front end databases?
SharePoint goes Microsoft Graph
Windows 8 Pure Imagination - 2012-11-24 - Getting your HTML5 game Windows 8 r...
GDG Addis - An Introduction to Django and App Engine
MongoDB and Ruby on Rails
JUDCon 2014: Gearing up for mobile development with AeroGear
Go Fullstack: JSF for Public Sites (CONFESS 2012)
WinAppDriver Development
Ad

Recently uploaded (20)

PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PPTX
Introduction to Windows Operating System
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PPTX
GSA Content Generator Crack (2025 Latest)
PDF
Types of Token_ From Utility to Security.pdf
PDF
AI Guide for Business Growth - Arna Softech
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
CCleaner 6.39.11548 Crack 2025 License Key
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Microsoft Office 365 Crack Download Free
PDF
Topaz Photo AI Crack New Download (Latest 2025)
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Salesforce Agentforce AI Implementation.pdf
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
How to Use SharePoint as an ISO-Compliant Document Management System
Introduction to Windows Operating System
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
GSA Content Generator Crack (2025 Latest)
Types of Token_ From Utility to Security.pdf
AI Guide for Business Growth - Arna Softech
Advanced SystemCare Ultimate Crack + Portable (2025)
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
CCleaner 6.39.11548 Crack 2025 License Key
Weekly report ppt - harsh dattuprasad patel.pptx
Monitoring Stack: Grafana, Loki & Promtail
Microsoft Office 365 Crack Download Free
Topaz Photo AI Crack New Download (Latest 2025)
Computer Software and OS of computer science of grade 11.pptx
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
Wondershare Recoverit Full Crack New Version (Latest 2025)
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Why Generative AI is the Future of Content, Code & Creativity?
Salesforce Agentforce AI Implementation.pdf
Ad

System browser