You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Tim Barham <Ti...@microsoft.com> on 2015/05/01 04:06:18 UTC

Cordova 5.0.0 "duplicate cordova" check breaks Ripple

​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

Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Tim Barham <Ti...@microsoft.com>.
Thanks Steve!

________________________________________
From: Steven Gill <st...@gmail.com>
Sent: Thursday, May 7, 2015 4:53 AM
To: dev@cordova.apache.org
Subject: Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Okay cool.

Version should be cordova-js@3.9.1.

Then I'll release Android@4.0.1, wp8@3.8.1, windows@3.8.2. These releases
will only have updated cordova.js files and nothing else new (patch
release).

I'll start up some discuss threads

On Tue, May 5, 2015 at 9:13 PM, Jesse <pu...@gmail.com> wrote:

> 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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org


Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Steven Gill <st...@gmail.com>.
Okay cool.

Version should be cordova-js@3.9.1.

Then I'll release Android@4.0.1, wp8@3.8.1, windows@3.8.2. These releases
will only have updated cordova.js files and nothing else new (patch
release).

I'll start up some discuss threads

On Tue, May 5, 2015 at 9:13 PM, Jesse <pu...@gmail.com> wrote:

> 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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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
> >
> >
>

Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Jesse <pu...@gmail.com>.
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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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
>
>

Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Tim Barham <Ti...@microsoft.com>.
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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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


Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Jesse <pu...@gmail.com>.
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 <Ti...@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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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
>
>

Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Tim Barham <Ti...@microsoft.com>.
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 <pu...@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 <Ti...@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 <pu...@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 <Ti...@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


Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Jesse <pu...@gmail.com>.
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 <Ti...@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 <pu...@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 <Ti...@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
>
>

Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Tim Barham <Ti...@microsoft.com>.
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 <pu...@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 <Ti...@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


Re: Cordova 5.0.0 "duplicate cordova" check breaks Ripple

Posted by Jesse <pu...@gmail.com>.
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 <Ti...@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
> ТÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÒÐÐ¥FòVç7V'67&–&RÂRÖÖ–âFWb×Vç7V'67&–&T6÷&F÷fæ6†Ræ÷&pФf÷"FF—F–öæÂ6öÖÖæG2ÂRÖÖ–âFWbÖ†VÇ6÷&F÷fæ6†Ræ÷&pÐ

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org