cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Barham <Tim.Bar...@microsoft.com>
Subject Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple
Date Tue, 05 May 2015 02:30:14 GMT
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
View raw message