cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jesse <purplecabb...@gmail.com>
Subject Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple
Date Wed, 06 May 2015 04:13:23 GMT
This fix has been merged ( your way Tim )
Steve, can we do a minor bump of all platforms that included cordova-js
>3.8.2 ?
This will be a 3.9.2 cordova-js release I think, and appropriately enough
has a ripple effect into platforms and tools.

@purplecabbage
risingj.com

On Mon, May 4, 2015 at 7:30 PM, Tim Barham <Tim.Barham@microsoft.com> wrote:

> Yep, I verified your change fixes the failure with Ripple (in fact, just
> the 'window.cordova' check is enough to fix Ripple, since that returns
> undefined).
>
> ________________________________________
> From: Jesse <purplecabbage@gmail.com>
> Sent: Tuesday, May 5, 2015 10:53 AM
> To: dev@cordova.apache.org
> Subject: Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple
>
> Discussions aside, are you in a position to test ripple?
>
> I believe this change will fix it, can you try this change, and I will look
> into the ripple side shortly?
> https://github.com/apache/cordova-js/pull/109
>
> We can start the re-release fanfare in the morning, as a minor release
> directly from the last release and a minor bump with no other changes
> coming in.
>
> Let me know if there are still issues in cordova-js, and I'll look later
> tonite.
>
> Cheers,
>    Jesse
>
>
>
>
> @purplecabbage
> risingj.com
>
> On Mon, May 4, 2015 at 5:23 PM, Tim Barham <Tim.Barham@microsoft.com>
> wrote:
>
> > Thanks Jesse...
> >
> > > but still it will be at least a week before we can get a new everything
> > out
> >
> > And the alternatives will take less than a week? :)
> >
> > While I agree there may be better ways for Ripple to "do it's thing", my
> > immediate concern is to get Ripple working as quickly as possible. If we
> > can indeed kill those two birds with one stone, that's great, but I'm
> > worried that anything beyond a simple fix will drag out for quite a
> while.
> >
> > Also, I was picturing these sorts of changes as being part of proper
> > plugin simulation support built into Cordova (that is, the ongoing
> project
> > I've mentioned previously) - I wonder if for now we should just fix this
> > the quickest way we can, and make sure the appropriate, public,
> documented
> > hooks are in place as part of that project.
> >
> > > override the entire cordova object
> >
> > BTW, I guess you already know this, but to make sure it is clear - Ripple
> > doesn't override the cordova object - it only overrides cordova/exec. It
> > intercepts the creation of the cordova property so it can immediately
> patch
> > cordova/exec before it can get called by anyone. It seems to me that
> > patching cordova/exec is pretty fundamental to how Ripple works, but if
> > there was another way it could ensure the correct timing (that is, patch
> > cordova/exec after the cordova object is created, but before it can ever
> > get called), that would probably suffice.
> >
> > I don't think cordova/exec/proxy is going to be a viable solution (at
> > least as it currently works) - isn't there the risk that that will get
> > overridden by plugins themselves? Also, Ripple wants to intercept *any*
> > cordova.exec call, even ones it doesn't know about (so it can display UI
> to
> > handle those cases) - how to we handle that using cordova/exec/proxy?
> >
> > Thanks for looking into this, BTW.
> >
> > Tim
> >
> > ________________________________________
> > From: Jesse <purplecabbage@gmail.com>
> > Sent: Tuesday, May 5, 2015 9:57 AM
> > To: dev@cordova.apache.org
> > Subject: Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple
> >
> > Yeah, my reasoning is that it is difficult to update all the affected
> bits
> > in cordova.  We can change the cordova logic, but still it will be at
> least
> > a week before we can get a new everything out.
> >
> > Part of my reasoning is that ripple claims to be a '... platform agnostic
> > mobile application development and testing tool.' We should make that
> part
> > true as well.
> >
> > Personally, I consider ripple's use of 'cordova' to be risky given that
> we
> > have certain expectations of how our own library works, which may or may
> > not be private to cordova.  I would much rather see ripple implement a
> > ripple-cordova connector class which uses cordova/exec/proxy or some
> > cordova apis that we purposely publish, which is what I plan to look into
> > this week. Or we can consider moving to a model where we do define a way
> to
> > override the entire cordova object, and document it.
> >
> >
> > @purplecabbage
> > risingj.com
> >
> > On Mon, May 4, 2015 at 3:56 PM, Tim Barham <Tim.Barham@microsoft.com>
> > wrote:
> >
> > > Hey Jesse - is your reasoning behind that to avoid having to release an
> > > update for Cordova tools + all platforms, or because you don't want to
> > > change the existing Cordova logic (and if the latter, what's your
> > concern)?
> > >
> > > Have you had any inspiration about how to fix Ripple to avoid tripping
> > > this? I've not been able to come up with a safe approach yet. On the
> > other
> > > hand, the change in Cordova to avoid triggering this is very simple -
> > just
> > > a pain that it requires releasing a bunch of updates.
> > >
> > > Tim
> > > ________________________________________
> > > From: Jesse <purplecabbage@gmail.com>
> > > Sent: Saturday, May 2, 2015 2:28 AM
> > > To: dev@cordova.apache.org
> > > Subject: Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple
> > >
> > > I think ripple will need to change, I'll have a look and see if there
> is
> > a
> > > more elegant way to implement honeypot.
> > >
> > >
> > >
> > > > On Apr 30, 2015, at 7:06 PM, Tim Barham <Tim.Barham@microsoft.com>
> > > wrote:
> > > >
> > > > Hey everyone - a bug was filed today against Ripple that it is broken
> > > with
> > > > Cordova 5.0.0. The issue is that Ripple triggers the new "duplicate
> > > > cordova" check:
> > > >
> > > >     cordova-js/src/cordova.js line 22:
> > > >     if ("cordova" in window) { throw new Error("cordova already
> > > defined"); };
> > > >
> > > > Ripple patches cordova by defining a setter for window.cordova to
> > > > intercept it being created. This is sufficient to make ("cordova" in
> > > > window) return true. I don't see a way to readily resolve this issue
> in
> > > > Ripple. We can fix it in Cordova by changing the test to:
> > > >
> > > >   if (window.cordova) ...
> > > >
> > > > Couple of questions:
> > > > 1. Any reason not to make this change?
> > > > 2. To get this fix out will require re-releasing all platforms,
> > correct?
> > > > And I presume a tools release to update the pinned platforms? Is this
> > > > sufficient reason to trigger such a release?
> > > >
> > > > Thanks!
> > > >
> > > > Tim
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > > For additional commands, e-mail: dev-help@cordova.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> > For additional commands, e-mail: dev-help@cordova.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message