Author Archives:

Improvements to Out-of-Domain file-level warnings

Today, we’re announcing improvements to our Out-of-Domain file-level warnings. First launched in April 2025, these badges alert users to documents and users outside of their Workspace organization, helping to prevent accidental data exfiltration and potential phishing attacks that spoof internal content. We’ve expanded support across devices and sharing types in the following ways:

  • Files in the Android and iOS apps for Drive, Docs, Sheets, and Slides now include external indicators
  • Chat Spaces and Google Groups can be configured to allow external users; if they’re given access to a document, that document now shows the external badge
  • If a service account has access to a document, and that service account is owned by an external Google Cloud organization, it now triggers the external badge in documents
  • Comment email notifications now include badges for external documents and users
  • File sharing email notifications now include badges for external documents and users

How Out-of-Domain warnings work

This feature helps users identify potentially risky files and avoid phishing scams when working with files shared from outside your organization.

Notification in comments

Notification in file sharing email

An image showing a Google Doc with the word "External" displayed in a small yellow badge next to the document title. The badge has been clicked, and a pop-up window appears with more information stating that “This document is owned by someone outside your organization. Be cautious about sharing sensitive information.
Image of "External" badge displayed in Google Docs

Getting started

Screenshot of the Google Workspace Admin console, navigated to Sharing settings. At the bottom of the page, a new section labeled "Highlight external files" is highlighted. The checkbox is checked, and the description reads: "Mark external files shared or owned externally as “external” to flag that content may be viewable outside your organization.
Image of the Google Workspace Admin console, Sharing settings, showing the "Highlight external files" option enabled

Rollout pace

Availability

  • Available to all Google Workspace customers

Resources

This entry was posted in Uncategorized on by .

Simplify decision-making with Polly, now available for Google Chat

Making decisions in a fast-paced environment often leads to long, messy threads and lost consensus. Polly helps teams solve this by enabling the creation of interactive polls within existing Chat conversations. By keeping the feedback loop inside the "flow of work," Polly helps eliminate the friction of switching between apps, leading to faster responses and clearer team alignment.

Effortless authoring and participation
Creating a poll is as simple as mentioning @Polly in any Google Chat space. Whether you need a quick pulse on a project direction or a simple vote on a meeting time, you can author a poll in seconds. For end users, participation is just as easy: team members can cast their votes with a single click directly within the chat stream.

Real-time results
Results are updated as votes come in, providing immediate visual feedback to the entire space. This transparency ensures that everyone is on the same page and can move forward with confidence as soon as a decision is reached.

Use cases for Polly in Google Chat:

  • Driving consensus: Rapidly narrow down options for project names, design directions, or strategy shifts. 
  • Meeting logistics: Quickly vote on the best time for a sync or gather topics for an upcoming agenda.
  • Team preferences: Streamline simple office or team logistics, from lunch orders to preferred collaboration hours.

Admins can easily enable the Polly integration to empower their teams with a more structured way to collaborate without leaving the Google Workspace ecosystem.

Getting started

  • Admins: Admins can install the Polly Chat app on their users’ behalf. Visit the Help Center to learn more about installing Marketplace apps for your organization. If you’ve already deployed Polly for Google Meet, then the Polly Chat app will automatically be available as well.
  • End users: End users can search for the Polly add-on in Google Chat under Apps > Find apps. Visit the Google Workspace Marketplace to learn more and install Polly. If you’ve already installed Polly for Google Meet, then the Polly Chat app will automatically be available as well.

Rollout pace

Availability

  • Available to all Google Workspace customers, Workspace Individual subscribers, and users with personal Google accounts

Resources

This entry was posted in Uncategorized on by .

Introducing a fresh visual identity for Google Workspace app icons

We’re updating icons across Google Workspace to introduce a modern visual design that gives every app a more distinct identity. Over the next several weeks, users will see new icons for Gmail, Calendar, Chat, Meet, Drive, Docs, Slides, Sheets, Vids, Keep, Forms, Voice, Sites, and Tasks.


These changes drive consistency and cohesion across our product suite, while ensuring each individual application remains modern and recognizable on your screen. These design updates do not alter any core functionality or administrative controls.

Getting started

  • Admins: There is no admin control for this update; changes will roll out automatically according to the schedule below. If you need to update internal documentation, visit the Help Center to find the new icon designs.
  • End users: There is no end user control for this update; changes will roll out automatically according to the schedule below.

Rollout pace

Impact

  • Impacts all Google Workspace users

Resources

This entry was posted in Uncategorized on by .

TestParameterInjector introduces an idiomatic Kotlin API

In March 2021, we announced the open source release of TestParameterInjector: a simple but powerful parameterized test runner for JUnit4. In September 2022, we followed up with JUnit5 support, bringing our framework to developers who had moved on to the Jupiter API.

We're excited to announce our biggest update yet for our Kotlin users: KotlinTestParameters.

The de facto standard for parameterized testing

When we first introduced TestParameterInjector, we shared a graph showing its rapid adoption within Google. Over the past few years, that trajectory has continued to a point where TestParameterInjector is the de facto parameterized test framework.

Graph of the different parameterized test frameworks in Google

Usage of all other alternative frameworks continues to steadily decline, while TestParameterInjector's adoption keeps growing rapidly. It has fundamentally lowered the barrier to writing data-driven unit tests, empowering Googlers and open source developers alike to maximize test coverage with minimal boilerplate. We believe its ubiquity internally is a strong testament to its reliability and utility for the broader developer communities.

The Kotlin challenge

As Kotlin's popularity has surged, developers have naturally been writing more of their TestParameterInjector tests in Kotlin. However, specifying explicit test values in Kotlin historically meant falling back to Java-centric paradigms.

If you wanted to provide specific values to a test, you typically had three options, none of which felt truly idiomatic in Kotlin:

  1. @TestParameter({"123", "456"}): This relies on string arrays, limiting you to a subset of types that the string parsing supports.
  2. @TestParameters: This allows for more complex sets of data, but relies on YAML strings (e.g.,"{age: 17, expectIsAdult: false}"). These strings however are not type-safe, and are completely ignored by IDE refactoring tools.
  3. Provider classes: For complex types that couldn't be easily represented in strings, you have to write Provider classes, adding a bit of boilerplate code and indirection.

Enter KotlinTestParameters

To bring a seamless experience to Kotlin, we are introducing a significant new Kotlin-only feature: KotlinTestParameters.

By leveraging Kotlin's default function arguments, you can now define parameterized tests in a fully type-safe, concise, and refactor-friendly way using the testValues() function (and friends).

Here is what it looks like in practice:

import com.google.testing.junit.testparameterinjector.TestParameterInjector
import com.google.testing.junit.testparameterinjector.TestParameter
import com.google.testing.junit.testparameterinjector.KotlinTestParameters.testValues
import com.google.testing.junit.testparameterinjector.KotlinTestParameters.namedTestValues
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(TestParameterInjector::class)
class MyTest {

  // Testing simple types directly
  @Test
  fun simpleTest(@TestParameter limit: Int = testValues(20, 100)) {
    // This test method is run twice: once for limit=20 and once for limit=100
  }

  // Testing complex types without YAML strings or Provider classes!
  data class TestCase(val age: Int, val expectIsAdult: Boolean)

  @Test
  fun complexTest(
    @TestParameter testCase: TestCase = namedTestValues(
      "teenager" to TestCase(age = 17, expectIsAdult = false),
      "young adult" to TestCase(age = 22, expectIsAdult = true)
    )
  ) {
    // This test method is run twice with fully typed data class instances
  }
}

Why we recommend making the switch

Because testValues() seamlessly integrates with Kotlin's language features, any type is supported. This completely eliminates the need for stringly-typed YAML maps or verbose Provider classes.

We firmly believe that KotlinTestParameters is a massive leap forward in readability and maintainability. Moving forward, this should be the default way of specifying test values for all new Kotlin tests, replacing the older @TestParameters, @TestParameter({"..."}), and Provider class patterns.

Try it out!

You can read more and start using KotlinTestParameters today over on our GitHub repository.

Let us know what you think on GitHub if you have any questions, comments, or feature requests!

This entry was posted in Uncategorized on by .

Long Term Support Channel Update for ChromeOS

A new LTS-144  version 144.0.7559.252 (Platform Version: 16503.84.0), is being rolled out for most ChromeOS devices. 

This version includes selected security fixes including:


495931147 High CVE-2026-5289: Use after free in Navigation.

497846428 High CVE-2026-6309: Use after free in Viz.

487117772 High CVE-2026-4449: Use after free in Blink.

488188166 High CVE-2026-4674: Out of bounds read in CSS.

497412658 High CVE-2026-6308: Out of bounds read in Media.

482828615 High CVE-2026-3916: Out of bounds read in Web Speech.

484751092 High CVE-2026-4442: Heap buffer overflow in CSS.

489619753 High CVE-2026-4458: Use after free in Extensions.

487768779 High CVE-2026-4451 Insufficient validation of untrusted input in Navigation.

492213293 Medium CVE-2026-5292: Out of bounds read in WebCodecs.

491655161 Medium CVE-2026-5282: Out of bounds read in WebCodecs.

Release notes for LTS-144 can be found here 

Want to know more about Long-term Support? Click here

Andy Wu

Google Chrome OS


This entry was posted in Uncategorized on by .

Empowering Service Providers and Hardware Partners with Gemini for Home

Google is expanding its smart home ecosystem by launching a full-stack Gemini AI offering that integrates advanced camera intelligence, natural language queries, and daily activity summaries. This initiative provides service providers and hardware manufacturers with turnkey reference designs and APIs to build proactive, branded services without extensive research and development. Ultimately, the program aims to move beyond basic device control toward an AI-native home that can understand context and care for users' needs in real time.
This entry was posted in Uncategorized on by .