2
2
* Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
3
3
* Copyright (C) 2008 Collabora, Ltd. All rights reserved.
4
* Copyright (C) 2009 Torch Mobile, Inc. All rights reserved.
5
6
* Redistribution and use in source and binary forms, with or without
6
7
* modification, are permitted provided that the following conditions
77
83
if (compareFileVersion(slPluginMinRequired) < 0)
79
} else if (fileName() == "npmozax.dll")
85
} else if (fileName() == "npmozax.dll") {
80
86
// Bug 15217: Mozilla ActiveX control complains about missing xpcom_core.dll
88
} else if (name() == "Yahoo Application State Plugin") {
89
// https://bugs.webkit.org/show_bug.cgi?id=26860
90
// Bug in Yahoo Application State plug-in earlier than 1.0.0.6 leads to heap corruption.
91
static const PlatformModuleVersion yahooAppStatePluginMinRequired(0x00000006, 0x00010000);
92
if (compareFileVersion(yahooAppStatePluginMinRequired) < 0)
261
278
NP_InitializeFuncPtr NP_Initialize = 0;
282
NP_Initialize = (NP_InitializeFuncPtr)GetProcAddress(m_module, L"NP_Initialize");
283
NP_GetEntryPoints = (NP_GetEntryPointsFuncPtr)GetProcAddress(m_module, L"NP_GetEntryPoints");
284
m_NPP_Shutdown = (NPP_ShutdownProcPtr)GetProcAddress(m_module, L"NP_Shutdown");
264
286
NP_Initialize = (NP_InitializeFuncPtr)GetProcAddress(m_module, "NP_Initialize");
265
287
NP_GetEntryPoints = (NP_GetEntryPointsFuncPtr)GetProcAddress(m_module, "NP_GetEntryPoints");
266
288
m_NPP_Shutdown = (NPP_ShutdownProcPtr)GetProcAddress(m_module, "NP_Shutdown");
268
291
if (!NP_Initialize || !NP_GetEntryPoints || !m_NPP_Shutdown)
271
294
memset(&m_pluginFuncs, 0, sizeof(m_pluginFuncs));
272
295
m_pluginFuncs.size = sizeof(m_pluginFuncs);
276
299
if (npErr != NPERR_NO_ERROR)
279
memset(&m_browserFuncs, 0, sizeof(m_browserFuncs));
280
m_browserFuncs.size = sizeof (m_browserFuncs);
281
m_browserFuncs.version = NP_VERSION_MINOR;
283
m_browserFuncs.geturl = NPN_GetURL;
284
m_browserFuncs.posturl = NPN_PostURL;
285
m_browserFuncs.requestread = NPN_RequestRead;
286
m_browserFuncs.newstream = NPN_NewStream;
287
m_browserFuncs.write = NPN_Write;
288
m_browserFuncs.destroystream = NPN_DestroyStream;
289
m_browserFuncs.status = NPN_Status;
290
m_browserFuncs.uagent = NPN_UserAgent;
291
m_browserFuncs.memalloc = NPN_MemAlloc;
292
m_browserFuncs.memfree = NPN_MemFree;
293
m_browserFuncs.memflush = NPN_MemFlush;
294
m_browserFuncs.reloadplugins = NPN_ReloadPlugins;
295
m_browserFuncs.geturlnotify = NPN_GetURLNotify;
296
m_browserFuncs.posturlnotify = NPN_PostURLNotify;
297
m_browserFuncs.getvalue = NPN_GetValue;
298
m_browserFuncs.setvalue = NPN_SetValue;
299
m_browserFuncs.invalidaterect = NPN_InvalidateRect;
300
m_browserFuncs.invalidateregion = NPN_InvalidateRegion;
301
m_browserFuncs.forceredraw = NPN_ForceRedraw;
302
m_browserFuncs.getJavaEnv = NPN_GetJavaEnv;
303
m_browserFuncs.getJavaPeer = NPN_GetJavaPeer;
304
m_browserFuncs.pushpopupsenabledstate = NPN_PushPopupsEnabledState;
305
m_browserFuncs.poppopupsenabledstate = NPN_PopPopupsEnabledState;
306
m_browserFuncs.pluginthreadasynccall = NPN_PluginThreadAsyncCall;
308
m_browserFuncs.releasevariantvalue = _NPN_ReleaseVariantValue;
309
m_browserFuncs.getstringidentifier = _NPN_GetStringIdentifier;
310
m_browserFuncs.getstringidentifiers = _NPN_GetStringIdentifiers;
311
m_browserFuncs.getintidentifier = _NPN_GetIntIdentifier;
312
m_browserFuncs.identifierisstring = _NPN_IdentifierIsString;
313
m_browserFuncs.utf8fromidentifier = _NPN_UTF8FromIdentifier;
314
m_browserFuncs.intfromidentifier = _NPN_IntFromIdentifier;
315
m_browserFuncs.createobject = _NPN_CreateObject;
316
m_browserFuncs.retainobject = _NPN_RetainObject;
317
m_browserFuncs.releaseobject = _NPN_ReleaseObject;
318
m_browserFuncs.invoke = _NPN_Invoke;
319
m_browserFuncs.invokeDefault = _NPN_InvokeDefault;
320
m_browserFuncs.evaluate = _NPN_Evaluate;
321
m_browserFuncs.getproperty = _NPN_GetProperty;
322
m_browserFuncs.setproperty = _NPN_SetProperty;
323
m_browserFuncs.removeproperty = _NPN_RemoveProperty;
324
m_browserFuncs.hasproperty = _NPN_HasProperty;
325
m_browserFuncs.hasmethod = _NPN_HasMethod;
326
m_browserFuncs.setexception = _NPN_SetException;
327
m_browserFuncs.enumerate = _NPN_Enumerate;
328
m_browserFuncs.construct = _NPN_Construct;
302
initializeBrowserFuncs();
330
304
npErr = NP_Initialize(&m_browserFuncs);
331
305
LOG_NPERROR(npErr);