Italian C++ Community www.italiancpp.org Chromium as a framework Raffaele Intorcia Tiziano Cappellari.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Testing Web Applications & Services Testing Web Applications & Web Services.
The Client-Server Model for the Web 1. A Web Client (usually in the form of a web browser) makes an HTTP request to a specific web server. 2. The Web Server.
Rowan County Public Library. What Is a Web Browser? A web browser is a software application that allows you to browse the internet, provided that you.
HTML5 Haptics Standardization
Developing Cross-platform Web Browser Plugins and Extensions Bc. Márius Šajgalík PeWe seminar,
Reza hooshangi ( ). short history  One of the last major challenges for the web is to enable human communication via voice and video: Real Time.
Web browsers It’s a software application for retrieving and presenting information on WWW. An information resource is identified by a Uniform Resource.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 4: Web Browsing.
Lesson 4: Web Browsing.
Ellucian Mobile: Don’t text and drive, kids!
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
The Most Dangerous Code in the Browser Stefan Heule, Devon Rifkin, Alejandro Russo, Deian Stefan Stanford University, Chalmers University of Technology.
Mobile Application Development
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
MWD1001 – Website Production Web Browsers Week 11.
It’s always better live. MSDN Events Developing ASP.NET AJAX Controls with Silverlight.
Lecture 2: Technical Basics
Development of mobile applications using PhoneGap and HTML 5
Boris Tshibangu. What is a proxy server? A proxy server is a server (a computer system or an application) that acts as an intermediary for requests from.
Presented by…. Group 2 1. Programming language 2Introduction.
Android Introduction Platform Overview.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Mobile Application Development with ANDROID. Agenda Mobile Application Development (MAD) Intro to Android platform Platform architecture Application building.
About me Yichuan Wang Android Basics Credit goes to Google and UMBC.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 5: Multimedia on the Web.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Web Applications Harry R. Erwin, PhD University of Sunderland CIT304/CSE301.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
ASP.NET + Ajax Jesper Tørresø ITNET2 F08. Ajax Ajax (Asynchronous JavaScript and XML) A group of interrelated web development techniques used for creating.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
By Jonathan….and Darion……….. Reliability Windows File Protection protects core system files from being overwritten by application installs. Driver certification.
Peppermint OS ships with few native applications and a traditional desktop interface. In place of traditionally native applications for common tasks (word.
Asterisk based real-time social chat Advisor : Lian-Jou Tsai Student : Jhe-Yu Wu.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Cross Site Integration “mashups” cross site scripting.
SharePoint 2010 Search Architecture The Connector Framework Enhancing the Search User Interface Creating Custom Ranking Models.
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Wijmo Troy Taylor. What is Wijmo? -Wijmo is a kit of over 40 UI widgets, optimized for client-side web development. -HTML5 -jQuery -CSS3 -SVG.
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
1 3 Computing System Fundamentals 3.4 Networked Computer Systems.
REAL WORLD AJAX MARCH TIBCO USER CONFERENCE / 2004 Enterprise Rich Internet Applications with AJAX Real World Case Studies with TIBCO General Interface™
IIS and.Net security -Vasudha Bhat. What is IIS? Why do we need IIS? Internet Information Services (IIS) is a Web server, its primary job is to accept.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Paperless Timesheet Management Project Anant Pednekar.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
Microsoft’s Rich Web Technology XAML,WPF and WPF/E July, 2006 John Allwright.
INTERNET AND . WHAT IS INTERNET The Internet can be defined as the wired or wireless mode of communication through which one can receive, transmit.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
The Microsoft Technical Roadshow 2007 AJAX Development Mike Ormond Developer & Platform Group Microsoft Ltd
Arklio Studija 2007 File: / / Page 1 Automated web application testing using Selenium
Introduction to Dynamic Web Content
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
Lesson 4: Web Browsing.
Module 3 Building a web app.
Introduction to Dynamic Web Content
Application Development A Tutorial Driven Course
Lesson 4: Web Browsing.
Java Programming Introduction
Lesson 3 Web Browsers.
Running C# in the browser
Presentation transcript:

Italian C++ Community Chromium as a framework Raffaele Intorcia Tiziano Cappellari

Italian C++ Community About us Tiziano Cappellari Raffaele Intorcia

Italian C++ Community Reasons ●Develop a Web applications ●Full access to peripherals and data on the host o C++ native libraries ●Show UI as a desktop application

Italian C++ Community Browser customization ●Plugins o access to system resources ●Extensions o change browser user-interface and webpage content

Italian C++ Community Plugins ●Extends browser capabilities at web-page level ●Used by webpage when they explicit request it

Italian C++ Community Plugins Plugin-browser communication is made with predefined API: ●NPAPI: Firefox, Opera, Safari, Chrome ●PPAPI: Opera, Chrome ●WebKit Plugin: Safari ●ActiveX: Internet Explorer

Italian C++ Community NPAPI Netscape Plugin Application Program Interface ●Plugin multiplatform framework ●Supported by many browsers ●Deprecation process started by Google ●Unsecure

Italian C++ Community PPAPI Pepper Plugin Application Program Interface ●Use NPAPI as a starting point ●More secure and more portable (cross- platform) ●Limitation on functionalities if not trusted ●Limited browser support (Chrome, Opera)

Italian C++ Community ActiveX ActiveX controls ●Supported only by MS IE ●Opensource for some years ago ●Enable to do some operation usually not permitted but custom authorization is mandatory

Italian C++ Community Plugin summary Limitations ●There is no common interface for all browsers ●The access to the system resources is not always (or fully) allowed ●Plugin are one of the first security problems for browsers

Italian C++ Community Extensions ●Chrome: Apps and Extensions ●Firefox: AddOn ●Safari: Safari Extensions ●Internet Explorer: Bho, AddOn

Italian C++ Community Summary ●Plugins problems o browser dependent o deprecation o limited features ●Extensions problems o browser dependent o limited features on UI or device access

Italian C++ Community What we really need? ●A desktop application o for the access to the datas and peripherals o for the UI customization ●That can do the rendering of web pages maybe… i need my custom browser

Italian C++ Community My custom browser plus ●Full UI customization ●Provide fast access to my webapp internal services ●Update browser render engine only when my webapp is ready to run on it

Italian C++ Community My custom browser plus ●Can improve the standard browser security o only selected plugin and without extensions o only selected web resources ●Full access to system resources o and only for my web application ●Grant access to resources that normally cannot be used or accessible only with third-part tool

Italian C++ Community My custom browser opportunities ●Build a persistent communication channel (using external libraries like xmpp) ●Inform user about server operation ●Enable client-to-client communcation (e.g. chat, file transfer and also co-browser, remote support...)

Italian C++ Community My custom browser cons Limitations ●webapp can only be used with my browser o provide services that can be accessed and used with common browser ●custom browser is too complex to develop from scratch?

Italian C++ Community Chromium Project ●Google Chrome browser is based on the Chromium Project ●Cross-platform with more than 14 millions of SLOC, written mostly in C++ ●BSD-like License We can use it as a starting point for our browser customization

Italian C++ Community Chromium Project ●Framework for UI development (views) ●Sandbox library ●Network stack ●and also: o Sqlite wrap o URL parsing library o XML and JSON parser o Image decoders and compression libraries

Italian C++ Community Multi-process Architecture

Italian C++ Community Application Layers

Italian C++ Community Get the code and build ●Clone the Chromium GIT repository (use gclient from depot_tools) ●Generate project files with gyp ●Build with ninja and wait more than 2 hours on a 64 bit machine with 16 GB Ram, 4 cores References

Italian C++ Community Example on extending browser module Replace the chromium static method ::BrowserWindow* BrowserWindow::CreateBrowserWindow(::Browser* chrome_browser) with a factory static method defined on our project

Italian C++ Community Show me the code! ::BrowserWindow* BrowserWindow::CreateBrowserWindow(::Browser* chrome_browser) { my::BrowserView* view = new my::BrowserView(); scoped_ptr browser(new my::Browser(view)); browser->set_chromium_browser(scoped_ptr (chrome_browser)); view->Init(browser.Pass()); scoper_ptr frame(new my::BrowserFrame(view)); view->set_frame(frame.Pass()); frame->Show(); return view; }

Italian C++ Community Conclusions Generally speaking, browser customization is not a simple task, but ●offers the opportunity to combine the strengths of the web application with those of the desktop application, to increase security and usability ●avoid the browser compatibility problems or to accept passively the browser changes ●we are not starting from scratch but we are using as a basis one of the most popular browsers

Italian C++ Community Contacts Raffaele Intorcia - Tiziano Cappellari -