Can we have the syntax say "platform x loads x.dll, platform y loads y.so,
etc"?

If a dll required by a platform fails to load, we need to alert the user
that their extension is busted. The prospect of having failure to load
binaries be an expected thing scares me.

Avi

On Thu, Dec 10, 2009 at 7:25 PM, Aaron Boodman <[email protected]> wrote:

> It is good that we can avoid the crash. We do need to get some kind of
> syntax in the manifest.
>
> - a
>
> On Thu, Dec 10, 2009 at 4:18 PM, Avi Drissman <[email protected]> wrote:
> > The crash is fixed. But the fact that we're now expecting random dll
> loads
> > to fail prevents us from giving good UI to users, and not labelling what
> > platforms it'll work on prevents us from warning in advance.
> >
> > Imagine a million angry Mac and Linux users filing bugs because their
> > favorite extension fails to fully load because it relies on an NPAPI
> plugin
> > not available on their platform.
> >
> > Avi
> >
> > On Thu, Dec 10, 2009 at 7:15 PM, Matt Perry <[email protected]>
> wrote:
> >>
> >> Yeah, that's very bad. I knew the NPAPI syntax sucked, but we punted on
> it
> >> because we didn't like any of the alternatives. (Even if we do have a
> >> manifest syntax for it, the extension package becomes bloated with
> plugin
> >> binaries for other platforms.) But I didn't realize that it could cause
> a
> >> crash. I'll definitely have to figure something out soon.
> >>
> >> On Thu, Dec 10, 2009 at 4:03 PM, Avi Drissman <[email protected]> wrote:
> >>>
> >>> Andy sent me a CL for review about an extension crashing
> >>> (http://crbug.com/29584). Turns out the cause was a failure to load a
> >>> Windows .dll on the Mac.
> >>>
> >>> Huh? Then I went to look at the docs
> >>> (http://code.google.com/chrome/extensions/npapi.html):
> >>>
> >>> {
> >>>   "name": "My extension",
> >>>   ...
> >>>   "plugins": [
> >>>     { "path": "content_plugin.dll", "public": true },
> >>>     { "path": "extension_plugin.dll" }
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>   ],
> >>>   ...
> >>> }
> >>>
> >>> Are you kidding me? How can we get away with not specifying what
> platform
> >>> the extension will run on? (Hint: we can't.)
> >>>
> >>> If we had something like:
> >>>
> >>> "plugins": {
> >>>   "mac": ...
> >>>   "win": ...
> >>>   "linux": ...
> >>> }
> >>>
> >>> then at least we could warn on the extensions website that a given
> >>> extension is only compatible with a certain platform. On a load attempt
> we
> >>> could know that the extension requires a certain native library and
> fail to
> >>> load it with a real user-friendly warning.
> >>>
> >>> And developers could make extensions that are cross-platform
> compatible.
> >>>
> >>> Today?
> >>> - We can't tell in advance what platforms an extensions runs on, so we
> >>> can't warn the user (either on the extensions site or in the app)
> >>> - The developer has no way of creating a cross-platform extension.
> >>>
> >>> This is a really bad situation we've created. We need to get a new
> syntax
> >>> out for extensions to fix this, and soon, before world-breaking becomes
> >>> prohibitively expensive.
> >>>
> >>> Avi
> >>>
> >>> --
> >>> Chromium Developers mailing list: [email protected]
> >>> View archives, change email options, or unsubscribe:
> >>> http://groups.google.com/group/chromium-dev
> >
> > --
> > Chromium Developers mailing list: [email protected]
> > View archives, change email options, or unsubscribe:
> > http://groups.google.com/group/chromium-dev
>

-- 
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev

Reply via email to