Writing Browser Extensions for fun and profit

1,035 views

Published on

A HelsinkiJS talk given by Oleg from https://starthq.com

The video of this talk is available at http://youtu.be/J8KGguflMCc

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,035
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Writing Browser Extensions for fun and profit

  1. 1. Browser Extensions for fun and/or profit writing
  2. 2. Browser extensions - why bother? ● Fact: users have short attention spans ● Extensions can be contextual ● Extensions can be unobtrusive ● Extra functionality ○ Add buttons to and extend browser chrome ○ Run tasks in the background ○ Modify pages you visit ○ Access browser history, storage
  3. 3. Anatomy of an Extension ● Background page ○ Can modify browser chrome ● Content scripts ● Extension page (in Chrome, optional) ● Use message passing to talk to each other
  4. 4. Extension APIs ● Chrome ○ Up to date, comprehensive, with examples ● Firefox ○ Multiple versions: native, Jetstrap, C++ - defaults to Mongolian, obvious things hard to do ● Opera ○ Docs non-existent, Opera.Next ● IE - BHO, COM, ATL
  5. 5. Dev Tools ● Chrome ○ DevTools, filesystem, local deployment ● Firefox ○ builder.addons.mozilla.org, cfx ● Opera ○ Drag config.xml into browser
  6. 6. Deployment ● Chrome ○ CRX, upload ZIP to Chrome Web Store ● Firefox ○ cfx, upload XPI to addons.mozilla.org ● Opera ○ upload ZIP to addons.opera.com
  7. 7. Review Process & Updates ● Chrome ○ No review process ○ Updates available to all users within a day automatically ● Firefox ○ Human reviews, takes ~10 days ○ Updates have to be done manually by users ● Opera ○ Human reviews, takes two weeks or more ○ Update mechanism unclear
  8. 8. Distribution ● Chrome ○ Dashboard shows stats + number of current installs, GA, ratings/reviews/keywords drive traffic ● Firefox ○ Dashboard shows stats + number of current installs, little traffic, locale defaults to Mongolian ● Opera ○ No stats, can’t search by name, indexed by Google
  9. 9. Examples ● Meetin.gs ○ content script injects Meet Me buttons ○ watches for DOM mutations ○ pulls data out of page with CSS selectors ● StartHQ ○ replaces new tab page ○ populates launcher based on browsing history ○ ...
  10. 10. Thank you! starthq.com

×