New feature - Live API - Embed and automate browsers in your own apps.

Cross-Browser Testing Blog

Browserling now supports multiple operating systems

Fantastic news everyone! You can now cross-browser test on various Windows platforms. We just added Microsoft Windows XP, Windows Vista, Windows 7 and Windows 8 to Browserling.

Cross-browser testing on Windows

We've installed the latest versions of Chrome, Firefox, Opera, Safari and Internet Explorer on each platform.

The browser URL sharing scheme now supports new platforms as well:

www.browserling.com/browse/Os/Os_Version/Browser/Browser_Version/Url

For example, here's a URL to my blog in Internet Explorer 9 on Windows Vista:

www.browserling.com/browse/win/vista/ie/9/http://www.catonmat.net

In this example

  • Os is win,
  • Os_Version is vista,
  • Browser is ie (Internet Explorer),
  • Browser_Version is 9,
  • Url is http://www.catonmat.net.

Browserling's Live API also now supports multiple OS platforms through these functions:

  • setPlatformName()
  • setPlatformVersion()

Next we're adding Windows 8.1, Windows 10, Androids, OSX and Linux browsers.

Happy cross browser testing and stay tuned for new exciting things we're launching!

▶ Read the full post
Chrome 43 Added to Browserling

Yesterday Google Chrome team released the stable version of Chrome 43 on Windows, Mac and Linux. We just deployed Chrome 43 to all our OS platforms and it's now available to all our paying customers and free users.

Cross-browser testing in Chrome 43

Chrome 43 implements the following new features and updates:

  • Allow JS-triggered copy/cut with a user gesture - execCommand("copy") and execCommand("cut") should be allowed to modify the system clipboard in the context of a user gesture (the spec uses the language "allowed to show a popup").
  • Attr child nodes - Attr should not have any child nodes per the DOM spec and should not inherit from Node. This entry covers the child node aspect only.
  • Cache API (global scope) - The Cache API allows authors to fully and conveniently manage their content caches for offline use. An origin can have multiple, named Cache objects. This API is already available in a Service Worker context. This entry is to make it available globally (=> accessible from a document context).
  • Fetch API: streaming response body - Addition of the response.body property to the Fetch API. response.body is a ReadableStream from the Streams Standard.
  • Move DOM attributes to prototype chains - Blink has placed DOM attributes on instances instead of prototypes. However, the Web IDL spec requires that DOM attributes must be placed on prototype chains (except for a few exceptions such as static attributes and [Unforgeable].) We move DOM attributes on instances to prototype chains following the spec.
  • Permissions API - The Permissions API allows a web application to be aware of the status of a given permission, to know whether it is granted, denied or if the user will be asked whether the permission should be granted. The purpose of the API is to improve general UX with regards to permissions on the Web, allowing developers to be aware of what is going to happen will enable better flow.
  • Unprefixed CSS Animations - CSS Animations without the -webkit- prefix.
  • Upgrade insecure requests - We encourage authors to transition their sites and applications away from insecure transport, and onto encrypted and authenticated connections, but mixed content checking causes headaches. This feature allows authors to ask the user agent to transparently upgrade HTTP resources to HTTPS to ease the migration burden.
  • Web MIDI API - Defines an API supporting the MIDI protocol, enabling web applications to enumerate and select MIDI input and output devices on the client system and send and receive MIDI messages.
  • WebAudio: Allow developers to close an AudioContext explicitly - An AudioContext can now be explicitly closed, thereby releasing any hardware resources associated with the AudioContext. Without this, developers had to depend on garbage collection of the AudioContext to release hardware resources.
  • WebAudio: AudioBuffer copyFromChannel and copyToChannel - Support the copyFromChannel and copyToChannel methods on a WebAudio AudioBuffer.
  • WebAudio: Selective Disconnection on AudioNode.disconnect() - Currently AudioNode.disconnect() disconnects all existing connections from output(s) of the AudioNode. This is to support disconnecting only one connection. There have been numerous requests to support selective disconnection with disconnect() method and Audio WG agreed to change the spec to accommodate the feature request. With this change, it is possible to disconnect a signal path out of multiple connections to AudioNode input or AudioParam.
  • autocapitalize - Enables web pages to give hint with regards to the autocapitalization behaviour to use on text fields.
  • overflowchanged event - The overflowchanged event and the OverflowEvent interface have been removed.

The new release also includes 37 security fixes. Chrome team highlighted the following fixes that were contributed by external researchers:

  • CVE-2015-1252: Sandbox escape in Chrome. Credit to anonymous.
  • CVE-2015-1253: Cross-origin bypass in DOM. Credit to anonymous.
  • CVE-2015-1254: Cross-origin bypass in Editing. Credit to Armin Razmdjou.
  • CVE-2015-1255: Use-after-free in WebAudio. Credit to Khalil Zhani.
  • CVE-2015-1256: Use-after-free in SVG. Credit to Atte Kettunen of OUSPG.
  • CVE-2015-1251: Use-after-free in Speech. Credit to SkyLined working with HP's Zero Day Initiative
  • CVE-2015-1257: Container-overflow in SVG. Credit to miaubiz.
  • CVE-2015-1258: Negative-size parameter in Libvpx. Credit to cloudfuzzer
  • CVE-2015-1259: Uninitialized value in PDFium. Credit to Atte Kettunen of OUSPG
  • CVE-2015-1260: Use-after-free in WebRTC. Credit to Khalil Zhani.
  • CVE-2015-1261: URL bar spoofing. Credit to Juho Nurminen.
  • CVE-2015-1262: Uninitialized value in Blink. Credit to miaubiz.
  • CVE-2015-1263: Insecure download of spellcheck dictionary. Credit to Mike Ruddy.
  • CVE-2015-1264: Cross-site scripting in bookmarks. Credit to K0r3Ph1L.

Happy cross-browser testing in Chrome 43!

▶ Read the full post
Firefox 38 Added to Browserling

Mozilla Firefox 38 was just released and we just added it to all OS platforms on Browserling. You can already cross-browser test your websites and code in Firefox 38!

Cross-browser testing in Mozilla Firefox 38

The new Firefox 38 features include:

  • New tab-based preferences.
  • Ruby annotation support.
  • Base for the next ESR release.

Firefox 38 biggest changes include:

  • Setting autocomplete=off is no longer supported for username/password fields.
  • URL parser avoids doing percent encoding when setting the Fragment part of the URL, and percent decoding when getting the Fragment in line with the URL spec.
  • RegExp.prototype.source now returns "(?:)" instead of the empty string for empty regular expressions.
  • Improved page load times via speculative connection warmup.
  • TLS False Start optimization now requires a cipher suite using AEAD construction.

Firefox 38 HTML5 updates include:

  • WebSocket now available in Web Workers.
  • BroadcastChannel API implemented.
  • Implemented srcset attribute and element for responsive images.
  • Implemented DOM3 Events KeyboardEvent.code.
  • Mac OS X: Implemented a subset of the Media Source Extensions (MSE) API to allow native HTML5 playback on YouTube.
  • Implemented Encrypted Media Extensions (EME) API to support encrypted HTML5 video/audio playback (Windows Vista or later only).
  • Automatically download Adobe Primetime Content Decryption Module (CDM) for DRM playback through EME (Windows Vista or later only).

Firefox 38 developer tool updates include:

  • Optimized-out variables are now visible in Debugger UI.
  • XMLHttpRequest logs in the web console are now visually labelled and can be filtered separately from regular network requests.
  • WebRTC now has multistream and renegotiation support.
  • Command copy added to console.
  • Added logging of weak ciphers to the web console.

Firefox 38 security fixes include:

  • Mozilla Windows updater can be run outside of application directory.
  • Privilege escalation through IPC channel messages.
  • Untrusted site hosting trusted page can intercept webchannel responses.
  • Buffer overflow and out-of-bounds read while parsing MP4 video metadata.
  • Buffer overflow when parsing compressed XML.
  • Use-after-free due to Media Decoder Thread creation during shutdown.
  • Sensitive URL encoded information written to Android logcat.
  • Use-after-free during text processing with vertical text enabled.
  • Out-of-bounds read and write in asm.js validation.
  • Referrer policy ignored when links opened by middle-click and context menu.
  • Buffer overflow with SVG content and CSS.
  • Buffer overflow parsing H.264 video with Linux Gstreamer.
  • Miscellaneous memory safety hazards (rv:38.0 / rv:31.7).

Happy cross-browser testing!

▶ Read the full post
Live API now supports right click and middle click (wheel click)

A few days ago we added right click and wheel click (middle button click) to Browserling. Today we added the same functionality to Live API.

Live API now implements the following functions:

  • browserling.rightClick(x, y)

Right clicks mouse at (x, y).

  • browserling.wheelClick(x, y)

Middle clicks (wheel clicks) at (x, y).

Left click, right click and mouse wheel click are just three of mouse buttons. Many mouses have more than 3 buttons so we added support for mouses with more buttons via click function:

  • browserling.click(x, y, button)

We support mouses up to 8 buttons. You can now use these extra buttons. Change the button argument from 1 to 8 to click buttons 1 to 8. Left click is 1, mouse wheel is 2, right click is 3. Other buttons are 4 to 8. Default is 1 (left click).

Live API lets you embed browsers in your applications on demand and it lets you automate browsers through JavaScript API.

Happy cross-browser testing!

▶ Read the full post
Introducing short /b/ browse URLs (May 7, 2015)
Right Click and Wheel Click Now Work in Browserling (May 5, 2015)
New Feature - Browser Sharing through Tools (May 1, 2015)
Opera 29 Added to Browserling (April 29, 2015)
Announcing Browserling's Live API (April 20, 2015)
Google Chrome 42 Added to Browserling (April 14, 2015)
Fog Creek Software Interview with Browserling's Co-Founder and CEO (April 6, 2015)
Firefox 37 Added to Browserling (March 31, 2015)
New Feature - Basic Screenshots (March 26, 2015)
New Feature - On-Screen Keyboard (March 25, 2015)
Opera 28 Added to Browserling (March 10, 2015)
Google Chrome 41 Added to Browserling (March 4, 2015)
Firefox 36 Added to Browserling (February 25, 2015)
Local Cross-Browser Testing Tutorial for Linux and Mac (February 18, 2015)
Local Cross-Browser Testing Tutorial for Windows (February 14, 2015)
New Security Feature - Login Rate Limiting (February 7, 2015)
Opera 27 Added to Browserling (January 28, 2015)
Chrome 40 Added to Browserling (January 27, 2015)
Browserling's now much faster - We've upgraded servers to SSDs and 2xRAM and 2xCPU (December 7, 2014)
Opera 26 Added to Browserling (December 3, 2014)
Chrome 39 Added to Browserling (November 18, 2014)
New Pricing Signup Form (November 5, 2014)
Opera 25 Added to Browserling (October 15, 2014)
Browser Sharing URL Scheme (September 20, 2014)
Opera 24 Now Available (September 4, 2014)
Opera 23 Now Available (July 25, 2014)
Opera 22 Now Available (June 3, 2014)
Opera 21 Added to Browserling (May 6, 2014)
Opera 20 Added to Browserling (March 5, 2014)