Expose managed policy for browser settings imports (#39720)

## What changed

- Add `in_app_browser.allow_external_browser_settings_import` to managed requirements, preserving explicit Boolean values through layered composition while leaving an omitted value unset.
- Return the policy as `inAppBrowser.allowExternalBrowserSettingsImport` from `configRequirements/read` and include it in the generated protocol schemas.
- Keep the import policy independent from the in-app browser feature flag and agent Browser Use requirements.

## Testing

- Cover parsing, managed-layer precedence, invalid values, user and session override resistance, and app-server response serialization.

GitOrigin-RevId: efa2621d2b1cf503f1bee2505d9914cb4fb7221d
This commit is contained in:
rafael-oai
2026-08-20 14:13:56 +00:00
committed by copyberry
parent 6d020311f0
commit 1674b0a130
22 changed files with 454 additions and 2 deletions
@@ -399,6 +399,7 @@ pub struct ConfigRequirements {
pub allow_remote_control: Option<bool>,
pub computer_use: Option<ComputerUseRequirements>,
pub browser_use: Option<BrowserUseRequirements>,
pub in_app_browser: Option<InAppBrowserRequirements>,
pub feature_requirements: Option<BTreeMap<String, bool>>,
#[experimental("configRequirements/read.hooks")]
pub hooks: Option<ManagedHooksRequirements>,
@@ -474,6 +475,13 @@ pub struct BrowserUseRequirements {
pub disable_auto_review: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
pub struct InAppBrowserRequirements {
pub allow_external_browser_settings_import: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
@@ -2060,6 +2060,7 @@ fn config_requirements_granular_allowed_approval_policy_is_marked_experimental()
allow_remote_control: None,
computer_use: None,
browser_use: None,
in_app_browser: None,
feature_requirements: None,
hooks: None,
enforce_residency: None,