Config.xml is not a very sane way to do things for the embedded webview
case. E.g. you may want two webviews with different configs. Config.java is
a singleton right now, and I think it would be much nicer as a parameter
you could give to the WebView upon initialization & plugins should say:
this.getConfig().getPreference() rather than using it as a singleton. So...
If we could leave setPreference() in for now, I think we should. When we
remove it, we should provide a nice API for the embedding case (e.g. a
Config without the need to hit the filesystem).


pluginManager being public is unfortunate. That said, other than
getPlugin(), I don't see any methods in it that plugins should need. If
we're to remove the property, I don't think we should expose PluginManager
to plugins, but rather try and keep that an internal detail.







On Wed, Apr 30, 2014 at 1:58 PM, Michal Mocny <[email protected]> wrote:

> On Wed, Apr 30, 2014 at 1:30 PM, Joe Bowser <[email protected]> wrote:
>
> > On Wed, Apr 30, 2014 at 9:35 AM, Michal Mocny <[email protected]>
> wrote:
> > > On Wed, Apr 30, 2014 at 12:23 PM, Joe Bowser <[email protected]>
> wrote:
> > >
> > >> Hey
> > >>
> > >> So, once again, we're dealing with some major API changes once we
> > >> introduce pluggable webview.  The first change that was done for
> > >> sanity was finally deprecating setProperty.  This was slated to be
> > >> removed by 3.5 or in six months from the deprecation date, but we kept
> > >> it in too long.   While I would like to assume that everyone has moved
> > >> over to setting their preferences in config.xml, which is the much
> > >> more sane way of doing things, we can't do that.  We need to publicize
> > >> this in some blog posts, as well as in our documentation somehow.
> > >> There will obviously be some pissed off users, as we've seen in past
> > >> posts, but I think having the ability to use a WebView other than
> > >> Chrome 30 is worth these changes.
> > >>
> > >
> > > Is it feasible to leave setProperty working only for default WebView?
> >  This
> > > would mean that custom webviews won't work with older plugins, but I
> > think
> > > thats fine.
> > >
> >
> > The setProperty methods are actually in Cordova-Activity, and we could
> > re-add those.  The thing is that these aren't actually used by
> > plugins, and instead are legacy methods that only our unit tests use.
> > I'll put them back in.
> >
> > >
> > >>
> > >> The other change, which says more about our design is adding a getter
> > >> method for pluginManager.  We need to access the pluginManager to get
> > >> plugins, and it's expected that everyone who implements a
> > >> CordovaWebView will have this method produce a pluginManager.  In the
> > >> past, it was just publicly exposed, which was not the greatest idea
> > >> and was kinda sloppy.
> > >>
> > >
> > > Similar to above question, could we leave it (deprecated) as an exposed
> > > property only on the default webview?  And only support the new getter
> > for
> > > new webviews (xwalk, gecko)?  Again, only updated plugins would work
> with
> > > custom webview, but I think thats fine.
> > >
> >
> > No, I don't think so.  It's probably better to make a clean break and
> > have all the WebViews expected to function the same than to have some
> > plugins simply fail with certain webviews.  Plugins breaking across
> > all the WebViews will force people to fix them, while things breaking
> > with only Crosswalk will put crosswalk at an unfair disadvantage.
> >
>
> Trust me, Crosswalk is going to have an unfair *advantage* regardless of
> plugin support ;)
>

Reply via email to