SlideShare a Scribd company logo
1 of 37
Download to read offline
BrowserPlus™




                              The Gory Details


                                            The BrowserPlus Team
                                               Nov 18th, 2008
Thursday, November 20, 2008                                    1
agenda


                    1. Architectural Overview
                    2. End Users
                    3. Web Developers
                    4. Service Authors
                    5. Security Model


                                                BrowserPlus™
Thursday, November 20, 2008                                2
Architectural Overview

                              50 pix   36 pix


                                       16 pix

                                                  David Grigsby
                                                 Nov 18th, 2008
Thursday, November 20, 2008                                       3
big picture
                                         user html/css/js

         dist                            browserplus js
          dist
       servers
                                ActiveX                        NPAPI



                                                  daemon

                              service   service    service   service   service



                                                                                 BrowserPlus™
Thursday, November 20, 2008                                                                 4
browserplus.js


                    • Instantiates plugin object

                    • exposes core API

                    • 5k minified
                                                   BrowserPlus™
Thursday, November 20, 2008                                   5
plugins
                                          user html/css/js

                                           browserplus js

                                ActiveX                         NPAPI
                                  JS                            JS
                                       DnD                             DnD
                               Interop                       Interop

                                        Plugin Common Lib
                                 Session            User       File
                                         Utils                          DnD
                                  Mgmt             Prompt    Browse

                                             Protocol Lib

                                                 daemon
                              service    service   service   service   service

Thursday, November 20, 2008                                                      6
daemon

                                     BrowserPlusCore
                              Platform         Service        Usage
                              Update           Update        Reporting



                                     service       service
                                                                         logging
         permissions
                                                                         config


                                                                             BrowserPlus™
Thursday, November 20, 2008                                                             7
distribution servers


                    • platform (installers & updates)
                    • available services & descriptions
                    • permissions.smime
                    • stateless, BCP & redundant
                    • apache, REST
                                                          BrowserPlus™
Thursday, November 20, 2008                                          8
BrowserPlus for End Users

                               50 pix   36 pix


                                        16 pix

                                                  Gordon Durand
                                                  Nov 18th, 2008
Thursday, November 20, 2008                                        9
installation




                              • one time install of platform
                              • less than 2mb
                              • no restart, no reload          BrowserPlus™
Thursday, November 20, 2008                                              10
user prompting




                    • grant permissions
                    • install or update services
                    • tradeoff: transparency vs. usability
                                                             BrowserPlus™
Thursday, November 20, 2008                                            11
updates




                              • services and platform
                              • background download
                              • user-specific updates   BrowserPlus™
Thursday, November 20, 2008                                       12
control panel


                    • see / remove site permissions
                    • see what sites are using what services
                    • remove services
                    • disable or uninstall platform
                    • report bugs
                                                           BrowserPlus™
Thursday, November 20, 2008                                          13
BrowserPlus for Web Developers

                     50 pix   36 pix


                              16 pix
                                        Steve Spencer
                                       Nov 18th, 2008
Thursday, November 20, 2008                             14
getting started

                    • Include JavaScript
                    • Detect BrowserPlus
                    • Offer “upsell”
                    • Require services
                    • Use services
                    • The Toolbox
                                                BrowserPlus™
Thursday, November 20, 2008                               15
detection
 <script type=quot;text/javascriptquot;
     src=quot;http://bp.yahooapis.com/2.1.7/browserplus-min.jsquot;></script>

 <script type=quot;text/javascriptquot;>
 BrowserPlus.init(function(result) {
     if (result.success) {
         // require services
     } else if (result.error == quot;bp.notInstalledquot;) {
         // render upsell link
     } else if (result.error == quot;bp.unsupportedClientquot;) {
         // not supported on this client
     } else {
         // unexpected error
     }
 });
 </script>


                                                            BrowserPlus™
Thursday, November 20, 2008                                             16
upsell
                 (1) redirect              (3) in-page




                       (2) link
            Install BrowserPlus


                                                         BrowserPlus™
Thursday, November 20, 2008                                        17
require
            var tts = {
               service: “TextToSpeech”,
               version: “1”,
               miniversion: “1.0.2”
            };

            BrowserPlus.require(
               { services: [tts] },
               requireCB
            );


                                          BrowserPlus™
Thursday, November 20, 2008                         18
service versioning
               • major - api breaking change
               • minor - add optional parameter
               • micro - bug fix
               • service - name of service
               • version - (“1”, “1.2”, “1.2.3”)
               • minversion - minimum allowable version
                                                      BrowserPlus™
Thursday, November 20, 2008                                     19
using services

  • invocation
  BrowserPlus.Service.method({args}, asyncCB);

  • return object
  { success:true, value: “any object” }
            OR
  { success:false, error: “errorCode”,
    verboseError: “optional longer message” }

                                               BrowserPlus™
Thursday, November 20, 2008                              20
toolbox
                              (BrowserPlus in 1 line of code)

  • desktop notifications (fallback to html)
  BPTool.Notify.create().show(“My Title”, “My Message”);




  • drop-in uploading widget
  BPTool.Uploader.create(quot;uploaderquot;, {uploadUrl: quot;up.phpquot;}).render();




  • in-page installation experience
  BPTool.Installer.createDialog({}, myInitFunc);


                                                                BrowserPlus™
Thursday, November 20, 2008                                               21
where’s the doc




               http://browserplus.yahoo.com/developer/

                                                    BrowserPlus™
Thursday, November 20, 2008                                   22
BrowserPlus for Service Authors

                     50 pix   36 pix


                              16 pix
                                         Lloyd Hilaiel
                                        Nov 18th, 2008
Thursday, November 20, 2008                              23
what is a service?


                    • Implementation
                     • A binary shared library (.so or .dll)
                     • OR a ruby script
                    • Metadata - JSON “manifest” file
                    • whatever else you want...
                                                               BrowserPlus™
Thursday, November 20, 2008                                              24
how services fit

                                         BrowserPlusCore
                                             Daemon
   C Service API

                     C/C++     C/C++        C/C++
                     Service   Service      Service   Ruby Interpreter

                                                       Ruby      Ruby      Ruby
                                                      Service   Service   Service




                                                                                    BrowserPlus™
Thursday, November 20, 2008                                                                   25
Service API



                    • API definition - structure

                    •

                                                   BrowserPlus™
Thursday, November 20, 2008                                  26
Service API - interactions
     BrowserPlus to Service            Service to BrowserPlus
                 BPPGetEntryPoints()      BPCPostResults()

                 BPPInitialize()          BPCPostError()

                 BPPShutdown();           BPCLog();

                 BPPAllocate();           BPCInvokeCallback();

                 BPPDestroy();            BPCPromptUser();

                 BPPInvoke();

                 (attach/detach)

                                                             BrowserPlus™
Thursday, November 20, 2008                                            27
Service API - types
                    •     null              •   list

                    •     boolean           •   callback

                    •     integer           •   path

                    •     double            •   any

                    •     string

                    •     map



                                                           BrowserPlus™
Thursday, November 20, 2008                                          28
what’s coming

                    • Service API - C & Ruby

                    • most of our services - open source

                    • “SDK”

                    • full documentation
                                                           BrowserPlus™
Thursday, November 20, 2008                                          29
build your own


                    • getting started

                    • getting help

                    • getting published
                                               BrowserPlus™
Thursday, November 20, 2008                              30
BrowserPlus for Bad Guys

                               50 pix   36 pix


                                        16 pix

                                                  Lloyd Hilaiel
                                                 Nov 18th, 2008
Thursday, November 20, 2008                                       31
philosophy


                    • security through transparency (not
                              obscurity)
                    • leverage existing precedent
                    • meaningful prompting
                    • Explicit installation

                                                           BrowserPlus™
Thursday, November 20, 2008                                          32
security measures


                         • All sensitive content signed
                         • All components may be blacklisted
                         • Secure file handles
                         • Secure user prompting
                         • User controlled permissions
                                                               BrowserPlus™
Thursday, November 20, 2008                                              33
Secure file handles


                    • selected via interaction OR returned as
                              output
                    • Path removed, filename for display
                              purposes
                    • session scoped

                                                           BrowserPlus™
Thursday, November 20, 2008                                          34
help from our friends


                    • The “paranoids”

                    • Y! privacy group

                    • you.
                                                      BrowserPlus™
Thursday, November 20, 2008                                     35
contact us

                    • Questions, Support, Ideas:
                              http://developer.yahoo.net/forum/


                    • Partners:
                              browserplus-feedback@yahoo-inc.com


                    • Follow - twitter #browserplus & RSS
                                                                  BrowserPlus™
Thursday, November 20, 2008                                                 36
questions?




                                           BrowserPlus™
Thursday, November 20, 2008                          37

More Related Content

Similar to BrowserPlus - The Gory Details

AWS Customer Presentation - Gotuit
AWS Customer Presentation - Gotuit AWS Customer Presentation - Gotuit
AWS Customer Presentation - Gotuit Amazon Web Services
 
Nikolay Sh Wfs Overview
Nikolay Sh Wfs OverviewNikolay Sh Wfs Overview
Nikolay Sh Wfs OverviewLiudmila Li
 
Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKitAriya Hidayat
 
Gladinet Features
Gladinet FeaturesGladinet Features
Gladinet Featuresgladinet
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi DevelopmentPaul Fiore
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2Fabrizio Giudici
 
Writing Tools using WebKit
Writing Tools using WebKitWriting Tools using WebKit
Writing Tools using WebKitAriya Hidayat
 
The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)Joseph Chiang
 
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Amazon Web Services
 
Behind The Scenes At My Spacecom
Behind The Scenes At My SpacecomBehind The Scenes At My Spacecom
Behind The Scenes At My SpacecomConSanFrancisco123
 
Multimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/futureMultimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/futurephiln2
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Datadeimos
 
Introduction to First Commercial Memcached Service for Cloud
Introduction to First Commercial Memcached Service for CloudIntroduction to First Commercial Memcached Service for Cloud
Introduction to First Commercial Memcached Service for CloudGear6
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...mfrancis
 
Quickr support enablement
Quickr support enablementQuickr support enablement
Quickr support enablementAustin Chang
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDocker, Inc.
 

Similar to BrowserPlus - The Gory Details (20)

AWS Customer Presentation - Gotuit
AWS Customer Presentation - Gotuit AWS Customer Presentation - Gotuit
AWS Customer Presentation - Gotuit
 
Nikolay Sh Wfs Overview
Nikolay Sh Wfs OverviewNikolay Sh Wfs Overview
Nikolay Sh Wfs Overview
 
Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKit
 
GlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium ParisGlassFish v3 Prelude Aquarium Paris
GlassFish v3 Prelude Aquarium Paris
 
Gladinet Features
Gladinet FeaturesGladinet Features
Gladinet Features
 
Keynote I
Keynote IKeynote I
Keynote I
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi Development
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2
 
Writing Tools using WebKit
Writing Tools using WebKitWriting Tools using WebKit
Writing Tools using WebKit
 
FossBazaar TiddlyGuv Demo
FossBazaar TiddlyGuv DemoFossBazaar TiddlyGuv Demo
FossBazaar TiddlyGuv Demo
 
The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)
 
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
Hands-On: Deploy Remote Graphics Desktops for Content Production (CMP422) - A...
 
Behind The Scenes At My Spacecom
Behind The Scenes At My SpacecomBehind The Scenes At My Spacecom
Behind The Scenes At My Spacecom
 
Multimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/futureMultimedia in WebKitGtk+, past/present/future
Multimedia in WebKitGtk+, past/present/future
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
 
Introduction to First Commercial Memcached Service for Cloud
Introduction to First Commercial Memcached Service for CloudIntroduction to First Commercial Memcached Service for Cloud
Introduction to First Commercial Memcached Service for Cloud
 
Don Schwarz App Engine Talk
Don Schwarz App Engine TalkDon Schwarz App Engine Talk
Don Schwarz App Engine Talk
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
 
Quickr support enablement
Quickr support enablementQuickr support enablement
Quickr support enablement
 
DCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and ArchitectureDCEU 18: Docker Enterprise Platform and Architecture
DCEU 18: Docker Enterprise Platform and Architecture
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

BrowserPlus - The Gory Details

  • 1. BrowserPlus™ The Gory Details The BrowserPlus Team Nov 18th, 2008 Thursday, November 20, 2008 1
  • 2. agenda 1. Architectural Overview 2. End Users 3. Web Developers 4. Service Authors 5. Security Model BrowserPlus™ Thursday, November 20, 2008 2
  • 3. Architectural Overview 50 pix 36 pix 16 pix David Grigsby Nov 18th, 2008 Thursday, November 20, 2008 3
  • 4. big picture user html/css/js dist browserplus js dist servers ActiveX NPAPI daemon service service service service service BrowserPlus™ Thursday, November 20, 2008 4
  • 5. browserplus.js • Instantiates plugin object • exposes core API • 5k minified BrowserPlus™ Thursday, November 20, 2008 5
  • 6. plugins user html/css/js browserplus js ActiveX NPAPI JS JS DnD DnD Interop Interop Plugin Common Lib Session User File Utils DnD Mgmt Prompt Browse Protocol Lib daemon service service service service service Thursday, November 20, 2008 6
  • 7. daemon BrowserPlusCore Platform Service Usage Update Update Reporting service service logging permissions config BrowserPlus™ Thursday, November 20, 2008 7
  • 8. distribution servers • platform (installers & updates) • available services & descriptions • permissions.smime • stateless, BCP & redundant • apache, REST BrowserPlus™ Thursday, November 20, 2008 8
  • 9. BrowserPlus for End Users 50 pix 36 pix 16 pix Gordon Durand Nov 18th, 2008 Thursday, November 20, 2008 9
  • 10. installation • one time install of platform • less than 2mb • no restart, no reload BrowserPlus™ Thursday, November 20, 2008 10
  • 11. user prompting • grant permissions • install or update services • tradeoff: transparency vs. usability BrowserPlus™ Thursday, November 20, 2008 11
  • 12. updates • services and platform • background download • user-specific updates BrowserPlus™ Thursday, November 20, 2008 12
  • 13. control panel • see / remove site permissions • see what sites are using what services • remove services • disable or uninstall platform • report bugs BrowserPlus™ Thursday, November 20, 2008 13
  • 14. BrowserPlus for Web Developers 50 pix 36 pix 16 pix Steve Spencer Nov 18th, 2008 Thursday, November 20, 2008 14
  • 15. getting started • Include JavaScript • Detect BrowserPlus • Offer “upsell” • Require services • Use services • The Toolbox BrowserPlus™ Thursday, November 20, 2008 15
  • 16. detection <script type=quot;text/javascriptquot; src=quot;http://bp.yahooapis.com/2.1.7/browserplus-min.jsquot;></script> <script type=quot;text/javascriptquot;> BrowserPlus.init(function(result) { if (result.success) { // require services } else if (result.error == quot;bp.notInstalledquot;) { // render upsell link } else if (result.error == quot;bp.unsupportedClientquot;) { // not supported on this client } else { // unexpected error } }); </script> BrowserPlus™ Thursday, November 20, 2008 16
  • 17. upsell (1) redirect (3) in-page (2) link Install BrowserPlus BrowserPlus™ Thursday, November 20, 2008 17
  • 18. require var tts = { service: “TextToSpeech”, version: “1”, miniversion: “1.0.2” }; BrowserPlus.require( { services: [tts] }, requireCB ); BrowserPlus™ Thursday, November 20, 2008 18
  • 19. service versioning • major - api breaking change • minor - add optional parameter • micro - bug fix • service - name of service • version - (“1”, “1.2”, “1.2.3”) • minversion - minimum allowable version BrowserPlus™ Thursday, November 20, 2008 19
  • 20. using services • invocation BrowserPlus.Service.method({args}, asyncCB); • return object { success:true, value: “any object” } OR { success:false, error: “errorCode”, verboseError: “optional longer message” } BrowserPlus™ Thursday, November 20, 2008 20
  • 21. toolbox (BrowserPlus in 1 line of code) • desktop notifications (fallback to html) BPTool.Notify.create().show(“My Title”, “My Message”); • drop-in uploading widget BPTool.Uploader.create(quot;uploaderquot;, {uploadUrl: quot;up.phpquot;}).render(); • in-page installation experience BPTool.Installer.createDialog({}, myInitFunc); BrowserPlus™ Thursday, November 20, 2008 21
  • 22. where’s the doc http://browserplus.yahoo.com/developer/ BrowserPlus™ Thursday, November 20, 2008 22
  • 23. BrowserPlus for Service Authors 50 pix 36 pix 16 pix Lloyd Hilaiel Nov 18th, 2008 Thursday, November 20, 2008 23
  • 24. what is a service? • Implementation • A binary shared library (.so or .dll) • OR a ruby script • Metadata - JSON “manifest” file • whatever else you want... BrowserPlus™ Thursday, November 20, 2008 24
  • 25. how services fit BrowserPlusCore Daemon C Service API C/C++ C/C++ C/C++ Service Service Service Ruby Interpreter Ruby Ruby Ruby Service Service Service BrowserPlus™ Thursday, November 20, 2008 25
  • 26. Service API • API definition - structure • BrowserPlus™ Thursday, November 20, 2008 26
  • 27. Service API - interactions BrowserPlus to Service Service to BrowserPlus BPPGetEntryPoints() BPCPostResults() BPPInitialize() BPCPostError() BPPShutdown(); BPCLog(); BPPAllocate(); BPCInvokeCallback(); BPPDestroy(); BPCPromptUser(); BPPInvoke(); (attach/detach) BrowserPlus™ Thursday, November 20, 2008 27
  • 28. Service API - types • null • list • boolean • callback • integer • path • double • any • string • map BrowserPlus™ Thursday, November 20, 2008 28
  • 29. what’s coming • Service API - C & Ruby • most of our services - open source • “SDK” • full documentation BrowserPlus™ Thursday, November 20, 2008 29
  • 30. build your own • getting started • getting help • getting published BrowserPlus™ Thursday, November 20, 2008 30
  • 31. BrowserPlus for Bad Guys 50 pix 36 pix 16 pix Lloyd Hilaiel Nov 18th, 2008 Thursday, November 20, 2008 31
  • 32. philosophy • security through transparency (not obscurity) • leverage existing precedent • meaningful prompting • Explicit installation BrowserPlus™ Thursday, November 20, 2008 32
  • 33. security measures • All sensitive content signed • All components may be blacklisted • Secure file handles • Secure user prompting • User controlled permissions BrowserPlus™ Thursday, November 20, 2008 33
  • 34. Secure file handles • selected via interaction OR returned as output • Path removed, filename for display purposes • session scoped BrowserPlus™ Thursday, November 20, 2008 34
  • 35. help from our friends • The “paranoids” • Y! privacy group • you. BrowserPlus™ Thursday, November 20, 2008 35
  • 36. contact us • Questions, Support, Ideas: http://developer.yahoo.net/forum/ • Partners: browserplus-feedback@yahoo-inc.com • Follow - twitter #browserplus & RSS BrowserPlus™ Thursday, November 20, 2008 36
  • 37. questions? BrowserPlus™ Thursday, November 20, 2008 37