Dev Channel Update for Desktop

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


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

Srinivas Sista
Google Chrome

Control the visibility of warning banners in Gmail with a new admin control

What’s changing

We’re giving admins more control over whether warning banners for incoming email messages are displayed for their end users. Specifically, admins can chose to disable spam filters and hide warning banners for:

  • All users
  • A specific allowlist of senders

These settings can be found in the Admin console at:
Apps > Google Workspace > Settings for Gmail > Spam, Phishing, and Malware > Add Another Rule 




You may consider turning off these warnings when conducting anti-phishing training with your end users. These new options provide more flexibility around the visibility of these warnings across your organization however you choose to configure them. 


Getting started 

  • Admins: Warning banners can be turned on or off at the domain and OU level. Visit the Help Center to learn more about how to add custom spam filters to Gmail.
  • End users: No action required — your admin configuration will determine whether you see spam warning banners in Gmail. 

Rollout pace 


Availability 

  • Available to all Google Workspace customers 
  • Not available to legacy G Suite basic and Business customers
  • Not available to users with personal Google Accounts

Resources 

Improving the Google Contact management experience

What’s changing

Previously, visiting contacts.google.com was the only way to edit or add a Google Contact. Today, we’re introducing a new feature available in the Contacts sidebar that lets you create new contacts and edit existing contacts. Whether you want to edit contacts faster or create contacts more easily, this update streamlines the contact management experience.

Getting started 

  • Admins: There is no admin control for this feature. 
  • End users: 
    • To edit an existing contact: 
      • Expand the side panel in Google Workspace and open the Contacts app 
      • Click on a contact 
      • Click the Edit icon at the top right 
      • Edit the information Click “Save” 
    • To create a contact from scratch: 
      • Open the Contacts app from the vertical App bar on the right 
      • Click “Create contact” 
        • Note: “Create contact” will only be available while in “Contacts” mode, not “In this thread” when opening a contact’s detailed view through Gmail 
      • Enter the contact’s name and add any contact information 
      • Click “Save” 
    • To create a contact from search: 
      • Open the Contacts app from the vertical App bar on the right 
      • Click the Search icon at the top right 
      • Enter a contact’s name 
      • If there is no existing contact, click on the “Create contact” button at the top of the search results to automatically create a contact with the name you entered 
      • Add additional information to the contact 
      • Click “Save” 
    • Visit the Help Center to learn more about Google Contacts

Rollout pace 

Availability 

  • Available to all Google Workspace customers, as well as legacy G Suite Basic and Business customers 
  • Available to users with personal Google Accounts 

Resources 

Google Calendar and Assistant Reminders will migrate to Google Tasks soon

What’s changing

As previously announced, in the coming months, we’ll migrate Reminders from Google Calendar and Google Assistant to Google Tasks to create a single experience for managing to-dos across Google. 

Users can create tasks from Calendar and using the hands-free power of Assistant, similar to how they previously created Reminders. Additionally, unlike with Reminders, they can create tasks from other Google Workspace apps like Gmail, Docs and Chat, or directly from the Tasks app.

If you’re a Google Workspace customer with the Tasks service ON in your organization, your end users can voluntarily migrate beginning April 12, 2023. This migration prompt will appear for users with personal accounts starting on March 6, 2023.

Enterprise end users will be prompted to migrate their experience beginning April 12, 2023. 



For Google Workspace customers: Starting on May 22, 2023, Assistant and Calendar Reminders will begin to automatically migrate to Tasks for users that have not already migrated. To help ensure a smooth transition, we recommend the following steps:

Admins:

If you use a Google account for work or school:
  • You’ll see a prompt in Assistant and Calendar to move reminders created in these apps to Tasks beginning on April 12, 2023.
  • If you want a copy of your reminders data and Takeout is enabled for your organization, export your Reminders data before June 22, 2023.

If you use Google with a personal account:
  • You’ll see a prompt in Assistant and Calendar to move reminders created in these apps to Tasks beginning on March 6, 2023.
  • If you haven’t already migrated, Assistant and Calendar reminders will begin to automatically migrate in Q2. We’ll share more information on this timeline in a future update on the Workspace Updates blog.

Why it’s important

Once the migration is complete, you’ll be able to view and manage all of your to-dos in one place: Tasks. You’ll be able to leverage features in Tasks such as organizing to-dos with multiple lists and adding descriptions for extra organization. Tasks can be accessed on the web in Google Workspace apps like Gmail, Calendar, Docs and Chat, making it easy to create tasks without the need to switch tabs or apps. If you use Assistant, you’ll also be able to create Tasks directly from Assistant.


Additional details

Reminders created in Keep will not be migrated to Tasks — they will still be available in Keep, but they will no longer be displayed in Google Calendar once the migration is complete.


Rollout pace 


Google Workspace users:
  • Voluntary migration: Extended rollout (potentially longer than 15 days for feature visibility) beginning April 12, 2023
  • Automatic migration: Extended rollout (potentially longer than 15 days for feature visibility) beginning May 22, 2023


Users with personal Google Accounts: 
  • Extended rollout (potentially longer than 15 days for feature visibility) beginning March 6, 2023

Feature Engineering in the Google Play Store

Posted by Harini Chandrasekharan, Staff Software Engineer, Google Play

The Google Play Store, launched 10 years ago in 2012 sits at the heart of Android, connecting billions of users with an equally staggering and ever-growing collection of apps and games worldwide.

Let's take a peek behind the curtains to learn what it takes to design the serving infrastructure of the worlds largest Android marketplace. In the world of consumer facing software, it's not a surprise that out of box engineering solutions fail to meet the requirements that Google scale demands. Therefore every system at Google is carefully crafted and honed with iterative enhancements to meet the unique availability, quality and latency demands of the Google Play Store.

What is feature engineering?

Features can be user-facing such as formats, content, arrangement of content, the page layout or information architecture. Formats represent how app content from our recommendation systems, advertisers, merchandisers and various other sources are presented on UI. The goal is to create tailor-made experiences weaving in the right content and UI to suggest the most relevant apps and games to meet the users where they are in their journey on the play store.

In the domain of consumer facing features, users’ opinions and choices, developer ecosystem and demand often changes faster than infrastructure can. In such an environment, the biggest challenge engineers face is how to be nimble and design infrastructure that’s not only future-proof but also meets the needs of the consumer space within the constraints of scalability and performance. Let’s take a deeper look at some engineering challenges in such a dynamic space.


What does success look like?

In a data driven organization such as the Play store, metrics are built for measuring anything and everything of importance. Here are some of the dimensions that come in handy when measuring and tracking success:

  • Product/business metrics - These are metrics specific to the product or service under consideration. Running A/B experiments to measure changes to these metrics for the new treatment builds confidence, particularly when decision making involves several tradeoffs.
  • Performance - Measuring latency, error rates and availability makes the backbone of almost every service and for good reason. Knowing these baseline metrics is essential since this closely tracks user experience and perception of the product.
  • System health - These are internal system metrics tracking resource utilization and fleet stability.

Challenges in feature engineering infrastructure

Designing backend systems that scale to the requirements of the Play Store that also meet the performance criteria required to make user interactions feel fluid and responsive is paramount. From an engineering perspective, infrastructure needs to continuously evolve to meet the needs of the business. The Play store is no different—the store infrastructure has evolved several times in the last decade to not only support the needs of new features that are available to users today, but also to modernize, eliminate tech debt and most of all reduce latency.


Frequent iteration

Challenge: Features often require large amounts of iteration over time, it's hard to plan engineering infrastructure that meets all the future requirements.

In an experiment driven culture, the optimum approach for rapidly building features at scale often results in tech debt. Tech debt has various forms—relics of past features that did not make it result in layers that are hard to clean up, affect performance, make code error prone and hard to test.

Independent evolution

Challenge: In large organizations spanning 100s of engineers, several features are often being built in parallel and independent of each other.

Infrastructure reuse and sharing innovations are often impossible without significantly compromising on velocity. In a space where the product evolves at a rapid pace there is often a large amount of uncertainty with the different levers and knobs one can build into systems to make them flexible. Too many levers can lead to large system complexity. Too few levers and the cost of iteration is sky high. Finding the balance between the two is one of the core competencies of a feature engineer in this space.

Time to experiment

Challenge: There is often an opportunity cost to pay for time spent building elegant engineering solutions.

Time to experiment is one of the most important metrics to keep in mind when designing solutions for user facing features. Flexible design that enables rapid iteration and meets the latency and other performance SLOs is ideal.

In practice, there is often a large amount of guesswork that goes into estimating impact of a particular user facing change, while we can use past data and learnings confidently to estimate in some scenarios, it's not sufficient for a brand new ambitious, never before tried idea.


Feature engineering guiding principles

Let’s see how the Play Store solves these challenges to enable state of the art innovation.

Data driven experiments and launches - understand your success metrics

Optimizing for time to market i.e getting the feature to the user and measuring how it impacts app installs and other store business metrics using A/B experiments is of prime importance. Iterating fast based on data helps tune the final feature to the desired end state. Google has several home grown technologies for running A/B experiments at worldwide scale with seamless integration with metric presentation tools that make running these experiments smooth and easy, so developers can spend more time coding and less in analysis.

Design and experiment with polished MVPs - with a focus on quality

Deciding what to build, whether it meets Google quality standards, understanding engineering costs and the user needs it solves are all important questions that need to be answered before designing anything. Feature Engineering is therefore often done in close collaboration with Product Managers. Aligning on the perfect MVP that can be built in a reasonable amount of engineering time that meets the user journey is the key to a successful product.

Frequently modernize the infrastructure - clean up tech debt

Frequent iterations and a fast MVP development culture often comes with its set of cons, the biggest being tech debt. In optimizing for fast velocity, cutting corners results in obsolete code (due to unlaunchable metrics) or discarded experiment flags. These often make testing, maintaining and impact future development velocity if left unfixed. Additionally, using the latest and greatest frameworks to get to the last milliseconds of latency or making development easier yields great dividends in the long run. Frequently modernizing the infrastructure either via refactoring or full rewrites may traditionally spell signs of poorly designed code, but it's one of the bigger tradeoffs that feature engineers often have to make, because after all what use is all the fancy infrastructure if users don't interact with the feature in the first place!


How useful did you find this blog post?

API desugaring supporting Android 13 and java.nio

Posted by Clément Béra, Software engineer

We are happy to announce the release of a new version of API desugaring based on Android 13 and Java 11 language APIs. API desugaring allows developers to use more APIs without requiring a minimum API level for your app. This reduces friction during development. You are now free to use the java.nio APIs no matter which Android version is on the user’s device. For example, libraries such as kotlin.io.path are now available on all Android devices, including devices running Android 7 and lower.

In addition to supporting java.nio, API desugaring of java.time and java.util.stream has been updated to support APIs added up to Android 13. You can use recent APIs in your Android app such as Collectors#toUnmodifiableList.

New API desugaring specifications

To enable API desugaring, you set isCoreLibraryDesugaringEnabled and add the coreLibraryDesugaring dependency in the build.gradle.kts file.

android { ... compileSdk = 33 defaultConfig { ... // Required when setting minSdkVersion to 20 or lower. multiDexEnabled = true ... } ... compileOptions { // Flag to enable support for API desugaring. isCoreLibraryDesugaringEnabled = true // Sets Java compatibility to Java 8 sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { // Dependency required for API desugaring. coreLibraryDesugaring("com.android.tools:desugar_jdk_libs_nio:2.0.2") }

The new version 2.0 release comes in 3 flavors:

  • com.android.tools:desugar_jdk_libs_nio:2.0.2 - the nio version includes all the desugaring available including the java.nio, java.time, stream, and functions APIs.
  • com.android.tools:desugar_jdk_libs:2.0.2 - the default version includes desugaring for the java.time, stream, and functions APIs. It’s similar to version 1.x API desugaring already available, but updated with APIs added up to Android 13.
  • com.android.tools:desugar_jdk_libs_minimal:2.0.2 - the minimal version includes only the java.util.function package and bug fixes on concurrent collections. It’s designed for minimal code size overhead.

Opting into more desugaring features will lead to a larger impact on your app’s code size. The minimal specification has, as its name indicates, a minimal impact on the code size of the app. The nio specification has the most impact.

The new java.nio APIs

The new java.nio APIs supported in API desugaring include:

  • All the classes and APIs in java.nio.file such as BasicFileAttributes, file manipulation, or usage of java.nio.file.Path.
  • Some extensions of java.nio.channels, such as the FileChannel#open methods.
  • A few utility methods such as File#toPath.

The following code snippet illustrates how you can now use the new java.nio APIs on all devices, including devices running Android 7 and lower, through the methods of kotlin.io.path which depend on java.nio.file.Files. A temp file can be created, written into, read, and its basic attributes and its existence can be queried using the new java.nio APIs.

import android.util.Log import java.nio.file.StandardOpenOption.APPEND import kotlin.io.path.createTempDirectory import kotlin.io.path.deleteIfExists import kotlin.io.path.exists import kotlin.io.path.fileSize import kotlin.io.path.readLines import kotlin.io.path.writeLines ... val TAG = "java.nio Test" val tempDirectory = createTempDirectory("tempFile") val tempFile = tempDirectory.resolve("tempFile") tempFile.writeLines(listOf("first")) tempFile.writeLines(listOf("second"), options = arrayOf(APPEND)) Log.d(TAG,"Content: ${tempFile.readLines()}") Log.d(TAG,"Size: ${tempFile.fileSize()}") Log.d(TAG,"Exists (before deletion): ${tempFile.exists()}") tempFile.deleteIfExists() Log.d(TAG,"Exists (after deletion): ${tempFile.exists()}")

// Resulting logcat output. Content: first second Size: 13 Exists (before deletion): true Exists (after deletion): false

A few features however cannot be emulated for devices running Android 7 and lower and instead throw an instance of UnsupportedOperationException or return null. They still work on devices running Android 8 or higher, so existing code guarded by an API level check should work as it used to. See the complete list of APIs available and the known limitations.

The code has been extensively tested, but we are looking for additional inputs from app developers.

Please try out the new version of API desugaring, and let us know how it worked for you!

For additional background see the post Support for newer Java language APIs from when API desugaring was introduced.

Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Chrome Beta for Android Update

Hi everyone! We've just released Chrome Beta 111 (111.0.5563.30) for Android. It's now available on Google Play.

You can see a partial list of the changes in the Git log. For details on new features, check out the Chromium blog, and for details on web platform updates, check here.

If you find a new issue, please let us know by filing a bug.

Harry Souders
Google Chrome

Stable Channel Desktop Update

The Stable channel has been updated to 110.0.5481.104 for Windows only, which will roll out over the coming days/weeks. A full list of changes in this build is available in the log.

The Extended Stable channel has been updated to 110.0.5481.104 for Windows only which will roll out over the coming days/weeks.

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


Daniel Yip


Google Chrome

Enable next generation IDs for better Play Games Services support for all Google accounts

Posted by Laura Nechita, Software Engineering at Google Play and Victor Chen, Product Specialist at Google Play

To further enhance the privacy of users and their multi-platform gaming experience, Play Games Services (PGS) is introducing next generation Player IDs. With this change, the first time a user plays a game, they will always be assigned a unique next generation Player ID that will remain consistent regardless of the device or platform a user plays a game on, but which will vary from game to game.

Existing users, or accounts that have already signed into your game using PGS retain their current PGS Player IDs and are not affected by this change. If you have multiple titles in your portfolio and need a way to identify users across your titles to offer cross-game user experiences, we are also introducing a developer player key. Learn more.

With next generation IDs, it will also enable better Play Games Services support for all accounts, including those under supervision.

Here is a timeline for the rollout:

Feb 16, 2023
  • You can start testing next generation IDs using PGS test accounts
  • You can publish this feature once you have completed your testing
Apr 15, 2023

  • Next generation IDs are enabled in draft mode for newly created game projects
  • You can disable next generation IDs on the game properties page in Google Play Console
Feb 2024

  • Next generation IDs will be turned on in production for all game projects (including existing game projects)
  • If you notice any issues during this period you will have one month to disable next generation IDs and fix the issue
Mar 2024

  • Next generation IDs are required for all game projects and cannot be disabled

How this affects your game

  • Next generation IDs are only assigned to users signing in to PGS on your game for the first time.
  • Users who have already signed in to PGS on your game are not affected.
  • We are introducing a new developer player key which allows you to identify users across games in your portfolio.