A JBoss Project
Red Hat

Posts tagged with 'browsersim'

Recently several people have asked me the following question:

How can I test Nexus 9 / Moto G / LG G3 etc. via BrowserSim? There is no such device in the preference list.
— BrowserSim user

Actually, it’s extremely easy to do…​

Basic concepts

Firstly, let’s introduce several fundamental concepts which we will need in the further discussion:

  • Physical pixel - the cell in the device’s display matrix.

  • Display resolution - the number of distinct physical pixels in each dimension that can be displayed. For instance, resolution 640 × 1136 means that the width of the display is 640 pixels and the height is 1136.

  • Pixel Ratio - the value which determines how a device’s screen resolution is interpreted by the CSS. Basically, CSS interprets a device’s resolution by the formula: Display Resolution / Pixel Ratio.
    For example, iPhone 5s has the following parameters:

    • Display Resolution: 640 x 1136

    • Pixel Ratio: 2

    • CSS Interpreted Resolution: (640 / 2) x (1136 / 2) = 320 x 568

The reason why pixel ratio was created is due to the fact that screens of the modern phones have high resolution. So, if devices with high resolution had pixel ratio of 1 (i.e. CSS Interpreted Resolution = Display Resolution), then it would be almost impossible to browse on the Internet cause the content would be too small to see.
  • User-Agent - HTTP header that identifies the client software. When you open a web page, your web browser includes a user-agent header in the request sent to the server that hosts the website. This string essentially introduces your browser to the server, describing which browser version you are using and relating other information about your computer or mobile device, such as the operating system and its version. The server can use this information to provide content that is tailored for your specific browser.

How to add custom device?

Now let’s move from theory to practice. Run BrowserSim, open preferences (Right click → Preferences…​) and push the Add button on the Devices tab :

BrowserSim preferences

The Add Device dialog will be shown:

Add device dialog

Now all you need is to input correct data for your specific device and press the "OK" button - newly created device will be added to the preferences. Let’s practice on the real sample - Microsoft Lumia 928. This phone has the following parameters:

  • Display Width: 768

  • Dispaly Height: 1280

  • Pixel Ratio: 2.4

  • User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 928)

All device specific information can be easily found on the web

Unfortunatelly, there is no Microsoft Lumia skin yet, so you will have to select some other one. Of course this doesn’t make the experience smooth and complete but you will be able to achieve the main aim: test and reproduce layout issues for that device. Although we are trying to update the list of skin / devices, we won’t be able to cover every single case anyway. So, from time to time you will need to do it manually. By the way, in the brand new 8.0.1.GA release we have added IPhone 6 / 6 plus devices:

IPhone 6 / 6 plus devices

BrowserSim standalone

For those who don’t use Eclipse / JBoss Developer Studio there is a standalone mode of BrowserSim. More details about BrowserSim standalone can be found in the following blog.

Conclusion

We are trying our best to make our tools as good as possible. User feedback is what we are seeking for now. We look forward to hearing your comments, remarks and proposals.
Merry Xmas and Happy New Year!
Have fun!

Ilya Buziuk
@ilyabuziuk

In this article I’m happy to say that standalone BrowserSim is back.

Standalone BrowserSim allows to use BrowserSim without firing up Eclipse. Unfortunately, only SWT.WEBKIT engine is available in standalone BrowserSim, so it will require Safari on Windows or WebKitGTK 1.2.0 on Linux to be installed. Nevertheless, all BrowserSim features available there.

You can read about BrowserSim features here. For more information about BrowserSim see Browsersim FAQ.

standalone-bs

How can I try it?

Standalone BrowserSim is available on the artifacts tab on the downloads page. You can try stable or if you want latest greatest nightly builds are available too.

You can also build your own standalone BrowserSim from source. To do it:

  • ensure you have Java (1.6+), Ant (1.5+) and Maven (3.1+) installed.

  • execute the following commands:

    $ git clone https://github.com/jbosstools/jbosstools-browsersim
    $ cd products
    $ mvn clean package
    $ cd browsersim-standalone/target/application

You can run browsersim.jar using the following command:

  • Windows, Linux:

    java -jar browsersim.jar [$start_page]
  • Mac OS:

    java -XstartOnFirstThread -jar browsersim.jar [$start_page]
To run standalone Browsersim on Linux with specific GTK version add SWT_GTK3=1 (GTK 3) / SWT_GTK3=0 (GTK 2) before the run command.

In this article, I’m happy to introduce you new BrowserSim / CordovaSim features, which are available in the new JBoss Developer Studio 8.0.0.GA. Basically, I want to focus on:

  • JavaFx web engine

  • Eclipse console logging

  • Dev Tools Debugger

JavaFx web engine

BrowserSim and CordovaSim have a new JavaFx web engine as an alternative to SWT WebKit. In the original there was only one web engine - SWT WebKit. Unfortunately, it has several drawbacks. For example, using SWT WebKit on Windows requires Apple Safari installation (provides SWT WebKit engine), which is pretty obsolete for now - May 9, 2012 is the date of the last update. Moreover, SWT WebKit doesn’t support Debugger API. Due to these limitations it was decided to add JavaFX web engine support. Web engine can be changed in Menu → Preferences → Settings Tab → Browser Engine.

JavaFx web engine
If you want to use JavaFX web engine, you need to run BrowserSim / CordovaSim against Oracle JDK version 7 or higher (version 8 is recommended)

Eclipse console logging

Eclipse console logging is available for both SWT Webkit and JavaFx web engines. Now the output of the main javascript console functions (console.log, console.info, console.warn, console.error) is displayed in the Eclipse console.

Eclipse Console Logging

Dev Tools Debugger

Dev Tools Debugger is available only for JavaFx web engine. One can connect the debugger to the BrowserSim / CordovaSim (Right click → Debug → Dev Tools…​) and step through the code, introspect variables and so forth.

Dev tools Debugger

Demo

Here is a short demo video with the new features:

All these features are also available for CordovaSim

BrowserSim standalone

For one who doesn’t use Eclipse / JBoss Developer Studio there is a standalone mode of BrowserSim. However, only SWT WebKit web engine is supported (we are planning to add JavaFx support in the next releases - JBIDE-18703). More details about BrowserSim standalone can be found in the following blog.

BrowserSim FAQ

BrowserSim FAQ can be found here. If you wasn’t able to find the answer, just post your question in the comments to this blog.

Known issues

  • Dev Tools Debugger doesn’t work properly with the Oracle JDK 8u20. I do hope it will be fixed in the upcoming JDK releases - RT-38918, JBIDE-18526

  • JavaFx which is shipped with Oracle JDK 7 has no localStorage support. Fortunately, it is fixed in JDK 8 - RT-29584

  • JavaFx which is shipped with Oracle JDK 7 has no WebSocket support, which is vital for LiveReload functionality. So, LiveReload doesn’t work with Oracle JDK 7 for JavaFx web engine. Fortunately, it is fixed in JDK 8 - RT-14947

  • JavaFx HTML 5 Date and time inputs do not function properly - RT-34974, JBIDE-17054

Conclusion

We are trying our best to make our tools as good as possible. User feedback is what we are seeking for now. We look forward to hearing your comments, remarks and proposals. Please, comment below about features you would you like to have in the upcoming releases!
Have fun!

Ilya Buziuk
@ilyabuziuk

Looking for older posts ? See the Archived entries.
back to top