John Pierson Mayberry,jm6z+@andrew.cmu.edu, writes:
> The oddist thing happens when I open the gatekeeper contol panal and > click on the word "Gatekeeper" on the middle of the window,it falshes a > couple of times and Mosaic suddenly lanches! > > What is going on here? Has anyone else seen this, or can any of you > replicat it?
John Young, young@fmd00.larc.nasa.gov, writes:
> No... You are not crazy. This happened to me also with B6 of Mosaic, if > I remember correctly. Within two days of this starting to happen, my > hard disk became totally corrupted, and had to be rebuilt from scratch. > > Don't know what the connection was, but it hasn't happened lately. > (Am now running Mosaic 1.0.1)
Versions of Gatekeeper starting with the ill-fated 1.2.9 release have included a feature hidden "behind" the Gatekeeper logo in the Gatekeeper Controls control panel. If you click on it, the logo behaves like a conventional button or menu item (depending on how you look at it). In response to the click, Gatekeeper Controls attempts to launch Mosaic and then attempts to persuade Mosaic to connect with the Gatekeeper web pages on the Mac in my office here at the University of Texas at Austin.
The web pages contain an HTML version of the Gatekeeper documentation, offer the ability to download the latest versions of Gatekeeper and Disinfectant, describes the Gatekeeper mailing list (I can't stress the potential usefulness of that list enough), and will even show you a small selection of the postcards I've received from Gatekeeper users over the years. In the future it'll certainly do more.
If everyone had access to the Internet and robust Macs, nobody's network connection ever died, etc., I'd just remove the on-line help from Gatekeeper, delete the docs, and use such a link as the exclusive means of providing documentation, help, etc. to Gatekeeper users. Of course, that's totally out of the question, so the link to Mosaic remains a nifty (and somewhat enigmatic) hidden feature (until now, anyway :-).
That's the theory, of course. The practice is a bit problematic, sadly. The trouble is that while Mosaic loves to depend on applications to help it do things, it currently seems to have no intention of helping other applications do stuff. In other words it'll use "Helper Apps", but it refuses to be a "Helper App".
What's the problem? Basically, there needs to be some programmatic way to ask Mosaic to open a URL, or, at least, a local HTML document. Unfortunately for Gatekeeper, there isn't. So, when Gatekeeper wants to tell Mosaic to access the Gatekeeper web site, it can't just send some custom AppleEvent containing a URL, nor can it send a conventional Open event referring to a local HTML file. (Or, if there is a way, I sure as hell couldn't find it.) Instead, Gatekeeper has to simulate user keystrokes to Mosaic in order to trick Mosaic into opening the desired URL.
The process (from memory) goes something like this:
Since there's no way of knowing when Mosaic has really finished doing anything (not Mosaic's fault; without AppleScript there's not much of a way to do this with ANY application), step 4 is complicated by the inability to know if/when the loading ever completes. So we start guessing; we wait for the CPU time being used by Mosaic to drop below a certain percentage of total CPU time over a particular period. Both the percentage and the period were experimentally derived values that "seemed to work" about 90% of the time in my own tests on a variety of different Mac platforms.
Things that can go wrong include (but aren't limited to) any and all of the following:
One note about that kludge: no patches were required and only supported OS/Toolbox calls are used to implement it. If I'd started patching things, I could have increased the reliability, but it wasn't worth the compat- ibility risks, and the development/debugging time.
If any of the NCSA Mosaic Mac developers happen to read this, please consider it a subtle request for a tiny enhancement to a very nice product. :-)
In any case, I think this qualifies as one of the most elaborate (and potentially useful) "Easter Eggs" I've ever heard of.
When it works, that is. :-) :-)