Planet Chromium

September 03, 2015

Chromium Blog

Chrome 46 Beta: Flexible animations and improved loading performance

The newest Chrome Beta channel release includes new CSS animation features, improved performance controls, and a large number of API tweaks. Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux, and Chrome OS.

Animating objects along author specified paths

Previously, animating objects along an author-specified path required complex javascript code that could block important events like rendering and input. Developers can now animate any graphical object along an arbitrary path declaratively as a CSS property, allowing simpler code that doesn’t block rendering or input.


Complex animations using CSS

Optimized image loading and service worker instrumentation

Tools like srcset allow developers to serve an optimized image variant in a responsive way, but it can be cumbersome and inefficient to use in practice. Developers can now negotiate with the server to download the best image variant for a device using straightforward HTTP request headers. These headers communicate DPR, Viewport-Width, and the intended display width of the resource being fetched to the server.


In addition to improving image loading, developers can now instrument service workers to gather detailed fetch and script timing. Developers can also measure the startup time of service workers more accurately.

Other updates in this release


Posted by Eric Willigers, Software Engineer and Animations Acrobat

by Google Chrome Blog (noreply@blogger.com) at September 03, 2015 07:02 PM

Google Chrome Releases

Chrome Beta for Android Update

The Chrome team is stoked to announce the launch of Chrome Beta 46 for Android. Chrome 46.0.2490.15 will be available in Google Play over the next few hours.  This release contains our usual under-the-hood performance and stability tweaks, but there are also some cool new features to explore - please head to the Chromium blog to learn more!

A partial list of other changes in this build are available in the Git log. If you find a new issue, please let us know by filing a bug. More information about Chrome for Android is available on the Chrome site.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at September 03, 2015 06:26 PM

Google Chrome Blog

Chrome improvements for a faster and more efficient web

Speed is one of the founding principles of Chrome. As the web evolves and sites take advantage of increasing capabilities, Chrome’s performance—how fast pages load, how smooth scrolling is, how much memory is consumed, and how long your battery lasts—becomes even more important. So in the latest release of Chrome we’ve included a ton of improvements to make your browsing use less memory and power.

Chrome has long had the option to “continue where you left off” by restoring tabs when you relaunch Chrome. Now, Chrome is smarter about restoring your tabs more efficiently. Tabs are restored from most to least recently viewed, so you get to see the most important tabs faster. And Chrome will now detect if your computer is running low on resources and stop restoring the rest of your tabs to save you precious memory. You can always click to restore them if you'd like to access them later.

We’ve also introduced another memory-saving technique. Chrome can now detect when a webpage isn't busy with some other task, and use the free time to aggressively clean up old, unused memory. In practice we found that this reduced website memory usage by 10% on average, but the effect is even more dramatic on complex web apps. With Gmail, for example, we can free up nearly a quarter of the memory used by the tab.




After being idle for a short time, Chrome 45 (right) frees up nearly a quarter of the memory it was using for Gmail, a significant improvement compared to Chrome 43 (left). Video is sped up 8x.

We’ve also made changes to Chrome to improve power usage. A new setting introduced in June will auto-pause Flash content that's not central to a website. Our testing has shown that turning on this setting makes your battery last up to 15% longer depending on your operating system, so over the next few weeks we'll begin turning on this feature by default for all users. 

This latest version of Chrome includes the most recent wave of performance updates, but there's much more in the works for upcoming versions of Chrome. So get ready for faster, even more powerful browsing!

Posted by Ryan Schoen, Product Manager and Performance Promoter

by Google Chrome Blog (noreply@blogger.com) at September 03, 2015 02:29 PM

Google Chrome Releases

Dev Channel Update for Chrome OS

The Dev channel has been updated to 46.0.2490.13 (Platform version: 7390.11.0) for all Chrome OS devices. This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia
Google Chrome

by Josafat (noreply@blogger.com) at September 03, 2015 08:47 AM

September 02, 2015

Google Chrome Releases

Stable Update for Chrome OS

The Stable channel has been updated to 45.0.2454.86 (Platform version: 7262.52.0) for all Chrome OS devices except Samsung Series 5 550 Chromebook, Samsung Series 3 Chromebox, Samsung Chromebook 2 (13"), Haier Chromebook 11e, and the Asus Chromebook Flip. This build contains a number of bug fixes, security updates and feature enhancements. Systems will be receiving updates over the next several days.

If you find issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (three horizontal bars in the upper right corner of the browser).


Matthew Yuan
Google Chrome

by Matthew Yuan (noreply@blogger.com) at September 02, 2015 06:06 PM

Beta Channel Update

The Chrome team is excited to announce the promotion of Chrome 46 to the beta channel for Windows, Mac and Linux. Chrome 46.0.2490.13 contains our usual under-the-hood performance and stability tweaks, but there are also some cool new features to explore - please head to the Chromium blog to learn more!


A full list of changes in this build is available in the log.  Interested in switching release channels?  Find out how here. If you find a new issue, please let us know by filing a bug.


Krishna Govind
Google Chrome

by Krishna Govind (noreply@blogger.com) at September 02, 2015 12:56 PM

Chromium Blog

Chrome custom tabs smooth the transition between apps and the web

Posted by Yusuf Ozuysal, Chief Tab Customizer

Android app developers face a difficult tradeoff when it comes to showing web content in their Android app. Opening links in the browser is familiar for users and easy to implement, but results in a heavy-weight transition between the app and the web. You can get more granular control by building a custom browsing experience on top of Android’s WebView, but at the cost of more technical complexity and an unfamiliar browsing experience for users. A new feature in the most recent version of Chrome called custom tabs addresses this tradeoff by allowing an app to customize how Chrome looks and feels, making the transition from app to web content fast and seamless.
Chrome custom tabs with pre-loading vs. Chrome and WebView

Chrome custom tabs allow an app to provide a fast, integrated, and familiar web experience for users. Custom tabs are optimized to load faster than WebViews and traditional methods of launching Chrome. Apps can pre-load pages in the background so they appear to load nearly instantly when the user navigates to them. Apps can also customize the look and feel of Chrome to match their app by changing the toolbar color, adjusting the transition animations, and even adding custom actions to the toolbar so users can perform app-specific actions directly from the custom tab.

Custom tabs benefit from Chrome’s advanced security features, including its multi-process architecture and robust permissions model. They use the same cookie jar as Chrome, allowing a familiar browsing experience while keeping users’ information safe. For example, if a user has signed in to a website in Chrome, they will also be signed in if they visit the same site in a custom tab. Other features that help users browse the web, like saved passwords, autofill, Tap to Search, and Sync, are also available in custom tabs.

Custom tabs are easy for developers to integrate into their app by tweaking a few parameters of their existing VIEW intents. Basic integrations require only a few extra lines of code, and a support library makes more complex integrations easy to accomplish, too. Since custom tabs is a feature of Chrome, it’s available on any version of Android where recent versions of Chrome are available. 

Users will begin to experience custom tabs in the coming weeks in Feedly, The Guardian, Medium, Player.fm, Skyscanner, Stack Overflow, Tumblr, and Twitter, with more coming soon. To get started integrating custom tabs into your own application, check out the developer guide.

by Google Chrome Blog (noreply@blogger.com) at September 02, 2015 10:55 AM

September 01, 2015

Google Chrome Releases

Dev Channel Update

The dev channel has been updated to 47.0.2498.0 for Windows, Mac, and Linux.


A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.


Krishna Govind
Google Chrome


by Krishna Govind (noreply@blogger.com) at September 01, 2015 06:04 PM

Beta Channel Update for Chrome OS

The Beta channel has been updated to 45.0.2454.86 (Platform version: 7262.52.0) for all devices. This build contains a number of bug fixes, security updates, and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Matthew Yuan
Google Chrome

by Matthew Yuan (noreply@blogger.com) at September 01, 2015 05:44 PM

Chrome for Android Update

The Chrome team is stoked to announce the launch of Chrome 45 for Android.  Chrome 45.0.2454.84 will be available in Google Play over the next few days.  This release contains fixes for a whole bunch of performance /stability / other issues, we hope you think it's the best ever.  A partial list of changes in this build are available in the Git log.  If you find a new issue, please let us know by filing a bug.  More information about Chrome for Android is available on the Chrome site.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at September 01, 2015 03:25 PM

Stable Channel Update

The Chrome team is delighted to announce the promotion of Chrome 45 to the stable channel for Windows, Mac and Linux.


Chrome 45.0.2454.85 contains a number of fixes and improvements -- a list of changes is available in the log.  Watch out for upcoming Chrome and Chromium blog posts about new features and big efforts delivered in 45.

Security Fixes and Rewards

Note: Access to bug details and links may be kept restricted until a majority of users are updated with a fix. We will also retain restrictions if the bug exists in a third party library that other projects similarly depend on, but haven’t yet fixed.

This update includes 29 security fixes. Below, we highlight fixes that were contributed by external researchers. Please see the Chromium security page for more information.

[$7500][516377] High CVE-2015-1291: Cross-origin bypass in DOM. Credit to anonymous.
[$7500][522791] High CVE-2015-1292: Cross-origin bypass in ServiceWorker. Credit to Mariusz Mlynski.
[$7500][524074] High CVE-2015-1293: Cross-origin bypass in DOM. Credit to Mariusz Mlynski.
[$5000][492263] High CVE-2015-1294: Use-after-free in Skia. Credit to cloudfuzzer.
[$3000][502562] High CVE-2015-1295: Use-after-free in Printing. Credit to anonymous.
[$1000][421332] High CVE-2015-1296: Character spoofing in omnibox. Credit to zcorpan.
[$3000][510802] Medium CVE-2015-1297: Permission scoping error in WebRequest. Credit to Alexander Kashev.
[$3000][518827] Medium CVE-2015-1298: URL validation error in extensions. Credit to Rob Wu.
[$2000][416362] Medium CVE-2015-1299: Use-after-free in Blink. Credit to taro.suzuki.dev.
[$1000][511616] Medium CVE-2015-1300: Information leak in Blink. Credit to cgvwzq.

We would also like to thank all security researchers that worked with us during the development cycle to prevent security bugs from ever reaching the stable channel. The total value of additional rewards and their recipients will updated here when all reports have gone through the reward panel.

As usual, our ongoing internal security work was responsible for a wide range of fixes:
  • [526825] CVE-2015-1301: Various fixes from internal audits, fuzzing and other initiatives.
  • Multiple vulnerabilities in V8 fixed at the tip of the 4.5 branch (currently 4.5.103.29).

Many of the above bugs were detected using AddressSanitizer or MemorySanitizer.

Interested in switching release channels? Find out how.  If you find a new issue, please let us know by filing a bug.  The community help forum is also a great place to reach out for help or learn about common issues.


Vivian Zhi
Google Chrome

by vivianz (noreply@blogger.com) at September 01, 2015 01:25 PM

August 29, 2015

Google Chrome Releases

Beta Channel Update for Chrome OS

The Beta channel has been updated to 45.0.2454.78 (Platform version: 7262.49.0) for all devices except HP Chromebook 14. This build contains a number of bug fixes, security updates, and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Matthew Yuan
Google Chrome

by Matthew Yuan (noreply@blogger.com) at August 29, 2015 12:04 AM

August 28, 2015

V8 JavaScript Engine

V8 Release 4.6

Roughly every six weeks, we create a new branch of V8 as part of our release process. Each version is branched from V8’s git master immediately before Chrome branches for a Chrome Beta milestone. Today we’re pleased to announce our newest branch, V8 version 4.6, which will be in beta until it is released in coordination with Chrome 46 Stable. V8 4.6 is filled will all sorts of developer-facing goodies, so we’d like to give you a preview of some of the highlights in anticipation of the release in several weeks.

Improved ECMAScript 2015 (ES6) support

V8 4.6 adds support for several ECMAScript 2015 (ES6) features.

Spread operator

The spread operator makes it much more convenient to work with arrays. For example it makes imperative code obsolete when you simply want to merge arrays.

// Merging arrays
// Code without spread operator
let inner = [3, 4];
let merged = [0, 1, 2].concat(inner, [5]);

// Code with spread operator
let inner = [3, 4];
let merged = [0, 1, 2, ...inner, 5];
Another good use of the spread operator to replace apply().

// Function parameters stored in an array
// Code without spread operator
function myFunction(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
}
let argsInArray = ["Hi ", "Spread ", "operator!"];
myFunction.apply(null, argsInArray);

// Code with spread operator
function myFunction (a,b,c) {
console.log(a);
console.log(b);
console.log(c);
}

let argsInArray = ["Hi ", "Spread ", "operator!"];
myFunction(...argsInArray);

new.target

new.target is one of ES6's features designed to improve working with classes. Under the hood it’s actually an implicit parameter to every function. If a function is called with the keyword new, then the parameter holds a reference to the called function. If new is not used the parameter is undefined.

In practice, this means that you can use new.target to figure out whether a function was called normally or constructor-called via the new keyword.

function myFunction() {
if (new.target === undefined) {
throw "Try out calling it with new.";
}
console.log("Works;");
}

// Will break
myFunction();

// Will work
let a = new myFunction();
When ES6 classes and inheritance are used, new.target inside the constructor of a super-class is bound to the derived constructor that was invoked with new. In particular, this gives super-classes access to the prototype of the derived class during construction.

Reduce the jank

Jank can be a pain, especially when playing a game. Often, it's even worse when the game features multiple players. oortonline.gl is a WebGL benchmark that tests the limits of current browsers by rendering a complex 3D scene with particle effects and modern shader rendering. The V8 team set off in a quest to push the limits of Chrome’s performance in these environments. We’re not done yet, but the fruits of our efforts are already paying off. Chrome 46 shows incredible advances in oortonline.gl performance which you can see yourself below.



Some of the optimizations include:

The good thing is that all changes related to oortonline.gl are general improvements that potentially affect all users of applications that make heavy use of WebGL.

V8 API

Please check out our summary of API changes. This document gets regularly updated a few weeks after each major release.

Developers with an active V8 checkout can use 'git checkout -b 4.6 -t branch-heads/4.6' to experiment with the new features in V8 4.6. Alternatively you can subscribe to Chrome's Beta channel and try the new features out yourself soon.


Posted by the V8 team

by Michael Hablich (noreply@blogger.com) at August 28, 2015 03:10 AM

August 27, 2015

Google Chrome Releases

Dev Channel Update

Dev channel has been updated to 46.0.2490.6 for Windows, Mac, and Linux.

A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Vivian Zhi

Google Chrome

by vivianz (noreply@blogger.com) at August 27, 2015 12:39 PM

August 26, 2015

Google Chrome Releases

Beta Channel Update

Beta channel has been updated to 45.0.2454.78 for Windows, Mac, and Linux.

A partial list of changes is available in this log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Vivian Zhi

Google Chrome

by vivianz (noreply@blogger.com) at August 26, 2015 11:59 AM

Chromium Blog

Scheduling timers to improve input responsiveness

A good frame rate is important to maintain a fast browsing experience. A few months ago, Chrome added a scheduler, a new under-the-hood feature that places tasks in the idle time between rendering frames to help hit 60 frames per second. Chrome’s frame rate can be reduced by Javascript timers executing at the wrong time, making them a natural next candidate to optimize with the scheduler. The most recent version of Chrome beta reschedules Javascript timers to create a smoother experience when the user is interacting with a page.

Javascript timers enable web developers to write code that checks in on a page periodically with APIs like setTimeout. Advanced developers can use setTimeout to schedule their code at opportune times, but they often don't have enough information to schedule it optimally. A timer’s function is placed into the main execution queue, meaning that if the function is run at the wrong time, it could block time-critical work that shares the queue, like input or rendering. Chrome has signals that important work is incoming, but before M45 they were ignored for timers.

When the user taps the page, they often interact with it again immediately or Chrome needs to re-render part of the screen. The scheduler now delays impending expensive timers after a tap in anticipation of these tasks, allowing many web pages to be scheduled more efficiently. In practice, this can result in up to a 50% input latency improvement on websites that use timers heavily.

The latest version of Chrome scrolling a timer heavy site with no optimizations (left) and delayed timer execution (right).

Scheduling timers intelligently is just one use of the scheduler’s infrastructure. To keep improving, Chrome will continue integrating the scheduler with more rendering engine tasks. Using cycles wisely is one way to keep the web fast for everyone.

Posted by Alex Clarke, Software Engineer and Timer Tamer

by Google Chrome Blog (noreply@blogger.com) at August 26, 2015 11:22 AM

Google Chrome Releases

Dev Channel Update for Chrome OS

The Dev channel has been updated to 46.0.2490.4 (Platform version: 7390.1.0) for all Chrome OS devices. This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia
Google Chrome

by Josafat (noreply@blogger.com) at August 26, 2015 11:16 AM

August 25, 2015

Google Chrome Releases

Dev Channel Update

The dev channel has been updated to 46.0.2490.4 for Windows, Mac, and Linux.


A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.


Krishna Govind
Google Chrome

by Krishna Govind (noreply@blogger.com) at August 25, 2015 08:51 AM

August 21, 2015

Google Chrome Releases

Beta Channel Update for Chrome OS

The Beta channel has been updated to 45.0.2454.51 (Platform version: 7262.41.0) for all devices except Acer C7 C710, HP Chromebook Pavilion and Samsung Series 3 Chromebox. This build contains a number of bug fixes, security updates, and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Dharani Govindan
Google Chrome

by Dharani (noreply@blogger.com) at August 21, 2015 07:28 AM

August 20, 2015

Google Chrome Releases

Dev Channel Update for Chrome OS

The Dev channel has been updated to 46.0.2486.0 (Platform version: 7374.1.0) for all Chrome OS devices except for Samsung Chromebook, Asus Chromebox CN62, Acer Chromebox CXI2 and Lenovo ThinkCentre Chromebox. This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia
Google Chrome

by Josafat (noreply@blogger.com) at August 20, 2015 06:47 PM

Stable Channel Update

The stable channel has been updated to 44.0.2403.157 for Windows, Mac, and Linux.

A list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Krishna Govind
Google Chrome

by Krishna Govind (noreply@blogger.com) at August 20, 2015 11:42 AM

August 19, 2015

Google Chrome Releases

Stable Channel Update for Chrome OS

The Stable channel has been updated to 44.0.2403.156 (Platform version: 7077.134.0) for all devices. Systems will be receiving updates over the next several days. A partial list of these changes is available here

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Dharani Govindan
Google Chrome

by Dharani (noreply@blogger.com) at August 19, 2015 02:44 PM

Beta Channel Update

The beta channel has been updated to 45.0.2454.46 for Windows, Mac, and Linux.

A partial list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Vivian Zhi

Google Chrome

by vivianz (noreply@blogger.com) at August 19, 2015 12:23 PM

August 18, 2015

Google Chrome Releases

Dev Channel Update

The dev channel has been updated to 46.0.2486.0 for Windows, Mac, and Linux.

Change log can be viewed here. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Anantha Keesara
Google Chrome

by ananthak (noreply@blogger.com) at August 18, 2015 06:30 PM