Hi Rick,

I don't think there is any documentation on universal Netscape plug- ins, but there probably should be.

The only tricky part is that on Intel, you need to always pass raw function pointers (as opposed to tvectors) between the browser and the plug-in. Many plug-ins include "helper functions" to do the function pointer/tvector translation. These functions could be modified like so to work on Intel:

static FunctionPointer functionPointerForTVector(TransitionVector tvp)
{
#ifdef __ppc__
const uint32 temp[6] = {0x3D800000, 0x618C0000, 0x800C0000, 0x804C0004, 0x7C0903A6, 0x4E800420};
    uint32 *newGlue = NULL;

    if (tvp != NULL) {
        newGlue = (uint32 *)malloc(sizeof(temp));
        if (newGlue != NULL) {
            unsigned i;
            for (i = 0; i < 6; i++) newGlue[i] = temp[i];
            newGlue[0] |= ((UInt32)tvp >> 16);
            newGlue[1] |= ((UInt32)tvp & 0xFFFF);
            MakeDataExecutable(newGlue, sizeof(temp));
        }
    }

    return (FunctionPointer)newGlue;
#else
    // Just use the function pointer on other architectures
    return (FunctionPointer)tvp;
#endif /* __ppc__ */
}

static TransitionVector tVectorForFunctionPointer(FunctionPointer fp)
{
#ifdef __ppc__
    FunctionPointer *newGlue = NULL;
    if (fp != NULL) {
newGlue = (FunctionPointer *)malloc(2 * sizeof (FunctionPointer));
        if (newGlue != NULL) {
            newGlue[0] = fp;
            newGlue[1] = NULL;
        }
    }
    return (TransitionVector)newGlue;
#else
    // Just use the function pointer on other architectures
    return (TransitionVector)fp;
#endif /* __ppc__ */
}

Hope that helps!

Thanks,
-t

On Sep 19, 2006, at 12:52 PM, Rick Mann wrote:

Can someone point me at a resource(s) describing how I would port an older, but carbonized, plugin to a universal plugin that works in Safari? Thanks!

--
Rick


_______________________________________________
webkit-dev mailing list
webkit-dev@opendarwin.org
http://www.opendarwin.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@opendarwin.org
http://www.opendarwin.org/mailman/listinfo/webkit-dev

Reply via email to