[jbosstools-issues] [JBoss JIRA] (JBIDE-13552) BrowserSim: Ripple integration

Ilya Buziuk (JIRA) jira-events at lists.jboss.org
Fri May 17 08:14:06 EDT 2013


     [ https://issues.jboss.org/browse/JBIDE-13552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ilya Buziuk updated JBIDE-13552:
--------------------------------

    Description: 
Ripple is an emulator, which provides mobile environment (such as Cordova API) to HTML applications.
Ripple extension for Chrome is written in HTML/JavaScript with usage of Chrome extensions API and some Chrome-only API. When run as an extension, Ripple looks like a mobile iframe in the center of a browser window, and several controls around this iframe, including Geolocation, Orientation and Messaging. These controls allow to change "answers" for queries to emulated API.

*On the high level our plan is to:*
1. get rid of dependencies to Chrome extensions API and Chrome-only API
2. replace the mobile iframe with BrowserSim popup window
3. implement missing pieces
4. replace some Ripple controls with BrowserSim controls
5. integrate our Ripple-BrowserSim simulator in Eclipse
6. other issues

*More details follow:*
*1. get rid of dependencies to Chrome extensions API and Chrome-only API*
This includes:
- allow Ripple code to access {{window}} and {{document}} objects of Cordova applications. _*Resolved* by hosting Ripple and Cordova applications on the same Jetty server_
- allowing cross-origin XHR from BrowserSim. _We *resolved* this by implementation of a Jetty-based proxy_
- Web SQL API  is deprecated and it is not available in BrowserSim on Windows. _We *resolved* it by our own implementation of this API in pure JavaScript JBIDE-13813._
- allow to upload files to simulate Cordova Camera API. The problem is that some Chrome API is not available in BrowserSim (an example is {{window.URL.createObjectURL(blob)}}). _We *resolved* it by an upload file servlet in Jetty_

*2. replace the mobile iframe with BrowserSim popup window*
- there is bug in SWT which leads to multiple popups being opened instead of one. _*Resolved.* We already found a workaround for it_
- iframe should be removed from the control page. _*Resolved*. The iframe all JS dependencies to it are removed._
- need a way to change BrowserSim skin while running as popup. The problem is that when the skin is changing, we loose connection with the parent window. _*Resolved*. Now we refresh the parent window after the skin is changed. After refresh the parent window tries to open a new popup, and we connect already created new skin to it.*_

*3. implement missing pieces*
- Compas API does not work in both CordovaSim and original Ripple. *Resolved* actually it works - bad demo sample
- Capture API (audio and video recording using an external app) does not work in both CordovaSim and original Ripple *Resolved* JBIDE-14300
- Media API (audio playback and recording) does not work in CordovaSim now (not sure if it works in original Ripple) *Not a bug* JBIDE-14306
- Bar code scanner? *Resolved* JBIDE-14362
- Card reader?

*4. replace some Ripple controls with BrowserSim controls*
- the {{backbutton}} event should be fired when user presses the Back button in BrowserSim.  _*Resolved*_
- BrowserSim's change skin controls should used instead of Ripple's select device controls (Device API should know which device is selected)
- Ripple's orientation change should be replaced by BrowserSim's one. _*Resolved*_

*5. integrate our Ripple-BrowserSim simulator in Eclipse*
- provide an easy way to run our simulator from Eclipse, probably add something like "Open in CordovaSim" toolbar item/context menu _*In progress.*_
- create build scripts, which probably includes building Ripple from its github repository and packaging it into a bundle

*6. other issues*
- CordovaSim should show an error if jetty port is not available. _*Resolved*_
- A bug: if there are two Cordova projects in the workspace with {{index.html}} and we run CordovaSim for both these projects, than only one of the {{index.html}} files may be showed in both cases. The problem is that  by default Jetty allows the {{If-modified-since}} header and the file with an earlier modification date will never be returned. _*Resolved* by not returning this header._

  was:
Ripple is an emulator, which provides mobile environment (such as Cordova API) to HTML applications.
Ripple extension for Chrome is written in HTML/JavaScript with usage of Chrome extensions API and some Chrome-only API. When run as an extension, Ripple looks like a mobile iframe in the center of a browser window, and several controls around this iframe, including Geolocation, Orientation and Messaging. These controls allow to change "answers" for queries to emulated API.

*On the high level our plan is to:*
1. get rid of dependencies to Chrome extensions API and Chrome-only API
2. replace the mobile iframe with BrowserSim popup window
3. implement missing pieces
4. replace some Ripple controls with BrowserSim controls
5. integrate our Ripple-BrowserSim simulator in Eclipse
6. other issues

*More details follow:*
*1. get rid of dependencies to Chrome extensions API and Chrome-only API*
This includes:
- allow Ripple code to access {{window}} and {{document}} objects of Cordova applications. _*Resolved* by hosting Ripple and Cordova applications on the same Jetty server_
- allowing cross-origin XHR from BrowserSim. _We *resolved* this by implementation of a Jetty-based proxy_
- Web SQL API  is deprecated and it is not available in BrowserSim on Windows. _We *resolved* it by our own implementation of this API in pure JavaScript JBIDE-13813._
- allow to upload files to simulate Cordova Camera API. The problem is that some Chrome API is not available in BrowserSim (an example is {{window.URL.createObjectURL(blob)}}). _We *resolved* it by an upload file servlet in Jetty_

*2. replace the mobile iframe with BrowserSim popup window*
- there is bug in SWT which leads to multiple popups being opened instead of one. _*Resolved.* We already found a workaround for it_
- iframe should be removed from the control page. _*Resolved*. The iframe all JS dependencies to it are removed._
- need a way to change BrowserSim skin while running as popup. The problem is that when the skin is changing, we loose connection with the parent window. _*Resolved*. Now we refresh the parent window after the skin is changed. After refresh the parent window tries to open a new popup, and we connect already created new skin to it.*_

*3. implement missing pieces*
- Compas API does not work in both CordovaSim and original Ripple. *Resolved* actually it works - bad demo sample
- Capture API (audio and video recording using an external app) does not work in both CordovaSim and original Ripple *Resolved* JBIDE-14300
- Media API (audio playback and recording) does not work in CordovaSim now (not sure if it works in original Ripple) *Not a bug* JBIDE-14306
- Bar code scanner?
- Card reader?

*4. replace some Ripple controls with BrowserSim controls*
- the {{backbutton}} event should be fired when user presses the Back button in BrowserSim.  _*Resolved*_
- BrowserSim's change skin controls should used instead of Ripple's select device controls (Device API should know which device is selected)
- Ripple's orientation change should be replaced by BrowserSim's one. _*Resolved*_

*5. integrate our Ripple-BrowserSim simulator in Eclipse*
- provide an easy way to run our simulator from Eclipse, probably add something like "Open in CordovaSim" toolbar item/context menu _*In progress.*_
- create build scripts, which probably includes building Ripple from its github repository and packaging it into a bundle

*6. other issues*
- CordovaSim should show an error if jetty port is not available. _*Resolved*_
- A bug: if there are two Cordova projects in the workspace with {{index.html}} and we run CordovaSim for both these projects, than only one of the {{index.html}} files may be showed in both cases. The problem is that  by default Jetty allows the {{If-modified-since}} header and the file with an earlier modification date will never be returned. _*Resolved* by not returning this header._


    
> BrowserSim: Ripple integration
> ------------------------------
>
>                 Key: JBIDE-13552
>                 URL: https://issues.jboss.org/browse/JBIDE-13552
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: browsersim
>            Reporter: Yahor Radtsevich
>            Assignee: Yahor Radtsevich
>             Fix For: 4.1.0.Beta1
>
>
> Ripple is an emulator, which provides mobile environment (such as Cordova API) to HTML applications.
> Ripple extension for Chrome is written in HTML/JavaScript with usage of Chrome extensions API and some Chrome-only API. When run as an extension, Ripple looks like a mobile iframe in the center of a browser window, and several controls around this iframe, including Geolocation, Orientation and Messaging. These controls allow to change "answers" for queries to emulated API.
> *On the high level our plan is to:*
> 1. get rid of dependencies to Chrome extensions API and Chrome-only API
> 2. replace the mobile iframe with BrowserSim popup window
> 3. implement missing pieces
> 4. replace some Ripple controls with BrowserSim controls
> 5. integrate our Ripple-BrowserSim simulator in Eclipse
> 6. other issues
> *More details follow:*
> *1. get rid of dependencies to Chrome extensions API and Chrome-only API*
> This includes:
> - allow Ripple code to access {{window}} and {{document}} objects of Cordova applications. _*Resolved* by hosting Ripple and Cordova applications on the same Jetty server_
> - allowing cross-origin XHR from BrowserSim. _We *resolved* this by implementation of a Jetty-based proxy_
> - Web SQL API  is deprecated and it is not available in BrowserSim on Windows. _We *resolved* it by our own implementation of this API in pure JavaScript JBIDE-13813._
> - allow to upload files to simulate Cordova Camera API. The problem is that some Chrome API is not available in BrowserSim (an example is {{window.URL.createObjectURL(blob)}}). _We *resolved* it by an upload file servlet in Jetty_
> *2. replace the mobile iframe with BrowserSim popup window*
> - there is bug in SWT which leads to multiple popups being opened instead of one. _*Resolved.* We already found a workaround for it_
> - iframe should be removed from the control page. _*Resolved*. The iframe all JS dependencies to it are removed._
> - need a way to change BrowserSim skin while running as popup. The problem is that when the skin is changing, we loose connection with the parent window. _*Resolved*. Now we refresh the parent window after the skin is changed. After refresh the parent window tries to open a new popup, and we connect already created new skin to it.*_
> *3. implement missing pieces*
> - Compas API does not work in both CordovaSim and original Ripple. *Resolved* actually it works - bad demo sample
> - Capture API (audio and video recording using an external app) does not work in both CordovaSim and original Ripple *Resolved* JBIDE-14300
> - Media API (audio playback and recording) does not work in CordovaSim now (not sure if it works in original Ripple) *Not a bug* JBIDE-14306
> - Bar code scanner? *Resolved* JBIDE-14362
> - Card reader?
> *4. replace some Ripple controls with BrowserSim controls*
> - the {{backbutton}} event should be fired when user presses the Back button in BrowserSim.  _*Resolved*_
> - BrowserSim's change skin controls should used instead of Ripple's select device controls (Device API should know which device is selected)
> - Ripple's orientation change should be replaced by BrowserSim's one. _*Resolved*_
> *5. integrate our Ripple-BrowserSim simulator in Eclipse*
> - provide an easy way to run our simulator from Eclipse, probably add something like "Open in CordovaSim" toolbar item/context menu _*In progress.*_
> - create build scripts, which probably includes building Ripple from its github repository and packaging it into a bundle
> *6. other issues*
> - CordovaSim should show an error if jetty port is not available. _*Resolved*_
> - A bug: if there are two Cordova projects in the workspace with {{index.html}} and we run CordovaSim for both these projects, than only one of the {{index.html}} files may be showed in both cases. The problem is that  by default Jetty allows the {{If-modified-since}} header and the file with an earlier modification date will never be returned. _*Resolved* by not returning this header._

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosstools-issues mailing list