4.6  Clients

A Client is usually a web browser.  More generally, a client is a thing from which a Bookmarkshelf will get bookmarks content during its Import, and to which it will send them during its Export.  In the first context, it is referred to as an Import Client and in the second, an Export Client.  You add and remove Clients in the Import and Export tables in a Bookmarkshelf’s Settings > Clients tab.

       Topics on this Page

4.6.1  Types of Clients

There are actually four types of clients.

Most often, a Client is a locally-installed web browser app, with its bookmarks in your Mac account.  Client “Safari” simply means your Safari bookmarks.  For browser apps that support multiple profiles, each profile is a different Client.

A Client can also be a web-based browser app account.  If you have multiple accounts, for example, two Delicious accounts, each will appear as a separate Client in BookMacster.

A Client may also reference the bookmarks of a particular locally-installed web browser app on another Mac account on your network, for example, the Opera bookmarks in account Suzie in server Old Powerbook.  This will appear in the popup menu as “Old Powerbook:Suzie:Opera 10”.

Finally, a Client can be a loose file  of bookmarks which you accessed using the Choose File (Advanced) menu item.  BookMacster tracks this file using the path and file alias mechanism built into Mac OS X.

4.6.2  Proprietary Syncing Services

Major web browser publishers now provide proprietary sync services] for your bookmarks, open tabs, browsing history and other data among their browsers on multiple devices.  For syncing, you may need to consider how they interact with BookMacster.  The following list gives links to the instructions you need to control these services.

4.6.3  Client Controls

Controls for Clients are in BookMacster’s document window, tab Settings > Clients.

Note that the settings in this tab are not kept in the .bkmslf document.  Instead, they are Local Settings.

Client Popup

The tab contains a popup menu for each Client, in which you select the target browser/service/account of a Client.  Clients found on your Macintosh User Account are listed explicitly.  Otherwise, you can click one of the special menu items at the bottom:

After clicking one of these special items, appropriate dialogs will appear for navigation, account or application identification, and/or authentication as required.

Import and Export Checkboxes

For normal syncing of bookmarks, leave both the Import and Export checkboxes switched ON.

If you don’t want bookmarks changes from the Client to be synced to BookMacster, other Clients, other Macs, etc. then switch off Import.  If you don’t want the Client to get bookmarks changes from BookMacster, other Clients, other Macs, etc. then switch off Export.  In either case, you’ll probably also want to change some of the Advanced Settings…

Advanced Client Settings

Mapping data such as bookmarks from the format used by one application (Client) into that of another always involves decisions and often compromises, which we call remapping.  BookMacster tries to handle these in the way you expect, and usually the default results are satisfactory.  But BookMacster provides many controls for those who want to more precisely set the behavior of Import and Export operations.  They are available in two contexts…

Per-Client Contexts

To the right of each Client listed in Settings > Clients tabs is a small button with a gear icon.  Clicking this button displays a sheet of the Advanced Settings for that particular Client.  In the sheet, you’ll see sub-contexts Import, Export and Special in which the settings are applied.  The Special subsection is for settings which are only applicable to a certain Client type, and therefore will not be shown for all Clients.

Import Postprocessing Context

Besides making adjustments during an Import operation for each Client, a few adjustments, for example Delete Unmatched Items, cannot be performed until after all Clients have been imported.  You can set the parameters for these adjustments by clicking the larger button with a gear icon nearest the top of the Settings > Clients tab.

Reordering Buttons

By clicking the up and down triangles at the far right, you can arrange the order of which Clients’ imports and exports.  This may make a difference when bookmarks content is imported.  For example, if two Clients each have a bookmark with the same URL, and are set to merge by URL, which of the two is actually imported is affected by which one is imported first.  (Note that BookMacster normalizes URLs.)  For Export operations, however, because exporting does not affect the Bookmarkshelf’s content, the order of Clients does not matter.

Client Name in Red, prefixed by X

If a Client’s name appears in a red font, prefixed by a heavy red X, that means the Client’s bookmarks data can no longer be found on the disk, and thus it is defunct.  There are three ways to resolve this situation:

Firefox clients, in particular, will go defunct after you have  somehow caused a Firefox Reset, because in so doing, Firefox suffixes the re-created profile name with a unix epoch timestamp.  In this case, you should see the new client/profile in the popup, available for reassignment.

4.6.4  Warning to power users

Your knowledge of where bookmarks files are stored is nice but dangerous.   Do not use the Choose File advanced feature if you simply want to access the bookmarks of a locally-installed app.  Doing so will make browser-related triggers unavailable and bypass checking to see whether or not a browser is running when later executing an Import or Export, which can result in bookmarks loss or corruption.  To set, for example, your Safari bookmarks as a Client, simply click “Safari” in the Clients popup menu.  And, by the way, never touch Safari’s Bookmarks.plist file while Safari or Bookmarks syncing is switched on in iCloud in your System Preferences.  If not done properly, iCloud will quietly raise hell, not always immediately.

4.6.5  How BookMacster Accesses Client’s Content

In order to execute an Import or Export command, BookMacster must somehow access the bookmarks content of the Client that you chose in the popup menu in Settings > Clients.

This section explains how that is done, for each of the different types of Clients.

Accessing Locally-Installed Browser Apps’ Bookmarks

Bookmarks in your Macintosh User Account

BookMacster has two methods for importing from and exporting to Locally-installed browser apps (Safari, Firefox, etc.).  BookMacster automatically chooses the appropriate method based on current conditions.

The quick direct sync is to import from and/or export to the file or files on the disk which the browser app itself uses.  This is the only method available with Safari.  Safari allows BookMacster to do this while Safari is running, provided that BookMacster is careful to maintain iCloud data.  This is also the only method availalable with Opera and the older browsers, although in these cases BookMacster must quit the browser before importing and/or exporting.  If the desired operation cannot be safely performed without quitting a running browser app, BookMacster presents a dialog asking you if it is OK to quit the app, and then to re-launch it when done.  BookMacster can also use the quick direct sync for Chrome and Firefox.

The other method is the coordinated sync.  This method, which is only available in Chrome and Firefox, communicates the import or export through a browser add-on, and hence works while a browser app is running.  BookMacster installs the browser add-on into your browser profile when you add Chrome or Firefox as a Client.  For Chrome, this is done silently, while Firefox requires your OK.

Launch Browser to Coordinate with Other Sync Services

In multi-device sync configurations, BookMacster’s imports and exports must be coordinated with other services sign as Chrome’s Sign In to Google or Firefox’ Firefox Sync, and in general this means that the coordinated sync described above must be used, and therefore the browser must be launched if it is not running.

A simple example explains why.  Say that BookMacster is syncing Safari and Chrome, and you also have Chrome on your iPhone synced to Chrome on your Mac via Sign in to Google.  When you add a new bookmark in Safari, BookMacster could export that to Chrome using the quick direct sync if Chrome was not running, but only Chrome can push that new bookmark to Chrome on your iPhone, which won’t happen if Chrome is not running.  The same thing happens in the reverse direction; a bookmark added to Chrome on your iPhone can not show up in BookMacster or Safari without Chrome’s help.

Therefore, before an Import or Export, if Chrome or Firefox are involved and are not running, BookMacster looks to see if Sign in to Google or Firefox Sync are active in the profiles involved, and if so, by default it automatically launches Chrome or Firefox.

You can control this behavior by clicking the tab Settings > Clients, and then clicking the Advanced Client Settings (gear) button for the subject Chrome or Firefox profile.

In the Special Settings section you will see a popup menu to set launch browser during Syncs.

If you do not want to leave Chrome or Firefox running in the background, and you find it annoying when BookMacster launches them automatically, and you don’t mind bookmarks syncing being delayed, or occasional omitted bookmarks due to conflicts, you may change this setting to Never.

The opposite situation arises if you using another external syncinc service instead of the built-in Sign in to Google or Firefox Sync.  In this case, such a service may have its own add-on installed into Chrome or Firefox, and again, BookMacster should launch Chrome or Firefox prior to an import or export in order to coordinate syncing with it.  But BookMacster is not aware of external syncing services.  To fix this, you can make sure that syncing is always properly coordinated by setting the popup to Always.

But you can make all of the above moot.  There are two other solutions to eliminate the annoyance of browsers launching and quitting while maintaining reliable bookmarks sync.

Solution 1.  If you are not using Chrome or Firefox on other devices, and do not need Sign in to Google or Firefox Sync, turn them off.  That is, for Chrome Sign out of your Google account, or at least switch off the Bookmarks option under Advanced Sync Settings.  For Firefox, in Preferences > Sync, either Unlink this Device or at least switch off the Bookmarks checkbox.

Solution 2.  add Firefox or Chrome to your Login Items, and just leave them running.  You can close all of their windows if you are not using them.  With no open windows, there is not much activity, and, thanks to the use of modern virtual memory by Mac OS X, there will not be any noticeable performance degradation.   This is even more so if you have Mac OS X 10.9 which features App Nap.  I hardly ever bother quitting apps on this MacBook Air.  Currently it has been running or sleeping for 4 days, and I have 35 apps running.

Bookmarks in Other Macintosh User Accounts

When you set a Client on an Other Macintosh User Account, BookMacster accesses the same file it would access normally, except if looks in a different Home Folder.  If this Home Folder is on a different Mac, BookMacster will present the usual dialogs necessary to “mount” the filesystem of the other Mac.  This is the same as what happens when in Finder when you “browse” and “connect to” a server.

Whether on your Mac or another Mac, authentication may be required.  If BookMacster cannot obtain the required credential from your Mac OS X Keychain, it will ask you.  However, if one of BookMacster’s Agent’s Workers cannot obtain a required credential or cannot mount a required server for some reason, it will simply fail and try again the next time it is triggered.

In contrast to how BookMacster accesses bookmarks in your Macintosh User Account (explained in the previous section), on other Mactintosh user accounts, only the quick direct sync method is available.  Neither BookMacster nor its Workers check to see if a web browser is running when accessing files on an Other Macintosh User Account, although it does warn you to check.  Thus, if you are using this advanced feature, you need to be careful about whether or not web browsers are running in the other account.  To be safe, just quit them before importing or exporting.

In order to help identify a Client in the common situation where people have a similarly-named user account on multiple Macs, BookMacster remembers and displays the server name on which the file resides.

Accessing Web Apps

The bookmarks of web-based browser apps such as Delicious can be accessed at any time, typically using an “application programming interface” (API).  Where available, BookMacster uses such an API.  The web apps’ operation “in the cloud” take care of synchronizing changes uploaded and downloaded by BookMacster, although occasionally glitches occur.

Accessing content from a web app requires that BookMacster be able to get a password from your Mac OS X Keychain If you want a BookMacster Agent to be importing from or exporting to a web app, when setting the Client, make sure to check the box that says Keep in my Mac OS X Keychain.

In order to minimize loading on their servers, web apps require that BookMacster maintain a local cache of your bookmarks content.  Sometimes a glitch may result in the  server telling BookMacster that its local cache is synchronized with their data when in fact it is not.  If you are seeing inconsistencies between BookMacster and a web app, you can force BookMacster to re-download all bookmarks content from the server on the next import by emptying BookMacster’s local cache.  To do this, in the menu click BookMacster > Empty Cache.  The web apps don’t like if you do this too frequently (within minutes) and may temporarily ban your IP address if they feel offended.  BookMacster keeps track of this for you, if you are in danger of being banned, usually warns you and refuses to perform the command.

Accessing Bookmarks in Loose Files

When you set a Client using the Choose File (Advanced). item in the popup menu it the Import or Export table, BookMacster remembers the Macintosh file system’s “alias” so that if you move the file, it cam still be found.  Again, no checks or warnings on browser running are made before performing an Import or Export.