]
Vlado Pakan closed JBIDE-13552.
-------------------------------
Verified with JBDS 7.0.0.Beta1-v20130529-0631-B257.
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
Attachments: captureaudio.png
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
*4. replace some Ripple controls with BrowserSim controls*
- the {{backbutton}} event should be fired when user presses the Back button in
BrowserSim. _*Resolved*_
- 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 *Resolved* JBIDE-14083
*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: