- 210 97 100 98
- [email protected]
- 698 98 60 147
NGradio So good... like you
Google today launched Chrome 66 for Windows, Mac, Linux, Android, and iOS. The desktop release includes autoplaying content muted by default, security improvements, and new developer features. You can update to the latest version now using the browser’s built-in updater or download it directly from google.com/chrome.
With over 1 billion users, Chrome is both a browser and a major platform that web developers have to consider. In fact, with Chrome’s regular additions and changes, developers have to keep up to ensure they are taking advantage of everything available.
The biggest improvement in this release is that autoplaying content with sound is now blocked by default. This functionality was delayed — it was originally slated for January with the release of Chrome 64 — but now it’s finally here. Chrome 64 did, however, add an option to completely disable audio on a per site basis, functionality which also arrived later than planned (it was originally scheduled for Chrome 63).
In our tests, autoplaying content that is muted still plays automatically. Autoplaying content with sound, whether it has visible controls or not, and whether it is set to play on loop or not, simply does not start playing.
We received mixed results with YouTube videos, however — sometimes they played automatically and other times they did not. Some would expect a video site to autoplay content, as presumably that is the main focus of the page, but others may disagree. Either way, if a page somehow circumvents the autoplaying block, you can still mute whole websites.
The discrepancy is due to how Chrome ranks each website for you. On desktop, Chrome has a Media Engagement Index (MEI), which measures the propensity to consume media for each site you visit. You can check your MEI for each site by navigating to the chrome://media-engagement internal page.
The MEI is determined by a ratio of visits to significant media playback events per origin, with these four factors taken into account:
When Google first announced its plans, the company justified its approach by saying that while “autoplay can make it faster and easier to consume on the web,” unexpected media playback is also “one of the most frequent user concerns” because it “can use data, consume power, and make unwanted noise while browsing.” A side benefit, Google argues, is unified desktop and mobile web behavior, making web media development more predictable across platforms and browsers.
Speaking of platforms, Chrome 65 was the last release of Google’s browser for OS X 10.9 users. Chrome 66 requires OS X 10.10 or later. If you haven’t upgraded your Mac yet, this might push you to pull the trigger.
Moving on to developer features, Chrome 66 includes ImageBitmap Rendering Context for the canvas tag. Instead of first creating an img tag and then rendering its contents to a canvas, which causes multiple copies of the image to be stored in memory, this new rendering context streamlines the display of ImageBitmap objects by avoiding memory duplication. Google notes that a WebGL game, for example, could use this to load new textures on the fly as gameplay progresses.
Next, Chrome 66 implements CSS Typed Object Model. Instead of changing CSS properties by manipulating strings (only for the browser to then convert it back to a typed representation), the CSS Typed Object Model Level 1 reduces this burden on both the developer and browser by exposing CSS values as typed JavaScript objects rather than strings. This is not only more performant, it allows developers to write more maintainable code.
Next up, there’s a new asynchronous Clipboard API with a promise-based means of reading from and writing to the clipboard (future versions will support richer types of data, including images). Google claims it is simpler than the execCommand(‘copy’) API released in Chrome 43 and integrates with the Permissions API.
Finally, the AudioWorklet aims to replace the legacy ScriptProcessorNode, which was asynchronous and required thread hops that could produce an unstable audio output. The AudioWorklet object provides a new synchronous JavaScript execution context that allows developers to programmatically control audio without additional latency and higher stability in the output audio.
Developers will also want to know that Chrome 66 includes an update to the V8 JavaScript engine: version 6.6. The release includes new JavaScript language features, code caching after execution, background compilation, removal of AST numbering, and performance improvements. Check out the full list of changesfor more information.
Other developer features in this release (some are mobile-specific):
add
and accumulate
keywords will be supported in Chrome soon. Until then, they will no longer throw errors. This is to maintain compatibility with Firefox and other implementations.calc()
, min()
, and max()
are now supported in media queries, as required by the CSS Values and Units Module Level 4 specification. This change brings them in line with other types of rules where these functions are allowed anywhere a number is allowed.rgb()
and rgba()
functions.deviceorientation
, deviceorientationabsolute
, and devicemotion
events are now restricted to top-level document and same-origin subframes, the same as if the feature policy for those features were set to 'self'
. To modify this behavior, explicitly enable or disable the specific feature.<textarea>
element and the <select>
element now support the autocomplete
attribute as required by the specification.click
event, then an input
event, then a change
event. Formerly only the click
and change
events were fired.window.focus(),
that page exits full screen. This does not occur if the popup receives focus some other way.MediaStreamTrack
interface called getCapabilities()
returns a MediaTrackCapabilities
object, which specifies the values or range of values which each constrianable property. Capabilities vary by device.Function.prototype.toString()
function now returns exactly what is written in the source code. This includes whitespace and other text that may have been used. For example, if there is a comment between the function keyword and the function name, the comment is now returned in addition to the keyword and name.catch
clause of a try
statement can now be used without a parameter.String.prototype.trimStart()
and String.prototype.trimEnd()
are now available as the standards-based way of trimming whitespace from strings, in addition to String.prototype.trim()
which was already implemented. The non-standard trimLeft()
and trimRight()
remain as aliases of the new methods for backward compatibility.Array.prototype.values()
method returns a new array iterator object that contains the values for each index in the array.grid-gap
becomes gap
, grid-row-gap
becomes row-gap
, and grid-column-gap
becomes column-gap
. The default value for all three is normal
and the prefixed properties are aliases of the new ones. Note that column-gap
property already exists and is used by css-multicol
.table-row
, table-row-group
,table-header-group
, table-footer-group
, table-cell
, and table-caption
that have a transform property are now containing blocks for fixed position elements. Blink currently does not make <tr>
, <tbody>
, <tfoot>
, and <thead>
be containing blocks for fixed-position elements.autoplay
is now allowed only when either the media won’t play sound, after the user clicks or taps on the site, or (on desktop) if the user has previously shown an interest in media on the site. This will reduce unexpected video playbacks with sound when first opening a web page.keepalive
property which allows a fetch to continue after a tab is closed. This feature is invoked by passing a boolean in the constructor’s initialization object. Its value can be read back from the object itself. This property can be used with sendBeacon()
as well. New AbortSignal
and AbortController
interfaces allow a fetch to be canceled. To accomplish this create an AbortController
object and pass its signal property as an option to fetch
. Calling abortController.abort()
cancels the fetch. There’s more information in our abortable fetch article.same-origin
with a response whose type is CORS
. This is a security measure recently added to the Fetch specification.FetchEvent.clientId
now returns an empty string instead of null when it isn’t set. For example, this can occur during a navigation request.RTCRtpSender.dtmf
CreateDTMFSender()
function which has not yet been deprecated.object-position
and perspective-origin
properties no longer accepts three-part values such as top right 20%
. This change also applies to basic shapes and gradients. Valid position values must always have 1, 2, or 4 parts.ImageCapture.prototype.setOptions()
has been removed.document.createTouch()
and document.createTouchList()
have been removed.AudioParam.prototype.value
changes was removed from Chrome. If you need to smooth the value of AudioParam
changes, useAudioParam.prototype.setTargetAtTime()
.For a full rundown of what’s new, check out the Chrome 66 milestone hotlist.
Chrome 66 also implements 62 security fixes. The following ones were found by external researchers:
Google thus spent at least $34,000 in bug bounties for this release. As always, the security fixes alone should be enough incentive for you to upgrade.
There are two more changes related to security worth noting. Chrome 66 includes a small percentage trial of Site Isolation, which improves Chrome’s security and helps mitigate the risks posed by Spectre.
Google has also started the process of deprecating Chrome’s trust in the Symantec certificate authority (including Symantec-owned brands like Thawte, VeriSign, Equifax, GeoTrust, and RapidSSL). If your site is using a SSL/TLS certificate from Symantec that was issued before June 1, 2016, it will stop functioning in Chrome 66, while all remaining Symantec SSL/TLS certificates will stop working starting in Chrome 70.
Google releases a new version of its browser every six weeks or so. Chrome 67 will arrive by late May.
Chrome 66 for Android was also released today and is rolling out gradually over the next few weeks via Google Play. The big change here is that Google Safe Browsing now works with Android’s WebView by default. Safe Browsing provides lists of URLs that contain malware or phishing content to Chrome, Firefox, and Safari browsers, as well as to internet service providers (ISPs). This change means developers of Android apps using WebView no longer have to make changes to take advantage of Safe Browsing.
Chrome 66 for iOS is out as well over on Apple’s App Store. In addition to the usual stability and performance improvements, you can now export your passwords.
Source: venturebeat.com
Written by: New Generation Radio
COPYRIGHT 2020. NGRADIO
Post comments (0)