PluginList maintains a vector of WebPluginInfo structs.  As-is, that won't
let us store the function pointers.  Should we:

1. Add the function pointers as members of the WebPluginInfo struct in
webplugin.h

2. Change PluginList::plugins_ to a vector of structs like the following
that would only be used internal to PluginList:

struct PluginListInfo {
  WebPluginInfo plugin_info;
  NP_GetEntryPointsFunc np_getentrypoints;
  NP_InitializeFunc np_initialize;
  NP_ShutdownFunc np_shutdown;
};

3. Same as 2, but maintain these structures in a vector separate from
PluginList::plugins_ and only use for the dynamically registered internal
plugins.

On Tue, Jan 20, 2009 at 3:27 PM, John Abd-El-Malek <j...@chromium.org> wrote:

> Perhaps something like PluginList::AddExtraPluginPath can be added which
> takes the parameters you mentioned.  This should be easy to do, I'd be happy
> to review it if you send me a patch :)
>
>
> On Tue, Jan 20, 2009 at 12:00 PM, Marshall Greenblatt <
> magreenbl...@gmail.com> wrote:
>
>> I agree, registering with a WebPluginInfo and function pointers would be
>> the ideal solution :-).
>>
>>
>> On Tue, Jan 20, 2009 at 2:57 PM, Avi Drissman <a...@chromium.org> wrote:
>>
>>> In that case, registering with a WebPluginInfo/function pointers would be
>>> better than keeping around PluginVersionInfo. Real data structures FTW.
>>>
>>> Avi
>>>
>>>
>>> On Tue, Jan 20, 2009 at 2:51 PM, Marshall Greenblatt <
>>> magreenbl...@gmail.com> wrote:
>>>
>>>> My immediate usage case is for the chromium embedded framework (CEF):
>>>> http://code.google.com/p/chromiumembedded/
>>>>
>>>> CEF supports plugins that are an integrated part of the container
>>>> application.  For instance, consider a medical viewing application where 
>>>> the
>>>> complete user interface is an embedded browser window.  An internal plugin
>>>> is embedded in the browser window for viewing medical scan images.  The
>>>> plugin depends on the medical viewing application (cannot function
>>>> independently), and so we compile both the viewing application and the
>>>> plugin into a single executable.
>>>>
>>>> Currently, CEF must duplicate the entire webkit\glue\plugins directory
>>>> in order to make the minor changes necessary to support this capability.  
>>>> If
>>>> we could dynamically register internal plugins via PluginLib then we could
>>>> eliminate the code duplication.
>>>>
>>>> I imagine dynamically registering internal plugins (as part of an
>>>> extension, for instance) might also be a useful capability once the 
>>>> chromium
>>>> extension framework is in place.
>>>>
>>>>
>>>>
>>>> On Tue, Jan 20, 2009 at 2:29 PM, Avi Drissman <a...@chromium.org> wrote:
>>>>
>>>>> I'm trying to figure out a way to get away from PluginVersionInfo as
>>>>> it's very Win32-centric.
>>>>>
>>>>> BTW, what's the scenario that you have in mind that dynamic
>>>>> registration would help with? If we're making changes here, we should take
>>>>> your usage needs into account.
>>>>>
>>>>> Avi
>>>>>
>>>>>
>>>>> On Tue, Jan 20, 2009 at 2:24 PM, Marshall Greenblatt <
>>>>> magreenbl...@gmail.com> wrote:
>>>>>
>>>>>> On Tue, Jan 20, 2009 at 2:24 PM, Marshall Greenblatt <
>>>>>> magreenbl...@gmail.com> wrote:
>>>>>>
>>>>>>> It would also be nice if we had a public method for registering
>>>>>>> internal plugins dynamically, instead of having to modify the
>>>>>>> g_internal_plugins array in plugin_lib.cc.
>>>>>>>
>>>>>>> For instance (based on the current code):
>>>>>>>
>>>>>>> PluginLib::RegisterInternalPlugin(PluginVersionInfo version_info,
>>>>>>>                                                 NP_GetEntryPointsFunc
>>>>>>> np_getentrypoints,
>>>>>>>                                                 NP_InitializeFunc
>>>>>>> np_initialize,
>>>>>>>                                                 NP_ShutdownFunc
>>>>>>> np_shutdown);
>>>>>>>
>>>>>>> This would be functionally equivalent to adding an entry to the
>>>>>>> existing g_internal_plugins array, but would be run-time accessible from
>>>>>>> elsewhere in the code base.
>>>>>>>
>>>>>>> On Tue, Jan 20, 2009 at 1:48 PM, John Abd-El-Malek <j...@chromium.org
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> It seems that the only reason this code is needed is to get the
>>>>>>>> function pointers for the internal plugin.  Perhaps the 
>>>>>>>> PluginVersionInfo &
>>>>>>>> InternalPluginInfo stuff could be taken out of the platform independent
>>>>>>>> code.  ReadWebPluginInfo can be modified to return both the 
>>>>>>>> WebPluginInfo &
>>>>>>>> the three function pointers (if it's an internal plugin).  What do you
>>>>>>>> think?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jan 20, 2009 at 9:33 AM, Avi Drissman <a...@google.com>wrote:
>>>>>>>>
>>>>>>>>> I'm looking at InternalPluginInfo in plugin_lib.h. Its first
>>>>>>>>> component is a PluginVersionInfo, which is basically the Win32 
>>>>>>>>> version of
>>>>>>>>> the NPAPI data. Right now my plugin info parsing code pulls info from 
>>>>>>>>> either
>>>>>>>>> a plist (via CFBundle) or resources, and neither is easy to reuse to 
>>>>>>>>> parse a
>>>>>>>>> set of strings. What format does Linux have? Could we reuse the code?
>>>>>>>>>
>>>>>>>>> Avi
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to