Cross-Browser Testing Blog

Opera 44 Released and Deployed to Browserling

Opera 44 was released yesterday and we just installed it to our browser testing cloud. Opera 44 is based on Chrome 57 that we already added to Browserling last week. Opera 44 is now fully available to everyone for cross-browser testing.

Cross-browser testing in Opera 44

Try Opera 44 in Browserling now!

Key Features in Opera 44

  • Web Assembly that allows developers to run near-native code in the browser without plugins.
  • CSS grid that's a two-dimensional grid-based layout system for creating responsive user interface designs.
  • Background tab throttling that provides energy savings and longer battery life.
  • Apple's touch bar support.

Developer Features in Opera 44

  • Credential Management

Opera 44 adds support for the Credential Management API. This gives users a simpler sign-in process across devices and provides websites with more control over the usage of credentials. The website can use password-based sign-ins via this API. Once logged in, users will be automatically signed back into a site, even if their session has expired.

  • Improved interoperability

Fieldset.elements now returns an HTMLCollection instead of an HTMLFormControlsCollection to better align with spec. The usemap attribute now requires case-sensitive matching. Custom message events and events created by client.postMessage(message, transfer) in a service worker will now use MessageEvent instead of ServiceWorkerMessageEvent.

  • New CSS features

The caret-color property enables developers to specify the color of the text input cursor. Text-decoration-skip: ink can be used to make underlines skip descenders, the portion of letters that extend below the text's baseline. New text-decoration properties are now available, allowing developers to specify visual effects such as line color and style.

  • Audio/video Improvements

The new AudioContext.getOutputTimestamp() method enables developers to synchronize DOMHighResTimeStamp and AudioContext.currentTime values. AudioBufferSourceNode, OscillatorNode, and ConstantSourceNode now inherit from AudioScheduledSourceNode, consolidating functionality. The new cancelAndHoldAtTime function cancels future AudioParam events with times greater than or equal to cancelTime, allowing developers to preserve the value of the scheduled time in a direct way. Developers can now construct WebAudio-specific events such as OfflineAudioCompletionEvent and AudioProcessingEvent.

  • JavaScript and DOM features

The Fetch API Response class now supports the .redirected attribute to help web developers avoid untrustworthy responses and reduce the risk of open redirectors. The new padStart and padEnd formatting tools enable text padding, facilitating tasks like aligning console output or printing numbers with a fixed number of digits. To preserve consistency with other on attributes, ongotpointercapture and onlostpointercapture are now part of the GlobalEventHandlers mixin.

  • WebAssembly

WebAssembly is a new type of code that can be run in modern web browsers - it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++ with a compilation target so that they can run on the web. It is also designed to run alongside JavaScript, allowing both to work together. WebAssembly is essentially a better replacement for asm.js.

Deprecated and removed features in Opera 44

  • The -internal-media-controls-text-track-list* and related pseudo-elements are deprecated and will be removed in M59 (Opera 46). Use custom controls for custom text track selection.
  • Support for webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), and onwebkitresourcetimingbufferfull has been removed from the Performance interface, in favor of clearResourceTimings(), setResourceTimingBufferSize(), and onresourcetimingbufferfull.
  • Locally-trusted SHA-1 certificates will now result in a certificate error page.
  • A legacy caller has been removed from HTMLEmbedElement and HTMLObjectElement, so the interfaces will now throw exceptions rather than having their instances called as functions.
  • The webkit prefix has been removed from AudioContext and OfflineAudioContext.
  • Support for the <keygen> element has been removed, causing it to no longer display any controls nor submit form element data, to align with other browsers.
  • The <cursor> element has been removed, but cursor icons can still be set via the cursor CSS property.
  • All webkit-prefixed IndexedDB global aliases have been removed, after their deprecation in M38 (Opera 25).
  • Support for the obsolete API webkitCancelRequestAnimationFrame has been removed in favor of cancelAnimationFrame.

Happy cross-browser testing in Opera 44!

▶ Read the full post
Chrome 57 Released and available for testing

Over the weekend Google released Chrome 57 on Windows, OSX and Linux platforms. We just installed Chrome 57 to our cross-browser testing cloud. You can already try the new browser and start testing your websites and code!

Cloud testing in Chrome 57

Try Chrome 57 in Browserling now!

Key changes in Chrome 57

  • WebAssembly has now been enabled (two days after Firefox enabled it in Firefox 52).
  • CSS grid layouts.
  • Improved "Add to Home" screen.
  • Media Session API (Application Programming Interface).

Developer features and updates in Chrome 57

  • Multimedia: Add sequence <DOMString> constructor to PresentationRequest and PresentationConnection.url - This change adds a new constructor to PresentationRequest taking taking multiple URLs (sequence<DOMString>), in addition to the existing constructor that takes a single URL. It also adds the url attribute to PresentationConnection to tell the site what URL was presented.
  • Security: CSP3: The 'worker-src' directive - The 'worker-src' directive restricts the URLs which may be loaded as a Worker, SharedWorker, or ServiceWorker. It falls back to 'child-src' (which, in turn, falls back to 'default-src').
  • CSS ::placeholder pseudo element - Unprefixed version of ::-webkit-input-placeholder.
  • CSS Grid Layout - A two-dimensional grid-based layout system, optimized for user interface design.
  • CSS UI: caret-color property - This property allows coloring the insertion caret.
  • CSS3 Text Decorations - CSS3 Text Decoration specification provides new properties that implements new text decoration styling features such as lines, color and style.
  • CSS: Child-indexed pseudo-classes matching elements without a parent - Change how the child-indexed pseudo-class selectors are matched so they also match elements without a parent. This is a change in the spec from selectors-3 to selectors-4. The reasoning for this is explained in the spec.
  • Misc: Remove webkitCancelRequestAnimationFrame - webkitCancelRequestAnimationFrame is an obsolete, vendor-specific API. Authors should use cancelAnimationFrame instead.
  • CSS: Deprecate internal-media-controls-cast-button - -internal-media-controls-cast-button selector exposes Blink internal shadow DOM to the web content. Authors that want to have a custom cast button should use custom controls and implement a cast button with the Remote Playback API.
  • CSS: Deprecate internal-media-controls-overlay-cast-button - -internal-media-controls-overlay-cast-button selector exposes Blink internal shadow DOM to the web content. Authors that want to have a custom cast button should use custom controls and implement a cast button with the Remote Playback API. Authors that have custom controls and want to hide the overlay can use the disableRemotePlayback attribute.
  • CSS: Deprecate internal-media-controls-text-track-list - -internal-media-controls-text-track-list* selectors expose Blink internal shadow DOM to the web content. Authors that want to have a custom text track picking interface should use custom controls.
  • Network/Connectivity: Drop support for embedded credentials in subresource requests - We should block requests for subresources that contain embedded credentials. Such resources would be handled as network errors.
  • CSS: FontFaceSetLoadEvent Constructor - This entry tracks exposing FontFaceSetLoadEvent constructor.
  • Multimedia: Fullscreen Media Orientation - Automatically lock the screen orientation when a video with default controls go fullscreen in order to maximize the screen usage. The orientation of the screen will match the aspect ratio of the video.
  • DOM: HTMLIFrameElement.allowpaymentrequest - IFrame support for web payments.
  • Multimedia: Intervention: Block audible cross-origin autoplay - This is an intervention that intends to block cross-origin iframes from autoplaying audible media. In other words, cross-origin iframes on desktop will behave like mobile currently behaves: only muted/inaudible autoplay will be allowed.
  • User input: Intervention: Passive Touch Event Listeners During Fling - Passive Event Listeners is a way to improve the scroll performance by unblocking scrolling on touch and wheel event listeners, so that scrolling happens immediately while the events are processed by javascript.
  • Performance: Intervention: Throttle expensive background timers - As an intervention we want to limit how much CPU a background page is allowed to use and to throttle timer queues when this limit is violated. Current target is that background page CPU load level should be under 1%.
  • Performance: Intervention: Throttle timers in out-of-view frames - As an intervention we want to limit the rate at which timers in out-of-view, cross-origin frames are able to fire. Until very recently it wasn't possible for script authors to easily determine whether their content was visible to the user or not. A common pattern therefore is to use a continuous setTimeout() loop for driving animations without considering visibility, which can be very costly for performance.
  • DOM: Remove legacy constants on Event. - There are 16 numeric constants on Event, Event.MOUSEDOWN and others. These constants no longer serve any purpose.
  • Multimedia: Media Session - Enable websites to customize media metadata so they can control the notification and lock screen UI. Also, allow them to control media in the page from outside the page, such as platform UIs and media keys.
  • Multimedia: MediaStreamTrack Content Hints - This feature extends MediaStreamTrack to provide a media-content hint attribute. This optional hint permits MediaStreamTrack consumers such as PeerConnection or MediaRecorder to encode or process track media with methods more appropriate to the type of content that is being consumed.
  • Network/Connectivity: Navigation preload for service workers - An API that enables the browser to send "preload" network requests for navigations before executing the fetch event handler in the service worker that intercepts the target URL. The worker has access to the preload response inside the fetch event handler. Common use cases would be to respond with the preload response directly, or use it to populate the response.
  • Misc: PaymentDetails.error - When the payment request is updated using updateWith, the PaymentDetails can contain a message in the error field that will be displayed to the user. For example, this might commonly be used to explain why goods cannot be shipped to the chosen shipping address. The error field cannot be passed to the PaymentRequest constructor. Doing so will cause a TypeError to be thrown.
  • Performance: Remove prefixed resource timing buffer-management API - Support for webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), and onwebkitresourcetimingbufferfull is removed from the Performance interface, in favor of clearResourceTimings(), setResourceTimingBufferSize(), and onresourcetimingbufferfull. Currently warnings are produced, but upon removal, the prefixed versions will no longer exist.
  • Network/Connectivity: RTCDataChannelEvent constructor - This entry track exposing RTCDataChannelEvent constructor. RTCDataChannel and RTCDataChannelEvent was implemented and shippped before the current process.
  • Offline/Storage: Deprecate FileReaderSync in service workers - The Service Worker spec has always had the (non-normative) note that "any type of synchronous requests must not be initiated inside of a service worker", to avoid blocking the service worker (as blocking the service worker would block all network requests from controlled pages). However synchronous APIs such as FileReaderSync were still available in service workers. So we'd like to fix that by removing this API from service workers. Removal is anticipated in Chrome 59.
  • DOM: Remove Key Generation Element - Since Chrome 49, <keygen>'s default behaviour has been to return the empty string, unless a permission was granted to this page. Removal is anticipated in Chrome 57.
  • Misc: Remove ServiceWorkerMessageEvent in favor of using MessageEvent - As HTML spec extended MessageEvent to allow ServiceWorker as a type of the source attribute, client.postMessage(message, transfer) and creation of custom message events are changed to use MessageEvent instead of ServiceWorkerMessageEvent. It is expected that MessageEvent will ship in Chrome 57 and ServiceWorkerMessageEvent will be removed in Chrome 58.
  • Offline/Storage: Remove webkit-prefixed IndexedDB global aliases - The IndexedDB entry point and global constructors were exposed with webkit prefixes as was the custom at the time, circa Chrome M11: webkitIndexedDB (main entry point) webkitIDBKeyRange (non-callable global constructor, but has useful static methods) webkitIDBCursor webkitIDBDatabase webkitIDBFactory webkitIDBIndex webkitIDBObjectStore webkitIDBRequest webkitIDBTransaction (non-callable global constructors) The non-prefixed API shipped in M24 and the prefixed versions deprecated in M38.
  • Network/Connectivity: Response.redirected and a new security restriction - Add .redirected attribute to Response class of Fetch API. Web developers can check it to avoid untrustworthy responses. To avoid the risk of open redirectors introduce a new security restriction which disallows service workers to respond to requests with a redirect mode different from "follow".
  • Graphics: Remove SVGCursorElement - The <cursor> element. Can be referenced from the 'cursor' property to provide a use-defined cursor image.
  • CSS: Shape Detection API - Photos and images constitute the largest chunk of the Web, and many include recognisable features, such as human faces or QR codes. Detecting these features is computationally expensive, but, particularly on mobile devices, hardware manufacturers have long been supporting these features. This API allows accessing hardware-accelerated detectors where available. This is expected to be in origin trials in Chrome 58.
  • Performance: Ship Navigation Timing 2 - Navigation Timing 2 (NT2) enables obtaining accurate timing data related to the navigation of the document.
  • JavaScript: String.prototype.padStart() / String.prototype.padEnd() - String formatting tools which returns a target/receiver string prepended or appended with a repeating pattern of characters: "foo".padStart(10, "0"); -> "0000000foo"; "foo".padEnd(10, "0"); -> "foo0000000";
  • JavaScript: WebAssembly - WebAssembly, or wasm, is an experimental efficient low-level programming language for in-browser client-side scripting, which is currently in development. Its initial aim is to support C/C++, though other languages are also intended to be supported. WebAssembly is a portable abstract syntax tree which is designed to be faster to parse than JavaScript, as well as faster to execute.
  • Multimedia: WebAudio: Add AudioContext.getOutputTimestamp() method - The AudioContext.getOutputTimestamp() method helps to synchronize DOM time and AudioContext time values. It is used to estimate DOMHighResTimeStamp value of the audio output stream position for the given AudioContext.currentTime value, or do the opposite: estimate AudioContext.currentTime value of the audio output stream position for the given DOMHighResTimeStamp value.
  • Multimedia: WebAudio: Add AudioScheduledSourceNode base class for source nodes - Add AudioScheduledSourceNode as a base class of AudioBufferSourceNode, OscillatorNode, and ConstantSourceNode. This is a small change to capture the common features of the source nodes into a base class.
  • Multimedia: WebAudio: AudioParam cancelAndHoldAtTime - cancelAndHoldAtTime cancels future AudioParam events and holds the value of the AudioParam at the value at the scheduled time.
  • Multimedia: WebAudio: Event Constructors - Allow WebAudio-specific events to be constructed. Specifically, OfflineAudioCompletionEvent and AudioProcessEvent can be constructed.
  • Multimedia: WebAudio: Remove prefixed AudioContext and OfflineAudioContext - Support for webkitAudioContext and webkitOfflineAudioContext is removed in favor of AudioContext and OfflineAudioContext. Currently warnings are produced, but upon removal, the prefixed versions will no longer exist.
  • Security: XSS Auditor blocks by default - Chrome's XSS Auditor should block pages by default, rather than filtering out suspected reflected XSS. Moreover, we should remove the filtering option, as breaking specific pieces of page's script has been an XSS vector itself in the past.
  • Misc: basic-card support in PaymentRequest - Support the "basic-card" method for web payments.
  • DOM: fieldset.elements returns an HTMLCollection, not an HTMLFormControlsCollection - The specification was changed so that fieldset.elements returns an HTMLCollection instead of an HTMLFormControlsCollection.
  • User input: ongot/lostpointercaptures in GlobalEventHandlers - Previously in PointerEvents spec v1 we had ongotpointercapture and onlostpointercapture attributes as part of the Element. Now we are moving them to GlobalEventHandlers to make them consistent with the other on'event' attributes as the capture events will also bubble similar to other events. Note that this way of listening to the events through on'event' attributes are legacy and should not be mostly used. But this change makes sure they are all consistent.
  • User input: rAF Aligned Touch Input - Align uncancelable touchmove events so that they occur close to the rAF as possible.
  • CSS: text-decoration-skip - Implement partial support for text-decoration-skip. Currently, this property is not parsed or functional. Without any changes, the current default behavior matches the "objects" property value. This is a proposal to add support for: "objects" and "ink" values for this property.

Security fixes in Chrome 57

The new release also includes 36 security fixes. The following fixes were highlighted in Chrome release notes:

  • CVE-2017-5044: Heap overflow in Skia. Credit to Kushal Arvind Shah of Fortinet's FortiGuard Labs.
  • CVE-2017-5036: Use after free in PDFium. Credit to Anonymous.
  • CVE-2017-5034: Use after free in PDFium. Credit to Ke Liu of Tencent's Xuanwu LAB.
  • CVE-2017-5039: Use after free in PDFium. Credit to jinmo123.
  • CVE-2017-5040: Information disclosure in V8. Credit to Choongwoo Han.
  • CVE-2017-5031: Use after free in ANGLE. Credit to Looben Yang.
  • CVE-2017-5037: Multiple out of bounds writes in ChunkDemuxer. Credit to Yongke Wang.
  • CVE-2017-5041: Address spoofing in Omnibox. Credit to Jordi Chancel.
  • CVE-2017-5032: Out of bounds write in PDFium. Credit to Ashfaq Ansari - Project Srishti.
  • CVE-2017-5035: Incorrect security UI in Omnibox. Credit to Enzo Aguado.
  • CVE-2017-5043: Use after free in GuestView. Credit to Anonymous.
  • CVE-2017-5033: Bypass of Content Security Policy in Blink. Credit to Nicolai Grodum.
  • CVE-2017-5029: Integer overflow in libxslt. Credit to Holger Fuhrmannek.
  • CVE-2017-5030: Memory corruption in V8. Credit to Brendon Tiszka.
  • CVE-2017-5042: Incorrect handling of cookies in Cast. Credit to Mike Ruddy.
  • CVE-2017-5038: Use after free in GuestView. Credit to Anonymous.
  • CVE-2017-5045: Information disclosure in XSS Auditor. Credit to Dhaval Kapil (vampire).
  • CVE-2017-5046: Information disclosure in Blink. Credit to Masato Kinugawa.

Happy cross-browser testing in Chrome 57!

▶ Read the full post
New Feature: Quick access to latest browsers

Hi all!

We love simplicity at Browserling so we just added a super handy and quick URL scheme that allows you to instantly access the latest browsers for cross-browser testing. Let's say you quickly need to test something and access IE, you can now just type:

And this will load IE in less than 5 seconds. You don't even have to be logged in your account.

Here's the summary of all quick links that we added today:

These links instantly load the latest Internet Explorer, Edge, Chrome, Firefox and Safari versions (on Windows) that we've available.

Happy cross-browser testing!

▶ Read the full post
Firefox 52 is now available for cross-browser testing

Today Firefox 52 was released by Mozilla. We just deployed it to our browser cloud and it's now available to all users. You can now cross-browser test your websites in Firefox 52!

Cross-browser testing in Firefox 52

Try Firefox 52 in Browserling now!

Firefox 52 is the last Firefox version to support Windows XP and Vista. The next version 53 will no longer work on these platforms. This version adds support for WebAssembly, an emerging standard that brings near-native performance to web-based games, apps, and software libraries without the use of plugins. Automatic captive portal detection, for easier access to Wi-Fi hotspots. User warnings for non-secure HTTP pages with logins. Display of media controls to pause or resume playback on the Android notification bar.

Key summary of new features in Firefox 52:

  • Firefox 52 is the first browser to enable WebAssembly support. Chrome is enabling it next Tuesday.
  • NPAPI plugin support has been killed. No more Java. Hooray!
  • CSS grids are now available.
  • CSS grid inspector for quick CSS grid debugging.

The new Firefox 52 features include:

  • Added user warnings for non-secure HTTP pages with logins. Firefox now displays a "This connection is not secure" message when users click into the username and password fields on pages that don't use HTTPS.
  • Implemented the Strict Secure Cookies specification which forbids insecure HTTP sites from setting cookies with the "secure" attribute. In some cases, this will prevent an insecure site from setting a cookie with the same name as an existing "secure" cookie from the same base domain.
  • Added support for WebAssembly, an emerging standard that brings near-native performance to Web-based games, apps, and software libraries without the use of plugins.
  • Enhanced Sync to allow users to send and open tabs from one device to another.
  • Added automatic captive portal detection, for easier access to Wi-Fi hotspots. When accessing the Internet via a captive portal, Firefox will alert users and open the portal login page in a new tab.

Firefox 52 biggest changes include:

  • Display (but allow users to override) an "Untrusted Connection" error when encountering SHA-1 certificates that chain up to a root certificate included in Mozilla's CA Certificate Program. (Note: Firefox continues to permit SHA-1 certificates that chain to manually imported root certificates.) Read more about the Mozilla Security Team's plans to deprecate SHA-1.
  • Removed support for Netscape Plugin API (NPAPI) plugins other than Flash. Silverlight, Java, Acrobat and the like are no longer supported.
  • Improved experience for downloads: Notification in the toolbar when a download fails. Quick access to five most recent downloads rather than three. Larger buttons for canceling and restarting downloads.
  • Removed Battery Status API to reduce fingerprinting of users by trackers.
  • When not using Direct2D on Windows, Skia is used for content rendering.
  • Migrated Firefox users on Windows XP and Windows Vista operating systems to the extended support release (ESR) version of Firefox.

Firefox 52 developer tool updates include:

  • Redesigned Responsive Design Mode to include device selection, network throttling, and more.
  • The Animation Inspector now displays timing functions.
  • Improved security for screen sharing, which now shows a preview and no longer requires a whitelisted domain.
  • about:debugging now shows service worker state.
  • Enabled CSS Grid Layout, opening up a world of new possibilities for graphic design.

Firefox 52 HTML, DOM, SVG and JavaScript updates include:

  • Support for the async-family functions has been added. This adds async function, async function expression, and the await keyword.
  • SVG documents are now represented using the XMLDocument interface instead of SVGDocument.
  • The Selection API has fully shipped, including the new selectstart and selectionchange events.
  • The rel="noopener" link type has been implemented.

Firefox 52 fixes include:

  • Improved text input for third-party keyboard layouts on Windows. This will address some keyboard layouts that: Have chained dead keys. Input two or more characters with a non-printable key or a dead key sequence. Input a character even when a dead key sequence failed to compose a character.

Firefox 52 security fixes include:

  • Memory corruption during JavaScript garbage collection incremental sweeping.
  • Out of bounds read when parsing HTTP digest authorization responses.
  • Memory Corruption when handling ErrorResult.
  • Use-after-free in Buffer Storage in libGLES.
  • Segmentation fault in Skia with canvas operations.
  • DOS attack by using view-source: protocol repeatedly in one hyperlink.
  • Overly permissive Gecko Media Plugin sandbox regular expression access.
  • Addressbar spoofing by draging and dropping URLs.
  • Gecko Media Plugin sandbox is not started if seccomp-bpf filter is running.
  • Memory safety bugs fixed in Firefox 52 and Firefox ESR 45.8.
  • Javascript: URLs can obfuscate addressbar location.
  • File picker can choose incorrect default directory.
  • File deletion via callback parameter in Mozilla Windows Updater and Maintenance Service.
  • Use-after-free working with ranges in selections.
  • FTP response codes can cause use of uninitialized values for ports.
  • Print preview spoofing.
  • Memory safety bugs fixed in Firefox 52.
  • Repeated authentication prompts lead to DOS attack.
  • Addressbar spoofing through blob URL.
  • Cross-origin reading of video captions in violation of CORS.
  • Non-existent chrome.manifest file loaded during startup.
  • Pixel and history stealing via floating-point timing side channel with SVG filters.
  • Buffer overflow read in SVG filters.
  • Null dereference crash in HttpChannel.
  • Use-after-free working with events in FontFace objects.
  • asm.js JIT-spray bypass of ASLR and DEP.
  • Segmentation fault during bidirectional operations.

Unresolved Firefox 52 issues:

  • Google Hangouts temporarily won't work.

Happy cross-browser testing in Firefox 52!

▶ Read the full post
Android 7.1 Added to Browserling for Mobile Testing

Great news! We've added Android 7.1 Nougat to Browserling. You can now cross-browser test your webapps in Android 7.1!

Android Nougat mobile browser testing

You can try Android Nougat right now in Browserling for free:

We've also implemented Android 7.1's quick browsing scheme. You can immediatly access Android 7.1 and start cross-browser testing through this short link:

This will load on Android 7.1.

Android 7.1 adds the following features:

  • Touch/display performance improvements.
  • Manual storage manager identifies files and apps using storage.
  • Moves (Fingerprint swipe down gesture).
  • Seamless A/B system updates.
  • Daydream VR mode.
  • Night Light.
  • Rearranged notification shade.
  • Developer feature: App shortcuts/shortcut manager APIs.
  • Developer feature: PCDMA voice privacy property.
  • Developer feature: Improved VR thread scheduling.
  • Developer feature: Carrier config options for managing video telephony.
  • Developer feature: Multi-endpoint call support.
  • Developer feature: Keyboard image insertion.
  • Developer feature: Source type support for Visual Voicemail.
  • Developer feature: Manual storage manager Intent for apps.
  • Developer feature: Support for various MNO requirements.
  • Developer feature: Fingerprint sensor gesture to open/close notification shade.
  • Developer feature: Enhanced wallpaper metadata.
  • Developer feature: Circular app icons support.

Happy mobile browser testing in Androids!

▶ Read the full post
Announcing a new comic series about famous computer scientists (February 10, 2017)
Opera 43 is now available for cross-browser testing (February 7, 2017)
New comic - Programmer (February 2, 2017)
New comic - Two Floats Walk in a Bar (January 26, 2017)
Firefox 51 Cross-Browser Testing Available (January 25, 2017)
Chrome 56 Browser Testing Available (January 25, 2017)
New cartoon - Nordic Programmer (January 17, 2017)
New cartoon - Titanic and Iceberg CSS Pun (January 10, 2017)
Partying with Browsers is a Bad Idea (January 3, 2017)
Happy Holidays! (December 25, 2016)
Opera 42 is now available for online browser testing (December 13, 2016)
New comic - Hide and Seek (December 3, 2016)
Chrome 55 is now available for cross-browser testing (December 1, 2016)
New comic - Browser Wars (November 26, 2016)
New comic - Jon Maddog Hall (November 18, 2016)
Firefox 50 Testing Now Available (November 15, 2016)
New comic - Adobe Love Story (November 11, 2016)
New comic - ASCII/ANSI (November 4, 2016)
New comic - DOM and jQuery (October 28, 2016)
Opera 41 available for browser testing (October 26, 2016)
New cartoon - Euler's Number (October 21, 2016)
New cartoon - Hammer (October 14, 2016)
Chrome 54 released and deployed to browser testing cloud (October 12, 2016)
New cartoon - Bytes (October 6, 2016)
Android Nougat added to mobile browser testing cloud (October 3, 2016)
New cartoon - Peter375 (September 29, 2016)
New cartoon - Lego (September 21, 2016)
Opera 40 released and added to our testing cloud (September 20, 2016)
Firefox 49 is now available for cross-browser testing (September 20, 2016)
New cartoon - Opera (September 15, 2016)
New cartoon - Mendeleev CSS Joke (September 9, 2016)
New cartoon - Threads (September 2, 2016)
Edge 38 (aka Edge 14) released and added to our browser cloud (September 1, 2016)
Chrome 53 Available For Testing (August 31, 2016)
Happy 25th Birthday, Linux! (August 25, 2016)
New cartoon - CSS Ghost (August 18, 2016)
New cartoon - Browserling CEO (August 12, 2016)
New cartoon - Fortran (August 5, 2016)
Opera 39 released and added to browser testing cloud (August 2, 2016)
Firefox 48 released and added to browser testing cloud (August 2, 2016)
New cartoon - Big Bang (July 27, 2016)
New cartoon - Mermaid (July 21, 2016)
New cartoon - Internet Explorer (July 14, 2016)
New cartoon - Ninja (July 7, 2016)
We've added a bunch more programmer tools! (July 1, 2016)
New cartoon - Home Sweet Home (June 30, 2016)
New cartoon - Brexit (June 23, 2016)
New cartoon - Pisa Tower (June 17, 2016)
New cartoon - Attack Vectors (June 11, 2016)
Opera 38 installed and ready for browser testing (June 8, 2016)
Firefox 47 Released (and available for web testing) (June 7, 2016)
New cartoon - Refreshments (June 4, 2016)
New cartoon - Binary (May 28, 2016)
New cartoon - Titanic (May 21, 2016)
New cartoon - Home Sweet Home (May 13, 2016)
New cartoon - Computer Chips (May 6, 2016)
Opera 37 released and added to our browser-testing cloud (May 4, 2016)
New cartoon - Cold Computer (April 29, 2016)
Firefox 46 available for testing (April 26, 2016)
New cartoon - The Terminator (April 22, 2016)
New cartoon - Bitmask (April 14, 2016)
New cartoon - Dinosaurs (April 8, 2016)
New cartoon - Home Sweet Home (April 1, 2016)
New cartoon - Twins (March 24, 2016)
New cartoon - 1023MB (March 18, 2016)
Opera 36 released and deployed to our browser cloud (March 15, 2016)
Announcing Browserling's Safari Extension! (March 14, 2016)
New cartoon - Keyboard (March 9, 2016)
New cartoon - 4:04 AM (March 2, 2016)
Android 6.0 Marshmallow Now Available! (February 25, 2016)
New cartoon - Hobbit (February 24, 2016)
New cartoon - Java (February 17, 2016)
New cartoon - Home IPv6 (February 10, 2016)
New cartoon - SQL Query (February 3, 2016)
New cartoon - Computer Virus (January 27, 2016)
New cartoon - Dates (January 20, 2016)
New cartoon - VIM (January 14, 2016)
We've added 7 more programming tools! (January 7, 2016)
New cartoon - Table Layout (January 6, 2016)
New cartoon - Glasses (January 1, 2016)
We've added 6 more web developer tools! (December 28, 2015)
Merry Christmas & Happy New Year from Browserling! (December 25, 2015)
New cartoon - Incognito (December 23, 2015)
New cartoon - Spaghetti (December 18, 2015)
We've added even more webdev tools! (December 17, 2015)
We've added more webdev tools! (December 10, 2015)
New cartoon - Full Stack (December 9, 2015)
Chrome 47 Added to Browserling (December 5, 2015)
New cartoon - Shopping (December 2, 2015)
Announcing Browserling's Web Developer Tools! (December 1, 2015)
New cartoon - Newspaper (November 25, 2015)
We added a new cartoon to our web comic - Home (November 18, 2015)
New web cartoon - SEO Expert (November 11, 2015)
Announcing Browserling's Firefox Extension! (November 5, 2015)
New web cartoon - Bathroom (November 5, 2015)
Announcing Browserling's Opera Addon! (October 30, 2015)
New cartoon - Browser History (October 28, 2015)
New cartoon - Cookie Monster (October 21, 2015)
Chrome 46 Added to Browserling (October 15, 2015)
New cartoon - Java Cafe (October 14, 2015)
A new webdev cartoon: Internet Explorer (October 5, 2015)
A new webdev cartoon: Hotel (September 30, 2015)
A new webdev cartoon: Bar (September 29, 2015)
Announcing Browserling's Webcomic! (September 28, 2015)
Mozilla Firefox 41 Released and Added to Browserling (September 22, 2015)
More Web Developer Jokes (September 17, 2015)
Opera 32 Released and Added to Browserling (September 15, 2015)
Web Developer Jokes (September 7, 2015)
Chrome 45 Released and Added to Browserling (September 1, 2015)
Browserling now has bookmarklets! (August 28, 2015)
Mozilla Firefox 40 Released and Added to Browserling (August 11, 2015)
Opera 31 Released and Added to Browserling (August 6, 2015)
Announcing Browserling's Chrome Extension! (August 5, 2015)
Browser sharing URL scheme now includes OS platform (July 30, 2015)
Announcing quick /b/ (browse) URLs (July 25, 2015)
Bug Hunter now has Imgur support (July 24, 2015)
Chrome 44 Released and Added to Browserling (July 21, 2015)
Announcing Browserling's Bug Hunter! (July 9, 2015)
Mozilla Firefox 39 Released and Added to Browserling (July 2, 2015)
Live API now supports Windows 8.1 (June 26, 2015)
Browserling now has Windows 8.1 support (June 16, 2015)
Opera 30 Released and Added to Browserling (June 10, 2015)
Live API now supports multiple OS platforms (June 9, 2015)
Browserling now supports multiple operating systems (June 5, 2015)
Chrome 43 Added to Browserling (May 20, 2015)
Firefox 38 Added to Browserling (May 12, 2015)
Live API now supports right click and middle click (wheel click) (May 8, 2015)
Introducing short 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)
Android 5.1 Lollipop Added! (March 20, 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)
Firefox 35 Now Available (January 13, 2015)
Android 4.4 KitKat Added! (December 29, 2014)
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)
Firefox 34 Now Available (December 1, 2014)
We've added Android 5.0 Lollipop to Browserling (November 25, 2014)
Chrome 39 Added to Browserling (November 18, 2014)
New Pricing Signup Form (November 5, 2014)
Opera 25 Added to Browserling (October 15, 2014)
Firefox 33 Added (October 13, 2014)
Chrome 38 Now Available (October 8, 2014)
Browser Sharing URL Scheme (September 20, 2014)
Opera 24 Now Available (September 4, 2014)
Firefox 32 Added to Browserling (September 3, 2014)
Chrome 37 Added to Browserling (August 26, 2014)
Opera 23 Now Available (July 25, 2014)
Firefox 31 Now Available at Browserling (July 24, 2014)
Chrome 36 Added to Browserling (July 16, 2014)
We just added Firefox 30 to Browserling (June 11, 2014)
Opera 22 Now Available (June 3, 2014)
Chrome 35 Now Available (May 20, 2014)
Opera 21 Added to Browserling (May 6, 2014)
Chrome 34 Added to Browserling (April 10, 2014)
Opera 20 Added to Browserling (March 5, 2014)
Chrome 33 Added to Browserling (February 21, 2014)
Internet Explorer 11 Added to Browserling (January 30, 2014)
Chrome 32 Added to Browserling (January 14, 2014)
Chrome 31 Just Added! (November 12, 2013)
Chrome 30 Now Available (October 2, 2013)
We just added Internet Explorer 10 (December 11, 2012)