Your SlideShare is downloading. ×
0
BrowserPlus™




                              The Gory Details


                                            The BrowserP...
agenda


                    1. Architectural Overview
                    2. End Users
                    3. Web Develop...
Architectural Overview

                              50 pix   36 pix


                                       16 pix

   ...
big picture
                                         user html/css/js

         dist                            browserplu...
browserplus.js


                    • Instantiates plugin object

                    • exposes core API

               ...
plugins
                                          user html/css/js

                                           browserplus...
daemon

                                     BrowserPlusCore
                              Platform         Service       ...
distribution servers


                    • platform (installers & updates)
                    • available services & de...
BrowserPlus for End Users

                               50 pix   36 pix


                                        16 pix...
installation




                              • one time install of platform
                              • less than 2m...
user prompting




                    • grant permissions
                    • install or update services
              ...
updates




                              • services and platform
                              • background download
    ...
control panel


                    • see / remove site permissions
                    • see what sites are using what se...
BrowserPlus for Web Developers

                     50 pix   36 pix


                              16 pix
              ...
getting started

                    • Include JavaScript
                    • Detect BrowserPlus
                    • O...
detection
 <script type=quot;text/javascriptquot;
     src=quot;http://bp.yahooapis.com/2.1.7/browserplus-min.jsquot;></sc...
upsell
                 (1) redirect              (3) in-page




                       (2) link
            Install Brow...
require
            var tts = {
               service: “TextToSpeech”,
               version: “1”,
               minive...
service versioning
               • major - api breaking change
               • minor - add optional parameter
          ...
using services

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

  • return object
  { success:true, value: ...
toolbox
                              (BrowserPlus in 1 line of code)

  • desktop notifications (fallback to html)
  BPTo...
where’s the doc




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

                                              ...
BrowserPlus for Service Authors

                     50 pix   36 pix


                              16 pix
             ...
what is a service?


                    • Implementation
                     • A binary shared library (.so or .dll)
   ...
how services fit

                                         BrowserPlusCore
                                             Da...
Service API



                    • API definition - structure

                    •

                                  ...
Service API - interactions
     BrowserPlus to Service            Service to BrowserPlus
                 BPPGetEntryPoint...
Service API - types
                    •     null              •   list

                    •     boolean           •   ...
what’s coming

                    • Service API - C & Ruby

                    • most of our services - open source

   ...
build your own


                    • getting started

                    • getting help

                    • getting ...
BrowserPlus for Bad Guys

                               50 pix   36 pix


                                        16 pix
...
philosophy


                    • security through transparency (not
                              obscurity)
           ...
security measures


                         • All sensitive content signed
                         • All components may ...
Secure file handles


                    • selected via interaction OR returned as
                              output
 ...
help from our friends


                    • The “paranoids”

                    • Y! privacy group

                   ...
contact us

                    • Questions, Support, Ideas:
                              http://developer.yahoo.net/foru...
questions?




                                           BrowserPlus™
Thursday, November 20, 2008                        ...
Upcoming SlideShare
Loading in...5
×

BrowserPlus - The Gory Details

2,414

Published on

A walk through the implementation of BrowserPlus.

Published in: Technology, Design
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,414
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "BrowserPlus - The Gory Details"

  1. 1. BrowserPlus™ The Gory Details The BrowserPlus Team Nov 18th, 2008 Thursday, November 20, 2008 1
  2. 2. agenda 1. Architectural Overview 2. End Users 3. Web Developers 4. Service Authors 5. Security Model BrowserPlus™ Thursday, November 20, 2008 2
  3. 3. Architectural Overview 50 pix 36 pix 16 pix David Grigsby Nov 18th, 2008 Thursday, November 20, 2008 3
  4. 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. 5. browserplus.js • Instantiates plugin object • exposes core API • 5k minified BrowserPlus™ Thursday, November 20, 2008 5
  6. 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. 7. daemon BrowserPlusCore Platform Service Usage Update Update Reporting service service logging permissions config BrowserPlus™ Thursday, November 20, 2008 7
  8. 8. distribution servers • platform (installers & updates) • available services & descriptions • permissions.smime • stateless, BCP & redundant • apache, REST BrowserPlus™ Thursday, November 20, 2008 8
  9. 9. BrowserPlus for End Users 50 pix 36 pix 16 pix Gordon Durand Nov 18th, 2008 Thursday, November 20, 2008 9
  10. 10. installation • one time install of platform • less than 2mb • no restart, no reload BrowserPlus™ Thursday, November 20, 2008 10
  11. 11. user prompting • grant permissions • install or update services • tradeoff: transparency vs. usability BrowserPlus™ Thursday, November 20, 2008 11
  12. 12. updates • services and platform • background download • user-specific updates BrowserPlus™ Thursday, November 20, 2008 12
  13. 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. 14. BrowserPlus for Web Developers 50 pix 36 pix 16 pix Steve Spencer Nov 18th, 2008 Thursday, November 20, 2008 14
  15. 15. getting started • Include JavaScript • Detect BrowserPlus • Offer “upsell” • Require services • Use services • The Toolbox BrowserPlus™ Thursday, November 20, 2008 15
  16. 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. 17. upsell (1) redirect (3) in-page (2) link Install BrowserPlus BrowserPlus™ Thursday, November 20, 2008 17
  18. 18. require var tts = { service: “TextToSpeech”, version: “1”, miniversion: “1.0.2” }; BrowserPlus.require( { services: [tts] }, requireCB ); BrowserPlus™ Thursday, November 20, 2008 18
  19. 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. 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. 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. 22. where’s the doc http://browserplus.yahoo.com/developer/ BrowserPlus™ Thursday, November 20, 2008 22
  23. 23. BrowserPlus for Service Authors 50 pix 36 pix 16 pix Lloyd Hilaiel Nov 18th, 2008 Thursday, November 20, 2008 23
  24. 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. 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. 26. Service API • API definition - structure • BrowserPlus™ Thursday, November 20, 2008 26
  27. 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. 28. Service API - types • null • list • boolean • callback • integer • path • double • any • string • map BrowserPlus™ Thursday, November 20, 2008 28
  29. 29. what’s coming • Service API - C & Ruby • most of our services - open source • “SDK” • full documentation BrowserPlus™ Thursday, November 20, 2008 29
  30. 30. build your own • getting started • getting help • getting published BrowserPlus™ Thursday, November 20, 2008 30
  31. 31. BrowserPlus for Bad Guys 50 pix 36 pix 16 pix Lloyd Hilaiel Nov 18th, 2008 Thursday, November 20, 2008 31
  32. 32. philosophy • security through transparency (not obscurity) • leverage existing precedent • meaningful prompting • Explicit installation BrowserPlus™ Thursday, November 20, 2008 32
  33. 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. 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. 35. help from our friends • The “paranoids” • Y! privacy group • you. BrowserPlus™ Thursday, November 20, 2008 35
  36. 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. 37. questions? BrowserPlus™ Thursday, November 20, 2008 37
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×