andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 1 | # Linux Plugins |
andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame] | 2 | |
andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 3 | ## Background reading materials |
andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame] | 4 | |
andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 5 | ### Plugins in general |
andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame] | 6 | |
Owen Min | 991b14a | 2021-10-07 18:32:15 | [diff] [blame] | 7 | * [Gecko Plugin API reference](https://developer.mozilla.org/en-US/docs/Plugins/Guide) |
andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 8 | -- most important to read |
| 9 | * [Mozilla plugins site](http://www.mozilla.org/projects/plugins/) |
| 10 | * [XEmbed extension](https://developer.mozilla.org/en/XEmbed_Extension_for_Mozilla_Plugins) |
| 11 | -- newer X11-specific plugin API |
| 12 | * [NPAPI plugin guide](http://gplflash.sourceforge.net/gplflash2_blog/npapi.html) |
| 13 | from GPLFlash project |
andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame] | 14 | |
andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 15 | ### Chromium-specific |
andybons | 3322f76 | 2015-08-24 21:37:09 | [diff] [blame] | 16 | |
xiaoyin.l | 1003c0b | 2016-12-06 02:51:17 | [diff] [blame] | 17 | * [Chromium's plugin architecture](https://dev.chromium.org/developers/design-documents/plugin-architecture) |
andybons | ad92aa3 | 2015-08-31 02:27:44 | [diff] [blame] | 18 | -- may be out of date but will be worth reading |
| 19 | |
| 20 | ## Code to reference |
| 21 | |
| 22 | * [Mozilla plugin code](http://mxr.mozilla.org/firefox/source/modules/plugin/base/src/) |
| 23 | -- useful reference |
| 24 | * [nspluginwrapper](http://gwenole.beauchesne.info//en/projects/nspluginwrapper) |
| 25 | -- does out-of-process plugins itself |
| 26 | |
| 27 | ## Terminology |
| 28 | |
| 29 | * _Internal plugin_: "a plugin that's implemented in the chrome dll, i.e. |
| 30 | there's no external dll that services that mime type. For Linux you'll just |
| 31 | have to worry about the default plugin, which is what shows a puzzle icon |
| 32 | for content that you don't have a plugin for. We use that to allow the user |
| 33 | to download and install the missing plugin." |
| 34 | |
| 35 | ## Flash |
| 36 | |
| 37 | * [Adobe Flash player dev center](http://www.adobe.com/devnet/flashplayer/) |
| 38 | * [penguin.swf](http://blogs.adobe.com/penguin.swf/) -- blog about Flash on |
| 39 | Linux |
| 40 | * [tips and tricks](http://macromedia.mplug.org/) -- user-created page, with |
| 41 | some documentation of special flags in `/etc/adobe/mms.cfg` |
| 42 | * [official Adobe bug tracker](https://bugs.adobe.com/flashplayer/) |
| 43 | |
| 44 | ## Useful Tools |
| 45 | |
| 46 | * `xwininfo -tree` -- lets you inspect the window hierarchy of a window and |
| 47 | get the layout of child windows. |
| 48 | * "[DiamondX](http://multimedia.cx/diamondx/) is a simple NPAPI plugin built |
| 49 | to run on Unix platforms and exercise the XEmbed browser extension." |
| 50 | * To build a 32-bit binary: |
| 51 | `./configure CFLAGS='-m32' LDFLAGS='-L/usr/lib32 -m32'` |