KIT Instabilty and Input Managers

Some people experience instability with KIT where it can crash at random moments, while for others, developer included, it appears to be mostly rock solid. The recurring theme of random, mysterious crashes and KIT seems to be input managers with the crash occurring in Apple code – i.e. nowhere near anything I can change.

John Gruber has already written an excellent description of Input Managers in a post about Smart Crash Reports on Daring Fireball, so I may as well quote him here:

Input managers are loaded by most Mac OS X applications — including all Cocoa apps, but also many modern Carbon apps as well — soon after they launch.

The supported purpose for input managers is to allow developers to define new ways for users to enter text. However, the code in an input manager can pretty much do what it wants to inside an application’s address space, and so thus, input managers have turned into an unofficial channel for hacking system and application behavior. E.g., most of the hacks euphemistically described as “plug-ins” on Jon Hicks’s Pimp My Safari web site — such as Saft and PithHelmet — are input manager hacks. “Plug-ins” implies the use of a legitimate API intended for extending or modifying an application; Safari, unfortunately, has no plug-in API, so any developer wishing to extend or modify Safari must resort to unsupported mechanisms such as input managers.

As stated before, every installed input manager loads into (nearly) every application. Input managers that are targeting one specific application, such as the way Saft and PithHelmet patch Safari or the way Smart Crash Reports patches Crash Reporter, typically perform some identifier checking so as only to deliver their actual payload inside the application they’re targeting. But, no bones about it, the nature of input managers is such that they’re loaded into every app on your system.

I have a suspicion that problems occur because KIT swaps a lot of views in and out and I have a workaround in mind, but due to the seemingly random nature of these crashes, can’t be sure that it will solve every (or any) problem.

I must stress that it’s not all input managers that seem to crash KIT. I know of people running Application Enhancers and APE (from Unsanity) without a problem. Unsanity themselves stress that it is important to ensure these are up-to-date, and that goes for any software that can potentially modify every application in the system.

Comments are closed.