4.7  Browser Extensions

The developers of Firefox, Chrome and Chromium have thoughtfully provided some hooks into which BookMacster adds on its own software components which empower it to work more intimately with these browsers.  The software components which we provide to hook into them are called browser Extensions.

       Topics on this Page

4.7.1  Purposes of Browser Extensions

The Browser Extensions

In Google Chrome and related browsers, you can have a Toolbar Button like this…

In Firefox, you can have two Menu Items like this…

4.7.2  Management of Browser Extensions

The file components that comprise the Browser Extensions are included in the Synkmark, Markster or BookMacster application package, and controls to install them are in the app.  You do not need to download them separately; our apps will guide you to them.

The first time you command an import from or export to a web browser supporting an extension while it is running in the importing or exported profile,  Synkmark, Markster or BookMacster will install the extension components which will make quitting the browser unnecessary in future such imports or exports.  You must make two or three mouse clicks to “approve” the installation.  The browser app will guide you through this.

Manage Browser Extensions window

BookMacster also provides an interface to “manually” install, uninstall, and test browser extensions.  To access it, click in the application menu > Manage Browser Extensions.

In this window, the notation (Loaded) means that the extension is installed in the profile, and that the browser is running, in this profile.  Firefox can only run in one profile at a time.  Google Chrome can be running multiple profiles in different windows, each with its own extension loaded, or not, and once an extension is loaded, it will stay loaded even if all of its windows are closed.  Thus, clicking the Refresh button and noting whether extensions are (Loaded) and (Not Loaded) is the only true method to determine the current state of Sheep Systems’ Extensions in a given profile.

The More Tests… button at the bottom of the window exposes a test which gives an accounting of the Firefox and Chrome browser profiles in use, and also provides a little monitor which indicates whenever bookmarks change notifications are issued by our Firefox and Chrome, Canary and Chromium extensions.  This test may help determine the problem if you think Synkmark or BookMacster is not syncing when bookmarks changes occur in these browsers, but the Test buttons indicate OK.  (This type of problem is often caused by a mixup in browser profiles.)

4.7.3  Updates

In order to add new features, fix bugs, or maintain compatibility, just like Synkmark, Markster or BookMacster, although less often, our browser Extensions are occasionally updated to a new version.  Again, such updates are shipped inside Synkmark, Markster and BookMacster updates and you shouldn’t need to worry about them.  Each time one of these apps launches, it checks the versions of any already installed browser extensions, and installs any updates that are necessary.  You may be asked to assist with a mouse click or two, to indicate your approval.

4.7.4  File Components

The files that comprise our browser Extensions are all installed into your Home’s Library.

Firefox

Our two Firefox extensions each contain (the same) JavaScript XPCOM Component to facilitate communication with Synkmark, Markster or BookMacster via  a js-ctypes dynamic library.

The Sheep Systems Sync Extension is installed for syncing with the browser’s bookmarks.  This includes importing or exporting while Firefox is running, and notifying Synkmark or BookMacster of changes that need to be imported and synced to other Clients.

The Sheep Systems Menu Extension adds the Add Quickly and Add & Inspect menu items to Firefox’ Bookmarks menu.  These menu items send bookmarks to Synkmark, Markster, or BookMacster directly, as one of the tools available for using BookMacster directly.

The two extensions are initially installed at

   path/to/your-profile-folder/extensions/staged/syncextension@sheepsystems.com    path/to/your-profile-folder/extensions/staged/menuextension@sheepsystems.com

and then after the next time Firefox launches, Firefox moves them to

   path/to/your-profile-folder/extensions/syncextension@sheepsystems.com    path/to/your-profile-folder/extensions/menuextension@sheepsystems.com

Until Synkmark/Markster/BookMacster version 2.0.7 (December 2015), we had a single Firefox extension, which served both purposes, named Sheep Systems Firefox Extension.  That is no longer used.  If you see it in Firefox, you should remove it.

Chrom-ish Browsers (Chrome, Canary, Chromium)

Our Extensions for the Chrom-ish browsers (Chrome, Canary and Chromium) each consist of one or two extensions.

The BookMacster Sync extension is installed for syncing with the browser’s bookmarks.  This includes importing or exporting while the Chrom-ish browser is running, and importing or exporting if you are signed into Chrome and have enabled Bookmarks syncing, whether the browser is running or not, and notifying Synkmark or BookMacster of changes that need to be imported and synced to other Clients.

The BookMacster Button extension provides the toolbar button which may be used to send bookmarks to Synkmark, Markster, or BookMacster directly, which is one of the tools available for using BookMacster directly.

Depending on whether you want syncing, the toolbar button, or both, either or both extension may be installed in any given browser/profile.

Both of these extensions communicate with Synkmark, Markster or BookMacster via our Chromessenger helper tool, which resides in the Synkmark, Markster or BookMacster application package.  When you launch any of the Chromish browsers, it launches one Chromessenger process for each User Profile into which either of our Chromish extensions is installed.  When you install one of our extensions, it also installs a special manifest file in the NativeMessagingHosts subdirectory of the browser’s application support directory, for examples…

   ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.sheepsystems.chromessenger.json    ~/Library/Application Support/Google/Chrome Canary/NativeMessagingHosts/com.sheepsystems.chromessenger.json    ~/Library/Application Support/Chromium/NativeMessagingHosts/com.sheepsystems.chromessenger.json

In addition to the Manage Browser Extensions window in Synkmark, Markster or BookMacster, you can also observe and control the status of our two extensions in the Chrom-ish browser, by clicking in its main menu: Window > Extensions.

Until Synkmark/Markster/BookMacster version 2.0.3 (November 2015), BookMacster Sync version 21 and BookMacster Button version 13, inclusive, our two extensions were installed as External Extensions.  Google no longer allows External Extensions in Chrome for OS X.  If you see any of these old or older versions of our extensions in Chrome, you should remove them.

Prior to Synkmark/Markster/BookMacster version 1.22.9 (July 2014), our Chrom-ish extensions required an NPAPI Plugin, installed at

   ~/Library/Internet Plug-Ins/SheepSystemsNPAPIPlugin.plugin

It is not used by versions 1.22.9 or later of our apps, and these versions will delete it upon launching.  If you find any SheepSystemsNPAPIPlugin.plugin left hanging around anywhere, you should delete it.