Friday, October 7, 2016

An Extension of your Library

If I have said it once, I have said it a dozen times: The best part of teaching is what I learn along the way. Tonight, in a Google class at a local college, I learned about an extension called Library Extension.

Library extension is a simple but powerful concept. Install the extension and indicate the libraries you patronize. Then, when you browse books at websites like amazon or Barnes and Noble, the extension will search local libraries to see if they have the book and if it is available to be borrowed. 

Take a look at these screenshots:

I was browsing for the book Rain Reign and a overlay appears on the right that indicates which of my local libraries have the book available for borrowing. When you find an available copy, clicking on the Borrow button opens a new tab for the library website so you can arrange the hold.

When looking for a Harry Potter book at Barnes and Noble website, the same type of information is available:

This is a really simple concept, but a great one. Often, I am looking for books in one place and then opening new tabs, sometimes for several libraries, and searching them so that I can reserve the books. This extension eliminates several steps. Plus, they have a form for suggesting other libraries to include in their list of over 1200 already included. I have already filled out the form for a library I found missing from the list.

This is a Chrome extension only so far, but the website reports that Firefox is also in the works. Check this one out today!


  1. I started to try it, but it asked for permission to read and change the data on all Web sites I visit. I would NEVER give that permission to any app.. thanks anyway. I dropped a note to the developer; let's see what they respond with. --DrWeb

    1. From the developer:

      Why does the extension require permission to "Read and change all your data on the websites you visit"?
      This is a common question, and a very good one. Note that the library extension does not track your browsing history or store any information about the pages you visit or anything you enter on those pages. To understand the permission and how and why it's used, let's look at how browser permissions work and each portion of the permission above.

      The permissions given to a browser extensions come from configuration that the extension provides to the browser. This configuration indicates the capabilities it requires in order to function. These permissions are a fixed set of values at the time that the extension is installed. In the case of the Library Extension, we request a permission that allows us to run code within the pages that you are browsing (called 'content scripts') that is defined as 'Read and change all your data on the websites you visit'.

      The content scripts we run need to be able to 'read all of your data' on the page in order to find the search terms that will be used to try and find matches at your library. This information is limited to trying to determine the type of item (book, CD, etc), the title, the author, and any ISBN numbers, as defined by the various pages we run on.

      The 'change all of your data' permission is required so that we can present the results on the same page. It's a strongly worded permission, and rightfully so, as anything on the page is open to modification by the script. However, we add one special section on the page within which we displayed the library search results for users.

      Finally, the permission allows for the above on all 'the websites you visit'. The extension does run the content script for every page, where it checks to see if it is on one of the following sites, and only then will it actually do the work described above:









      • (this site)

      If the page you are on is not one of the above pages, the extension stops running. There is no tracking nor any other messages passed back regarding the pages that you are visiting.

      The reason for running on all sites is that although the extension supports only the sites listed above today, we do occassionally add support for a new site or feature. Unfortunately, the permissions model provided by the browser is a 'set once' model when the extension is installed, and cannot be changed incrementally. Adding support for any new site would be a permissions change that would disable the extension for most existing users.

      If browsers were to provide a more user-selective way toward choosing which sites can be enabled or disabled, we would certainly look at taking advantage of that mechanism for limiting where the extension is permitted to run.