axet/mac-bin — Issue #1: migrate to bundle
Author: axet
Created: 2012-01-10 13:10:56+00:00
State: open

The JavaScript code no longer exports a NSGetModule() function. It now must export a NSGetFactory() function, which accepts a class ID (CID) as a parameter.

[...]

C++ in the component must be changed: a binary component no longer exports a NSGetModule() function. Instead, it exports an NSModule data symbol which points to a mozilla::Module structure. For more information about the mozilla::Module structure, see the Module.h header file. For an up-to-date example of implementing a dynamic modules, see nsSampleModule.cpp.

https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0

Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) removed support for platform-specific subdirectories, described below. Instead, you need to use manifest flags, such as the OS and ABI flags, in your chrome manifest to specify components that should be loaded for specific platforms.

https://developer.mozilla.org/en/Bundles

Each ABI is named with a string [TARGET_XPCOM_ABI] of the following format:

{CPU_ARCH}-{TARGET_COMPILER_ABI}

https://developer.mozilla.org/en/XPCOM_ABI