CINXE.COM

Chromium Blog: 2017

<!DOCTYPE html> <html class='v2 list-page' dir='ltr' itemscope='' itemtype='http://schema.org/Blog' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <title> Chromium Blog: 2017 </title> <meta content='width=device-width, height=device-height, initial-scale=1.0' name='viewport'/> <meta content='IE=Edge' http-equiv='X-UA-Compatible'/> <meta content='Chromium Blog' property='og:title'/> <meta content='en_US' property='og:locale'/> <meta content='https://blog.chromium.org/2017/' property='og:url'/> <meta content='Chromium Blog' property='og:site_name'/> <!-- Twitter Card properties --> <meta content='Chromium Blog' property='og:title'/> <meta content='summary' name='twitter:card'/> <meta content='@ChromiumDev' name='twitter:creator'/> <link href='https://fonts.googleapis.com/css?family=Roboto:400italic,400,500,500italic,700,700italic' rel='stylesheet' type='text/css'/> <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'/> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js' type='text/javascript'></script> <!-- End --> <style id='page-skin-1' type='text/css'><!-- /* <Group description="Header Color" selector="header"> <Variable name="header.background.color" description="Header Background" type="color" default="#ffffff"/> </Group> */ .header-outer { border-bottom: 1px solid #e0e0e0; background: #ffffff; } html, .Label h2, #sidebar .rss a, .BlogArchive h2, .FollowByEmail h2.title, .widget .post h2 { font-family: Roboto, sans-serif; } .plusfollowers h2.title, .post h2.title, .widget h2.title { font-family: Roboto, sans-serif; } .widget-item-control { height: 100%; } .widget.Header, #header { position: relative; height: 100%; width: 100%; } } .widget.Header .header-logo1 { float: left; margin-right: 15px; padding-right: 15px; border-right: 1px solid #ddd; } .header-title h2 { color: rgba(0,0,0,.54); display: inline-block; font-size: 40px; font-family: Roboto, sans-serif; font-weight: normal; line-height: 76px; vertical-align: top; } .header-inner { background-repeat: no-repeat; background-position: right 0px; } .post-author, .byline-author { font-size: 14px; font-weight: normal; color: #757575; color: rgba(0,0,0,.54); } .post-content .img-border { border: 1px solid rgb(235, 235, 235); padding: 4px; } .header-title a { text-decoration: none !important; } pre { border: 1px solid #bbbbbb; margin-top: 1em 0 0 0; padding: 0.99em; overflow-x: auto; overflow-y: auto; } pre, code { font-size: 9pt; background-color: #fafafa; line-height: 125%; font-family: monospace; } pre, code { color: #060; font: 13px/1.54 "courier new",courier,monospace; } .header-left .header-logo1 { width: 128px !important; } .header-desc { line-height: 20px; margin-top: 8px; } .fb-custom img, .twitter-custom img, .gplus-share img { cursor: pointer; opacity: 0.54; } .fb-custom img:hover, .twitter-custom img:hover, .gplus-share img:hover { opacity: 0.87; } .fb-like { width: 80px; } .post .share { float: right; } #twitter-share{ border: #CCC solid 1px; border-radius: 3px; background-image: -webkit-linear-gradient(top,#ffffff,#dedede); } .twitter-follow { background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimKBWDeRb1pqsbNiP9AFLyFDZHzXGYEJZRELMrZ6iI0yz4KeMPH_7tPsrMq9PpJ3H6riC_UohpWMn83_Z1N2sTuTTrVL7i6TrNzpO9oFg4e8VFK4zFJb1rfamWfc8RxG8Fhz2RgRgHN10u/s1600/twitter-bird.png) no-repeat left center; padding-left: 18px; font: normal normal normal 11px/18px 'Helvetica Neue',Arial,sans-serif; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,.5); cursor: pointer; margin-bottom: 10px; } .twitter-fb { padding-top: 2px; } .fb-follow-button { background: -webkit-linear-gradient(#4c69ba, #3b55a0); background: -moz-linear-gradient(#4c69ba, #3b55a0); background: linear-gradient(#4c69ba, #3b55a0); border-radius: 2px; height: 18px; padding: 4px 0 0 3px; width: 57px; border: #4c69ba solid 1px; } .fb-follow-button a { text-decoration: none !important; text-shadow: 0 -1px 0 #354c8c; text-align: center; white-space: nowrap; font-size: 11px; color: white; vertical-align: top; } .fb-follow-button a:visited { color: white; } .fb-follow { padding: 0px 5px 3px 0px; width: 14px; vertical-align: bottom; } .gplus-wrapper { margin-top: 3px; display: inline-block; vertical-align: top; } .twitter-custom, .gplus-share { margin-right: 12px; } .fb-follow-button{ margin: 10px auto; } /** CUSTOM CODE **/ --></style> <style id='template-skin-1' type='text/css'><!-- .header-outer { clear: both; } .header-inner { margin: auto; padding: 0px; } .footer-outer { background: #f5f5f5; clear: both; margin: 0; } .footer-inner { margin: auto; padding: 0px; } .footer-inner-2 { /* Account for right hand column elasticity. */ max-width: calc(100% - 248px); } .google-footer-outer { clear: both; } .cols-wrapper, .google-footer-outer, .footer-inner, .header-inner { max-width: 978px; margin-left: auto; margin-right: auto; } .cols-wrapper { margin: auto; clear: both; margin-top: 60px; margin-bottom: 60px; overflow: hidden; } .col-main-wrapper { float: left; width: 100%; } .col-main { margin-right: 278px; max-width: 660px; } .col-right { float: right; width: 248px; margin-left: -278px; } /* Tweaks for layout mode. */ body#layout .google-footer-outer { display: none; } body#layout .header-outer, body#layout .footer-outer { background: none; } body#layout .header-inner { height: initial; } body#layout .cols-wrapper { margin-top: initial; margin-bottom: initial; } --></style> <!-- start all head --> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='https://blog.chromium.org/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://blog.chromium.org/2017/' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Chromium Blog - Atom" href="https://blog.chromium.org/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Chromium Blog - RSS" href="https://blog.chromium.org/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Chromium Blog - Atom" href="https://www.blogger.com/feeds/2471378914199150966/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='https://blog.chromium.org/2017/' property='og:url'/> <meta content='Chromium Blog' property='og:title'/> <meta content='News and developments from the open source browser project' property='og:description'/> <!-- end all head --> <base target='_self'/> <style> html { font-family: Roboto, sans-serif; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } body { padding: 0; /* This ensures that the scroll bar is always present, which is needed */ /* because content render happens after page load; otherwise the header */ /* would "bounce" in-between states. */ min-height: 150%; } h2 { font-size: 16px; } h1, h2, h3, h4, h5 { line-height: 2em; } html, h4, h5, h6 { font-size: 14px; } a, a:visited { /* Ensures links meet minimum contrast ratios. */ color: #3974d6; text-decoration: none; } a:focus, a:hover, a:active { text-decoration: none; } .Header { margin-top: 15px; } .Header h1 { font-size: 32px; font-weight: 300; line-height: 32px; height: 42px; } .header-inner .Header .titlewrapper { padding: 0; margin-top: 30px; } .header-inner .Header .descriptionwrapper { padding: 0; margin: 0; } .cols-wrapper { margin-top: 56px; } .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 60px; } .header-inner { height: 256px; position: relative; } html, .header-inner a { color: #212121; color: rgba(0,0,0,.87); } .header-inner .google-logo { display: inline-block; background-size: contain; z-index: 1; height: 70px; overflow: hidden; margin-top: 4px; margin-right: 8px; } .header-left { position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); margin-top: 12px; width: 100%; } .google-logo { margin-left: -4px; } .google-logo img{ height:70px; } #google-footer { position: relative; font-size: 13px; list-style: none; text-align: right; } #google-footer a { color: #444; } #google-footer ul { margin: 0; padding: 0; height: 144px; line-height: 144px; } #google-footer ul li { display: inline; } #google-footer ul li:before { color: #999; content: "\00b7"; font-weight: bold; margin: 5px; } #google-footer ul li:first-child:before { content: ''; } #google-footer .google-logo-dark { left: 0; margin-top: -16px; position: absolute; top: 50%; } /** Sitemap links. **/ .footer-inner-2 { font-size: 14px; padding-top: 42px; padding-bottom: 74px; } .footer-inner-2 .HTML h2 { color: #212121; color: rgba(0,0,0,.87); font-size: 14px; font-weight: 500; padding-left: 0; margin: 10px 0; } .footer-inner-2 .HTML ul { font-weight: normal; list-style: none; padding-left: 0; } .footer-inner-2 .HTML li { line-height: 24px; padding: 0; } .footer-inner-2 li a { color: rgba(65,132,243,.87); } /** Archive widget. **/ .BlogArchive { font-size: 13px; font-weight: normal; } .BlogArchive .widget-content { display: none; } .BlogArchive h2, .Label h2 { color: #4184F3; text-decoration: none; } .BlogArchive .hierarchy li { display: inline-block; } /* Specificity needed here to override widget CSS defaults. */ .BlogArchive #ArchiveList ul li, .BlogArchive #ArchiveList ul ul li { margin: 0; padding-left: 0; text-indent: 0; } .BlogArchive .intervalToggle { cursor: pointer; } .BlogArchive .expanded .intervalToggle .new-toggle { -ms-transform: rotate(180deg); transform: rotate(180deg); } .BlogArchive .new-toggle { float: right; padding-top: 3px; opacity: 0.87; } #ArchiveList { text-transform: uppercase; } #ArchiveList .expanded > ul:last-child { margin-bottom: 16px; } #ArchiveList .archivedate { width: 100%; } /* Months */ .BlogArchive .items { max-width: 150px; margin-left: -4px; } .BlogArchive .expanded .items { margin-bottom: 10px; overflow: hidden; } .BlogArchive .items > ul { float: left; height: 32px; } .BlogArchive .items a { padding: 0 4px; } .Label { font-size: 13px; font-weight: normal; } .sidebar-icon { display: inline-block; width: 24px; height: 24px; vertical-align: middle; margin-right: 12px; margin-top: -1px } .Label a { margin-right: 4px; } .Label .widget-content { display: none; } .FollowByEmail { font-size: 13px; font-weight: normal; } .FollowByEmail h2 { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0 50%; text-indent: 30px; } .FollowByEmail .widget-content { display: none; } .searchBox input { border: 1px solid #eee; color: #212121; color: rgba(0,0,0,.87); font-size: 14px; padding: 8px 8px 8px 40px; width: 164px; font-family: Roboto, sans-serif; background: url("https://www.gstatic.com/images/icons/material/system/1x/search_grey600_24dp.png") 8px center no-repeat; } .searchBox ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: rgba(0,0,0,.54); } .searchBox :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #000; opacity: 0.54; } .searchBox ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #000; opacity: 0.54; } .searchBox :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #757575; } .widget-item-control { margin-top: 0px; } .section { margin: 0; padding: 0; } #sidebar-top { border: 1px solid #eee; } #sidebar-top > div { margin: 16px 0; } .widget ul { line-height: 1.6; } /*main post*/ .post { margin-bottom:30px; } #main .post .title { margin: 0; } #main .post .title a { color: #212121; color: rgba(0,0,0,.87); font-weight: normal; font-size: 24px; } #main .post .title a:hover { text-decoration:none; color: #3974d6; } .message, #main .post .post-header { margin: 0; padding: 0; } #main .post .post-header .caption, #main .post .post-header .labels-caption, #main .post .post-footer .caption, #main .post .post-footer .labels-caption { color: #444; font-weight: 500; } #main .tr-caption-container td { text-align: left; } #main .post .tr-caption { color: #757575; color: rgba(0,0,0,.54); display: block; max-width: 560px; padding-bottom: 20px; } #main .post .tr-caption-container { line-height: 24px; margin: -1px 0 0 0 !important; padding: 4px 0; text-align: left; } #main .post .post-header .published{ font-size:11px; font-weight:bold; } .post-header .publishdate { font-size: 17px; font-weight:normal; color: #757575; color: rgba(0,0,0,.54); } #main .post .post-footer{ font-size:12px; padding-bottom: 21px; } .label-footer { margin-bottom: 12px; margin-top: 12px; } .comment-img { margin-right: 16px; opacity: 0.54; vertical-align: middle; } #main .post .post-header .published { margin-bottom: 40px; margin-top: -2px; } .post .post-content { color: #212121; color: rgba(0,0,0,.87); font-size: 17px; margin: 25px 0 36px 0; line-height: 32px; } .post-body .post-content ul, .post-body .post-content ol { margin: 16px 0; padding: 0 48px; } .post-summary { display: none; } /* Another old-style caption. */ .post-content div i, .post-content div + i { font-size: 14px; font-style: normal; color: #757575; color: rgba(0,0,0,.54); display: block; line-height: 24px; margin-bottom: 16px; text-align: left; } /* Another old-style caption (with link) */ .post-content a > i { color: #4184F3 !important; } /* Old-style captions for images. */ .post-content .separator + div:not(.separator) { margin-top: -16px; } /* Capture section headers. */ .post-content br + br + b, .post-content .space + .space + b, .post-content .separator + b { display: inline-block; margin-bottom: 8px; margin-top: 24px; } .post-content li { line-height: 32px; } /* Override all post images/videos to left align. */ .post-content .separator, .post-content > div { text-align: left; } .post-content .separator > a, .post-content .separator > span { margin-left: 0 !important; } .post-content img { max-width: 100%; height: auto; width: auto; } .post-content .tr-caption-container img { margin-bottom: 12px; } .post-content iframe, .post-content embed { max-width: 100%; } .post-content .carousel-container { margin-bottom: 48px; } #main .post-content b { font-weight: 500; } /* These are the main paragraph spacing tweaks. */ #main .post-content br { content: ' '; display: block; padding: 4px; } .post-content .space { display: block; height: 8px; } .post-content iframe + .space, .post-content iframe + br { padding: 0 !important; } #main .post .jump-link { margin-bottom:10px; } .post-content img, .post-content iframe { margin: 30px 0 20px 0; } .post-content > img:first-child, .post-content > iframe:first-child { margin-top: 0; } .col-right .section { padding: 0 16px; } #aside { background:#fff; border:1px solid #eee; border-top: 0; } #aside .widget { margin:0; } #aside .widget h2, #ArchiveList .toggle + a.post-count-link { color: #212121; color: rgba(0,0,0,.87); font-weight: 400 !important; margin: 0; } #ArchiveList .toggle { float: right; } #ArchiveList .toggle .material-icons { padding-top: 4px; } #sidebar .tab { cursor: pointer; } #sidebar .tab .arrow { display: inline-block; float: right; } #sidebar .tab .icon { display: inline-block; vertical-align: top; height: 24px; width: 24px; margin-right: 13px; margin-left: -1px; margin-top: 1px; color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget-content > :first-child { padding-top: 8px; } #sidebar .active .tab .arrow { -ms-transform: rotate(180deg); transform: rotate(180deg); } #sidebar .arrow { color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget h2 { font-size: 14px; line-height: 24px; display: inline-block; } #sidebar .widget .BlogArchive { padding-bottom: 8px; } #sidebar .widget { border-bottom: 1px solid #eee; box-shadow: 0px 1px 0 white; margin-bottom: 0; padding: 14px 0; min-height: 20px; } #sidebar .widget:last-child { border-bottom: none; box-shadow: none; margin-bottom: 0; } #sidebar ul { margin: 0; padding: 0; } #sidebar ul li { list-style:none; padding:0; } #sidebar ul li a { line-height: 32px; } #sidebar .archive { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNpiNDY23s9AAWBioBCwYBM8c+YMVsUmJibEGYBNMS5DaeMFfDYSZQA2v9I3FrB5AZeriI4FmnrBccCT8mhmGs1MwyAzAQQYAKEWG9zm9QFEAAAAAElFTkSuQmCC"); height: 24px; line-height: 24px; padding-left: 30px; } #sidebar .labels { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUxJREFUeNpiNDY23s9AAMycOfM7UF05kHkZmzwTMkdSUhKrIcXFxZy3bt3qBjIN8RrS09PDsHnzZjCNDr58+cKQlpbGDjSoHcg1w2oIyAUODg5gARCNzUVIBrUCuVYYhjx//pzhwIEDYAEQDeJjA1CDWIAGNQK59jBxRuSABbkAlwHIgIeHh2HWrFn/1NTU2oDcvSgBS4wBSC5iArqoCsj1YGIgEyAZVMoEchqlBjEB/cZAiUHg2AEGznpKDAImxOeM////B4VLKtBvEUCngZ1ILKivr3/u6+ubBzJAGZQ9gC5aQoqLgAY8BhkAZL4BuQQkxgXE34A4BuiiZEIuAhrwEGhAEZD5DpzYoIaA2UAM4kQADUrHZRDUgAIg8wO2XAwzbQXQa5OweQ1owB10AyA6gS7BgX1u3ry5397eHow3bdo0EyjGi00tQIABANPgyAH1q1eaAAAAAElFTkSuQmCC"); height: 20px; line-height: 20px; padding-left: 30px; } #sidebar .rss a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAX5JREFUeNqsVDGSgkAQHL2rIiIikohIc/EBRkbwAIwuwgfwAXiAD9AHSI7kEkECRCb6AIyINDLx7K0aa6kT7uq0q7YYtnZ7umdnt7darXbr9Zpegeu61DNNc0dvwCcH4/GYJpMJnc9nOhwOVJbl/4hAAokMECZJQtvt9k+kH7qufyEYDAakqqqYxFdRFBqNRmTbNg2HQ0rTlK7XayvR0xqBdDqdkuM4dE/0ULhYLOh4PHYrknG5XGi/31MYhuL/nkwonM1mlGUZ1XXdrsiyLGEDhY7juJEZ1u5tIixDGdYhmYw+B7CAzPP5nDabjdgIAgCksMX1832/3drtdqPT6SQWapomiGEFNkDEdpDMMAzK81ys/7XYy+XyoQgq2WoURSIJ2iIIgp/WZCCTvFm2wgeAU31aI3Q2GhIDMeB53qPYPIcm5VrxXIOIOxsDMStjVawAc1VViRgN22lNBiuQN3GR+SY07hpOoStmFQAKXRRFY93bnpG+fONfedi+BRgAbkS8Fxp7QQIAAAAASUVORK5CYII="); } #sidebar .subscription a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); } #sidebar-bottom { background: #f5f5f5; border-top:1px solid #eee; } #sidebar-bottom .widget { border-bottom: 1px solid #e0e0e0; padding: 15px 0; text-align: center; } #sidebar-bottom > div:last-child { border-bottom: 0; } #sidebar-bottom .text { line-height: 20px; } /* Home, forward, and backward pagination. */ .blog-pager { border-top : 1px #e0e0e0 solid; padding-top: 10px; margin-top: 15px; text-align: right !important; } #blog-pager { margin-botom: 0; margin-top: -14px; padding: 16px 0 0 0; } #blog-pager a { display: inline-block; } .blog-pager i.disabled { opacity: 0.2 !important; } .blog-pager i { color: black; margin-left: 16px; opacity: 0.54; } .blog-pager i:hover, .blog-pager i:active { opacity: 0.87; } #blog-pager-older-link, #blog-pager-newer-link { float: none; } .gplus-profile { background-color: #fafafa; border: 1px solid #eee; overflow: hidden; width: 212px; } .gplus-profile-inner { margin-left: -1px; margin-top: -1px; } /* Sidebar follow buttons. */ .followgooglewrapper { padding: 12px 0 0 0; } .loading { visibility: hidden; } .detail-page .post-footer .cmt_iframe_holder { padding-top: 40px !important; } /** Desktop **/ @media (max-width: 900px) { .col-right { display: none; } .col-main { margin-right: 0; min-width: initial; } .footer-outer { display: none; } .cols-wrapper { min-width: initial; } .google-footer-outer { background-color: #f5f5f5; } } /** Tablet **/ @media (max-width: 712px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 40px; } } /* An extra breakpoint accommodating for long blog titles. */ @media (max-width: 600px) { .header-left { height: 100%; position: initial; top: inherit; margin-top: 0; -webkit-transform: initial; transform: initial; } .header-title { margin-top: 18px; } .header-inner { height: auto; margin-bottom: 32px; margin-top: 32px; } .header-desc { margin-top: 12px; } .header-inner .google-logo { height: 70px; margin-top: 3px; } .header-inner .google-logo img { height: 70px; } .header-title h2 { font-size: 32px; line-height: 76px; } } /** Mobile/small desktop window; also landscape. **/ @media (max-width: 480px), (max-height: 480px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 16px; } .cols-wrapper { margin-top: 0; } .post-header .publishdate, .post .post-content { font-size: 16px; } .post .post-content { line-height: 28px; margin-bottom: 30px; } .post { margin-top: 30px; } .byline-author { display: block; font-size: 12px; line-height: 24px; margin-top: 6px; } #main .post .title a { font-weight: 500; color: #4c4c4c; color: rgba(0,0,0,.70); } #main .post .post-header { padding-bottom: 12px; } #main .post .post-header .published { margin-bottom: -8px; margin-top: 3px; } .post .read-more { display: block; margin-top: 14px; } .post .tr-caption { font-size: 12px; } #main .post .title a { font-size: 20px; line-height: 30px; } .post-content iframe { /* iframe won't keep aspect ratio when scaled down. */ max-height: 240px; } .post-content .separator img, .post-content .tr-caption-container img, .post-content iframe { margin-left: -16px; max-width: inherit; width: calc(100% + 32px); } .post-content table, .post-content td { width: 100%; } #blog-pager { margin: 0; padding: 16px 0; } /** List page tweaks. **/ .list-page .post-original { display: none; } .list-page .post-summary { display: block; } .list-page .comment-container { display: none; } .list-page #blog-pager { padding-top: 0; border: 0; margin-top: -8px; } .list-page .label-footer { display: none; } .list-page #main .post .post-footer { border-bottom: 1px solid #eee; margin: -16px 0 0 0; padding: 0 0 20px 0; } .list-page .post .share { display: none; } /** Detail page tweaks. **/ .detail-page .post-footer .cmt_iframe_holder { padding-top: 32px !important; } .detail-page .label-footer { margin-bottom: 0; } .detail-page #main .post .post-footer { padding-bottom: 0; } .detail-page #comments { display: none; } } [data-about-pullquote], [data-is-preview], [data-about-syndication] { display: none; } </style> <noscript> <style> .loading { visibility: visible }</style> </noscript> <script type='text/javascript'> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-37592578-1', 'auto', 'blogger'); ga('blogger.send', 'pageview'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=2471378914199150966&amp;zx=dd422b0a-07e2-4e80-8415-27bb05d534cd' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=2471378914199150966&amp;zx=dd422b0a-07e2-4e80-8415-27bb05d534cd' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?display=swap&family=Roboto"></head> <body> <script type='text/javascript'> //<![CDATA[ var axel = Math.random() + ""; var a = axel * 10000000000000; document.write('<iframe src="https://2542116.fls.doubleclick.net/activityi;src=2542116;type=gblog;cat=googl0;ord=ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); //]]> </script> <noscript> <img alt='' height='1' src='https://ad.doubleclick.net/ddm/activity/src=2542116;type=gblog;cat=googl0;ord=1?' width='1'/> </noscript> <!-- Header --> <div class='header-outer'> <div class='header-inner'> <div class='section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div class='header-left'> <div class='header-title'> <a class='google-logo' href='https://blog.chromium.org/'> <img alt="Chromium Blog" height="50" src="//1.bp.blogspot.com/-vkF7AFJOwBk/VkQxeAGi1mI/AAAAAAAARYo/57denvsQ8zA/s1600-r/logo_chromium.png"> </a> <a href='/.'> <h2> Chromium Blog </h2> </a> </div> <div class='header-desc'> News and developments from the open source browser project </div> </div> </div></div> </div> </div> <!-- all content wrapper start --> <div class='cols-wrapper loading'> <div class='col-main-wrapper'> <div class='col-main'> <div class='section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='post' data-id='8979617286514790703' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://blog.chromium.org/2017/12/chrome-64-beta-stronger-pop-up-blocker_14.html' itemprop='url' title='Chrome 64 Beta: stronger pop-up blocker, Resize Observer, and import.meta'> Chrome 64 Beta: stronger pop-up blocker, Resize Observer, and import.meta </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, December 14, 2017 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Unless otherwise noted, changes described below apply to the newest Chrome </span><a href="https://www.google.com/landing/chrome/beta/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Beta</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> channel release for Android, </span></div> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Chrome OS, </span><span style="font-family: &quot;arial&quot;; font-size: 10pt; white-space: pre-wrap;">Linux, Mac, and Windows.</span></div> <span class="post-author"><b id="docs-internal-guid-303ed303-562a-809f-aef8-e7f7463aade6" style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Stronger pop-up blocker</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">1 out of every 5 user feedback reports submitted on Chrome for desktop mention some type of </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">unwanted content. Examples include links to third-party websites disguised as play buttons or other </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">site controls, or transparent overlays on websites that capture all clicks and open new tabs or </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">windows. In this release, Chrome's pop-up blocker </span><a href="https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">now prevents</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> sites with these types of </span><a href="https://support.google.com/webtools/answer/7347327" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">abusive </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://support.google.com/webtools/answer/7347327" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">experiences</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> from opening new tabs or windows. Site owners can use the </span><a href="https://www.google.com/webmasters/tools/abusive-experience-unverified" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Abusive Experiences </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://www.google.com/webmasters/tools/abusive-experience-unverified" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Report</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> in Google Search Console to see if any of these abusive experiences have been found on </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">their site and improve their user experience.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s1600/0.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s320/0.gif" style="display: inline; margin-bottom: 0px; max-width: 280px;" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s1600/0+%25281%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s320/0+%25281%2529.gif" style="display: inline; margin-bottom: 0px; max-width: 280px;" /></a> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">&nbsp;</span></span><br /> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">Two types of abusive experiences where a deceptive site control appears to do one thing, but has a different behavior when clicked. One looks like a play button on a video but sends the user to an unwanted download when clicked (left), and the other looks like a close button but instead opens unwanted pop-up windows (right).</span></span><br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Resize Observer</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Traditionally, responsive web applications have used CSS media queries or </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">window.onresize</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">build responsive components that adapt content to different viewport sizes. However, both of these </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">are global signals and require the overall viewport to change in order for the site to respond </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">accordingly. Chrome now supports the </span><a href="https://wicg.github.io/ResizeObserver/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Resize Observer</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> API to give web applications </span><a href="https://developers.google.com/web/updates/2016/10/resizeobserver" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">finer </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://developers.google.com/web/updates/2016/10/resizeobserver" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">control</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to </span><a href="https://googlechrome.github.io/samples/resizeobserver/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">observe changes</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to sizes of elements on a page. </span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">const</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> ro = </span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">new</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span><span style="background-color: transparent; color: #9c27b0; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">ResizeObserver</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">((entries) =&gt; {</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;</span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">for</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> (const entry of entries) {</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;</span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">const</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> cr = entry.contentRect;</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">'Element:'</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">, entry.target);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">`Element size: ${cr.width}px &#215; ${cr.height}px`</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">`Element padding: ${cr.top}px / ${cr.left}px`</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;}</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">});</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #d81b60; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">// Observe one or multiple elements</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">ro.observe(someElement);</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">The code snippet above uses the Resize Observer API to observe changes to an element. </span></span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">import.meta</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Developers writing JavaScript modules often want access to host-specific metadata about the </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">current module. To make this easier, Chrome now </span><a href="https://docs.google.com/document/d/1XUmaB3LfneOjjtTN_6GHsHfpvdL2EYKJAyfOCaEGars/edit#heading=h.1mh17mkx62g" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">supports</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://github.com/tc39/proposal-import-meta" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> property within </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">modules that exposes the module URL via </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta.url</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. Library authors might want to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">access the URL of the module being bundled into the library to more easily resolve resources </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">relative to the module file as opposed to the current HTML document. In the future, Chrome plans to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">add more properties to </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Other features in this release</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink &gt; Animation</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-family: &quot;arial&quot;; font-size: 14.6667px; font-weight: 400; white-space: pre-wrap;">The</span>&nbsp;<a href="https://drafts.fxtf.org/motion-1/#offset-path-property" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">offset-path</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> property can be </span><a href="http://codepen.io/ericwilligers/pen/PpqMqM" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">used</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> to animate an element by specifying the geometry of the path that an element moves along. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Fonts</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Developers can now</span> <a href="https://codepen.io/anon/pen/GOadjL" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">use</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">text-decoration-skip-ink</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> CSS property to control how overlines and underlines are </span><a href="https://drive.google.com/file/d/1lBI4_IqfEcZ2hvlJ1-3JSw8yxoLC0vGg/view?usp=sharing" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">drawn</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> when they cross over a glyph. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Input</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Coordinates of </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">PointerEvent</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> with </span><a href="https://drafts.csswg.org/cssom-view/#extensions-to-the-mouseevent-interface" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">pointerType=mouse</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> are now </span><a href="https://output.jsbin.com/quqoqe/4/quiet" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">fractional</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, resulting in more precise mouse measurements. </span></div> </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;JavaScript</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To improve developer experience, Chrome now supports&nbsp;<span id="docs-internal-guid-303ed303-5631-c57a-6c1d-f555d5c4b314"><a href="https://github.com/tc39/proposal-regexp-named-groups" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">named captures in regular expressions</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><a href="https://developers.google.com/web/updates/2017/07/upcoming-regexp-features#named_captures" style="text-decoration-line: none;">allowing</a> </span></span><span id="docs-internal-guid-303ed303-5631-d66a-cf6e-bd4186629f1d"><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">developers to assign meaningful names to portions of a string that a regular expression matches. </span></span></li> <li style="line-height: 1.6;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Chrome now supports the </span><a href="https://developers.google.com/web/updates/2017/07/upcoming-regexp-features#unicode_property_escapes" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Unicode property escapes</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">\p{&#8230;}</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and</span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> \P{&#8230;}</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for regular expressions that have the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">u</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> flag set, allowing developers to create more powerful Unicode-aware regular expressions. </span></div> </li> <li style="line-height: 1.6;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">To assist with local-aware formatting of strings produced by internationalization formatters, developers can now use </span><a href="https://github.com/tc39/proposal-intl-formatToParts" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Intl.NumberFormat.prototype.formatToParts()</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to format a number to a list of tokens and their type. Thanks to Igalia for helping make this happen! </span></div> </li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Media</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;"><span style="font-family: &quot;arial&quot;;"><span style="font-size: 14.6667px; font-weight: 400; white-space: pre-wrap;">Matching other browser implementations, </span></span><span id="docs-internal-guid-303ed303-5632-894b-f69c-815a3f54af94" style="font-weight: normal;"><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Chrome now sets the </span><a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#media-preload-defaults-metadata" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">default </span><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">preload</span><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> value</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">&lt;video&gt;</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">&lt;audio&gt;</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> elements to </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">metadata</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> in order to reduce bandwidth and resource usage by only loading resource metadata and not the media resource itself. </span></span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">Chrome now supports</span> <a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#hdr-video-playback-windows-10" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">HDR video playback when Windows 10 is in HDR mode</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, enabling developers to provide users with HDR </span><a href="https://youtube.googleblog.com/2016/11/true-colors-adding-support-for-hdr.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">VP9 Profile 2 10-bit videos</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">. </span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">To support</span> <a href="https://github.com/whatwg/html/pull/2829" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">compatibility</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> with the HTML Spec, Chrome now throws a "</span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">NotSupportedError</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">" </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">DOMException</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://googlechrome.github.io/samples/media/playback-rate-exception" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">when</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> a media element&#8217;s </span><a href="https://html.spec.whatwg.org/multipage/media.html#dom-media-playbackrate" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">playbackRate</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> is set to a value </span><a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#unsupported-playbackRate-raises-exception" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">not supported</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> by Chrome, like negative values. &nbsp;</span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">Chrome now</span> <a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#media-capabilities-decoding-info-api" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">supports</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://wicg.github.io/media-capabilities/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Media Capabilities</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> API in Origin Trials, </span><a href="https://googlechrome.github.io/samples/media-capabilities/decoding-info.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">enabling</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> developers to know whether an audio or video playback will be smooth and power-efficient based on previous performance statistics. </span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">To match the</span> <a href="https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia()" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Media Capture and Streams spec</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">getUserMedia()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> returns a rejected Promise with </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">DOMException</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> or </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">OverconstrainedError</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> when there is an error. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Network</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">Developers can now use the <a href="https://fetch.spec.whatwg.org/#dom-request-cache" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">cache</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> option to specify the cache mode of a </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Request</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></li> <li style="line-height: 1.6;">Developers can now use <a href="https://developer.mozilla.org/en-US/docs/Web/API/Request/cache" style="font-family: Arial; font-size: 11pt; text-decoration-line: none; white-space: pre-wrap;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline;">Request.prototype.cache</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to view the cache mode of a </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Request</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and determine whether a request is a reload request. &nbsp;</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Permissions API</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To better align with the Permissions API spec, the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Permissions API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> can now be used to query the status of the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">camera</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">microphone</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> permissions. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Scroll</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">In&nbsp;<a href="https://html.spec.whatwg.org/multipage/interaction.html#focus-management-apis" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Focus Management APIs</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, developers can now focus an element without scrolling to it by using the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">preventScroll</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> attribute. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;SVG</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To allow developers to&nbsp;<a href="https://www.w3schools.com/cssref/css3_pr_transform.asp" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">transform</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://www.w3schools.com/cssref/css3_pr_transform-origin.asp" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">change position of transformed SVG elements</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, Chrome now supports </span><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/transform-box" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">transform-box</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for SVG elements. Thanks to Opera for making this happen! </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WebAudio</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;"><a href="https://webaudio.github.io/web-audio-api/#AudioWorklet">AudioWorklet</a>, an API that <a href="https://googlechromelabs.github.io/web-audio-samples/audio-worklet/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">exposes</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> low-level audio processing capability to support custom AudioNodes, is now available in origin trials and the experimental flag.</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WebRTC</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To align with the <a href="https://w3c.github.io/webrtc-pc/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">WebRTC 1.0 spec</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RTCPeerConnection</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> now supports </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">addTrack()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for single stream use cases, as well as </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">removeTrack()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">getSenders()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">ontrack</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, and a minimal version of the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RTCRtpSender</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> interface.</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WindowDialog</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To improve interoperability and end user experience, <span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">window.alert()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/5ia5klTZjwA/9a1ncgkbBQAJ" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">no longer</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> brings a backgrounded tab to the foreground but instead shows the alert when the user switches to the background tab. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">UI&gt;Notifications</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Similar to macOS, Chrome notifications sent through the</span> <a href="https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Notifications API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> or</span><a href="https://developer.chrome.com/apps/notifications" style="font-weight: normal; text-decoration-line: none;"><span style="color: black; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">chrome.notifications</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> on Linux are now </span><a href="https://tests.peter.sh/notification-generator/" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">shown</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> directly by the Linux native notification system. </span></li> </ul> </h4> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Deprecations and interoperability improvements</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; CSS</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">To align with the spec,</span> <a href="https://gist.github.com/darrnshn/addeabe2575177342cc6242e20ecadbd" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">getMatchedCSSRules</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> has been </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/fd-QLCiLESQ/_mfowSsRR8oJ" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">removed</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> and developers can use the </span><a href="https://gist.github.com/darrnshn/addeabe2575177342cc6242e20ecadbd" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Blink polyfill</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> instead. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; DOM</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Following the</span> <a href="https://www.w3.org/wiki/Webapps/WebComponentsApril2015Meeting" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">deprecation</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> in Chrome 45, elements can no longer host more than one</span><a href="https://w3c.github.io/webcomponents/spec/shadow/" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> Shadow Root</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; Performance APIs</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">To encourage adoption of standardized loading metrics API such as</span> <a href="https://www.chromestatus.com/feature/5409443269312512" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Navigation Timing 2</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://www.chromestatus.com/feature/5650461096935424" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">nextHopProtocol</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, and </span><a href="https://developers.google.com/web/updates/2017/07/nic60#paint" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Paint Timing API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, Chrome is </span><a href="https://developers.google.com/web/updates/2017/12/chrome-loadtimes-deprecated" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">deprecating</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> the non-standardized </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">chrome.loadTimes</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> API. </span></li> </ul> </h4> <span class="post-author"><br /></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: white; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">For a complete list of all features (including experimental features) in this release, see the </span><br /> <a href="https://www.chromestatus.com/features#milestone%3D64" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Chrome 64 milestone hotlist</span></a><span style="background-color: white; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">. &nbsp;</span></div> <span class="post-author"><br /></span> Posted by Charles Harrison, Pop-Up Popping Engineer <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Unless otherwise noted, changes described below apply to the newest Chrome </span><a href="https://www.google.com/landing/chrome/beta/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Beta</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> channel release for Android, </span></div> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Chrome OS, </span><span style="font-family: &quot;arial&quot;; font-size: 10pt; white-space: pre-wrap;">Linux, Mac, and Windows.</span></div> <span class="post-author"><b id="docs-internal-guid-303ed303-562a-809f-aef8-e7f7463aade6" style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Stronger pop-up blocker</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">1 out of every 5 user feedback reports submitted on Chrome for desktop mention some type of </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">unwanted content. Examples include links to third-party websites disguised as play buttons or other </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">site controls, or transparent overlays on websites that capture all clicks and open new tabs or </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">windows. In this release, Chrome's pop-up blocker </span><a href="https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">now prevents</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> sites with these types of </span><a href="https://support.google.com/webtools/answer/7347327" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">abusive </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://support.google.com/webtools/answer/7347327" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">experiences</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> from opening new tabs or windows. Site owners can use the </span><a href="https://www.google.com/webmasters/tools/abusive-experience-unverified" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Abusive Experiences </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://www.google.com/webmasters/tools/abusive-experience-unverified" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Report</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> in Google Search Console to see if any of these abusive experiences have been found on </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">their site and improve their user experience.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s1600/0.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s320/0.gif" style="display: inline; margin-bottom: 0px; max-width: 280px;" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s1600/0+%25281%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s320/0+%25281%2529.gif" style="display: inline; margin-bottom: 0px; max-width: 280px;" /></a> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">&nbsp;</span></span><br /> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">Two types of abusive experiences where a deceptive site control appears to do one thing, but has a different behavior when clicked. One looks like a play button on a video but sends the user to an unwanted download when clicked (left), and the other looks like a close button but instead opens unwanted pop-up windows (right).</span></span><br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Resize Observer</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Traditionally, responsive web applications have used CSS media queries or </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">window.onresize</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">build responsive components that adapt content to different viewport sizes. However, both of these </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">are global signals and require the overall viewport to change in order for the site to respond </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">accordingly. Chrome now supports the </span><a href="https://wicg.github.io/ResizeObserver/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Resize Observer</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> API to give web applications </span><a href="https://developers.google.com/web/updates/2016/10/resizeobserver" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">finer </span></a></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://developers.google.com/web/updates/2016/10/resizeobserver" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">control</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to </span><a href="https://googlechrome.github.io/samples/resizeobserver/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">observe changes</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> to sizes of elements on a page. </span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">const</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> ro = </span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">new</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span><span style="background-color: transparent; color: #9c27b0; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">ResizeObserver</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">((entries) =&gt; {</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;</span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">for</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> (const entry of entries) {</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;</span><span style="background-color: transparent; color: #3b78e7; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">const</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> cr = entry.contentRect;</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">'Element:'</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">, entry.target);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">`Element size: ${cr.width}px &#215; ${cr.height}px`</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;&nbsp;&nbsp;console.log(</span><span style="background-color: transparent; color: #0d904f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">`Element padding: ${cr.top}px / ${cr.left}px`</span><span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">);</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> &nbsp;}</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">});</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #d81b60; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">// Observe one or multiple elements</span></div> <div dir="ltr" style="line-height: 1.2;"> <span style="background-color: transparent; color: #37474f; font-family: &quot;courier new&quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">ro.observe(someElement);</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">The code snippet above uses the Resize Observer API to observe changes to an element. </span></span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">import.meta</span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Developers writing JavaScript modules often want access to host-specific metadata about the </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">current module. To make this easier, Chrome now </span><a href="https://docs.google.com/document/d/1XUmaB3LfneOjjtTN_6GHsHfpvdL2EYKJAyfOCaEGars/edit#heading=h.1mh17mkx62g" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">supports</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://github.com/tc39/proposal-import-meta" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> property within </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">modules that exposes the module URL via </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta.url</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">. Library authors might want to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">access the URL of the module being bundled into the library to more easily resolve resources </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">relative to the module file as opposed to the current HTML document. In the future, Chrome plans to </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">add more properties to </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">import.meta</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Other features in this release</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink &gt; Animation</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-family: &quot;arial&quot;; font-size: 14.6667px; font-weight: 400; white-space: pre-wrap;">The</span>&nbsp;<a href="https://drafts.fxtf.org/motion-1/#offset-path-property" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">offset-path</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> property can be </span><a href="http://codepen.io/ericwilligers/pen/PpqMqM" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">used</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> to animate an element by specifying the geometry of the path that an element moves along. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Fonts</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Developers can now</span> <a href="https://codepen.io/anon/pen/GOadjL" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">use</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">text-decoration-skip-ink</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> CSS property to control how overlines and underlines are </span><a href="https://drive.google.com/file/d/1lBI4_IqfEcZ2hvlJ1-3JSw8yxoLC0vGg/view?usp=sharing" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">drawn</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> when they cross over a glyph. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Input</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Coordinates of </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">PointerEvent</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> with </span><a href="https://drafts.csswg.org/cssom-view/#extensions-to-the-mouseevent-interface" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">pointerType=mouse</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> are now </span><a href="https://output.jsbin.com/quqoqe/4/quiet" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">fractional</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, resulting in more precise mouse measurements. </span></div> </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;JavaScript</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To improve developer experience, Chrome now supports&nbsp;<span id="docs-internal-guid-303ed303-5631-c57a-6c1d-f555d5c4b314"><a href="https://github.com/tc39/proposal-regexp-named-groups" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">named captures in regular expressions</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"><a href="https://developers.google.com/web/updates/2017/07/upcoming-regexp-features#named_captures" style="text-decoration-line: none;">allowing</a> </span></span><span id="docs-internal-guid-303ed303-5631-d66a-cf6e-bd4186629f1d"><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">developers to assign meaningful names to portions of a string that a regular expression matches. </span></span></li> <li style="line-height: 1.6;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Chrome now supports the </span><a href="https://developers.google.com/web/updates/2017/07/upcoming-regexp-features#unicode_property_escapes" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Unicode property escapes</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">\p{&#8230;}</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and</span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> \P{&#8230;}</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for regular expressions that have the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">u</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> flag set, allowing developers to create more powerful Unicode-aware regular expressions. </span></div> </li> <li style="line-height: 1.6;"><div dir="ltr" style="display: inline !important; line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">To assist with local-aware formatting of strings produced by internationalization formatters, developers can now use </span><a href="https://github.com/tc39/proposal-intl-formatToParts" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Intl.NumberFormat.prototype.formatToParts()</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to format a number to a list of tokens and their type. Thanks to Igalia for helping make this happen! </span></div> </li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Media</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;"><span style="font-family: &quot;arial&quot;;"><span style="font-size: 14.6667px; font-weight: 400; white-space: pre-wrap;">Matching other browser implementations, </span></span><span id="docs-internal-guid-303ed303-5632-894b-f69c-815a3f54af94" style="font-weight: normal;"><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Chrome now sets the </span><a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#media-preload-defaults-metadata" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">default </span><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">preload</span><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> value</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">&lt;video&gt;</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">&lt;audio&gt;</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> elements to </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">metadata</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> in order to reduce bandwidth and resource usage by only loading resource metadata and not the media resource itself. </span></span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">Chrome now supports</span> <a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#hdr-video-playback-windows-10" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">HDR video playback when Windows 10 is in HDR mode</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, enabling developers to provide users with HDR </span><a href="https://youtube.googleblog.com/2016/11/true-colors-adding-support-for-hdr.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">VP9 Profile 2 10-bit videos</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">. </span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">To support</span> <a href="https://github.com/whatwg/html/pull/2829" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">compatibility</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> with the HTML Spec, Chrome now throws a "</span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">NotSupportedError</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">" </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">DOMException</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://googlechrome.github.io/samples/media/playback-rate-exception" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">when</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> a media element&#8217;s </span><a href="https://html.spec.whatwg.org/multipage/media.html#dom-media-playbackrate" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">playbackRate</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> is set to a value </span><a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#unsupported-playbackRate-raises-exception" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">not supported</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> by Chrome, like negative values. &nbsp;</span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">Chrome now</span> <a href="https://developers.google.com/web/updates/2017/12/chrome-63-64-media-updates#media-capabilities-decoding-info-api" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">supports</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> the </span><a href="https://wicg.github.io/media-capabilities/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Media Capabilities</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> API in Origin Trials, </span><a href="https://googlechrome.github.io/samples/media-capabilities/decoding-info.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">enabling</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> developers to know whether an audio or video playback will be smooth and power-efficient based on previous performance statistics. </span></li> <li style="line-height: 1.6;"><span style="font-weight: normal;">To match the</span> <a href="https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia()" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Media Capture and Streams spec</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">getUserMedia()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> returns a rejected Promise with </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">DOMException</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> or </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">OverconstrainedError</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> when there is an error. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Network</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">Developers can now use the <a href="https://fetch.spec.whatwg.org/#dom-request-cache" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">cache</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> option to specify the cache mode of a </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Request</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">.</span></li> <li style="line-height: 1.6;">Developers can now use <a href="https://developer.mozilla.org/en-US/docs/Web/API/Request/cache" style="font-family: Arial; font-size: 11pt; text-decoration-line: none; white-space: pre-wrap;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline;">Request.prototype.cache</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> to view the cache mode of a </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Request</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and determine whether a request is a reload request. &nbsp;</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Permissions API</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To better align with the Permissions API spec, the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Permissions API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> can now be used to query the status of the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">camera</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">microphone</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> permissions. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;Scroll</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">In&nbsp;<a href="https://html.spec.whatwg.org/multipage/interaction.html#focus-management-apis" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Focus Management APIs</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, developers can now focus an element without scrolling to it by using the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">preventScroll</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> attribute. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;SVG</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To allow developers to&nbsp;<a href="https://www.w3schools.com/cssref/css3_pr_transform.asp" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">transform</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://www.w3schools.com/cssref/css3_pr_transform-origin.asp" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">change position of transformed SVG elements</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, Chrome now supports </span><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/transform-box" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">transform-box</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for SVG elements. Thanks to Opera for making this happen! </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WebAudio</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;"><a href="https://webaudio.github.io/web-audio-api/#AudioWorklet">AudioWorklet</a>, an API that <a href="https://googlechromelabs.github.io/web-audio-samples/audio-worklet/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">exposes</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> low-level audio processing capability to support custom AudioNodes, is now available in origin trials and the experimental flag.</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WebRTC</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To align with the <a href="https://w3c.github.io/webrtc-pc/" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">WebRTC 1.0 spec</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RTCPeerConnection</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> now supports </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">addTrack()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> for single stream use cases, as well as </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">removeTrack()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">getSenders()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">ontrack</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">, and a minimal version of the </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">RTCRtpSender</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> interface.</span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt;WindowDialog</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <b style="font-weight: normal;"><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;"> </div> <ul> <li style="line-height: 1.6;">To improve interoperability and end user experience, <span style="font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">window.alert()</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/5ia5klTZjwA/9a1ncgkbBQAJ" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">no longer</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> brings a backgrounded tab to the foreground but instead shows the alert when the user switches to the background tab. </span></li> </ul> </b></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">UI&gt;Notifications</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Similar to macOS, Chrome notifications sent through the</span> <a href="https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Notifications API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> or</span><a href="https://developer.chrome.com/apps/notifications" style="font-weight: normal; text-decoration-line: none;"><span style="color: black; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">chrome.notifications</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> on Linux are now </span><a href="https://tests.peter.sh/notification-generator/" style="font-weight: normal; text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;arial&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">shown</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> directly by the Linux native notification system. </span></li> </ul> </h4> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Deprecations and interoperability improvements</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; CSS</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">To align with the spec,</span> <a href="https://gist.github.com/darrnshn/addeabe2575177342cc6242e20ecadbd" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">getMatchedCSSRules</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> has been </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/fd-QLCiLESQ/_mfowSsRR8oJ" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">removed</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> and developers can use the </span><a href="https://gist.github.com/darrnshn/addeabe2575177342cc6242e20ecadbd" style="font-family: Arial; font-size: 11pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Blink polyfill</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> instead. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; DOM</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">Following the</span> <a href="https://www.w3.org/wiki/Webapps/WebComponentsApril2015Meeting" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">deprecation</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> in Chrome 45, elements can no longer host more than one</span><a href="https://w3c.github.io/webcomponents/spec/shadow/" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"> Shadow Root</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">. </span></li> </ul> </h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">Blink&gt; Performance APIs</span></h4> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <ul> <li style="line-height: 1.6;"><span style="font-weight: normal;">To encourage adoption of standardized loading metrics API such as</span> <a href="https://www.chromestatus.com/feature/5409443269312512" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Navigation Timing 2</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://www.chromestatus.com/feature/5650461096935424" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">nextHopProtocol</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, and </span><a href="https://developers.google.com/web/updates/2017/07/nic60#paint" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">Paint Timing API</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">, Chrome is </span><a href="https://developers.google.com/web/updates/2017/12/chrome-loadtimes-deprecated" style="font-family: Arial; font-size: 10pt; font-weight: 400; text-decoration-line: none; white-space: pre;"><span style="color: #1155cc; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;">deprecating</span></a><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> the non-standardized </span><span style="font-family: &quot;courier new&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">chrome.loadTimes</span><span style="font-family: &quot;arial&quot;; font-size: 11pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"> API. </span></li> </ul> </h4> <span class="post-author"><br /></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: white; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">For a complete list of all features (including experimental features) in this release, see the </span><br /> <a href="https://www.chromestatus.com/features#milestone%3D64" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre;">Chrome 64 milestone hotlist</span></a><span style="background-color: white; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">. &nbsp;</span></div> <span class="post-author"><br /></span> Posted by Charles Harrison, Pop-Up Popping Engineer <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Chromium Blog:Chrome 64 Beta: stronger pop-up blocker, Resize Observer, and import.meta&url=https://blog.chromium.org/2017/12/chrome-64-beta-stronger-pop-up-blocker_14.html&via=ChromiumDev'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://blog.chromium.org/2017/12/chrome-64-beta-stronger-pop-up-blocker_14.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://blog.chromium.org/2017/12/chrome-64-beta-stronger-pop-up-blocker_14.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://blog.chromium.org/search/label/beta' rel='tag'> beta </a> </span> </div> </div> </div> <div class='post' data-id='8781320634595940139' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://blog.chromium.org/2017/11/reducing-chrome-crashes-caused-by-third.html' itemprop='url' title='Reducing Chrome crashes caused by third-party software'> Reducing Chrome crashes caused by third-party software </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, November 30, 2017 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <span style="font-family: inherit;"><i>Update (04/26/2019):&nbsp;Third-party developers can now use <a href="https://goo.gl/SFPNC5">this document</a> to evaluate the impact of third-party blocking on their software.</i></span><br /> <br /> Roughly two-thirds of Windows Chrome users have other applications on their machines that interact with Chrome, such as accessibility or antivirus software. In the past, this software needed to inject code in Chrome in order to function properly; unfortunately, users with software that injects code into Windows Chrome are 15% more likely to experience crashes. With <a href="https://developer.chrome.com/extensions">Chrome extensions</a> and <a href="https://developer.chrome.com/extensions/nativeMessaging">Native Messaging</a>, there are now modern alternatives to running code inside of Chrome processes. Starting in September 2018, Chrome 69 will begin blocking third-party software from injecting code into Chrome on Windows.<br /> <br /> These changes will take place in three phases. In April 2018, Chrome 66 will begin showing affected users a warning after a crash, alerting them that other software is injecting code into Chrome and guiding them to update or remove that software.<br /> <br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7V3lgKWH7hbWnYNxRlFDNzro9pdVQh9gGdhG53pEsV3gcpWoUHCHexH8ZaHjDaLHrq2TE8hRFkkJ-UqwdlM9W8bPr6L58xcp8J_4jCwuqYT-DL0VAQUt7WVEDXUJG1LZet7ErxW7vK2b/s1600/Screenshot+2017-11-30+at+8.27.03+AM.png" imageanchor="1"><img border="0" data-original-height="416" data-original-width="1600" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7V3lgKWH7hbWnYNxRlFDNzro9pdVQh9gGdhG53pEsV3gcpWoUHCHexH8ZaHjDaLHrq2TE8hRFkkJ-UqwdlM9W8bPr6L58xcp8J_4jCwuqYT-DL0VAQUt7WVEDXUJG1LZet7ErxW7vK2b/s640/Screenshot+2017-11-30+at+8.27.03+AM.png" width="640" /></a> <br /> <div style="text-align: center;"> <span style="font-size: small; font-style: italic; line-height: 1;">In Chrome 66 a warning will be shown to users with third-party software that injects into Chrome.</span></div> <br /> <br /> In September 2018, Chrome 69 will begin blocking third-party software from injecting into Chrome processes. If this blocking prevents Chrome from starting, Chrome will restart and allow the injection, but also show a warning that guides the user to remove the software. Finally, in January 2019, Chrome 72 will remove this accommodation and always block code injection.<br /> <br /> While most software that injects code into Chrome will be affected by these changes, there are some exceptions. Microsoft-signed code, accessibility software, and IME software will not be affected. As with all Chrome changes, developers are encouraged to use <a href="https://www.google.com/chrome/browser/beta.html">Chrome Beta</a> for early testing.<br /> <br /> Fewer crashes means more happy users, and we look forward to continuing to make Chrome better for everyone.<br /> <br /> Posted by Chris Hamilton, Chrome Stability Team<br /> <br /> <i>Updated 2018-06-21: Third-party software will be blocked from injecting code into Chrome on Windows starting in Chrome 69.</i> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <span style="font-family: inherit;"><i>Update (04/26/2019):&nbsp;Third-party developers can now use <a href="https://goo.gl/SFPNC5">this document</a> to evaluate the impact of third-party blocking on their software.</i></span><br /> <br /> Roughly two-thirds of Windows Chrome users have other applications on their machines that interact with Chrome, such as accessibility or antivirus software. In the past, this software needed to inject code in Chrome in order to function properly; unfortunately, users with software that injects code into Windows Chrome are 15% more likely to experience crashes. With <a href="https://developer.chrome.com/extensions">Chrome extensions</a> and <a href="https://developer.chrome.com/extensions/nativeMessaging">Native Messaging</a>, there are now modern alternatives to running code inside of Chrome processes. Starting in September 2018, Chrome 69 will begin blocking third-party software from injecting code into Chrome on Windows.<br /> <br /> These changes will take place in three phases. In April 2018, Chrome 66 will begin showing affected users a warning after a crash, alerting them that other software is injecting code into Chrome and guiding them to update or remove that software.<br /> <br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7V3lgKWH7hbWnYNxRlFDNzro9pdVQh9gGdhG53pEsV3gcpWoUHCHexH8ZaHjDaLHrq2TE8hRFkkJ-UqwdlM9W8bPr6L58xcp8J_4jCwuqYT-DL0VAQUt7WVEDXUJG1LZet7ErxW7vK2b/s1600/Screenshot+2017-11-30+at+8.27.03+AM.png" imageanchor="1"><img border="0" data-original-height="416" data-original-width="1600" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS7V3lgKWH7hbWnYNxRlFDNzro9pdVQh9gGdhG53pEsV3gcpWoUHCHexH8ZaHjDaLHrq2TE8hRFkkJ-UqwdlM9W8bPr6L58xcp8J_4jCwuqYT-DL0VAQUt7WVEDXUJG1LZet7ErxW7vK2b/s640/Screenshot+2017-11-30+at+8.27.03+AM.png" width="640" /></a> <br /> <div style="text-align: center;"> <span style="font-size: small; font-style: italic; line-height: 1;">In Chrome 66 a warning will be shown to users with third-party software that injects into Chrome.</span></div> <br /> <br /> In September 2018, Chrome 69 will begin blocking third-party software from injecting into Chrome processes. If this blocking prevents Chrome from starting, Chrome will restart and allow the injection, but also show a warning that guides the user to remove the software. Finally, in January 2019, Chrome 72 will remove this accommodation and always block code injection.<br /> <br /> While most software that injects code into Chrome will be affected by these changes, there are some exceptions. Microsoft-signed code, accessibility software, and IME software will not be affected. As with all Chrome changes, developers are encouraged to use <a href="https://www.google.com/chrome/browser/beta.html">Chrome Beta</a> for early testing.<br /> <br /> Fewer crashes means more happy users, and we look forward to continuing to make Chrome better for everyone.<br /> <br /> Posted by Chris Hamilton, Chrome Stability Team<br /> <br /> <i>Updated 2018-06-21: Third-party software will be blocked from injecting code into Chrome on Windows starting in Chrome 69.</i> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Chromium Blog:Reducing Chrome crashes caused by third-party software&url=https://blog.chromium.org/2017/11/reducing-chrome-crashes-caused-by-third.html&via=ChromiumDev'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://blog.chromium.org/2017/11/reducing-chrome-crashes-caused-by-third.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://blog.chromium.org/2017/11/reducing-chrome-crashes-caused-by-third.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> </div> </div> </div> <div class='post' data-id='5393955710850972592' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html' itemprop='url' title='Expanding user protections on the web'> Expanding user protections on the web </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, November 8, 2017 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">One of the advantages of the web is that it allows developers to create any type of experience they can imagine, which has led to the rich diversity of content available on the web today. While most content producers are interested in providing excellent experiences for their users, we've found that a small number use the flexibility and power of the web to take advantage of users and redirect them to unintended destinations. 1 out of every 5 feedback reports from Chrome users on desktop mention encountering some type of unwanted content, and we take this feedback seriously when considering how to improve Chrome. Following on from features like Chrome's <a href="https://support.google.com/chrome/answer/95472">pop-up blocker</a> and <a href="https://blog.chromium.org/2017/09/unified-autoplay.html">autoplay protections</a>, over the next few releases we'll be rolling out three new protections designed to give users all the web has to offer, but without many of these types of unwanted behaviors.</span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">One piece of feedback we regularly hear from users is that a page will unexpectedly navigate to a new page, for seemingly no reason. We've found that this redirect often comes from third-party content embedded in the page, and the page author didn't intend the redirect to happen at all. To address this, in Chrome 68 all redirects originating from third-party iframes will show an infobar instead of redirecting, unless the user had been interacting with that frame. This will keep the user on the page they were reading, and prevent those surprising redirects.</span></span><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWBdDNWxYK6oJHxHEEeHcobIO5htF2M4TxExJ2kfH2oSJcvdC5Unx4TUY6YTuglV7gZwDyo6XHxsMOAmsBGKYARqAwN9CHIBjPClWgRK-uq8V88nkBjRn4CZ-tA_qSenuChf7zSjKFzmXk/s1600/Screenshot_20171102-063208.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWBdDNWxYK6oJHxHEEeHcobIO5htF2M4TxExJ2kfH2oSJcvdC5Unx4TUY6YTuglV7gZwDyo6XHxsMOAmsBGKYARqAwN9CHIBjPClWgRK-uq8V88nkBjRn4CZ-tA_qSenuChf7zSjKFzmXk/s1600/Screenshot_20171102-063208.png" style="border: 1px solid black; margin-bottom: 0; max-width: 300px;" /></a></div> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span style="font-size: 12px; font-style: italic; line-height: normal;">An example of a redirect being blocked on a test site. The iframes embedded in the site are attempting to navigate the page to an unintended destination, but Chrome prevents the redirect and shows an infobar.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">When the user interacts with content, things can also go wrong. One example that causes user frustration is when clicking a link opens the desired destination in a new tab, while the main window navigates to a different, unwanted page. Starting in Chrome 68 we'll also detect this behavior, trigger an infobar, and prevent the main tab from being redirected. This allows the user to continue directly to their intended destination, while also preserving the context of the page they came from.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Finally, there are several other types of <a href="https://support.google.com/webtools/answer/7347327">abusive experiences</a> that send users to unintended destinations but are hard to automatically detect. These include links to third-party websites disguised as play buttons or other site controls, or transparent overlays on websites that capture all clicks and open new tabs or windows.&nbsp;</span></span><br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s1600/0.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s320/0.gif" style="display: inline; margin-bottom: 0; max-width: 280px;" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s1600/0+%25281%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s320/0+%25281%2529.gif" style="display: inline; margin-bottom: 0; max-width: 280px;" /></a> </div> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">Two types of abusive experiences where a deceptive site control appears to do one thing, but has a different behavior when clicked. One looks like a play button on a video but sends the user to an unwanted download when clicked (left), and the other looks like a close button but instead opens unwanted pop-up windows (right).</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Similar to how <a href="https://safebrowsing.google.com/">Google Safe Browsing</a> protects users from malicious content, starting in early January Chrome's pop-up blocker will prevent sites with these types of abusive experiences from opening new windows or tabs. To help site owners prepare for this change, today we're also launching the <a href="https://www.google.com/webmasters/tools/abusive-experience-unverified">Abusive Experiences Report</a> alongside other similar reports in the Google Search Console. Site owners can use the report to see if any of these abusive experiences have been found on their site and improve their user experience. Otherwise, abusive experiences left unaddressed for 30 days will trigger the prevention of new windows and tabs.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Together, these protections will dramatically improve users' web browsing experiences while still allowing them access to all that the web has to offer.&nbsp;</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Posted by Ryan Schoen, Product Manager</span></span><br /> <div> <br /> <span id="docs-internal-guid-bc9b40b6-dc1d-3906-652e-c49580330547"><span style="font-family: Arial; font-size: 10pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap; font-style: italic;"><span style="font-weight: bold;">Update 2018-06-07</span>: The two protections described above that prevent unwanted redirects and unwanted tabs or windows are now scheduled to be released with Chrome 68. The timeline for expanding Chrome's pop-up blocker remains unchanged, as it already launched in January.</span></span></div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">One of the advantages of the web is that it allows developers to create any type of experience they can imagine, which has led to the rich diversity of content available on the web today. While most content producers are interested in providing excellent experiences for their users, we've found that a small number use the flexibility and power of the web to take advantage of users and redirect them to unintended destinations. 1 out of every 5 feedback reports from Chrome users on desktop mention encountering some type of unwanted content, and we take this feedback seriously when considering how to improve Chrome. Following on from features like Chrome's <a href="https://support.google.com/chrome/answer/95472">pop-up blocker</a> and <a href="https://blog.chromium.org/2017/09/unified-autoplay.html">autoplay protections</a>, over the next few releases we'll be rolling out three new protections designed to give users all the web has to offer, but without many of these types of unwanted behaviors.</span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">One piece of feedback we regularly hear from users is that a page will unexpectedly navigate to a new page, for seemingly no reason. We've found that this redirect often comes from third-party content embedded in the page, and the page author didn't intend the redirect to happen at all. To address this, in Chrome 68 all redirects originating from third-party iframes will show an infobar instead of redirecting, unless the user had been interacting with that frame. This will keep the user on the page they were reading, and prevent those surprising redirects.</span></span><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWBdDNWxYK6oJHxHEEeHcobIO5htF2M4TxExJ2kfH2oSJcvdC5Unx4TUY6YTuglV7gZwDyo6XHxsMOAmsBGKYARqAwN9CHIBjPClWgRK-uq8V88nkBjRn4CZ-tA_qSenuChf7zSjKFzmXk/s1600/Screenshot_20171102-063208.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWBdDNWxYK6oJHxHEEeHcobIO5htF2M4TxExJ2kfH2oSJcvdC5Unx4TUY6YTuglV7gZwDyo6XHxsMOAmsBGKYARqAwN9CHIBjPClWgRK-uq8V88nkBjRn4CZ-tA_qSenuChf7zSjKFzmXk/s1600/Screenshot_20171102-063208.png" style="border: 1px solid black; margin-bottom: 0; max-width: 300px;" /></a></div> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span style="font-size: 12px; font-style: italic; line-height: normal;">An example of a redirect being blocked on a test site. The iframes embedded in the site are attempting to navigate the page to an unintended destination, but Chrome prevents the redirect and shows an infobar.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">When the user interacts with content, things can also go wrong. One example that causes user frustration is when clicking a link opens the desired destination in a new tab, while the main window navigates to a different, unwanted page. Starting in Chrome 68 we'll also detect this behavior, trigger an infobar, and prevent the main tab from being redirected. This allows the user to continue directly to their intended destination, while also preserving the context of the page they came from.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Finally, there are several other types of <a href="https://support.google.com/webtools/answer/7347327">abusive experiences</a> that send users to unintended destinations but are hard to automatically detect. These include links to third-party websites disguised as play buttons or other site controls, or transparent overlays on websites that capture all clicks and open new tabs or windows.&nbsp;</span></span><br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s1600/0.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgScm5nd6lz_Vyzpj0qt-igAuiZMXndWco1kBx4Px58WyUazFjT_zu4d5WjausFDMrlyuZjYeQPgV563sIeSio6ccstvo0Q02eSRooNHimnImyYmB96jfLnkA8iivtoSZnBQ21mzpPWVshQ/s320/0.gif" style="display: inline; margin-bottom: 0; max-width: 280px;" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s1600/0+%25281%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bnWbrm2HQKIZrtXWfHiyO90buw9ez3lBwHCRD81IXI-9HOYTQowvH2axKoARfEedthPxNLRBhDy7eegdgiJsQm2Dq7Fi0OlNRhbk1BYV_bIuHSibn5S-bLdMhLCA4jKpnFk6yNJW9U8T/s320/0+%25281%2529.gif" style="display: inline; margin-bottom: 0; max-width: 280px;" /></a> </div> <span style="font-family: &quot;arial&quot;; line-height: normal;"><span font-style:="" italic="" style="font-size: 12px; font-style: italic; line-height: normal;">Two types of abusive experiences where a deceptive site control appears to do one thing, but has a different behavior when clicked. One looks like a play button on a video but sends the user to an unwanted download when clicked (left), and the other looks like a close button but instead opens unwanted pop-up windows (right).</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Similar to how <a href="https://safebrowsing.google.com/">Google Safe Browsing</a> protects users from malicious content, starting in early January Chrome's pop-up blocker will prevent sites with these types of abusive experiences from opening new windows or tabs. To help site owners prepare for this change, today we're also launching the <a href="https://www.google.com/webmasters/tools/abusive-experience-unverified">Abusive Experiences Report</a> alongside other similar reports in the Google Search Console. Site owners can use the report to see if any of these abusive experiences have been found on their site and improve their user experience. Otherwise, abusive experiences left unaddressed for 30 days will trigger the prevention of new windows and tabs.</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Together, these protections will dramatically improve users' web browsing experiences while still allowing them access to all that the web has to offer.&nbsp;</span></span><br /> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;"><br /></span></span> <span style="font-family: &quot;arial&quot;;"><span style="font-size: 13.3333px; white-space: pre-wrap;">Posted by Ryan Schoen, Product Manager</span></span><br /> <div> <br /> <span id="docs-internal-guid-bc9b40b6-dc1d-3906-652e-c49580330547"><span style="font-family: Arial; font-size: 10pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap; font-style: italic;"><span style="font-weight: bold;">Update 2018-06-07</span>: The two protections described above that prevent unwanted redirects and unwanted tabs or windows are now scheduled to be released with Chrome 68. The timeline for expanding Chrome's pop-up blocker remains unchanged, as it already launched in January.</span></span></div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Chromium Blog:Expanding user protections on the web&url=https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html&via=ChromiumDev'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://blog.chromium.org/2017/11/expanding-user-protections-on-web.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> </div> </div> </div> <div class='post' data-id='3877330485578555947' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://blog.chromium.org/2017/10/chrome-63-beta-dynamic-module-imports_27.html' itemprop='url' title='Chrome 63 Beta: Dynamic module imports, async iterators and generators, Device Memory API, and permissions UI changes '> Chrome 63 Beta: Dynamic module imports, async iterators and generators, Device Memory API, and permissions UI changes </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, October 27, 2017 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unless otherwise noted, changes described below apply to the newest Chrome </span><a href="https://www.google.com/landing/chrome/beta/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Beta</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> channel release for Android, Chrome OS, Linux, Mac, and Windows.</span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dynamic module imports</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Currently, importing JavaScript modules is completely static, and developers cannot import modules based on runtime conditions, like whether a user is logged in. Starting in this release, the </span><a href="https://tc39.github.io/proposal-dynamic-import/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">import(specifier)</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> </span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">syntax now allows developers to </span><a href="https://dynamic-import.firebaseapp.com/news" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">dynamically load code</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> into modules and scripts at runtime. This &nbsp;can be used for lazy loading a script only when it&#8217;s needed, which improves performance of the application. </span><br /> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-103b28ad-5b0d-460f-4c46-bf3654c932bf"><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;">button.addEventListener('click', event =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;<b>import('./dialogBox.js')</b></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;.then(dialogBox =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialogBox.open();</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;})</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;.catch(error =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;});</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;">});</span></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="http://2ality.com/2017/01/import-operator.html#use-cases" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">code example</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> above shows how to use the import(specifier) function to import JavaScript after an event</span><span style="background-color: transparent; color: #24292e; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Async iterators and generators</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 12pt; margin-top: 12pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Writing code that does any sort of iteration with async functions can be inelegant. The new </span><a href="https://jakearchibald.com/2017/async-iterators-and-generators/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">async generator functions</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> using the </span><a href="http://2ality.com/2016/10/asynchronous-iteration.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">async iteration</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://ponyfoo.com/articles/javascript-asynchronous-iteration-proposal" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">protocol</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> are now available to help developers streamline the consumption or implementation of streaming data sources. Async iterators can be used in </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">for</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> loops and also to create custom async iterators through async iterator factories. </span></div> <div dir="ltr" style="line-height: 1.2; margin-bottom: 12pt; margin-top: 12pt;"> <span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">async function* getChunkSizes(url) {</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;const response = await fetch(url);</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">for await (const chunk of streamAsyncIterator(response.body))</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> {</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;&nbsp;&nbsp;yield chunk.length;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;}</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">} </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The code example above shows how to use async iterators to writer cleaner code for streaming fetches, using the </span><a href="https://jakearchibald.com/2017/async-iterators-and-generators/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">streamAsyncIterator function</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Device Memory API</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It&#8217;s challenging for developers to create one user experience that can work across all devices, due to varying device capabilities. The new </span><a href="https://github.com/w3c/device-memory#the-web-exposed-api" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Device Memory JavaScript API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> helps developers with this challenge by using the total RAM on a user&#8217;s machine to provide insights into device constraints. This insight enables developers to tailor content at runtime in accordance with hardware limitations. For example, developers can serve a &#8220;lite&#8221; app to users on low-end devices, resulting in better experiences and fewer frustrations. The Device Memory API can also be used to add context to metrics, such as the amount of time a task takes to complete in JavaScript, through the lens of device memory. </span><br /> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Permissions UI changes</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">When websites need special permissions from a user, they trigger a permission request. Currently these permission requests appear in Chrome for Android as ignorable banners at the bottom of the screen, and developers often show them without considering whether the user has the appropriate context to grant the permission. This results in a distracting user experience, and users ignore or temporarily dismiss these permission prompts more than 90% of the time.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In Chrome 59, we started to address this problem by </span><span style="background-color: transparent; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.chromestatus.com/feature/6443143280984064">temporarily blocking</a></span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> a permission if the user dismisses the request three times. As a next step, in this release Chrome for Android now presents permission requests as modal dialogs. This change reduces the overall number of permission prompts by 50%. It also makes users 5 times more likely to accept or deny requests, rather than temporarily dismissing or repeatedly ignoring them. To ensure users understand the permission request, developers should present users with permission requests </span><a href="https://developers.google.com/web/fundamentals/push-notifications/permission-ux" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">at an appropriate time</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, as we&#8217;ve found that users were 2.5 times more likely to grant permission to a site that ask for permissions with context. </span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Other features in this release</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Bindings</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, a </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">TypeError</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now thrown for </span><a href="https://dom.spec.whatwg.org/#interface-eventtarget" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">EventTarget.addEventListener and removeEventListener</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> when the callback passed is not an </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">EventListener</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">null</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, or </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">undefined</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. &nbsp;</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; CSS</span></h4> <span class="post-author"><b style="font-weight: normal;"></b></span> <br /> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developers can now </span><a href="http://w3c-test.org/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">make pixel-level adjustments</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> using the new </span><a href="http://thenewcode.com/1158/The-Q-Continuum-Using-q-Measurements-In-CSS" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Q</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> length </span><a href="http://tosche.net/2013/10/font-size-in-the-metric-system_e.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">unit</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, which is especially useful on small viewports. </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developers can now prevent apps from using Chrome&#8217;s pull-to-refresh feature or create custom effects using &nbsp;</span><a href="https://wicg.github.io/scroll-boundary-behavior/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">overscroll-behavior</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, which allows changing the browser&#8217;s behavior once the scroller has </span><a href="https://github.com/w3c/csswg-drafts/issues/769" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">reached</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> its full extent. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Fonts</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://drafts.csswg.org/css-fonts-3/#font-variant-east-asian-prop" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">font-variant-east-asian</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported, allowing developers to control the </span><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-east-asian" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">usage of alternate glyphs</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for East Asian languages like Japanese and Chinese.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; HTML</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, Chrome will fire &nbsp;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">beforeprint</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">afterprint</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> events as part of the </span><a href="https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#printing-steps" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">printing standard</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, allowing developers to to annotate the printed copy and edit the annotation after the printing command is done executing. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; JavaScript </span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Using </span><a href="https://developers.google.com/web/updates/2017/10/promise-finally" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Promise.prototype.finally</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, a callback can </span><a href="https://developers.google.com/web/updates/2017/10/promise-finally" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">now be registered</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> to be invoked after a Promise has been fulfilled or rejected. </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://developers.google.com/web/updates/2017/10/intl-pluralrules" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Intl.PluralRules</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> allows developers to build applications that understand pluralization of a given language by indicating which plural form applies for a given number and language.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; MediaStream</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/applyConstraints" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">MediaStreamTrack.applyConstraints()</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported for local video </span><a href="https://w3c.github.io/mediacapture-main/#mediastreamtrack" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">MediaStreamTracks</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, including tracks obtained from </span><a href="https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia()" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">getUserMedia()</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://w3c.github.io/mediacapture-fromelement/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">capture from media elements</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> or screen capture.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Network</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://docs.google.com/document/d/18kQ_TFQns2HZ9KGs4bGDfiiOIRmOhI12oJBttvUlYLY/edit" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Version 2</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> of </span><a href="https://msdn.microsoft.com/en-us/library/cc236621.aspx" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">NT LAN Manager (NTLM) API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now shipped, enabling applications to authenticate remote users and provide session security when requested by the application. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Sensor</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Thanks to contributors from engineers at Intel, </span><a href="https://developers.google.com/web/updates/2017/09/sensors-for-the-web" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">an Origin Trial is now available</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> that exposes the following sensors via the new Generic Sensors API syntax: A</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ccelerometer, LinearAccelerationSensor, Gyroscope, AbsoluteOrientationSensor</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">RelativeOrientationSensor</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Storage</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">localStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">sessionStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> API's now use </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> rather than an anonymous getter, so attempting to access a key using </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> will now return </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">null</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> rather than </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">undefined</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Thanks to Intel for the contribution! </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve developer experience, the </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">methods on </span><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">sessionStorage</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">localStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> such as </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">removeItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clear()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> are now enumerable. Thanks to Intel for making this happen!</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UI &gt; Browser &gt; Mobile (Android) </span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://w3c.github.io/manifest/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">display: minimal-ui</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported by Chrome on Android, enabling developers to </span><a href="https://piotrswigon.github.io/pwa-demo/minimal-demo/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">display a UI similar to Chrome Custom Tabs</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for users. </span></div> </li> </ul> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></h3> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Deprecations and interoperability improvements</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Bindings</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, </span><a href="https://heycam.github.io/webidl/#dfn-attribute-getter" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">instance properties</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> with a Promise type now return a rejected promise instead of throwing an exception. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; CSS</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><span style="background-color: white; color: #222222; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">/deep/ </span><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">or </span><a href="https://drafts.csswg.org/css-scoping/#deep-combinator" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">&gt;&gt;&gt;</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, selector, as well as </span><span style="background-color: white; color: #222222; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">::shadow,</span><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://developers.google.com/web/updates/2017/10/remove-shadow-piercing" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">are</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://www.polymer-project.org/blog/2017-10-18-upcoming-changes.html" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">now</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/HX5Y8Ykr5Ns/discussion" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">removed</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> from CSS dynamic profile, following their </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/68qSZM5QMRQ/pT2YCqZSomAJ" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">deprecation</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> in Chrome 45. </span></div> </li> </ul> <div> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"></span><br /> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> <span style="color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; DOM</span></span></h4> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> </span> <br /> <ul style="margin-bottom: 0pt; margin-top: 0pt;"><span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> <li dir="ltr" style="font-family: Arial; font-size: 10pt; list-style-type: disc; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, </span><a href="https://html.spec.whatwg.org/multipage/common-dom-interfaces.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLAllCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://dom.spec.whatwg.org/#htmlcollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLFormControlsCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">and </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLOptionsCollection</span></a><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> are no longer enumerable, so they are now left out of calls to </span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">Object.keys()</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> or </span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">for</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">in</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> loops. </span></div> </li> </span></ul> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> </span></div> <ul> </ul> <span class="byline-author">Posted by&nbsp;</span><span style="font-family: &quot;arial&quot;; font-size: 10pt; white-space: pre-wrap;">Sathya Gunasekaran, Lazily-Loaded Engineer</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unless otherwise noted, changes described below apply to the newest Chrome </span><a href="https://www.google.com/landing/chrome/beta/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Beta</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> channel release for Android, Chrome OS, Linux, Mac, and Windows.</span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dynamic module imports</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Currently, importing JavaScript modules is completely static, and developers cannot import modules based on runtime conditions, like whether a user is logged in. Starting in this release, the </span><a href="https://tc39.github.io/proposal-dynamic-import/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">import(specifier)</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> </span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">syntax now allows developers to </span><a href="https://dynamic-import.firebaseapp.com/news" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">dynamically load code</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> into modules and scripts at runtime. This &nbsp;can be used for lazy loading a script only when it&#8217;s needed, which improves performance of the application. </span><br /> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="docs-internal-guid-103b28ad-5b0d-460f-4c46-bf3654c932bf"><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;">button.addEventListener('click', event =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;<b>import('./dialogBox.js')</b></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;.then(dialogBox =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dialogBox.open();</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;})</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;.catch(error =&gt; {</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"> &nbsp;&nbsp;&nbsp;});</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;"><br class="kix-line-break" /></span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; font-weight: 400; vertical-align: baseline;">});</span></span></span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="http://2ality.com/2017/01/import-operator.html#use-cases" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">code example</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> above shows how to use the import(specifier) function to import JavaScript after an event</span><span style="background-color: transparent; color: #24292e; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Async iterators and generators</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 12pt; margin-top: 12pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Writing code that does any sort of iteration with async functions can be inelegant. The new </span><a href="https://jakearchibald.com/2017/async-iterators-and-generators/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">async generator functions</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> using the </span><a href="http://2ality.com/2016/10/asynchronous-iteration.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">async iteration</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://ponyfoo.com/articles/javascript-asynchronous-iteration-proposal" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">protocol</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> are now available to help developers streamline the consumption or implementation of streaming data sources. Async iterators can be used in </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">for</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> loops and also to create custom async iterators through async iterator factories. </span></div> <div dir="ltr" style="line-height: 1.2; margin-bottom: 12pt; margin-top: 12pt;"> <span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">async function* getChunkSizes(url) {</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;const response = await fetch(url);</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">for await (const chunk of streamAsyncIterator(response.body))</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> {</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;&nbsp;&nbsp;yield chunk.length;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &nbsp;}</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">} </span></div> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The code example above shows how to use async iterators to writer cleaner code for streaming fetches, using the </span><a href="https://jakearchibald.com/2017/async-iterators-and-generators/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">streamAsyncIterator function</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 9pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span></div> <h1 dir="ltr" style="line-height: 1.2; margin-bottom: 6pt; margin-top: 20pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Device Memory API</span></h1> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It&#8217;s challenging for developers to create one user experience that can work across all devices, due to varying device capabilities. The new </span><a href="https://github.com/w3c/device-memory#the-web-exposed-api" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Device Memory JavaScript API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> helps developers with this challenge by using the total RAM on a user&#8217;s machine to provide insights into device constraints. This insight enables developers to tailor content at runtime in accordance with hardware limitations. For example, developers can serve a &#8220;lite&#8221; app to users on low-end devices, resulting in better experiences and fewer frustrations. The Device Memory API can also be used to add context to metrics, such as the amount of time a task takes to complete in JavaScript, through the lens of device memory. </span><br /> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Permissions UI changes</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">When websites need special permissions from a user, they trigger a permission request. Currently these permission requests appear in Chrome for Android as ignorable banners at the bottom of the screen, and developers often show them without considering whether the user has the appropriate context to grant the permission. This results in a distracting user experience, and users ignore or temporarily dismiss these permission prompts more than 90% of the time.</span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In Chrome 59, we started to address this problem by </span><span style="background-color: transparent; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.chromestatus.com/feature/6443143280984064">temporarily blocking</a></span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> a permission if the user dismisses the request three times. As a next step, in this release Chrome for Android now presents permission requests as modal dialogs. This change reduces the overall number of permission prompts by 50%. It also makes users 5 times more likely to accept or deny requests, rather than temporarily dismissing or repeatedly ignoring them. To ensure users understand the permission request, developers should present users with permission requests </span><a href="https://developers.google.com/web/fundamentals/push-notifications/permission-ux" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">at an appropriate time</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, as we&#8217;ve found that users were 2.5 times more likely to grant permission to a site that ask for permissions with context. </span></div> <span class="post-author"><b style="font-weight: normal;"><br /></b></span> <br /> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Other features in this release</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Bindings</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, a </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">TypeError</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now thrown for </span><a href="https://dom.spec.whatwg.org/#interface-eventtarget" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">EventTarget.addEventListener and removeEventListener</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> when the callback passed is not an </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">EventListener</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">null</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, or </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">undefined</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. &nbsp;</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; CSS</span></h4> <span class="post-author"><b style="font-weight: normal;"></b></span> <br /> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developers can now </span><a href="http://w3c-test.org/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">make pixel-level adjustments</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> using the new </span><a href="http://thenewcode.com/1158/The-Q-Continuum-Using-q-Measurements-In-CSS" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Q</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> length </span><a href="http://tosche.net/2013/10/font-size-in-the-metric-system_e.html" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">unit</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, which is especially useful on small viewports. </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developers can now prevent apps from using Chrome&#8217;s pull-to-refresh feature or create custom effects using &nbsp;</span><a href="https://wicg.github.io/scroll-boundary-behavior/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">overscroll-behavior</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, which allows changing the browser&#8217;s behavior once the scroller has </span><a href="https://github.com/w3c/csswg-drafts/issues/769" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">reached</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> its full extent. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Fonts</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://drafts.csswg.org/css-fonts-3/#font-variant-east-asian-prop" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">font-variant-east-asian</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported, allowing developers to control the </span><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-east-asian" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">usage of alternate glyphs</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for East Asian languages like Japanese and Chinese.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; HTML</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, Chrome will fire &nbsp;</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">beforeprint</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">afterprint</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> events as part of the </span><a href="https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#printing-steps" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">printing standard</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, allowing developers to to annotate the printed copy and edit the annotation after the printing command is done executing. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; JavaScript </span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Using </span><a href="https://developers.google.com/web/updates/2017/10/promise-finally" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Promise.prototype.finally</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, a callback can </span><a href="https://developers.google.com/web/updates/2017/10/promise-finally" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">now be registered</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> to be invoked after a Promise has been fulfilled or rejected. </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://developers.google.com/web/updates/2017/10/intl-pluralrules" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Intl.PluralRules</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> allows developers to build applications that understand pluralization of a given language by indicating which plural form applies for a given number and language.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; MediaStream</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack/applyConstraints" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">MediaStreamTrack.applyConstraints()</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported for local video </span><a href="https://w3c.github.io/mediacapture-main/#mediastreamtrack" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">MediaStreamTracks</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, including tracks obtained from </span><a href="https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia()" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">getUserMedia()</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://w3c.github.io/mediacapture-fromelement/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">capture from media elements</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> or screen capture.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Network</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://docs.google.com/document/d/18kQ_TFQns2HZ9KGs4bGDfiiOIRmOhI12oJBttvUlYLY/edit" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Version 2</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> of </span><a href="https://msdn.microsoft.com/en-us/library/cc236621.aspx" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">NT LAN Manager (NTLM) API</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now shipped, enabling applications to authenticate remote users and provide session security when requested by the application. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Sensor</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Thanks to contributors from engineers at Intel, </span><a href="https://developers.google.com/web/updates/2017/09/sensors-for-the-web" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">an Origin Trial is now available</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> that exposes the following sensors via the new Generic Sensors API syntax: A</span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ccelerometer, LinearAccelerationSensor, Gyroscope, AbsoluteOrientationSensor</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">RelativeOrientationSensor</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Storage</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">localStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">sessionStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> API's now use </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> rather than an anonymous getter, so attempting to access a key using </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> will now return </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">null</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> rather than </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">undefined</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Thanks to Intel for the contribution! </span></div> </li> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve developer experience, the </span><a href="https://html.spec.whatwg.org/multipage/webstorage.html#the-storage-interface" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">methods on </span><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">sessionStorage</span><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> and </span><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">localStorage</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> such as </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">removeItem()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, and </span><span style="background-color: transparent; color: black; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clear()</span><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> are now enumerable. Thanks to Intel for making this happen!</span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UI &gt; Browser &gt; Mobile (Android) </span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <a href="https://w3c.github.io/manifest/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">display: minimal-ui</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> is now supported by Chrome on Android, enabling developers to </span><a href="https://piotrswigon.github.io/pwa-demo/minimal-demo/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">display a UI similar to Chrome Custom Tabs</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for users. </span></div> </li> </ul> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></h3> <h3 dir="ltr" style="line-height: 1.2; margin-bottom: 4pt; margin-top: 16pt;"> <span style="background-color: transparent; color: #434343; font-family: &quot;arial&quot;; font-size: 13.999999999999998pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Deprecations and interoperability improvements</span></h3> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; Bindings</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, </span><a href="https://heycam.github.io/webidl/#dfn-attribute-getter" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">instance properties</span></a><span style="background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> with a Promise type now return a rejected promise instead of throwing an exception. </span></div> </li> </ul> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span style="background-color: transparent; color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; CSS</span></h4> <ul style="margin-bottom: 0pt; margin-top: 0pt;"> <li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">The </span><span style="background-color: white; color: #222222; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">/deep/ </span><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">or </span><a href="https://drafts.csswg.org/css-scoping/#deep-combinator" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">&gt;&gt;&gt;</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, selector, as well as </span><span style="background-color: white; color: #222222; font-family: &quot;courier new&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">::shadow,</span><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://developers.google.com/web/updates/2017/10/remove-shadow-piercing" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">are</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://www.polymer-project.org/blog/2017-10-18-upcoming-changes.html" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">now</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/HX5Y8Ykr5Ns/discussion" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">removed</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> from CSS dynamic profile, following their </span><a href="https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/68qSZM5QMRQ/pT2YCqZSomAJ" style="text-decoration: none;"><span style="background-color: white; color: #1155cc; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">deprecation</span></a><span style="background-color: white; color: #222222; font-family: &quot;arial&quot;; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> in Chrome 45. </span></div> </li> </ul> <div> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"></span><br /> <h4 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 14pt;"> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> <span style="color: #666666; font-family: &quot;arial&quot;; font-size: 12pt; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;">Blink &gt; DOM</span></span></h4> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> </span> <br /> <ul style="margin-bottom: 0pt; margin-top: 0pt;"><span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> <li dir="ltr" style="font-family: Arial; font-size: 10pt; list-style-type: disc; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"> <span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">To improve interoperability, </span><a href="https://html.spec.whatwg.org/multipage/common-dom-interfaces.html" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLAllCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://dom.spec.whatwg.org/#htmlcollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">, </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormControlsCollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLFormControlsCollection</span></a><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">and </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection" style="text-decoration-line: none;"><span style="color: #1155cc; font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">HTMLOptionsCollection</span></a><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> are no longer enumerable, so they are now left out of calls to </span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">Object.keys()</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> or </span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">for</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">-</span><span style="font-family: &quot;courier new&quot;; font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;">in</span><span style="font-size: 10pt; vertical-align: baseline; white-space: pre-wrap;"> loops. </span></div> </li> </span></ul> <span id="docs-internal-guid-103b28ad-5afd-16d7-ccf4-e6f0a03936e2"> </span></div> <ul> </ul> <span class="byline-author">Posted by&nbsp;</span><span style="font-family: &quot;arial&quot;; font-size: 10pt; white-space: pre-wrap;">Sathya Gunasekaran, Lazily-Loaded Engineer</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Chromium Blog:Chrome 63 Beta: Dynamic module imports, async iterators and generators, Device Memory API, and permissions UI changes &url=https://blog.chromium.org/2017/10/chrome-63-beta-dynamic-module-imports_27.html&via=ChromiumDev'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://blog.chromium.org/2017/10/chrome-63-beta-dynamic-module-imports_27.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://blog.chromium.org/2017/10/chrome-63-beta-dynamic-module-imports_27.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://blog.chromium.org/search/label/beta' rel='tag'> beta </a> </span> </div> </div> </div> <div class='blog-pager' id='blog-pager'> <a class='home-link' href='https://blog.chromium.org/'> <i class='material-icons'> &#59530; </i> </a> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://blog.chromium.org/search?updated-max=2018-04-30T07:34:00-07:00&max-results=7&reverse-paginate=true' id='Blog1_blog-pager-newer-link' title='Newer Posts'> <i class='material-icons'> &#58820; </i> </a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://blog.chromium.org/search?updated-max=2017-10-27T08:18:00-07:00&max-results=7' id='Blog1_blog-pager-older-link' title='Older Posts'> <i class='material-icons'> &#58824; </i> </a> </span> </div> <div class='clear'></div> </div></div> </div> </div> <div class='col-right'> <div class='section' id='sidebar-top'><div class='widget HTML' data-version='1' id='HTML8'> <div class='widget-content'> <div class='searchBox'> <input type='text' title='Search This Blog' placeholder='Search blog ...' /> </div> </div> <div class='clear'></div> </div></div> <div id='aside'> <div class='section' id='sidebar'><div class='widget Label' data-version='1' id='Label1'> <div class='tab'> <img class='sidebar-icon' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYpJREFUeNrs2aFuwzAQBmAvKRkMKRjZA4QMDJaWFgyMjuzFRg37DIUlA3uFkoGQSaWzJU+tpri5O9+l/zSfdFJlpe59yTmyVedq1PjfcZMZ70NuQnaF8w8htyE/rABtpviXkLcK88c5HhLkMBfgVan43zfFBNGMjHVGT/s55KP2pAvidbGHd+nzKt1RKSLG3rKF1iPFv6UWiPke8i7kEqGdGsI1O+LYVdqJAjgirwkKYD0ytkJBUNbAMvX8V3q9PhUsYvU1sWD8SO/sQvx2ahxOiNoJCSBCoAHYCEQAC4EKICOQASQEOmAS8RcAFxFN5hiIiugpgC3wk9hQAHH/70EBHXUN7IER5EWMiBgo2+nzOKQv9SCAeEM/OQAkhE/ncccFICB87qzQMia5FsJfOui0zMnmRvipU1ormHQuxGTxUsAcCFLxJQBLBLn4UoAFglW8BkATwS5eC6CBEBWvCShBiIvXBkgQRcVbADiI4uKtABSESvGWgB9EzHt3+tNwyO0qa9SoIYtvAQYAqDJhaWWeMecAAAAASUVORK5CYII='/> <h2> Labels </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content list-label-widget-content'> <ul> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/%24200K'> $200K </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/10th%20birthday'> 10th birthday </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/abusive%20ads'> abusive ads </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/abusive%20notifications'> abusive notifications </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/accessibility'> accessibility </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/ad%20blockers'> ad blockers </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/ad%20blocking'> ad blocking </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/advanced%20capabilities'> advanced capabilities </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/android'> android </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/anti%20abuse'> anti abuse </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/anti-deception'> anti-deception </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/background%20periodic%20sync'> background periodic sync </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/badging'> badging </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/benchmarks'> benchmarks </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/beta'> beta </a> <span dir='ltr'> 83 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/better%20ads%20standards'> better ads standards </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/billing'> billing </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/birthday'> birthday </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/blink'> blink </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/browser'> browser </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/browser%20interoperability'> browser interoperability </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/bundles'> bundles </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/capabilities'> capabilities </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/capable%20web'> capable web </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cds'> cds </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cds18'> cds18 </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cds2018'> cds2018 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome'> chrome </a> <span dir='ltr'> 35 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%2081'> chrome 81 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%2083'> chrome 83 </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%2084'> chrome 84 </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20ads'> chrome ads </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20apps'> chrome apps </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20dev'> Chrome dev </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20dev%20summit'> chrome dev summit </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20dev%20summit%202018'> chrome dev summit 2018 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20dev%20summit%202019'> chrome dev summit 2019 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20developer'> chrome developer </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20Developer%20Center'> Chrome Developer Center </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20developer%20summit'> chrome developer summit </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20devtools'> chrome devtools </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20extension'> Chrome extension </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20extensions'> chrome extensions </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20Frame'> Chrome Frame </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20lite'> Chrome lite </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20on%20Android'> Chrome on Android </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20on%20ios'> chrome on ios </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20on%20Mac'> Chrome on Mac </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Chrome%20OS'> Chrome OS </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20privacy'> chrome privacy </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20releases'> chrome releases </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20security'> chrome security </a> <span dir='ltr'> 10 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chrome%20web%20store'> chrome web store </a> <span dir='ltr'> 32 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chromedevtools'> chromedevtools </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chromeframe'> chromeframe </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chromeos'> chromeos </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chromeos.dev'> chromeos.dev </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/chromium'> chromium </a> <span dir='ltr'> 9 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cloud%20print'> cloud print </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/coalition'> coalition </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/coalition%20for%20better%20ads'> coalition for better ads </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/contact%20picker'> contact picker </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/content%20indexing'> content indexing </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cookies'> cookies </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/core%20web%20vitals'> core web vitals </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/csrf'> csrf </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/css'> css </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/cumulative%20layout%20shift'> cumulative layout shift </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/custom%20tabs'> custom tabs </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/dart'> dart </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/dashboard'> dashboard </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Data%20Saver'> Data Saver </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Data%20saver%20desktop%20extension'> Data saver desktop extension </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/day%202'> day 2 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/deceptive%20installation'> deceptive installation </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/declarative%20net%20request%20api'> declarative net request api </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/design'> design </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/developer%20dashboard'> developer dashboard </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Developer%20Program%20Policy'> Developer Program Policy </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/developer%20website'> developer website </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/devtools'> devtools </a> <span dir='ltr'> 13 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/digital%20event'> digital event </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/discoverability'> discoverability </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/DNS-over-HTTPS'> DNS-over-HTTPS </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/DoH'> DoH </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/emoji'> emoji </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/emscriptem'> emscriptem </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/enterprise'> enterprise </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/extensions'> extensions </a> <span dir='ltr'> 27 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Fast%20badging'> Fast badging </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/faster%20web'> faster web </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/features'> features </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/feedback'> feedback </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/field%20data'> field data </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/first%20input%20delay'> first input delay </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Follow'> Follow </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/fonts'> fonts </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/form%20controls'> form controls </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/frameworks'> frameworks </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/fugu'> fugu </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/fund'> fund </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/funding'> funding </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/gdd'> gdd </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/google%20earth'> google earth </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/google%20event'> google event </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/google%20io%202019'> google io 2019 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/google%20web%20developer'> google web developer </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/googlechrome'> googlechrome </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/harmful%20ads'> harmful ads </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/html5'> html5 </a> <span dir='ltr'> 11 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/HTTP%2F3'> HTTP/3 </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/HTTPS'> HTTPS </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/iframes'> iframes </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/images'> images </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/incognito'> incognito </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/insecure%20forms'> insecure forms </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/intent%20to%20explain'> intent to explain </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/ios'> ios </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/ios%20Chrome'> ios Chrome </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/issue%20tracker'> issue tracker </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/jank'> jank </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/javascript'> javascript </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/lab%20data'> lab data </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/labelling'> labelling </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/largest%20contentful%20paint'> largest contentful paint </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/launch'> launch </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/lazy-loading'> lazy-loading </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/lighthouse'> lighthouse </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/linux'> linux </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Lite%20Mode'> Lite Mode </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Lite%20pages'> Lite pages </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/loading%20interventions'> loading interventions </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/loading%20optimizations'> loading optimizations </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/lock%20icon'> lock icon </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/long-tail'> long-tail </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/mac'> mac </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/manifest%20v3'> manifest v3 </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/metrics'> metrics </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/microsoft%20edge'> microsoft edge </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/mixed%20forms'> mixed forms </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/mobile'> mobile </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/na'> na </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/native%20client'> native client </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/native%20file%20system'> native file system </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/New%20Features'> New Features </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/notifications'> notifications </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/octane'> octane </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/open%20web'> open web </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/origin%20trials'> origin trials </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/pagespeed%20insights'> pagespeed insights </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/pagespeedinsights'> pagespeedinsights </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/passwords'> passwords </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/payment%20handler'> payment handler </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/payment%20request'> payment request </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/payments'> payments </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/performance'> performance </a> <span dir='ltr'> 20 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/performance%20tools'> performance tools </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/permission%20UI'> permission UI </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/permissions'> permissions </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/play%20store'> play store </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/portals'> portals </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/prefetching'> prefetching </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/privacy'> privacy </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/privacy%20sandbox'> privacy sandbox </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/private%20prefetch%20proxy'> private prefetch proxy </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/profile%20guided%20optimization'> profile guided optimization </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/progressive%20web%20apps'> progressive web apps </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Project%20Strobe'> Project Strobe </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/protection'> protection </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/pwa'> pwa </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/QUIC'> QUIC </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/quieter%20permissions'> quieter permissions </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/releases'> releases </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/removals'> removals </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/rlz'> rlz </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/root%20program'> root program </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/safe%20browsing'> safe browsing </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/Secure%20DNS'> Secure DNS </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/security'> security </a> <span dir='ltr'> 36 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/site%20isolation'> site isolation </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/slow%20loading'> slow loading </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/sms%20receiver'> sms receiver </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/spam%20policy'> spam policy </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/spdy'> spdy </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/spectre'> spectre </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/speed'> speed </a> <span dir='ltr'> 4 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/ssl'> ssl </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/store%20listing'> store listing </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/strobe'> strobe </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/subscription%20pages'> subscription pages </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/suspicious%20site%20reporter%20extension'> suspicious site reporter extension </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/TCP'> TCP </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/the%20fast%20and%20the%20curious'> the fast and the curious </a> <span dir='ltr'> 23 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/TLS'> TLS </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/tools'> tools </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/tracing'> tracing </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/transparency'> transparency </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/trusted%20web%20activities'> trusted web activities </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/twa'> twa </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/user%20agent%20string'> user agent string </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/user%20data%20policy'> user data policy </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/v8'> v8 </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/video'> video </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/wasm'> wasm </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web'> web </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20apps'> web apps </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20assembly'> web assembly </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20developers'> web developers </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20intents'> web intents </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20packaging'> web packaging </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20payments'> web payments </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20platform'> web platform </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20request%20api'> web request api </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web%20vitals'> web vitals </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web.dev'> web.dev </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/web.dev%20live'> web.dev live </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webapi'> webapi </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webassembly'> webassembly </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webaudio'> webaudio </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webgl'> webgl </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webkit'> webkit </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/WebM'> WebM </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webmaster'> webmaster </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webp'> webp </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webrtc'> webrtc </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/websockets'> websockets </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/webtiming'> webtiming </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/writable-files'> writable-files </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://blog.chromium.org/search/label/yerba%20beuna%20center%20for%20the%20arts'> yerba beuna center for the arts </a> <span dir='ltr'> 1 </span> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <div class='tab'> <i class='material-icons icon'> &#58055; </i> <h2> Archive </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2025/'> 2025 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2025/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2024/'> 2024 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2024/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2023/'> 2023 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2023/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2022/'> 2022 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2022/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2021/'> 2021 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2021/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2020/'> 2020 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2020/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2019/'> 2019 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2019/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2018/'> 2018 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2018/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy toggle-open'> <i class='material-icons'> &#58823; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2017/'> 2017 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2017/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2016/'> 2016 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2016/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2015/'> 2015 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2015/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2014/'> 2014 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2014/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2013/'> 2013 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2013/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2012/'> 2012 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2012/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2011/'> 2011 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2011/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2010/'> 2010 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2010/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2009/'> 2009 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2009/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://blog.chromium.org/2008/'> 2008 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2008/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2008/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2008/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://blog.chromium.org/2008/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> </div> </div> <div class='clear'></div> </div> </div><div class='widget HTML' data-version='1' id='HTML6'> <div class='widget-content'> <a href="http://blog.chromium.org/atom.xml"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAihJREFUeNrsWa9Pw0AU7viRMDFRBAkzJDMIBIhJJhCzk7NILIqMv4AEhdz+BCY3OYssAlGBoAJREpZwAlHEBO8lr8nSvNeVbu1dyX3JlzTrXfa+u/e9d7c5joWFhYVO1Fa8PwH2gK6m+BRwAvSlAdsrgr8E1jUuMH73GTAEzrkBWymTewZlihhLmgDXIAFuHgGVQOUF7OSYM1p6PgTuA1vAZlUEvAnPdapcMY0VICECekQ0XRfYrqoHsAGNgXfAoMomRiFDEhOZkkL3S88hMaB2LwXp0bj+ps2edpToZpjfoIDQtBeU+xjoDzP2G/gCPKZ5f8WsCAFJoJgOCcFdWSTeL9YQMSvTA1h9BkI5jaiXhLpSCL/8mVZY0UpyJ9ZdOkniu1dmJ96BpzQu9w6s28gcOq9j6pwLdR8/36NK5CQKwJSMrb2MhhSglBpt4UjsrdsnNu0B3J0HCozbCc4TjyY2srEgos/4RQljCzNxl4ireQD8FOq+T+W0mTB2g7njhlR+Sy2jsXFvU658U8YTbeaGpdIu7mWkEAq5ZtIjIhFZdtfX7QHckSvB2B6zC3VdAkZk0kAQwaXTk/CzTXK3wjIExCs6ZJpTnE4uY1KV+KzFzA3KTiFPENHJkOPcsfpLhwe4btoSuvUqAR+6TOxlCE6ZfKUsJLgsqGW8OpqAGx2X+sLxrwUog+JUeQRMDBIwyXOcnlPtPnL0/UsT/8LnOxYWFhZG4leAAQAAQHEaYuzHbAAAAABJRU5ErkJggg==" class="sidebar-icon" /> <h2>Feed</h2> </a> </div> <div class='clear'></div> </div></div> <div class='section' id='sidebar-bottom'><div class='widget HTML' data-version='1' id='HTML4'> <div class='widget-content'> <div class="share followgooglewrapper"> <button data-href="https://twitter.com/intent/follow?original_referer=http://blog.chromium.org/&amp;screen_name=ChromiumDev" onclick='sharingPopup(this);' id='twitter-share'><span class="twitter-follow">Follow @ChromiumDev</span></button> <script> function sharingPopup (button) { var url = button.getAttribute("data-href"); window.open( url,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); } </script> </div> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML1'> <div class='widget-content'> Give us feedback in our <a href="http://support.google.com/bin/static.py?hl=en&page=portal_groups.cs">Product Forums</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div style='clear:both;'></div> </div> <!-- Footer --> <div class='google-footer-outer loading'> <div id='google-footer'> <a href='//www.google.com/'> <img class='google-logo-dark' height='36' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAABICAYAAABFoT/eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACLVJREFUeNrsXd+L20YQ3vOprdLqiMXFXE2qB7dcwEcTSB7ykIc+9A/PQx/yEMq1TWhNuYIpJriNr7XpmZ5IxFEvmW2EKs3Ornb1w50PxIFP0kiz387OzM6uhGAwGAxGP3Ho+f7x7ri1O7LdccPqZjSNA4dEHsLfaHcEFedJom93x9Xu2OyOFTcBo6sED3fHZHeMEELrkAHJF0B8Rr+gDFsZ5n0luLTQ95AXs4W06D/tjpR50xtM4CjD0y48YGB4rnyZxNOzyA7zBHr+nLnDaJLg0mo/ALekCasg3Z4XbM0ZdTEgnDPeHY8bIne+Qz2GvwyGNwsuyT218KWvIIBMcwGpLiipcolecjMxfBDchNyS1EvxLiOSIecp31q6IJ/C3yrIrMqMm4jhg+AxkdwbIO3aUO4KjqqMjCT3uaazMBhWBJfuxH3CtRfiXf66DhSRZWbmlMnNaILgZxrXJQO/eO3wORZwvwm4JUxuhheCjzVBYAbW1ces45YDSoZrFNOEE835M8FT6oyeEnws8Fz3QnBxFKPHBMem4GU+m6fPGb0leCTwWcM5B36MPgeZI01gudyDdw3hPeXfo8L/rmCUWnuMMdqUL2WqWeRbhf+twfVsO7YagZGNC79fw7OthEVtkiJ4jJzTd3KPwf3CRqhhiTu23AP5sl0/0xiwISQXpNwLIJK87mHF+U8ddzzdmgKlGzlPYjyxGJQouIhNT4k9AqWEFkqfguIvagTWbcq3KW1WE3xS3m8NtA9WS451xofwjKT5kkDoK/b6mDk5FfXr1lWDL4BofZEv2/SRsK/EHGlGdBdu8QNRb8HMCFwt7Yy3DDI/QP7fx5z3VLhdlJEIs4rKNuXXJXdxZPdB7kfCzWqwCO4V1LHgLjInX3tQ1KzCR52Cz+vDj1dydeRuS74rcvs2Pi6fT5H8OaaUQPQPYcWwRSGXyhhscn5dpAnEFMkuEZetbfkTAnlSuH4DxisE+aMGeJAQ3lFl7C4LJE6QWCaCd583ORQ1jYAwjFctal7nOs2ZZvicwvlZx+RHGrcoAwKUVX8uwcc/9TT65INeDOr5shL9LDRB6QTeIy3zwfdh3WOi6axLCEhSjXU7F3h6LqggUtvyJxpynwu8tDkD98fXApOxRj8zoZ9MnGveYVIVZKaGrkBXCY65BCYNN9NkjpKOyQ81Q79JgdxS+Jn3SDTEXRI7SWzaiSTB32oI3nU3BvMfM0urhOVYgwKhuiAfc4tM07wXwm1ZRoQYSl2NUwiu01fEAHVcpixd745FvVz4dzUUc0o8rwoLy8ZSwU6CyFx1RP5II9+1bFPEFs9HWbNLiimDXE+vCm7u1CS47cofzD3aEhVY57mxRo5zlqdt+RFC1JUH2S7bcVXg4liTMakaBZZVxiTICRoivcn1sEUBlk24JmaC6kxUbYmWoqvyfck2xZGGnDFYa9MMzkYQ1ijkCX6qidybrgePiQ0QIQqoi6qRLeqQfIoRsEHaQJLBdHOnLGetSdm/IPcymJuS1PAnbQPH0MOw/39C1vL11DiLOqIsbDI8QcHvGiLnySi2qUXBicaqUSxN5LEB0g7Jt3ENXJLPJ5S1tnaZBoWbpRqrmjRE7qHmpSmNHdQcYrEUadoh+TbBnc9ri7iycI1kzPeNcLDIvbiqXpez9Tmdq6zGREPuzECBoxrPMiI2WtvyNwhJba2wy3JZ6ky5dD1lSvmZS3e4SPA1wcf1VTFHKX+cGwZzdUYcqpvUtvwrD/InDttVlyZeAKlNN5MKbAiurHhKIPlUuJvlTCCiDjSKSCsUmCFWbGLZwCESfK07JB8LvMYWVtw0D00JEHV8Mq2HkqPbE0oHLvvK2g0o8ETg+4cfwTlZDT9JDoWygu4uQQE/ivIvtcnfPkaCqhiupz7jWOAzqL/vjtcdkv9G4MVMt+EaylfuImiPAXEUjRF3pjjaHiPPZ6If9TGGAO4ZY0am6jOCb+DQ+ZCqLkIpOIPrdNfIjnFPY6nyFut7TS/fanrziOBOKMupKw94WaLMtuVnSFt9CPrWWdJE6PeltCX432DEBoh+5Dv8RRhdis8YAv9uyq4/JAwtlEApgBe9Cw9xDD3tdk4Jn0MDfiHwPHcRPxBePCMER3GuIx7kGlv9fkZ4V9lolx2Uv4X7hEj7qJ3LDoAMGbTRMRibu4L2xQ8bgt8AyU+Q+x7nYrvDnH4iuO5LxKsYwPVbkPMvKF9Zky9wXzRfVWizi62r9X5VHf55h+WHhDjGBZ4WRhyTr6z5SlCoLMxLSpBZFsQ9F80uQFbF/6aFWi+Ev51vzzsuX+msyzuQXXjUz8zEBy+zpq9yweXAoxJW4JbYrDS6gYDqGHxPl+TKeiBfxj9/EBIElPYeOA4y8/qRQfknjvSzgRgtq0Pw/M1eQeMdOSb2Bnrhr6Led+1vcp2x7oTFHMnedFW+Ivlty062BUt74oHgSj+vHepnhunn0JJAMtBZgDI/qmGtMujRv8DDpo47zBJ8UtPOuAR/7rKn8t9AJ0tBdmBAmJ/Fu71yxp4I3qh+DhyRqbi5Y1ShVPlSb8X7bRNcfgZFl+WRGYo7uecrWq1r8X5bhmzP5OdlDwsGRm1suSxkg5rYm7ConyGQ3Zl+DgSD8V/kPwrWBMG9YcBtyShBnTLdTiHgttw7qAW7cqh/ZnmPKr/6ignOaKsdyxbsToT5UkPsW00bJjijDXficcX/JsLs6w2BwGtherdckH3w/kNXRPVI0OqJQoHX42/66IMfMj/2huRjxIidgKV/W0JS+bsstDoTeAHcrI8E5zTh/sDkqxL5rZup55/3USlswfcHf4IrQplVDgW9XFlOqnwr6pVPMMEZTuC60EttvdzbLbaZ4PsFVa3nohhO+vW+yn/ZB2fUhpysmQrzBcTSai9EszuZMcEZ1lCFVrp9zGXhm69iLyY4oxFIa178lPe12I/P2DAYDAaDwWAwGAwGg8FgMBgMBoPBYDD2Cf8IMADDRGoQTe+E9AAAAABJRU5ErkJggg==' style='margin-top: -16px;' width='92'/> </a> <ul> <li> <a href='//www.google.com/'> Google </a> </li> <li> <a href='//www.google.com/policies/privacy/'> Privacy </a> </li> <li> <a href='//www.google.com/policies/terms/'> Terms </a> </li> </ul> </div> </div> <script type='text/javascript'> //<![CDATA[ // Social sharing popups. var postEl = document.getElementsByClassName('social-wrapper'); var postCount = postEl.length; for(i=0; i<postCount;i++){ postEl[i].addEventListener("click", function(event){ var postUrl = this.getAttribute("data-href"); window.open( postUrl,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); });} //]]> </script> <script type='text/javascript'> //<![CDATA[ var BreakpointHandler = function() { this.initted = false; this.isHomePage = false; this.isMobile = false; }; BreakpointHandler.prototype.finalizeSummary = function(summaryHtml, lastNode) { // Use $.trim for IE8 compatibility summaryHtml = $.trim(summaryHtml).replace(/(<br>|\s)+$/,''); if (lastNode.nodeType == 3) { var lastChar = summaryHtml.slice(-1); if (!lastChar.match(/[.”"?]/)) { if (!lastChar.match(/[A-Za-z]/)) { summaryHtml = summaryHtml.slice(0, -1); } summaryHtml += ' ...'; } } else if (lastNode.nodeType == 1 && (lastNode.nodeName == 'I' || lastNode.nodeName == 'A')) { summaryHtml += ' ...'; } return summaryHtml; }; BreakpointHandler.prototype.generateSummaryFromContent = function(content, numWords) { var seenWords = 0; var summaryHtml = ''; for (var i=0; i < content.childNodes.length; i++) { var node = content.childNodes[i]; var nodeText; if (node.nodeType == 1) { if (node.hasAttribute('data-about-pullquote')) { continue; } nodeText = node.textContent; if (nodeText === undefined) { // innerText for IE8 nodeText = node.innerText; } if (node.nodeName == 'DIV' || node.nodeName == 'B') { // Don't end early if we haven't seen enough words. if (seenWords < 10) { continue; } if (i > 0) { summaryHtml = this.finalizeSummary(summaryHtml, content.childNodes[i-1]); } break; } summaryHtml += node.outerHTML; } else if (node.nodeType == 3) { nodeText = node.nodeValue; summaryHtml += nodeText + ' '; } var words = nodeText.match(/\S+\s*/g); if (!words) { continue; } var remain = numWords - seenWords; if (words.length >= remain) { summaryHtml = this.finalizeSummary(summaryHtml, node); break; } seenWords += words.length; } return summaryHtml; }; BreakpointHandler.prototype.detect = function() { var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g, decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, query = window.location.search.substring(1); var urlParams = {}; while (match = search.exec(query)) urlParams[decode(match[1])] = decode(match[2]); this.isListPage = $('html').hasClass('list-page'); this.isMobile = urlParams['m'] === '1'; this.isHomePage = window.location.pathname == '/'; }; BreakpointHandler.prototype.initContent = function() { var self = this; $('.post').each(function(index) { var body = $(this).children('.post-body')[0]; var content = $(body).children('.post-content')[0]; $(content).addClass('post-original'); var data = $(content).children('script').html(); data = self.rewriteForSSL(data); // If exists, extract specified editor's preview. var match = data.match(/([\s\S]+?)<div data-is-preview.+?>([\s\S]+)<\/div>/m); if (match) { data = match[1]; } // Prevent big images from loading when they aren't needed. // This must be done as a pre-injection step, since image loading can't be // canceled once embedded into the DOM. if (self.isListPage && self.isMobile) { data = data.replace(/<(img|iframe) .+?>/g, ''); } // Insert template to be rendered as nodes. content.innerHTML = data; if (self.isListPage) { var summary = document.createElement('div'); $(summary).addClass('post-content'); $(summary).addClass('post-summary'); body.insertBefore(summary, content); if (match) { // Use provided summary. summary.innerHTML = match[2]; } else { // Generate a summary. // Summary generation relies on DOM, so it must occur after content is // inserted into the page. summary.innerHTML = self.generateSummaryFromContent(content, 30); } // Add read more link to summary. var titleAnchor = $(this).find('.title a')[0]; var link = titleAnchor.cloneNode(true); link.innerHTML = 'Read More'; $(link).addClass('read-more'); summary.appendChild(link); } }); // Firefox does not allow for proper styling of BR. if (navigator.userAgent.indexOf('Firefox') > -1) { $('.post-content br').replaceWith('<span class="space"></span>'); } $('.loading').removeClass('loading'); }; BreakpointHandler.prototype.process = function() { if (!this.initted) { var makeInsecureImageRegex = function(hosts) { var whitelist = hosts.join('|').replace(/\./g,'\\.'); // Normal image tags, plus input images (yes, this is possible!) return new RegExp('(<(img|input)[^>]+?src=("|\'))http:\/\/(' + whitelist +')', 'g'); }; this.sslImageRegex = makeInsecureImageRegex(BreakpointHandler.KNOWN_HTTPS_HOSTS); this.sslImageCurrentDomainRegex = makeInsecureImageRegex([window.location.hostname]); this.detect(); this.initContent(); this.initted = true; } }; BreakpointHandler.KNOWN_HTTPS_HOSTS = [ "www.google.org", "www.google.com", "services.google.com", "blogger.com", "draft.blogger.com", "www.blogger.com", "photos1.blogger.com", "photos2.blogger.com", "photos3.blogger.com", "blogblog.com", "img1.blogblog.com", "img2.blogblog.com", "www.blogblog.com", "www1.blogblog.com", "www2.blogblog.com", "0.bp.blogspot.com", "1.bp.blogspot.com", "2.bp.blogspot.com", "3.bp.blogspot.com", "4.bp.blogspot.com", "lh3.googleusercontent.com", "lh4.googleusercontent.com", "lh5.googleusercontent.com", "lh6.googleusercontent.com", "themes.googleusercontent.com", ]; BreakpointHandler.prototype.rewriteForSSL = function(html) { // Handle HTTP -> HTTPS source replacement of images, movies, and other embedded content. return html.replace(this.sslImageRegex, '$1https://$4') .replace(this.sslImageCurrentDomainRegex, '$1//$4') .replace(/(<(embed|iframe)[^>]+?src=("|'))http:\/\/([^"']*?(youtube|picasaweb\.google)\.com)/g, '$1https://$4') // Slideshow SWF takes a image host, so we need to rewrite that parameter. .replace(/(<embed[^>]+?feed=http(?=[^s]))/g, '$1s'); }; $(document).ready(function() { var handler = new BreakpointHandler(); handler.process(); // Top-level navigation. $(".BlogArchive .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); $(".Label .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); // Blog archive year expansion. $('.BlogArchive .intervalToggle').click(function(ev) { ev.preventDefault(); if ($(this).parent().hasClass('collapsed')) { $(this).parent().removeClass('collapsed'); $(this).parent().addClass('expanded'); } else { $(this).parent().removeClass('expanded'); $(this).parent().addClass('collapsed'); } }); // Reverse order of months. $('.BlogArchive .intervalToggle + div').each(function(_, items) { var year = $(this); year.children().each(function(_, month) { year.prepend(month); }); }); // Set anchors to open in new tab. $('.post-content img').parent().each(function(_, node) { if (node.nodeName == 'A') { $(this).attr('target', '_blank'); } }); // Process search requests. $('.searchBox input').on("keypress", function(ev) { if (ev.which == 13) { window.location.href = 'https://www.google.com/search?q=site%3A' + window.location.hostname + '%20' + encodeURIComponent ($(this).val()); } }); }); //]]> </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2806328968-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY6HLXWzDK8KZtpaoz0yAQSCxjTvNw:1743757589638';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d2471378914199150966','//blog.chromium.org/2017/','2471378914199150966'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '2471378914199150966', 'title': 'Chromium Blog', 'url': 'https://blog.chromium.org/2017/', 'canonicalUrl': 'https://blog.chromium.org/2017/', 'homepageUrl': 'https://blog.chromium.org/', 'searchUrl': 'https://blog.chromium.org/search', 'canonicalHomepageUrl': 'https://blog.chromium.org/', 'blogspotFaviconUrl': 'https://blog.chromium.org/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-37592578-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Chromium Blog - Atom\x22 href\x3d\x22https://blog.chromium.org/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Chromium Blog - RSS\x22 href\x3d\x22https://blog.chromium.org/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Chromium Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/2471378914199150966/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/c4ef6ff9ae7c94eb', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': '2017', 'pageTitle': 'Chromium Blog: 2017'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Chromium Blog', 'description': 'News and developments from the open source browser project', 'url': 'https://blog.chromium.org/2017/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2017, 'rangeMessage': 'Showing posts from 2017'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML8', 'sidebar-top', document.getElementById('HTML8'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML6', 'sidebar', document.getElementById('HTML6'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML4', 'sidebar-bottom', document.getElementById('HTML4'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-bottom', document.getElementById('HTML1'), {}, 'displayModeFull')); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10