// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module chrome.mojom;
// API exposed by the browser process to the renderer process, so that the
// browser process can react to private Google Accounts JS API injected through
// the renderer.
// This API should only be used in the context of accounts.google.com pages with
// checks on both sides of the bridge, renderer and browser for extra safety.
interface GoogleAccountsPrivateApiExtension {
// Registers an OAuth consent result with the browser process. The user
// consent grants one or more Google API permissions to a Chrome extension
// that requested the user consent.
// A `GaiaRemoteConsentFlow` flow is expected to be waiting, on the browser
// side, for a user input for allowing/declining the authentication through
// the renderer side. When the information is available, it should be
// propagated to the existing consent flow and react accordingly. If no flow
// exists, the information should be dropped.
// The `consent_result` string contains the result based on the user input,
// constructed on the server side using `OAuth2MintTokenConsentResult`. The
// result string is encrypted which allows protection when sent to the browser
// side, as it will be rejected if not properly generated, and therefore not
// granting any access.
SetConsentResult(string consent_result);
};