Online TurboTax refused to serve me PDF files because I did not have the Acrobat plugin installed. Since I have mozplugger, I can view embedded PDF files fine. I shouldn’t need to have Acrobat.

Here’s how I built a fake Acrobat plugin to fool the detection script. Some of the more arcane steps I got from here.

  1. apt-get souce mozilla
  2. cd mozilla-1.7.12
  3. make -f debian/sys-build.mk source.make
  4. Edit build-tree/mozilla/allmakefiles.sh. Search for “plugin” and change the “windows” references in that section to “unix”.
  5. debian/rules build. Presumably not all of this is needed, but I don’t know how to prune it down.
  6. cd build-tree/mozilla/modules/plugin/tools/sdk/samples/common/
  7. make
  8. cd ../basic/unix/
  9. Edit the Makefile. Add -I$(topsrcdir)/dist/include/plugin to the LOCAL_INCLUDES line. In SHARED_LIBRARY_LIBS, change $(DIST)/lib to ../../common.
  10. Edit plugin.cpp. Change fine PLUGIN_DESCRIPTION to #define. WTF?
  11. In plugin.cpp, change PLUGIN_NAME to Adobe Acrobat. Change PLUGIN_DESCRIPTION to 0123456789_10_456789_20_45678_6.0. (The TurboTax JavaScript reads the Acrobat version number from offset 30 in this string.)
  12. make
  13. Copy the resulting libnpSDKbasic.so binary to the Firefox plugins directory. If it worked it should show up in the about:plugins page.

Be warned that even though the resulting plugin .so is only 19 kB, the mozilla tree is 550 MB. There is a mythical “plugin SDK” that allows plugin development without a full source tree, but I couldn’t find it.