Building Google Chrome Extensions

Google Chrome provides a number of powerful APIs for creating browser extensions. Using existing web development skills, you can make an extension that reads a site’s content, adds context menu options, manage tabs, and more. Outside of a few restrictions in the name of security, most features that you could think of are possible!

One great perk of Chrome Extensions is that they are hosted within the browser itself and often do not require backend services. This makes them an excellent option for a first ‘real’ software product! You can easily make a useful extension on your own and release it publicly – perfect for a portfolio or as an open source project – without worrying about the cost or potential headaches of hosting!

We’ll start with the basics – the structure of an extension, the manifest.json file, and the process for adding a new extension to chrome – before going into a brief overview of the tooling and generators available.

I’ll cover the different ‘hooks’ within the browser that you can tap in to with your own HTML, CSS and Javascript, including:

  • Browser Actions
  • Context Actions
  • Content Scripts
  • Background Pages
  • Context Menu Options

I’ll also discuss some of the more important APIs exposed by Chrome, such as:

  • Tabs
  • Storage
  • Identity
  • Alarms
  • History

Finally, I’ll discuss some key concepts for making more advanced extensions, like:

  • Messaging
  • XHR/CORS
  • Authentication
Experience level: 
Intermediate
Session Time Slot(s): 
Time: 
Sep 11 2015 - 4:00pm-Sep 11 2015 - 4:50pm
Room: 
163
Allowed Types: 
Session
Sessions Topics: 
Speaker Bio(s): 

Tim Beck is a Software Developer with Financial Partners working on single page web applications. He is experienced with the Microsoft web stack, Node.js , and HTML5 applications using technologies like Angular, Knockout, jQuery, and LESS. He has done a lot of work with performance, tooling, and improving developer quality-of-life. His recent emphasis has included web scraping, Chrome extensions, machine learning, and natural language processing. In his spare time Tim is an active game developer, with an emphasis on tool creation.