Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-16 Thread Filip Maj
Hey Jesse,

For WP7+8, if XHR relies on some cordova APIs, I think those APIs need to
be loaded as special-cases for windows phone, I.e. Integrate those bits
before onNativeReady fires in cordova-js. This way the plugin loading code
can happen as-is and can rely on XHR safely.

It'd be good to see a comparison of performance between the two systems,
just as extra info, for sure.

While I understand it is more complicated, with plugins breaking out, I
don't think it's an elegant solution to expect users to add at least 1
script tag to each of their html pages per plugin manually. If you take a
look at plugin_loader.js from cordova-js, it is not a massive amount of
code (~120 lines). About as simple as it gets in terms of a script loader.
I don't agree with the this is hard argument against this functionality.

There are still numerous outstanding things with this piece of code.
1) it cannot use other APIs because it all happens before deviceready, XHR
to local files requires the FileAPI on WP7 + 8
2) still waiting to hear on the timing differences compared with script
tags
3) tired of being the curmudgeon on the list, but why do we keep making
things more and more complicated?


@purplecabbage
risingj.com


On Wed, May 15, 2013 at 4:07 PM, Steven Gill stevengil...@gmail.com
wrote:

 Just had a chat with Fil and learned that we did not have automatic js
 installation until braden implemented this. So disregard my last post.

 I am reviewing some of our old threads on this issue. If anyone else is
 interested, You can view [1]

 [1]

 
http://apache.markmail.org/message/vxmd3yrr5i5q27w3?q=plugman+plugin_load
er%2Ejs


 On Wed, May 15, 2013 at 3:07 PM, Steven Gill stevengil...@gmail.com
 wrote:

  This may be unpopular, but I'm wondering if the best solution might
be to
  drop jsmodule/cordova_plugins.json and go back to just including
script
  tags in plugin.xml that get added to your index.html/cordova.js. I
know
 it
  isn't as pretty, but it won't have to deal with these issues.
 
 
 
 
  On Wed, May 15, 2013 at 12:36 PM, Bryan Higgins
br...@bryanhiggins.net
 wrote:
 
  That won't work for remotely hosted pages and wouldn't allow for the
 File
  API to be pulled out into a plugin.
 
  Based on the constraints, the only other solution I can think of is
to
  require that cordova.js sits at the root of the project. The plugin
 loader
  scripts could then figure out the path based on the cordova-js script
 tag.
  The original plan was to inject directly into cordova-js, which would
 have
  imposed a similar constraint, but a decision was made to use a JSON
file
  to
  avoid code generation issues.
 
  Keep in mind that the path is relative to the HTML file, not the
script
  making the XHR.
 
 
  On Wed, May 15, 2013 at 3:12 PM, Filip Maj f...@adobe.com wrote:
 
   Could we leverage our own File API to load the plugins json
instead of
   relying on (possibly unclear local vs remote) XHR semantics?
  
   On 5/15/13 12:03 PM, Steven Gill stevengil...@gmail.com wrote:
  
   Hey All,
   
   If you haven't checked out issue CB-3393[1], you should. I believe
  this is
   a pretty big problem and brings into question the way we are
loading
   plugins.
   
   Using an absolute path is not going to work as Braden suggests in
the
   comments of the issue. He proposes adding code to cordova.js that
 will
   search for the cordova_plugins.json file and reference it
correctly.
  This
   feels very hacky to me and will lead to more issues. I believe we
 need
  to
   reconsider how we are loading plugins.
   
   I am hoping more people decide to chime in on this discussion.
   
   [1] - https://issues.apache.org/jira/browse/CB-3393
   
   
   On Wed, May 15, 2013 at 9:12 AM, Steven Gill
stevengil...@gmail.com
 
   wrote:
   
Hey Bryan,
   
Thanks for chiming in. I realized this after I made the change
   yesterday.
Tracking it with https://issues.apache.org/jira/browse/CB-3393
   
Cheers,
-Steve
On May 15, 2013 5:34 AM, Bryan Higgins
bhigg...@blackberry.com
   wrote:
   
Thanks Steve. I meant to bring that commit up on the list.
   
The problem is that the relative reference to
cordova_plugins.json
  only
works when the page is in the same directory as that file. Is
that
   also an
issue on ios/android? If so, is there a standard cross platform
 way
  to
reference a file in the root of a cordova app?
   
We had to do something similar in plugman. This has not yet
been
  merged
in:
   
   
   
   
  
 
 https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419ca
   a56faee743f841bc987bd
   
   
On Tue, May 14, 2013 at 8:03 PM, Steven Gill 
  stevengil...@gmail.com
wrote:
   
 Hey All,

 The BB10 stuff got merged into cordova.js. The following
commit
   breaks
 plugin_loader for ios + android.


   
   
  
 
 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467c
   c663897ccce9
 .
 I am going to remove the 

Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-16 Thread Jesse
So XHR patch the browser directly ( but do it without using the File API )
I think is the best approach.

It is not hard, not at all, that is/was my point.
The fact that the file is cordova_plugin.json means that it MUST be loaded
by XHR, where if it was cordova_plugin.js it could just be added as an
additional script that would load and do the right thing.  No impact on end
users, no need for them to add additional script tags, reduced complexity
and no failing local XHRs.






@purplecabbage
risingj.com


On Thu, May 16, 2013 at 4:35 PM, Filip Maj f...@adobe.com wrote:

 Hey Jesse,

 For WP7+8, if XHR relies on some cordova APIs, I think those APIs need to
 be loaded as special-cases for windows phone, I.e. Integrate those bits
 before onNativeReady fires in cordova-js. This way the plugin loading code
 can happen as-is and can rely on XHR safely.

 It'd be good to see a comparison of performance between the two systems,
 just as extra info, for sure.

 While I understand it is more complicated, with plugins breaking out, I
 don't think it's an elegant solution to expect users to add at least 1
 script tag to each of their html pages per plugin manually. If you take a
 look at plugin_loader.js from cordova-js, it is not a massive amount of
 code (~120 lines). About as simple as it gets in terms of a script loader.
 I don't agree with the this is hard argument against this functionality.

 There are still numerous outstanding things with this piece of code.
 1) it cannot use other APIs because it all happens before deviceready, XHR
 to local files requires the FileAPI on WP7 + 8
 2) still waiting to hear on the timing differences compared with script
 tags
 3) tired of being the curmudgeon on the list, but why do we keep making
 things more and more complicated?
 
 
 @purplecabbage
 risingj.com
 
 
 On Wed, May 15, 2013 at 4:07 PM, Steven Gill stevengil...@gmail.com
 wrote:
 
  Just had a chat with Fil and learned that we did not have automatic js
  installation until braden implemented this. So disregard my last post.
 
  I am reviewing some of our old threads on this issue. If anyone else is
  interested, You can view [1]
 
  [1]
 
 
 
 http://apache.markmail.org/message/vxmd3yrr5i5q27w3?q=plugman+plugin_load
 er%2Ejs
 
 
  On Wed, May 15, 2013 at 3:07 PM, Steven Gill stevengil...@gmail.com
  wrote:
 
   This may be unpopular, but I'm wondering if the best solution might
 be to
   drop jsmodule/cordova_plugins.json and go back to just including
 script
   tags in plugin.xml that get added to your index.html/cordova.js. I
 know
  it
   isn't as pretty, but it won't have to deal with these issues.
  
  
  
  
   On Wed, May 15, 2013 at 12:36 PM, Bryan Higgins
 br...@bryanhiggins.net
  wrote:
  
   That won't work for remotely hosted pages and wouldn't allow for the
  File
   API to be pulled out into a plugin.
  
   Based on the constraints, the only other solution I can think of is
 to
   require that cordova.js sits at the root of the project. The plugin
  loader
   scripts could then figure out the path based on the cordova-js script
  tag.
   The original plan was to inject directly into cordova-js, which would
  have
   imposed a similar constraint, but a decision was made to use a JSON
 file
   to
   avoid code generation issues.
  
   Keep in mind that the path is relative to the HTML file, not the
 script
   making the XHR.
  
  
   On Wed, May 15, 2013 at 3:12 PM, Filip Maj f...@adobe.com wrote:
  
Could we leverage our own File API to load the plugins json
 instead of
relying on (possibly unclear local vs remote) XHR semantics?
   
On 5/15/13 12:03 PM, Steven Gill stevengil...@gmail.com wrote:
   
Hey All,

If you haven't checked out issue CB-3393[1], you should. I believe
   this is
a pretty big problem and brings into question the way we are
 loading
plugins.

Using an absolute path is not going to work as Braden suggests in
 the
comments of the issue. He proposes adding code to cordova.js that
  will
search for the cordova_plugins.json file and reference it
 correctly.
   This
feels very hacky to me and will lead to more issues. I believe we
  need
   to
reconsider how we are loading plugins.

I am hoping more people decide to chime in on this discussion.

[1] - https://issues.apache.org/jira/browse/CB-3393


On Wed, May 15, 2013 at 9:12 AM, Steven Gill
 stevengil...@gmail.com
  
wrote:

 Hey Bryan,

 Thanks for chiming in. I realized this after I made the change
yesterday.
 Tracking it with https://issues.apache.org/jira/browse/CB-3393

 Cheers,
 -Steve
 On May 15, 2013 5:34 AM, Bryan Higgins
 bhigg...@blackberry.com
wrote:

 Thanks Steve. I meant to bring that commit up on the list.

 The problem is that the relative reference to
 cordova_plugins.json
   only
 works when the page is in the same directory as that file. Is
 that
also an
 

Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Bryan Higgins
Thanks Steve. I meant to bring that commit up on the list.

The problem is that the relative reference to cordova_plugins.json only
works when the page is in the same directory as that file. Is that also an
issue on ios/android? If so, is there a standard cross platform way to
reference a file in the root of a cordova app?

We had to do something similar in plugman. This has not yet been merged in:

https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419caa56faee743f841bc987bd


On Tue, May 14, 2013 at 8:03 PM, Steven Gill stevengil...@gmail.com wrote:

 Hey All,

 The BB10 stuff got merged into cordova.js. The following commit breaks
 plugin_loader for ios + android.

 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467cc663897ccce9
 .
 I am going to remove the slash for now.

 -Steve



Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Steven Gill
Hey Bryan,

Thanks for chiming in. I realized this after I made the change yesterday.
Tracking it with https://issues.apache.org/jira/browse/CB-3393

Cheers,
-Steve
On May 15, 2013 5:34 AM, Bryan Higgins bhigg...@blackberry.com wrote:

 Thanks Steve. I meant to bring that commit up on the list.

 The problem is that the relative reference to cordova_plugins.json only
 works when the page is in the same directory as that file. Is that also an
 issue on ios/android? If so, is there a standard cross platform way to
 reference a file in the root of a cordova app?

 We had to do something similar in plugman. This has not yet been merged in:


 https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419caa56faee743f841bc987bd


 On Tue, May 14, 2013 at 8:03 PM, Steven Gill stevengil...@gmail.com
 wrote:

  Hey All,
 
  The BB10 stuff got merged into cordova.js. The following commit breaks
  plugin_loader for ios + android.
 
 
 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467cc663897ccce9
  .
  I am going to remove the slash for now.
 
  -Steve
 



Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Steven Gill
Hey All,

If you haven't checked out issue CB-3393[1], you should. I believe this is
a pretty big problem and brings into question the way we are loading
plugins.

Using an absolute path is not going to work as Braden suggests in the
comments of the issue. He proposes adding code to cordova.js that will
search for the cordova_plugins.json file and reference it correctly. This
feels very hacky to me and will lead to more issues. I believe we need to
reconsider how we are loading plugins.

I am hoping more people decide to chime in on this discussion.

[1] - https://issues.apache.org/jira/browse/CB-3393


On Wed, May 15, 2013 at 9:12 AM, Steven Gill stevengil...@gmail.com wrote:

 Hey Bryan,

 Thanks for chiming in. I realized this after I made the change yesterday.
 Tracking it with https://issues.apache.org/jira/browse/CB-3393

 Cheers,
 -Steve
 On May 15, 2013 5:34 AM, Bryan Higgins bhigg...@blackberry.com wrote:

 Thanks Steve. I meant to bring that commit up on the list.

 The problem is that the relative reference to cordova_plugins.json only
 works when the page is in the same directory as that file. Is that also an
 issue on ios/android? If so, is there a standard cross platform way to
 reference a file in the root of a cordova app?

 We had to do something similar in plugman. This has not yet been merged
 in:


 https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419caa56faee743f841bc987bd


 On Tue, May 14, 2013 at 8:03 PM, Steven Gill stevengil...@gmail.com
 wrote:

  Hey All,
 
  The BB10 stuff got merged into cordova.js. The following commit breaks
  plugin_loader for ios + android.
 
 
 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467cc663897ccce9
  .
  I am going to remove the slash for now.
 
  -Steve
 




Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Filip Maj
Could we leverage our own File API to load the plugins json instead of
relying on (possibly unclear local vs remote) XHR semantics?

On 5/15/13 12:03 PM, Steven Gill stevengil...@gmail.com wrote:

Hey All,

If you haven't checked out issue CB-3393[1], you should. I believe this is
a pretty big problem and brings into question the way we are loading
plugins.

Using an absolute path is not going to work as Braden suggests in the
comments of the issue. He proposes adding code to cordova.js that will
search for the cordova_plugins.json file and reference it correctly. This
feels very hacky to me and will lead to more issues. I believe we need to
reconsider how we are loading plugins.

I am hoping more people decide to chime in on this discussion.

[1] - https://issues.apache.org/jira/browse/CB-3393


On Wed, May 15, 2013 at 9:12 AM, Steven Gill stevengil...@gmail.com
wrote:

 Hey Bryan,

 Thanks for chiming in. I realized this after I made the change
yesterday.
 Tracking it with https://issues.apache.org/jira/browse/CB-3393

 Cheers,
 -Steve
 On May 15, 2013 5:34 AM, Bryan Higgins bhigg...@blackberry.com
wrote:

 Thanks Steve. I meant to bring that commit up on the list.

 The problem is that the relative reference to cordova_plugins.json only
 works when the page is in the same directory as that file. Is that
also an
 issue on ios/android? If so, is there a standard cross platform way to
 reference a file in the root of a cordova app?

 We had to do something similar in plugman. This has not yet been merged
 in:


 
https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419ca
a56faee743f841bc987bd


 On Tue, May 14, 2013 at 8:03 PM, Steven Gill stevengil...@gmail.com
 wrote:

  Hey All,
 
  The BB10 stuff got merged into cordova.js. The following commit
breaks
  plugin_loader for ios + android.
 
 
 
https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467c
c663897ccce9
  .
  I am going to remove the slash for now.
 
  -Steve
 





Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Bryan Higgins
That won't work for remotely hosted pages and wouldn't allow for the File
API to be pulled out into a plugin.

Based on the constraints, the only other solution I can think of is to
require that cordova.js sits at the root of the project. The plugin loader
scripts could then figure out the path based on the cordova-js script tag.
The original plan was to inject directly into cordova-js, which would have
imposed a similar constraint, but a decision was made to use a JSON file to
avoid code generation issues.

Keep in mind that the path is relative to the HTML file, not the script
making the XHR.


On Wed, May 15, 2013 at 3:12 PM, Filip Maj f...@adobe.com wrote:

 Could we leverage our own File API to load the plugins json instead of
 relying on (possibly unclear local vs remote) XHR semantics?

 On 5/15/13 12:03 PM, Steven Gill stevengil...@gmail.com wrote:

 Hey All,
 
 If you haven't checked out issue CB-3393[1], you should. I believe this is
 a pretty big problem and brings into question the way we are loading
 plugins.
 
 Using an absolute path is not going to work as Braden suggests in the
 comments of the issue. He proposes adding code to cordova.js that will
 search for the cordova_plugins.json file and reference it correctly. This
 feels very hacky to me and will lead to more issues. I believe we need to
 reconsider how we are loading plugins.
 
 I am hoping more people decide to chime in on this discussion.
 
 [1] - https://issues.apache.org/jira/browse/CB-3393
 
 
 On Wed, May 15, 2013 at 9:12 AM, Steven Gill stevengil...@gmail.com
 wrote:
 
  Hey Bryan,
 
  Thanks for chiming in. I realized this after I made the change
 yesterday.
  Tracking it with https://issues.apache.org/jira/browse/CB-3393
 
  Cheers,
  -Steve
  On May 15, 2013 5:34 AM, Bryan Higgins bhigg...@blackberry.com
 wrote:
 
  Thanks Steve. I meant to bring that commit up on the list.
 
  The problem is that the relative reference to cordova_plugins.json only
  works when the page is in the same directory as that file. Is that
 also an
  issue on ios/android? If so, is there a standard cross platform way to
  reference a file in the root of a cordova app?
 
  We had to do something similar in plugman. This has not yet been merged
  in:
 
 
 
 
 https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419ca
 a56faee743f841bc987bd
 
 
  On Tue, May 14, 2013 at 8:03 PM, Steven Gill stevengil...@gmail.com
  wrote:
 
   Hey All,
  
   The BB10 stuff got merged into cordova.js. The following commit
 breaks
   plugin_loader for ios + android.
  
  
 
 
 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467c
 c663897ccce9
   .
   I am going to remove the slash for now.
  
   -Steve
  
 
 




Re: plugin loader breakage from blackberry 10 merge into cordova js

2013-05-15 Thread Steven Gill
Just had a chat with Fil and learned that we did not have automatic js
installation until braden implemented this. So disregard my last post.

I am reviewing some of our old threads on this issue. If anyone else is
interested, You can view [1]

[1]
http://apache.markmail.org/message/vxmd3yrr5i5q27w3?q=plugman+plugin_loader%2Ejs


On Wed, May 15, 2013 at 3:07 PM, Steven Gill stevengil...@gmail.com wrote:

 This may be unpopular, but I'm wondering if the best solution might be to
 drop jsmodule/cordova_plugins.json and go back to just including script
 tags in plugin.xml that get added to your index.html/cordova.js. I know it
 isn't as pretty, but it won't have to deal with these issues.




 On Wed, May 15, 2013 at 12:36 PM, Bryan Higgins br...@bryanhiggins.netwrote:

 That won't work for remotely hosted pages and wouldn't allow for the File
 API to be pulled out into a plugin.

 Based on the constraints, the only other solution I can think of is to
 require that cordova.js sits at the root of the project. The plugin loader
 scripts could then figure out the path based on the cordova-js script tag.
 The original plan was to inject directly into cordova-js, which would have
 imposed a similar constraint, but a decision was made to use a JSON file
 to
 avoid code generation issues.

 Keep in mind that the path is relative to the HTML file, not the script
 making the XHR.


 On Wed, May 15, 2013 at 3:12 PM, Filip Maj f...@adobe.com wrote:

  Could we leverage our own File API to load the plugins json instead of
  relying on (possibly unclear local vs remote) XHR semantics?
 
  On 5/15/13 12:03 PM, Steven Gill stevengil...@gmail.com wrote:
 
  Hey All,
  
  If you haven't checked out issue CB-3393[1], you should. I believe
 this is
  a pretty big problem and brings into question the way we are loading
  plugins.
  
  Using an absolute path is not going to work as Braden suggests in the
  comments of the issue. He proposes adding code to cordova.js that will
  search for the cordova_plugins.json file and reference it correctly.
 This
  feels very hacky to me and will lead to more issues. I believe we need
 to
  reconsider how we are loading plugins.
  
  I am hoping more people decide to chime in on this discussion.
  
  [1] - https://issues.apache.org/jira/browse/CB-3393
  
  
  On Wed, May 15, 2013 at 9:12 AM, Steven Gill stevengil...@gmail.com
  wrote:
  
   Hey Bryan,
  
   Thanks for chiming in. I realized this after I made the change
  yesterday.
   Tracking it with https://issues.apache.org/jira/browse/CB-3393
  
   Cheers,
   -Steve
   On May 15, 2013 5:34 AM, Bryan Higgins bhigg...@blackberry.com
  wrote:
  
   Thanks Steve. I meant to bring that commit up on the list.
  
   The problem is that the relative reference to cordova_plugins.json
 only
   works when the page is in the same directory as that file. Is that
  also an
   issue on ios/android? If so, is there a standard cross platform way
 to
   reference a file in the root of a cordova app?
  
   We had to do something similar in plugman. This has not yet been
 merged
   in:
  
  
  
  
 
 https://github.com/blackberry/cordova-plugman/commit/7f8b704b6d4eb7419ca
  a56faee743f841bc987bd
  
  
   On Tue, May 14, 2013 at 8:03 PM, Steven Gill 
 stevengil...@gmail.com
   wrote:
  
Hey All,
   
The BB10 stuff got merged into cordova.js. The following commit
  breaks
plugin_loader for ios + android.
   
   
  
  
 
 https://github.com/apache/cordova-js/commit/8d59461c6f796f2c88a0eae2467c
  c663897ccce9
.
I am going to remove the slash for now.
   
-Steve