summaryrefslogtreecommitdiff
path: root/chromium/chromeos
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-09-07 13:12:05 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-11-09 10:02:59 +0000
commit33fc33aa94d4add0878ec30dc818e34e1dd3cc2a (patch)
treef6af110909c79b2759136554f1143d8b0572af0a /chromium/chromeos
parent7d2c5d177e9813077a621df8d18c0deda73099b3 (diff)
downloadqtwebengine-chromium-33fc33aa94d4add0878ec30dc818e34e1dd3cc2a.tar.gz
BASELINE: Update Chromium to 104.0.5112.120
Change-Id: I5d2726c2ab018d75d055739b6ba64317904f05bb Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/438935 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/chromeos')
-rw-r--r--chromium/chromeos/BUILD.gn24
-rw-r--r--chromium/chromeos/ash/components/BUILD.gn23
-rw-r--r--chromium/chromeos/ash/components/assistant/BUILD.gn (renamed from chromium/chromeos/assistant/BUILD.gn)7
-rw-r--r--chromium/chromeos/ash/components/assistant/ambient.gni (renamed from chromium/chromeos/assistant/ambient.gni)0
-rw-r--r--chromium/chromeos/ash/components/assistant/assistant.gni (renamed from chromium/chromeos/assistant/assistant.gni)2
-rw-r--r--chromium/chromeos/ash/components/assistant/test_support/BUILD.gn (renamed from chromium/chromeos/assistant/test_support/BUILD.gn)4
-rw-r--r--chromium/chromeos/ash/components/cros_elements/BUILD.gn20
-rw-r--r--chromium/chromeos/ash/components/cros_elements/button/BUILD.gn30
-rw-r--r--chromium/chromeos/ash/components/dbus/BUILD.gn12
-rw-r--r--chromium/chromeos/ash/components/dbus/chromebox_for_meetings/BUILD.gn (renamed from chromium/chromeos/dbus/chromebox_for_meetings/BUILD.gn)3
-rw-r--r--chromium/chromeos/ash/components/dbus/cicerone/BUILD.gn33
-rw-r--r--chromium/chromeos/ash/components/dbus/concierge/BUILD.gn35
-rw-r--r--chromium/chromeos/ash/components/dbus/cros_healthd/BUILD.gn (renamed from chromium/chromeos/dbus/cros_healthd/BUILD.gn)8
-rw-r--r--chromium/chromeos/ash/components/dbus/fusebox/BUILD.gn (renamed from chromium/chromeos/dbus/fusebox/BUILD.gn)3
-rw-r--r--chromium/chromeos/ash/components/dbus/hammerd/BUILD.gn (renamed from chromium/chromeos/dbus/hammerd/BUILD.gn)4
-rw-r--r--chromium/chromeos/ash/components/dbus/hiberman/BUILD.gn (renamed from chromium/chromeos/dbus/hiberman/BUILD.gn)4
-rw-r--r--chromium/chromeos/ash/components/dbus/ip_peripheral/BUILD.gn (renamed from chromium/chromeos/dbus/ip_peripheral/BUILD.gn)4
-rw-r--r--chromium/chromeos/ash/components/dbus/media_analytics/BUILD.gn (renamed from chromium/chromeos/dbus/media_analytics/BUILD.gn)5
-rw-r--r--chromium/chromeos/ash/components/dbus/patchpanel/BUILD.gn (renamed from chromium/chromeos/dbus/patchpanel/BUILD.gn)5
-rw-r--r--chromium/chromeos/ash/components/dbus/pciguard/BUILD.gn (renamed from chromium/chromeos/dbus/pciguard/BUILD.gn)3
-rw-r--r--chromium/chromeos/ash/components/dbus/rgbkbd/BUILD.gn24
-rw-r--r--chromium/chromeos/ash/components/dbus/rmad/BUILD.gn (renamed from chromium/chromeos/dbus/rmad/BUILD.gn)5
-rw-r--r--chromium/chromeos/ash/components/dbus/seneschal/BUILD.gn33
-rw-r--r--chromium/chromeos/ash/components/dbus/services/BUILD.gn (renamed from chromium/chromeos/dbus/services/BUILD.gn)6
-rw-r--r--chromium/chromeos/ash/components/dbus/system_clock/BUILD.gn (renamed from chromium/chromeos/dbus/system_clock/BUILD.gn)4
-rw-r--r--chromium/chromeos/ash/components/dbus/system_proxy/BUILD.gn (renamed from chromium/chromeos/dbus/system_proxy/BUILD.gn)5
-rw-r--r--chromium/chromeos/ash/components/dbus/typecd/BUILD.gn (renamed from chromium/chromeos/dbus/typecd/BUILD.gn)3
-rw-r--r--chromium/chromeos/ash/components/dbus/upstart/BUILD.gn2
-rw-r--r--chromium/chromeos/ash/components/dbus/usb/BUILD.gn23
-rw-r--r--chromium/chromeos/ash/components/hibernate/BUILD.gn (renamed from chromium/chromeos/components/hibernate/BUILD.gn)5
-rw-r--r--chromium/chromeos/ash/components/hibernate/buildflags.gni (renamed from chromium/chromeos/components/hibernate/buildflags.gni)0
-rw-r--r--chromium/chromeos/ash/components/human_presence/BUILD.gn (renamed from chromium/chromeos/components/hps/BUILD.gn)24
-rw-r--r--chromium/chromeos/ash/components/memory/BUILD.gn (renamed from chromium/chromeos/memory/BUILD.gn)13
-rw-r--r--chromium/chromeos/ash/components/memory/userspace_swap/BUILD.gn (renamed from chromium/chromeos/memory/userspace_swap/BUILD.gn)14
-rw-r--r--chromium/chromeos/ash/components/memory/userspace_swap/userspace_swap.mojom (renamed from chromium/chromeos/memory/userspace_swap/userspace_swap.mojom)0
-rw-r--r--chromium/chromeos/ash/components/network/metrics/BUILD.gn53
-rw-r--r--chromium/chromeos/ash/components/network/onc/BUILD.gn82
-rw-r--r--chromium/chromeos/ash/components/network/portal_detector/BUILD.gn37
-rw-r--r--chromium/chromeos/ash/components/network/proxy/BUILD.gn55
-rw-r--r--chromium/chromeos/ash/components/oobe_quick_start/BUILD.gn30
-rw-r--r--chromium/chromeos/ash/components/oobe_quick_start/connectivity/BUILD.gn40
-rw-r--r--chromium/chromeos/ash/components/scanning/BUILD.gn19
-rw-r--r--chromium/chromeos/ash/resources/BUILD.gn36
-rw-r--r--chromium/chromeos/ash/services/assistant/BUILD.gn (renamed from chromium/chromeos/services/assistant/BUILD.gn)12
-rw-r--r--chromium/chromeos/ash/services/assistant/audio_decoder/BUILD.gn (renamed from chromium/chromeos/services/assistant/audio_decoder/BUILD.gn)4
-rw-r--r--chromium/chromeos/components/BUILD.gn2
-rw-r--r--chromium/chromeos/components/cdm_factory_daemon/mojom/cdm_factory_daemon.mojom5
-rw-r--r--chromium/chromeos/components/disks/BUILD.gn11
-rw-r--r--chromium/chromeos/components/local_search_service/public/mojom/local_search_service.mojom3
-rw-r--r--chromium/chromeos/components/mojo_service_manager/BUILD.gn28
-rw-r--r--chromium/chromeos/components/mojo_service_manager/mojom/BUILD.gn13
-rw-r--r--chromium/chromeos/components/mojo_service_manager/mojom/mojo_service_manager.mojom195
-rw-r--r--chromium/chromeos/components/quick_answers/BUILD.gn2
-rw-r--r--chromium/chromeos/components/remote_apps/mojom/remote_apps.mojom74
-rw-r--r--chromium/chromeos/components/security_token_pin/BUILD.gn35
-rw-r--r--chromium/chromeos/constants/BUILD.gn3
-rw-r--r--chromium/chromeos/crosapi/cpp/BUILD.gn11
-rw-r--r--chromium/chromeos/crosapi/mojom/BUILD.gn20
-rw-r--r--chromium/chromeos/crosapi/mojom/arc.mojom12
-rw-r--r--chromium/chromeos/crosapi/mojom/cert_database.mojom2
-rw-r--r--chromium/chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom80
-rw-r--r--chromium/chromeos/crosapi/mojom/clipboard_history.mojom4
-rw-r--r--chromium/chromeos/crosapi/mojom/crosapi.mojom192
-rw-r--r--chromium/chromeos/crosapi/mojom/desk_template.mojom10
-rw-r--r--chromium/chromeos/crosapi/mojom/device_settings_service.mojom9
-rw-r--r--chromium/chromeos/crosapi/mojom/digital_goods.mojom47
-rw-r--r--chromium/chromeos/crosapi/mojom/dlp.mojom6
-rw-r--r--chromium/chromeos/crosapi/mojom/document_scan.mojom56
-rw-r--r--chromium/chromeos/crosapi/mojom/echo_private.mojom33
-rw-r--r--chromium/chromeos/crosapi/mojom/extension_info_private.mojom28
-rw-r--r--chromium/chromeos/crosapi/mojom/field_trial.mojom2
-rw-r--r--chromium/chromeos/crosapi/mojom/file_system_provider.mojom214
-rw-r--r--chromium/chromeos/crosapi/mojom/keystore_error.mojom4
-rw-r--r--chromium/chromeos/crosapi/mojom/keystore_service.mojom12
-rw-r--r--chromium/chromeos/crosapi/mojom/launcher_search.mojom8
-rw-r--r--chromium/chromeos/crosapi/mojom/login.mojom56
-rw-r--r--chromium/chromeos/crosapi/mojom/login_screen_storage.mojom2
-rw-r--r--chromium/chromeos/crosapi/mojom/metrics_reporting.mojom4
-rw-r--r--chromium/chromeos/crosapi/mojom/networking_private.mojom162
-rw-r--r--chromium/chromeos/crosapi/mojom/prefs.mojom12
-rw-r--r--chromium/chromeos/crosapi/mojom/speech_recognition.mojom22
-rw-r--r--chromium/chromeos/crosapi/mojom/sync.mojom26
-rw-r--r--chromium/chromeos/crosapi/mojom/test_controller.mojom44
-rw-r--r--chromium/chromeos/crosapi/mojom/vpn_extension_observer.mojom19
-rw-r--r--chromium/chromeos/crosapi/mojom/vpn_service.mojom135
-rw-r--r--chromium/chromeos/crosapi/mojom/wallpaper.mojom35
-rw-r--r--chromium/chromeos/crosapi/mojom/web_app_service.mojom19
-rw-r--r--chromium/chromeos/crosapi/mojom/web_app_types.mojom1
-rw-r--r--chromium/chromeos/dbus/BUILD.gn41
-rw-r--r--chromium/chromeos/dbus/cicerone/BUILD.gn22
-rw-r--r--chromium/chromeos/dbus/concierge/BUILD.gn24
-rw-r--r--chromium/chromeos/dbus/hermes/BUILD.gn8
-rw-r--r--chromium/chromeos/dbus/human_presence/BUILD.gn (renamed from chromium/chromeos/dbus/hps/BUILD.gn)10
-rw-r--r--chromium/chromeos/dbus/seneschal/BUILD.gn23
-rw-r--r--chromium/chromeos/dbus/userdataauth/BUILD.gn15
-rw-r--r--chromium/chromeos/dbus/util/BUILD.gn6
-rw-r--r--chromium/chromeos/features.gni10
-rw-r--r--chromium/chromeos/lacros/BUILD.gn18
-rw-r--r--chromium/chromeos/network/BUILD.gn96
-rw-r--r--chromium/chromeos/resources/BUILD.gn4
-rw-r--r--chromium/chromeos/services/BUILD.gn4
-rw-r--r--chromium/chromeos/services/assistant/public/cpp/BUILD.gn8
-rw-r--r--chromium/chromeos/services/assistant/public/shared/BUILD.gn2
-rw-r--r--chromium/chromeos/services/bluetooth_config/public/mojom/BUILD.gn2
-rw-r--r--chromium/chromeos/services/cros_healthd/private/cpp/BUILD.gn28
-rw-r--r--chromium/chromeos/services/cros_healthd/private/mojom/BUILD.gn6
-rw-r--r--chromium/chromeos/services/cros_healthd/private/mojom/cros_healthd_internal.mojom83
-rw-r--r--chromium/chromeos/services/cros_healthd/public/cpp/BUILD.gn12
-rw-r--r--chromium/chromeos/services/cros_healthd/public/mojom/BUILD.gn1
-rw-r--r--chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom8
-rw-r--r--chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom267
-rw-r--r--chromium/chromeos/services/cros_healthd/public/mojom/nullable_primitives.mojom18
-rw-r--r--chromium/chromeos/services/libassistant/BUILD.gn11
-rw-r--r--chromium/chromeos/services/libassistant/grpc/BUILD.gn32
-rw-r--r--chromium/chromeos/services/libassistant/grpc/external_services/BUILD.gn1
-rw-r--r--chromium/chromeos/services/libassistant/public/mojom/BUILD.gn2
-rw-r--r--chromium/chromeos/services/libassistant/public/mojom/service_controller.mojom3
-rw-r--r--chromium/chromeos/services/machine_learning/public/mojom/handwriting_recognizer.mojom8
-rw-r--r--chromium/chromeos/services/machine_learning/public/mojom/text_suggester.mojom11
-rw-r--r--chromium/chromeos/services/network_config/public/mojom/cros_network_config.mojom12
-rw-r--r--chromium/chromeos/services/network_health/public/mojom/BUILD.gn3
-rw-r--r--chromium/chromeos/services/network_health/public/mojom/network_health.mojom11
-rw-r--r--chromium/chromeos/startup/BUILD.gn10
-rw-r--r--chromium/chromeos/tast_control.gni177
-rw-r--r--chromium/chromeos/ui/frame/BUILD.gn2
125 files changed, 2866 insertions, 549 deletions
diff --git a/chromium/chromeos/BUILD.gn b/chromium/chromeos/BUILD.gn
index ae8537061ba..569ac60cdf3 100644
--- a/chromium/chromeos/BUILD.gn
+++ b/chromium/chromeos/BUILD.gn
@@ -6,6 +6,7 @@ import("//build/buildflag_header.gni")
import("//build/config/ui.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
+import("./features.gni")
import("./tast_control.gni")
if (is_chromeos_device) {
@@ -19,6 +20,11 @@ config("chromeos_implementation") {
defines = [ "CHROMEOS_IMPLEMENTATION" ]
}
+buildflag_header("features") {
+ header = "features.h"
+ flags = [ "USE_REAL_CHROMEOS_SERVICES=$use_real_chromeos_services" ]
+}
+
component("chromeos") {
deps = [ "//chromeos/dbus/constants" ]
sources = []
@@ -32,13 +38,10 @@ component("chromeos") {
deps += [
":chromeos_export",
"//base",
- "//net",
]
sources += [
"hugepage_text/hugepage_text.cc",
"hugepage_text/hugepage_text.h",
- "scanning/scanner.cc",
- "scanning/scanner.h",
]
if (current_cpu == "arm" || current_cpu == "x86") {
defines = [ "BINDER_IPC_32BIT" ]
@@ -111,15 +114,13 @@ test("chromeos_unittests") {
if (is_chromeos_ash) {
deps += [
":test_support",
- "//chromeos/ash/components/dbus:unit_tests",
+ "//chromeos/ash/components:unit_tests",
"//chromeos/crosapi/cpp:unit_tests",
"//chromeos/crosapi/mojom:unit_tests",
"//chromeos/dbus:test_support",
"//chromeos/dbus:unit_tests",
- "//chromeos/dbus/services:unit_tests",
"//chromeos/language/language_packs:unit_tests",
"//chromeos/login/login_state:unit_tests",
- "//chromeos/memory:unit_tests",
"//chromeos/network:test_support",
"//chromeos/network:unit_tests",
"//chromeos/printing:unit_tests",
@@ -132,7 +133,6 @@ test("chromeos_unittests") {
"//components/prefs:test_support",
"//components/proxy_config",
"//crypto",
- "//crypto:platform",
"//dbus:test_support",
"//google_apis",
"//net",
@@ -140,10 +140,6 @@ test("chromeos_unittests") {
"//services/network/public/cpp",
"//url",
]
-
- if (target_cpu == "x64") {
- deps += [ "//chromeos/memory/userspace_swap:unit_tests" ]
- }
}
data = [ "test/data/" ]
@@ -162,6 +158,12 @@ if (is_chromeos_ash && is_chromeos_device) {
# Assume every time we build cros_test_wrapper, we also build chrome and
# want to deploy it to the DUT.
deploy_chrome = true
+
+ # The only targets that currently use cros_test_wrapper are Telemetry-based
+ # tests, which have their own crash/symbolization handling code. So, strip
+ # Chrome before deploying in order to save disk space and avoid potential
+ # memory issues on 32-bit devices.
+ strip_chrome = true
}
tast_test("chrome_login_tast_tests") {
diff --git a/chromium/chromeos/ash/components/BUILD.gn b/chromium/chromeos/ash/components/BUILD.gn
new file mode 100644
index 00000000000..0e1717e6c66
--- /dev/null
+++ b/chromium/chromeos/ash/components/BUILD.gn
@@ -0,0 +1,23 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+# To add a unit test to this target, make a "unit_test" source_set in your
+# component and add a reference here.
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ "//chromeos/ash/components/dbus:unit_tests",
+ "//chromeos/ash/components/human_presence:unit_tests",
+ "//chromeos/ash/components/memory:unit_tests",
+ "//chromeos/ash/components/oobe_quick_start:unit_tests",
+ ]
+
+ if (target_cpu == "x64") {
+ deps += [ "//chromeos/ash/components/memory/userspace_swap:unit_tests" ]
+ }
+}
diff --git a/chromium/chromeos/assistant/BUILD.gn b/chromium/chromeos/ash/components/assistant/BUILD.gn
index 4a35552bdba..63b765afefa 100644
--- a/chromium/chromeos/assistant/BUILD.gn
+++ b/chromium/chromeos/ash/components/assistant/BUILD.gn
@@ -4,8 +4,11 @@
import("//ash/ambient/resources/resources.gni")
import("//build/buildflag_header.gni")
-import("//chromeos/assistant/ambient.gni")
-import("//chromeos/assistant/assistant.gni")
+import("//build/config/chromeos/ui_mode.gni")
+import("//chromeos/ash/components/assistant/ambient.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
buildflag_header("buildflags") {
header = "buildflags.h"
diff --git a/chromium/chromeos/assistant/ambient.gni b/chromium/chromeos/ash/components/assistant/ambient.gni
index 17ca5efbc32..17ca5efbc32 100644
--- a/chromium/chromeos/assistant/ambient.gni
+++ b/chromium/chromeos/ash/components/assistant/ambient.gni
diff --git a/chromium/chromeos/assistant/assistant.gni b/chromium/chromeos/ash/components/assistant/assistant.gni
index 0f462c2728e..5f4150e4d5c 100644
--- a/chromium/chromeos/assistant/assistant.gni
+++ b/chromium/chromeos/ash/components/assistant/assistant.gni
@@ -6,7 +6,7 @@ declare_args() {
enable_cros_libassistant = is_chromeos_ash && is_chrome_branded
# Enable a fake microphone, which can replay audio files as microphone input.
- # See chromeos/assistant/tools/send-audio.sh
+ # See chromeos/ash/components/assistant/tools/send-audio.sh
enable_fake_assistant_microphone = false
}
diff --git a/chromium/chromeos/assistant/test_support/BUILD.gn b/chromium/chromeos/ash/components/assistant/test_support/BUILD.gn
index a31514ebeac..dd26553dfbb 100644
--- a/chromium/chromeos/assistant/test_support/BUILD.gn
+++ b/chromium/chromeos/ash/components/assistant/test_support/BUILD.gn
@@ -1,3 +1,7 @@
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
+
static_library("test_support") {
testonly = true
sources = [ "expect_utils.h" ]
diff --git a/chromium/chromeos/ash/components/cros_elements/BUILD.gn b/chromium/chromeos/ash/components/cros_elements/BUILD.gn
new file mode 100644
index 00000000000..7be00d31f25
--- /dev/null
+++ b/chromium/chromeos/ash/components/cros_elements/BUILD.gn
@@ -0,0 +1,20 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//ui/webui/resources/tools/generate_grd.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
+
+generate_grd("build_grdp") {
+ grd_prefix = "cros_elements"
+ out_grd = "$target_gen_dir/${grd_prefix}_resources.grdp"
+
+ input_files = [ "button/button.js" ]
+
+ public_deps = [ "button" ]
+
+ input_files_base_dir = rebase_path(target_gen_dir, root_build_dir)
+ resource_path_prefix = "cros_elements"
+}
diff --git a/chromium/chromeos/ash/components/cros_elements/button/BUILD.gn b/chromium/chromeos/ash/components/cros_elements/button/BUILD.gn
new file mode 100644
index 00000000000..1aa395ecf13
--- /dev/null
+++ b/chromium/chromeos/ash/components/cros_elements/button/BUILD.gn
@@ -0,0 +1,30 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//third_party/material_web_components/rewrite_imports.gni")
+import("//tools/typescript/ts_library.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
+
+ts_library("button_ts") {
+ composite = true
+ root_dir = "."
+ out_dir = "$target_gen_dir/tsc"
+ tsconfig_base = "../tsconfig_base.json"
+ in_files = [ "button.ts" ]
+ deps = [ "//third_party/material_web_components:library" ]
+ path_mappings = [
+ "tslib|" + rebase_path(
+ "//third_party/material_web_components/components-chromium/node_modules/tslib/tslib.d.ts",
+ target_gen_dir),
+ "//resources/mwc/*|" + rebase_path(
+ "//third_party/material_web_components/components-chromium/node_modules/*",
+ target_gen_dir),
+ ]
+}
+
+rewrite_imports("button") {
+ deps = [ ":button_ts" ]
+}
diff --git a/chromium/chromeos/ash/components/dbus/BUILD.gn b/chromium/chromeos/ash/components/dbus/BUILD.gn
index 09406155e47..cbf0fcbfa42 100644
--- a/chromium/chromeos/ash/components/dbus/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/BUILD.gn
@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//build/config/ui.gni")
+import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
assert(is_chromeos_ash, "Non ChromeOS builds must not depend on //chromeos/ash")
@@ -16,14 +17,25 @@ source_set("unit_tests") {
"//chromeos/ash/components/dbus/authpolicy",
"//chromeos/ash/components/dbus/authpolicy:authpolicy_proto",
"//chromeos/ash/components/dbus/biod:test_support",
+ "//chromeos/ash/components/dbus/hiberman",
+ "//chromeos/ash/components/dbus/ip_peripheral:test_support",
+ "//chromeos/ash/components/dbus/rmad:rmad_proto",
+ "//chromeos/ash/components/dbus/rmad:test_support",
+ "//chromeos/ash/components/dbus/services:unit_tests",
+ "//chromeos/ash/components/dbus/system_clock:unit_tests",
"//chromeos/dbus:test_support",
"//chromeos/dbus/session_manager",
"//components/account_id",
"//dbus",
]
+ if (is_cfm) {
+ deps +=
+ [ "//chromeos/ash/components/dbus/chromebox_for_meetings:unit_tests" ]
+ }
sources = [
"authpolicy/fake_authpolicy_client_unittest.cc",
"biod/biod_client_unittest.cc",
"biod/fake_biod_client_unittest.cc",
+ "hiberman/hiberman_client_unittest.cc",
]
}
diff --git a/chromium/chromeos/dbus/chromebox_for_meetings/BUILD.gn b/chromium/chromeos/ash/components/dbus/chromebox_for_meetings/BUILD.gn
index ac99ee0eb62..c5186a0820a 100644
--- a/chromium/chromeos/dbus/chromebox_for_meetings/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/chromebox_for_meetings/BUILD.gn
@@ -2,10 +2,11 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
assert(is_cfm, "Non-CfM builds cannot depend on this library")
component("chromebox_for_meetings") {
diff --git a/chromium/chromeos/ash/components/dbus/cicerone/BUILD.gn b/chromium/chromeos/ash/components/dbus/cicerone/BUILD.gn
new file mode 100644
index 00000000000..d3aabe3254b
--- /dev/null
+++ b/chromium/chromeos/ash/components/dbus/cicerone/BUILD.gn
@@ -0,0 +1,33 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+component("cicerone") {
+ defines = [ "IS_CICERONE_IMPL" ]
+ deps = [
+ ":cicerone_proto",
+ "//base",
+ "//chromeos/dbus/common",
+ "//dbus",
+ ]
+
+ sources = [
+ "cicerone_client.cc",
+ "cicerone_client.h",
+ "fake_cicerone_client.cc",
+ "fake_cicerone_client.h",
+ ]
+}
+
+proto_library("cicerone_proto") {
+ sources = [
+ "//third_party/cros_system_api/dbus/vm_cicerone/cicerone_service.proto",
+ ]
+
+ proto_out_dir = "chromeos/ash/components/dbus/cicerone"
+}
diff --git a/chromium/chromeos/ash/components/dbus/concierge/BUILD.gn b/chromium/chromeos/ash/components/dbus/concierge/BUILD.gn
new file mode 100644
index 00000000000..b49ae068d44
--- /dev/null
+++ b/chromium/chromeos/ash/components/dbus/concierge/BUILD.gn
@@ -0,0 +1,35 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+component("concierge") {
+ defines = [ "IS_CONCIERGE_IMPL" ]
+ deps = [
+ ":concierge_proto",
+ "//base",
+ "//chromeos/ash/components/dbus/cicerone",
+ "//chromeos/ash/components/dbus/cicerone:cicerone_proto",
+ "//chromeos/dbus/common",
+ "//dbus",
+ ]
+
+ sources = [
+ "concierge_client.cc",
+ "concierge_client.h",
+ "fake_concierge_client.cc",
+ "fake_concierge_client.h",
+ ]
+}
+
+proto_library("concierge_proto") {
+ sources = [
+ "//third_party/cros_system_api/dbus/vm_concierge/concierge_service.proto",
+ ]
+
+ proto_out_dir = "chromeos/ash/components/dbus/concierge"
+}
diff --git a/chromium/chromeos/dbus/cros_healthd/BUILD.gn b/chromium/chromeos/ash/components/dbus/cros_healthd/BUILD.gn
index e7c5e549426..9b2e41ac8ff 100644
--- a/chromium/chromeos/dbus/cros_healthd/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/cros_healthd/BUILD.gn
@@ -2,10 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-Chrome-OS builds cannot depend on //chromeos")
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash)
component("cros_healthd") {
- defines = [ "IS_CROS_HEALTHD_IMPL" ]
+ defines = [ "IS_CHROMEOS_ASH_COMPONENTS_DBUS_CROS_HEALTHD_IMPL" ]
deps = [
"//base",
@@ -22,7 +24,5 @@ component("cros_healthd") {
"cros_healthd_client.h",
"fake_cros_healthd_client.cc",
"fake_cros_healthd_client.h",
- "fake_cros_healthd_service.cc",
- "fake_cros_healthd_service.h",
]
}
diff --git a/chromium/chromeos/dbus/fusebox/BUILD.gn b/chromium/chromeos/ash/components/dbus/fusebox/BUILD.gn
index 9b84352ac77..1f52897cd56 100644
--- a/chromium/chromeos/dbus/fusebox/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/fusebox/BUILD.gn
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
assert(is_chromeos_ash, "Non-Chrome-OS builds must not depend on //chromeos")
@@ -25,5 +26,5 @@ component("fusebox") {
proto_library("proto") {
sources = [ "//third_party/cros_system_api/dbus/fusebox/fusebox.proto" ]
- proto_out_dir = "chromeos/dbus/fusebox"
+ proto_out_dir = "chromeos/ash/components/dbus/fusebox"
}
diff --git a/chromium/chromeos/dbus/hammerd/BUILD.gn b/chromium/chromeos/ash/components/dbus/hammerd/BUILD.gn
index 60d6249acf0..ee78fbfd594 100644
--- a/chromium/chromeos/dbus/hammerd/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/hammerd/BUILD.gn
@@ -2,7 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
component("hammerd") {
defines = [ "IS_HAMMERD_IMPL" ]
diff --git a/chromium/chromeos/dbus/hiberman/BUILD.gn b/chromium/chromeos/ash/components/dbus/hiberman/BUILD.gn
index dc16f485cd4..ced45344a62 100644
--- a/chromium/chromeos/dbus/hiberman/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/hiberman/BUILD.gn
@@ -2,7 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("hiberman") {
output_name = "chromeos_dbus_hiberman"
diff --git a/chromium/chromeos/dbus/ip_peripheral/BUILD.gn b/chromium/chromeos/ash/components/dbus/ip_peripheral/BUILD.gn
index 01fbc666707..9878fe3c40a 100644
--- a/chromium/chromeos/dbus/ip_peripheral/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/ip_peripheral/BUILD.gn
@@ -2,7 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("ip_peripheral") {
defines = [ "IS_DBUS_IP_PERIPHERAL_CLIENT_IMPL" ]
diff --git a/chromium/chromeos/dbus/media_analytics/BUILD.gn b/chromium/chromeos/ash/components/dbus/media_analytics/BUILD.gn
index 1f8fd5d94ec..5183e34e377 100644
--- a/chromium/chromeos/dbus/media_analytics/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/media_analytics/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("media_analytics") {
defines = [ "IS_MEDIA_ANALYTICS_CLIENT_IMPL" ]
@@ -27,5 +28,5 @@ component("media_analytics") {
proto_library("media_perception_proto") {
sources = [ "media_perception.proto" ]
- proto_out_dir = "chromeos/dbus/media_perception"
+ proto_out_dir = "chromeos/ash/components/dbus/media_perception"
}
diff --git a/chromium/chromeos/dbus/patchpanel/BUILD.gn b/chromium/chromeos/ash/components/dbus/patchpanel/BUILD.gn
index d53234d8593..1f3d38ed7e6 100644
--- a/chromium/chromeos/dbus/patchpanel/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/patchpanel/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("patchpanel") {
defines = [ "IS_PATCHPANEL_IMPL" ]
@@ -29,5 +30,5 @@ proto_library("patchpanel_proto") {
"//third_party/cros_system_api/dbus/patchpanel/patchpanel_service.proto",
]
- proto_out_dir = "chromeos/dbus/patchpanel"
+ proto_out_dir = "chromeos/ash/components/dbus/patchpanel"
}
diff --git a/chromium/chromeos/dbus/pciguard/BUILD.gn b/chromium/chromeos/ash/components/dbus/pciguard/BUILD.gn
index 795ccb90ec0..350d5efce6a 100644
--- a/chromium/chromeos/dbus/pciguard/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/pciguard/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("pciguard") {
defines = [ "IS_PCIGUARD_IMPL" ]
diff --git a/chromium/chromeos/ash/components/dbus/rgbkbd/BUILD.gn b/chromium/chromeos/ash/components/dbus/rgbkbd/BUILD.gn
new file mode 100644
index 00000000000..81e8ee5d5c6
--- /dev/null
+++ b/chromium/chromeos/ash/components/dbus/rgbkbd/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-Chrome-OS builds must not depend on //chromeos")
+
+component("rgbkbd") {
+ defines = [ "IS_RGBKBD_CLIENT_IMPL" ]
+
+ deps = [
+ "//base",
+ "//chromeos/dbus/common",
+ "//dbus",
+ ]
+
+ sources = [
+ "fake_rgbkbd_client.cc",
+ "fake_rgbkbd_client.h",
+ "rgbkbd_client.cc",
+ "rgbkbd_client.h",
+ ]
+}
diff --git a/chromium/chromeos/dbus/rmad/BUILD.gn b/chromium/chromeos/ash/components/dbus/rmad/BUILD.gn
index e607fd5af5f..0986a07101b 100644
--- a/chromium/chromeos/dbus/rmad/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/rmad/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
component("rmad") {
defines = [ "IS_RMAD_IMPL" ]
@@ -45,5 +46,5 @@ source_set("test_support") {
proto_library("rmad_proto") {
sources = [ "//third_party/cros_system_api/dbus/rmad/rmad.proto" ]
- proto_out_dir = "chromeos/dbus/rmad"
+ proto_out_dir = "chromeos/ash/components/dbus/rmad"
}
diff --git a/chromium/chromeos/ash/components/dbus/seneschal/BUILD.gn b/chromium/chromeos/ash/components/dbus/seneschal/BUILD.gn
new file mode 100644
index 00000000000..176f22e70d0
--- /dev/null
+++ b/chromium/chromeos/ash/components/dbus/seneschal/BUILD.gn
@@ -0,0 +1,33 @@
+# Copyright 2021 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//third_party/protobuf/proto_library.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+component("seneschal") {
+ defines = [ "IS_SENESCHAL_IMPL" ]
+ deps = [
+ ":seneschal_proto",
+ "//base",
+ "//chromeos/ash/components/dbus/cicerone",
+ "//chromeos/dbus/common",
+ "//dbus",
+ ]
+
+ sources = [
+ "fake_seneschal_client.cc",
+ "fake_seneschal_client.h",
+ "seneschal_client.cc",
+ "seneschal_client.h",
+ ]
+}
+
+proto_library("seneschal_proto") {
+ sources =
+ [ "//third_party/cros_system_api/dbus/seneschal/seneschal_service.proto" ]
+
+ proto_out_dir = "chromeos/ash/components/dbus/seneschal"
+}
diff --git a/chromium/chromeos/dbus/services/BUILD.gn b/chromium/chromeos/ash/components/dbus/services/BUILD.gn
index 57830d41a6f..161bbe20dbc 100644
--- a/chromium/chromeos/dbus/services/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/services/BUILD.gn
@@ -2,10 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
source_set("services") {
- output_name = "chromeos_dbus_services"
+ output_name = "ash_dbus_services"
deps = [
"//base",
diff --git a/chromium/chromeos/dbus/system_clock/BUILD.gn b/chromium/chromeos/ash/components/dbus/system_clock/BUILD.gn
index 3d4ab59cf27..52a1b93e046 100644
--- a/chromium/chromeos/dbus/system_clock/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/system_clock/BUILD.gn
@@ -2,7 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
component("system_clock") {
defines = [ "IS_SYSTEM_CLOCK_IMPL" ]
diff --git a/chromium/chromeos/dbus/system_proxy/BUILD.gn b/chromium/chromeos/ash/components/dbus/system_proxy/BUILD.gn
index 5c87e56b27a..076daf05770 100644
--- a/chromium/chromeos/dbus/system_proxy/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/system_proxy/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/chromeos/ui_mode.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
component("system_proxy") {
defines = [ "IS_SYSTEM_PROXY_IMPL" ]
@@ -26,5 +27,5 @@ component("system_proxy") {
proto_library("system_proxy_proto") {
sources = [ "//third_party/cros_system_api/dbus/system_proxy/system_proxy_service.proto" ]
- proto_out_dir = "chromeos/dbus/system_proxy"
+ proto_out_dir = "chromeos/ash/components/dbus/system_proxy"
}
diff --git a/chromium/chromeos/dbus/typecd/BUILD.gn b/chromium/chromeos/ash/components/dbus/typecd/BUILD.gn
index d29b0380812..56e7d78162b 100644
--- a/chromium/chromeos/dbus/typecd/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/typecd/BUILD.gn
@@ -2,9 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/ui.gni")
import("//third_party/protobuf/proto_library.gni")
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos")
component("typecd") {
defines = [ "IS_TYPECD_IMPL" ]
diff --git a/chromium/chromeos/ash/components/dbus/upstart/BUILD.gn b/chromium/chromeos/ash/components/dbus/upstart/BUILD.gn
index 8fcdef873ec..ad68f7583c3 100644
--- a/chromium/chromeos/ash/components/dbus/upstart/BUILD.gn
+++ b/chromium/chromeos/ash/components/dbus/upstart/BUILD.gn
@@ -14,8 +14,8 @@ component("upstart") {
"//chromeos/ash/components/dbus/authpolicy",
"//chromeos/ash/components/dbus/authpolicy:authpolicy_proto",
"//chromeos/ash/components/dbus/kerberos",
+ "//chromeos/ash/components/dbus/media_analytics",
"//chromeos/dbus/common",
- "//chromeos/dbus/media_analytics",
"//dbus",
]
diff --git a/chromium/chromeos/ash/components/dbus/usb/BUILD.gn b/chromium/chromeos/ash/components/dbus/usb/BUILD.gn
new file mode 100644
index 00000000000..6692a213e88
--- /dev/null
+++ b/chromium/chromeos/ash/components/dbus/usb/BUILD.gn
@@ -0,0 +1,23 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/ui.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+component("usb") {
+ defines = [ "IS_USB_CLIENT_IMPL" ]
+ deps = [
+ "//base",
+ "//dbus",
+ ]
+
+ sources = [
+ "fake_usbguard_client.cc",
+ "fake_usbguard_client.h",
+ "usbguard_client.cc",
+ "usbguard_client.h",
+ "usbguard_observer.h",
+ ]
+}
diff --git a/chromium/chromeos/components/hibernate/BUILD.gn b/chromium/chromeos/ash/components/hibernate/BUILD.gn
index b11b4ea5b86..9e5d3f09f61 100644
--- a/chromium/chromeos/components/hibernate/BUILD.gn
+++ b/chromium/chromeos/ash/components/hibernate/BUILD.gn
@@ -3,7 +3,10 @@
# found in the LICENSE file.
import("//build/buildflag_header.gni")
-import("//chromeos/components/hibernate/buildflags.gni")
+import("//build/config/chromeos/ui_mode.gni")
+import("//chromeos/ash/components/hibernate/buildflags.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
# This file is in a separate directory so all targets in the build can refer to
# the buildflag header to get the necessary preprocessor defines without
diff --git a/chromium/chromeos/components/hibernate/buildflags.gni b/chromium/chromeos/ash/components/hibernate/buildflags.gni
index a5280df988b..a5280df988b 100644
--- a/chromium/chromeos/components/hibernate/buildflags.gni
+++ b/chromium/chromeos/ash/components/hibernate/buildflags.gni
diff --git a/chromium/chromeos/components/hps/BUILD.gn b/chromium/chromeos/ash/components/human_presence/BUILD.gn
index 340915b1149..e8566de77c2 100644
--- a/chromium/chromeos/components/hps/BUILD.gn
+++ b/chromium/chromeos/ash/components/human_presence/BUILD.gn
@@ -8,26 +8,26 @@ import("//tools/typescript/ts_library.gni")
assert(is_chromeos_ash)
-static_library("hps") {
+static_library("human_presence") {
sources = [
- "hps_configuration.cc",
- "hps_configuration.h",
- "hps_internals.cc",
- "hps_internals.h",
+ "human_presence_configuration.cc",
+ "human_presence_configuration.h",
+ "human_presence_internals.cc",
+ "human_presence_internals.h",
]
deps = [ "//ash/constants:constants" ]
public_deps = [
"//base",
- "//chromeos/dbus/hps",
- "//chromeos/dbus/hps:hps_proto",
+ "//chromeos/dbus/human_presence",
+ "//chromeos/dbus/human_presence:hps_proto",
]
}
-ts_library("hps_internals_ts") {
+ts_library("human_presence_internals_ts") {
root_dir = "."
- in_files = [ "resources/hps_internals.ts" ]
+ in_files = [ "resources/human_presence_internals.ts" ]
definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ]
deps = [
"//third_party/polymer/v3_0:library",
@@ -37,9 +37,9 @@ ts_library("hps_internals_ts") {
source_set("unit_tests") {
testonly = true
- sources = [ "hps_configuration_unittest.cc" ]
+ sources = [ "human_presence_configuration_unittest.cc" ]
deps = [
- ":hps",
+ ":human_presence",
"//ash/constants:constants",
"//base/test:test_support",
"//testing/gtest",
@@ -49,7 +49,7 @@ source_set("unit_tests") {
js2gtest("browser_tests_js") {
test_type = "webui"
- sources = [ "test/hps_internals_browsertest.js" ]
+ sources = [ "test/human_presence_internals_browsertest.js" ]
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
}
diff --git a/chromium/chromeos/memory/BUILD.gn b/chromium/chromeos/ash/components/memory/BUILD.gn
index c1adb29ab72..93b4be58fb7 100644
--- a/chromium/chromeos/memory/BUILD.gn
+++ b/chromium/chromeos/ash/components/memory/BUILD.gn
@@ -3,21 +3,15 @@
# found in the LICENSE file.
import("//build/buildflag_header.gni")
+import("//build/config/chromeos/ui_mode.gni")
import("//testing/test.gni")
-assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")
-
-# Used by targets that compile into the implementation.
-config("chromeos_implementation") {
- defines = [ "CHROMEOS_IMPLEMENTATION" ]
-}
+assert(is_chromeos_ash, "Non ChromeOS builds must not depend on //chromeos/ash")
component("memory") {
- defines = [ "IS_CHROMEOS_MEMORY_IMPL" ]
- configs += [ ":chromeos_implementation" ]
+ defines = [ "IS_ASH_MEMORY_IMPL" ]
deps = [
"//base",
- "//chromeos:chromeos_export",
"//chromeos/dbus",
"//chromeos/dbus/constants",
"//chromeos/dbus/resourced:resourced",
@@ -53,6 +47,7 @@ source_set("unit_tests") {
"//testing/gtest",
]
sources = [
+ "memory_unittest.cc",
"pagemap_unittest.cc",
"pressure/system_memory_pressure_evaluator_unittest.cc",
]
diff --git a/chromium/chromeos/memory/userspace_swap/BUILD.gn b/chromium/chromeos/ash/components/memory/userspace_swap/BUILD.gn
index 38876fde910..c5f6df360b1 100644
--- a/chromium/chromeos/memory/userspace_swap/BUILD.gn
+++ b/chromium/chromeos/ash/components/memory/userspace_swap/BUILD.gn
@@ -3,15 +3,11 @@
# found in the LICENSE file.
import("//build/buildflag_header.gni")
+import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//testing/test.gni")
-assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")
-
-# Used by targets that compile into the implementation.
-config("chromeos_implementation") {
- defines = [ "CHROMEOS_IMPLEMENTATION" ]
-}
+assert(is_chromeos_ash, "Non ChromeOS builds must not depend on //chromeos/ash")
mojom("mojom") {
sources = [ "userspace_swap.mojom" ]
@@ -23,17 +19,15 @@ mojom("mojom") {
}
component("userspace_swap") {
- configs += [ ":chromeos_implementation" ]
+ defines = [ "IS_USERSPACE_SWAP_IMPL" ]
deps = [
":mojom",
"//base",
- "//chromeos:chromeos_export",
+ "//chromeos/ash/components/memory",
"//chromeos/dbus",
"//chromeos/dbus/constants",
- "//chromeos/memory",
"//components/memory_pressure",
"//crypto",
- "//crypto:platform",
"//services/resource_coordinator/public/cpp/memory_instrumentation",
"//third_party/zlib/google:compression_utils",
]
diff --git a/chromium/chromeos/memory/userspace_swap/userspace_swap.mojom b/chromium/chromeos/ash/components/memory/userspace_swap/userspace_swap.mojom
index d863458c89f..d863458c89f 100644
--- a/chromium/chromeos/memory/userspace_swap/userspace_swap.mojom
+++ b/chromium/chromeos/ash/components/memory/userspace_swap/userspace_swap.mojom
diff --git a/chromium/chromeos/ash/components/network/metrics/BUILD.gn b/chromium/chromeos/ash/components/network/metrics/BUILD.gn
new file mode 100644
index 00000000000..8783043e2bf
--- /dev/null
+++ b/chromium/chromeos/ash/components/network/metrics/BUILD.gn
@@ -0,0 +1,53 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("metrics") {
+ # Due to circular dependency, others should depend on via chromeos/network.
+ visibility = [ "//chromeos/network" ]
+
+ configs += [ "//chromeos/network:network_config" ]
+ deps = [
+ "//base",
+ "//chromeos/login/login_state",
+ "//chromeos/services/network_config/public/mojom",
+ ]
+ sources = [
+ "connection_info_metrics_logger.cc",
+ "connection_info_metrics_logger.h",
+ "connection_results.cc",
+ "connection_results.h",
+ "esim_policy_login_metrics_logger.cc",
+ "esim_policy_login_metrics_logger.h",
+ "network_metrics_helper.cc",
+ "network_metrics_helper.h",
+ "vpn_network_metrics_helper.cc",
+ "vpn_network_metrics_helper.h",
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ "//ash/constants",
+ "//base",
+ "//base/test:test_support",
+ "//chromeos/dbus/shill",
+ "//chromeos/login/login_state",
+ "//chromeos/network",
+ "//chromeos/network:test_support",
+ "//components/prefs",
+ "//components/prefs:test_support",
+ "//testing/gtest",
+ ]
+ sources = [
+ "connection_info_metrics_logger_unittest.cc",
+ "esim_policy_login_metrics_logger_unittest.cc",
+ "network_metrics_helper_unittest.cc",
+ "vpn_network_metrics_helper_unittest.cc",
+ ]
+}
diff --git a/chromium/chromeos/ash/components/network/onc/BUILD.gn b/chromium/chromeos/ash/components/network/onc/BUILD.gn
new file mode 100644
index 00000000000..9803b5cf73a
--- /dev/null
+++ b/chromium/chromeos/ash/components/network/onc/BUILD.gn
@@ -0,0 +1,82 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//testing/libfuzzer/fuzzer_test.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("onc") {
+ # Due to circular dependency, others should depend on via chromeos/network.
+ visibility = [
+ "//chromeos/ash/components/network/proxy",
+ "//chromeos/network",
+ ]
+
+ configs += [ "//chromeos/network:network_config" ]
+ deps = [
+ "//base",
+ "//chromeos/components/onc",
+ "//components/account_id",
+ "//components/certificate_matching",
+ "//components/device_event_log",
+ "//components/onc",
+ "//components/prefs",
+ "//components/proxy_config",
+ "//components/url_formatter",
+ "//components/user_manager",
+ "//net",
+ ]
+ sources = [
+ "network_onc_utils.cc",
+ "network_onc_utils.h",
+ "onc_certificate_importer.h",
+ "onc_certificate_importer_impl.cc",
+ "onc_certificate_importer_impl.h",
+ "onc_certificate_pattern.cc",
+ "onc_certificate_pattern.h",
+ "onc_merger.cc",
+ "onc_merger.h",
+ "onc_normalizer.cc",
+ "onc_normalizer.h",
+ "onc_translation_tables.cc",
+ "onc_translation_tables.h",
+ "onc_translator.h",
+ "onc_translator_onc_to_shill.cc",
+ "onc_translator_shill_to_onc.cc",
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ "//base/test:test_support",
+ "//chromeos:test_utils",
+ "//chromeos/components/onc",
+ "//chromeos/components/onc:test_support",
+ "//chromeos/network",
+ "//components/onc",
+ "//crypto:test_support",
+ "//net:test_support",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+ sources = [
+ "network_onc_utils_unittest.cc",
+ "onc_certificate_importer_impl_unittest.cc",
+ "onc_certificate_pattern_unittest.cc",
+ "onc_merger_unittest.cc",
+ "onc_normalizer_unittest.cc",
+ "onc_translator_unittest.cc",
+ ]
+}
+
+fuzzer_test("onc_normalizer_fuzzer") {
+ sources = [ "onc_normalizer_fuzzer.cc" ]
+ deps = [
+ "//base",
+ "//chromeos/components/onc",
+ "//chromeos/network",
+ ]
+}
diff --git a/chromium/chromeos/ash/components/network/portal_detector/BUILD.gn b/chromium/chromeos/ash/components/network/portal_detector/BUILD.gn
new file mode 100644
index 00000000000..1628a1afc32
--- /dev/null
+++ b/chromium/chromeos/ash/components/network/portal_detector/BUILD.gn
@@ -0,0 +1,37 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("portal_detector") {
+ configs += [ "//chromeos/network:network_config" ]
+ deps = [
+ "//base",
+ "//chromeos/network",
+ "//components/device_event_log",
+ "//net",
+ ]
+ sources = [
+ "network_portal_detector.cc",
+ "network_portal_detector.h",
+ "network_portal_detector_strategy.cc",
+ "network_portal_detector_strategy.h",
+ "network_portal_detector_stub.cc",
+ "network_portal_detector_stub.h",
+ ]
+}
+
+source_set("test_support") {
+ testonly = true
+ deps = [
+ ":portal_detector",
+ "//testing/gmock",
+ ]
+ sources = [
+ "mock_network_portal_detector.cc",
+ "mock_network_portal_detector.h",
+ ]
+}
diff --git a/chromium/chromeos/ash/components/network/proxy/BUILD.gn b/chromium/chromeos/ash/components/network/proxy/BUILD.gn
new file mode 100644
index 00000000000..82fad61c46b
--- /dev/null
+++ b/chromium/chromeos/ash/components/network/proxy/BUILD.gn
@@ -0,0 +1,55 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("proxy") {
+ # Due to circular dependency, others should depend on via chromeos/network.
+ visibility = [ "//chromeos/network" ]
+
+ configs += [ "//chromeos/network:network_config" ]
+ deps = [
+ "//base",
+ "//chromeos/ash/components/network/onc",
+ "//chromeos/dbus/shill",
+ "//components/onc",
+ "//components/pref_registry",
+ "//components/prefs",
+ "//components/proxy_config",
+ "//components/user_manager",
+ "//dbus",
+ "//net",
+ ]
+ sources = [
+ "proxy_config_handler.cc",
+ "proxy_config_handler.h",
+ "proxy_config_service_impl.cc",
+ "proxy_config_service_impl.h",
+ "ui_proxy_config_service.cc",
+ "ui_proxy_config_service.h",
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ "//base",
+ "//chromeos/dbus/shill",
+ "//chromeos/network",
+ "//chromeos/network:test_support",
+ "//components/onc",
+ "//components/prefs",
+ "//components/prefs:test_support",
+ "//components/proxy_config",
+ "//components/sync_preferences:test_support",
+ "//net:test_support",
+ "//testing/gtest",
+ ]
+ sources = [
+ "proxy_config_service_impl_unittest.cc",
+ "ui_proxy_config_service_unittest.cc",
+ ]
+}
diff --git a/chromium/chromeos/ash/components/oobe_quick_start/BUILD.gn b/chromium/chromeos/ash/components/oobe_quick_start/BUILD.gn
new file mode 100644
index 00000000000..d1ee1e6a73f
--- /dev/null
+++ b/chromium/chromeos/ash/components/oobe_quick_start/BUILD.gn
@@ -0,0 +1,30 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("oobe_quick_start") {
+ deps = [
+ "connectivity",
+ "//base",
+ ]
+ sources = [
+ "verification_shapes.cc",
+ "verification_shapes.h",
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ ":oobe_quick_start",
+ "connectivity:test_support",
+ "connectivity:unit_tests",
+ "//base",
+ "//base/test:test_support",
+ ]
+ sources = [ "verification_shapes_unittest.cc" ]
+}
diff --git a/chromium/chromeos/ash/components/oobe_quick_start/connectivity/BUILD.gn b/chromium/chromeos/ash/components/oobe_quick_start/connectivity/BUILD.gn
new file mode 100644
index 00000000000..72cfeb1a637
--- /dev/null
+++ b/chromium/chromeos/ash/components/oobe_quick_start/connectivity/BUILD.gn
@@ -0,0 +1,40 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash")
+
+source_set("connectivity") {
+ deps = [
+ "//base",
+ "//device/bluetooth",
+ ]
+ sources = [
+ "target_device_bootstrap_controller.cc",
+ "target_device_bootstrap_controller.h",
+ "target_device_bootstrap_controller_impl.cc",
+ "target_device_bootstrap_controller_impl.h",
+ ]
+}
+
+source_set("test_support") {
+ testonly = true
+ public_deps = [ ":connectivity" ]
+ deps = [ "//base" ]
+ sources = [
+ # Add fakes/mocks here.
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ deps = [
+ ":connectivity",
+ "//base",
+ "//base/test:test_support",
+ "//device/bluetooth:mocks",
+ ]
+ sources = [ "target_device_bootstrap_controller_impl_unittest.cc" ]
+}
diff --git a/chromium/chromeos/ash/components/scanning/BUILD.gn b/chromium/chromeos/ash/components/scanning/BUILD.gn
new file mode 100644
index 00000000000..d0bc1ed4843
--- /dev/null
+++ b/chromium/chromeos/ash/components/scanning/BUILD.gn
@@ -0,0 +1,19 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
+
+component("scanning") {
+ defines = [ "IS_SCANNING_IMPL" ]
+ deps = [
+ "//base",
+ "//net",
+ ]
+ sources = [
+ "scanner.cc",
+ "scanner.h",
+ ]
+}
diff --git a/chromium/chromeos/ash/resources/BUILD.gn b/chromium/chromeos/ash/resources/BUILD.gn
new file mode 100644
index 00000000000..568912acfce
--- /dev/null
+++ b/chromium/chromeos/ash/resources/BUILD.gn
@@ -0,0 +1,36 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/chromeos/ui_mode.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
+import("//tools/grit/grit_rule.gni")
+
+assert(is_chromeos_ash)
+
+grit("resources") {
+ source = "ash_resources.grd"
+
+ outputs = [
+ "grit/ash_resources.h",
+ "grit/ash_resources_map.cc",
+ "grit/ash_resources_map.h",
+ "ash_resources.pak",
+ ]
+ output_dir = "$root_gen_dir/chromeos/ash"
+
+ defines = [ "enable_cros_libassistant=$enable_cros_libassistant" ]
+
+ grit_flags = [
+ "-E",
+ "mojom_root=" + rebase_path(root_gen_dir, root_build_dir),
+ ]
+
+ deps = [
+ "//ash/components/multidevice/mojom:mojom_js",
+ "//ash/services/cellular_setup/public/mojom:mojom_js",
+ "//ash/services/device_sync/public/mojom:mojom_js",
+ "//ash/services/multidevice_setup/public/mojom:mojom_js",
+ "//chromeos/ash/components/human_presence:human_presence_internals_ts",
+ ]
+}
diff --git a/chromium/chromeos/services/assistant/BUILD.gn b/chromium/chromeos/ash/services/assistant/BUILD.gn
index 8fcd00a71e8..7d75e7bab45 100644
--- a/chromium/chromeos/services/assistant/BUILD.gn
+++ b/chromium/chromeos/ash/services/assistant/BUILD.gn
@@ -4,7 +4,7 @@
import("//build/buildflag_header.gni")
import("//build/config/chromeos/ui_mode.gni")
-import("//chromeos/assistant/assistant.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
assert(is_chromeos_ash)
@@ -58,8 +58,10 @@ component("lib") {
"//ash/components/audio",
"//ash/constants",
"//base",
- "//chromeos/assistant:buildflags",
+ "//chromeos/ash/components/assistant:buildflags",
"//chromeos/dbus",
+ "//chromeos/dbus/dlcservice:dlcservice",
+ "//chromeos/dbus/dlcservice:dlcservice_proto",
"//chromeos/dbus/power",
"//chromeos/dbus/power:power_manager_proto",
"//chromeos/dbus/util",
@@ -102,8 +104,8 @@ source_set("tests") {
"//ash/public/cpp/assistant/test_support",
"//base",
"//base/test:test_support",
- "//chromeos/assistant:buildflags",
- "//chromeos/assistant/test_support",
+ "//chromeos/ash/components/assistant:buildflags",
+ "//chromeos/ash/components/assistant/test_support",
"//chromeos/dbus:test_support",
"//chromeos/dbus/audio",
"//chromeos/dbus/power",
@@ -164,7 +166,7 @@ static_library("test_support") {
deps = [
":lib",
"//base",
- "//chromeos/assistant:buildflags",
+ "//chromeos/ash/components/assistant:buildflags",
"//chromeos/services/assistant/public/cpp",
"//chromeos/services/assistant/public/mojom",
"//chromeos/services/assistant/public/proto",
diff --git a/chromium/chromeos/services/assistant/audio_decoder/BUILD.gn b/chromium/chromeos/ash/services/assistant/audio_decoder/BUILD.gn
index bbb0fb5b333..71e78eb1034 100644
--- a/chromium/chromeos/services/assistant/audio_decoder/BUILD.gn
+++ b/chromium/chromeos/ash/services/assistant/audio_decoder/BUILD.gn
@@ -2,8 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/assistant/assistant.gni")
+import("//build/config/chromeos/ui_mode.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
+assert(is_chromeos_ash, "Non Chrome OS builds cannot depend on //chromeos/ash")
assert(enable_cros_libassistant)
source_set("lib") {
diff --git a/chromium/chromeos/components/BUILD.gn b/chromium/chromeos/components/BUILD.gn
index d8a2a34bddb..306a1a44371 100644
--- a/chromium/chromeos/components/BUILD.gn
+++ b/chromium/chromeos/components/BUILD.gn
@@ -23,12 +23,12 @@ test("chromeos_components_unittests") {
"//build:chromeos_buildflags",
"//chromeos/components/cdm_factory_daemon:unit_tests",
"//chromeos/components/feature_usage:unit_tests",
- "//chromeos/components/hps:unit_tests",
"//chromeos/components/local_search_service:unit_tests",
"//chromeos/components/local_search_service/public/mojom:unit_tests",
"//chromeos/components/mojo_bootstrap:unit_tests",
"//chromeos/components/onc:unit_tests",
"//chromeos/components/quick_answers:unit_tests",
+ "//chromeos/components/security_token_pin:unit_tests",
"//chromeos/components/sensors:unit_tests",
"//chromeos/components/string_matching:unit_tests",
"//chromeos/components/sync_wifi:unit_tests",
diff --git a/chromium/chromeos/components/cdm_factory_daemon/mojom/cdm_factory_daemon.mojom b/chromium/chromeos/components/cdm_factory_daemon/mojom/cdm_factory_daemon.mojom
index 655808b4f2b..c446ab3f1a2 100644
--- a/chromium/chromeos/components/cdm_factory_daemon/mojom/cdm_factory_daemon.mojom
+++ b/chromium/chromeos/components/cdm_factory_daemon/mojom/cdm_factory_daemon.mojom
@@ -84,4 +84,9 @@ interface CdmFactoryDaemon {
// Deprecated, do not use.
[MinVersion=4]
RemovedMethod5@5();
+
+ // Returns the provisioned HDCP Key back to Chrome. If successful, it will
+ // return the full key. If not, it will return an empty string.
+ [MinVersion=5]
+ GetHdcp14Key@6() => (string hdcp_key_base64);
};
diff --git a/chromium/chromeos/components/disks/BUILD.gn b/chromium/chromeos/components/disks/BUILD.gn
new file mode 100644
index 00000000000..140b2e7c175
--- /dev/null
+++ b/chromium/chromeos/components/disks/BUILD.gn
@@ -0,0 +1,11 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("prefs") {
+ sources = [
+ "disks_prefs.cc",
+ "disks_prefs.h",
+ ]
+ deps = [ "//components/prefs" ]
+}
diff --git a/chromium/chromeos/components/local_search_service/public/mojom/local_search_service.mojom b/chromium/chromeos/components/local_search_service/public/mojom/local_search_service.mojom
index 54b50b04b19..0fde4775293 100644
--- a/chromium/chromeos/components/local_search_service/public/mojom/local_search_service.mojom
+++ b/chromium/chromeos/components/local_search_service/public/mojom/local_search_service.mojom
@@ -11,7 +11,8 @@ import "sandbox/policy/mojom/sandbox.mojom";
enum IndexId {
kCrosSettings = 0,
kHelpApp = 1,
- kHelpAppLauncher = 2
+ kHelpAppLauncher = 2,
+ kPersonalization = 3
// Add new client IDs here.
};
diff --git a/chromium/chromeos/components/mojo_service_manager/BUILD.gn b/chromium/chromeos/components/mojo_service_manager/BUILD.gn
new file mode 100644
index 00000000000..ec1dbfbe7e2
--- /dev/null
+++ b/chromium/chromeos/components/mojo_service_manager/BUILD.gn
@@ -0,0 +1,28 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//chromeos/features.gni")
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+component("mojo_service_manager") {
+ sources = [
+ "connection.cc",
+ "connection.h",
+ ]
+ deps = [
+ "//base",
+ "//chromeos:features",
+ "//mojo/public/cpp/bindings",
+ ]
+ public_deps = [ "//chromeos/components/mojo_service_manager/mojom" ]
+ defines = [ "IS_CHROMEOS_MOJO_SERVICE_MANAGER_IMPL" ]
+
+ if (!use_real_chromeos_services) {
+ sources += [
+ "fake_mojo_service_manager.cc",
+ "fake_mojo_service_manager.h",
+ ]
+ }
+}
diff --git a/chromium/chromeos/components/mojo_service_manager/mojom/BUILD.gn b/chromium/chromeos/components/mojo_service_manager/mojom/BUILD.gn
new file mode 100644
index 00000000000..9c038a0b9ae
--- /dev/null
+++ b/chromium/chromeos/components/mojo_service_manager/mojom/BUILD.gn
@@ -0,0 +1,13 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//mojo/public/tools/bindings/mojom.gni")
+
+mojom("mojom") {
+ sources = [ "mojo_service_manager.mojom" ]
+ public_deps = [ "//mojo/public/mojom/base" ]
+
+ component_output_prefix = "chromeos_mojo_service_manager"
+ component_macro_prefix = "CHROMEOS_MOJO_SERVICE_MANAGER"
+}
diff --git a/chromium/chromeos/components/mojo_service_manager/mojom/mojo_service_manager.mojom b/chromium/chromeos/components/mojo_service_manager/mojom/mojo_service_manager.mojom
new file mode 100644
index 00000000000..ecfe0dfca9c
--- /dev/null
+++ b/chromium/chromeos/components/mojo_service_manager/mojom/mojo_service_manager.mojom
@@ -0,0 +1,195 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// API exposed by the ChromeOS mojo service manager.
+
+// NOTE: This mojom should be kept in sync with the copy in ChromeOS's repo in
+// src/platform2/mojo_service_manager/lib/mojom/service_manager.mojom
+
+module chromeos.mojo_service_manager.mojom;
+
+import "mojo/public/mojom/base/time.mojom";
+
+// Shares and manages mojo services between all the processes running on
+// ChromeOS. This is provided by the ChromeOS mojo service manager daemon.
+// The argument |service_name| should match the regex ([a-zA-Z0-9._\-]+). It is
+// used for identifying the services and for the ACLs.
+//
+// Next MinVersion: 1
+// Next Method ID: 4
+interface ServiceManager {
+ // Registers a service to the service manager. Callers should set disconnect
+ // handler on the corresponding mojo receiver of |service_provider| to handle
+ // errors.
+ Register@0(string service_name,
+ pending_remote<ServiceProvider> service_provider);
+
+ // Requests a service from the service manager. The |receiver| will be bound
+ // to the service. In the case that the service is not registered, if
+ // |timeout| is null, the |receiver| will be bound after the service is
+ // available. If |timeout| is not null and the |receiver| cannot be bound
+ // after |timeout|, it will be reset. Callers should set disconnect handler on
+ // the corresponding mojo remote of |receiver| to handle errors.
+ Request@1(string service_name, mojo_base.mojom.TimeDelta? timeout,
+ handle<message_pipe> receiver);
+
+ // Queries the state of a service.
+ Query@2(string service_name) => (ErrorOrServiceState result);
+
+ // Registers an observer to observe the state of services. The observer can
+ // only receive the events related to the services which the callers are
+ // allowed to request. Callers should set disconnect handler on the
+ // corresponding mojo receiver of |observer| to handle errors.
+ AddServiceObserver@3(pending_remote<ServiceObserver> observer);
+};
+
+// Provides a service to other processes. Each provider process implements this
+// for each mojo service and registers each of them to the service manager. This
+// will only be called by the service manager and will not be exported to other
+// processes directly.
+//
+// Next MinVersion: 1
+// Next Method ID: 1
+interface ServiceProvider {
+ // Requests to bind the |receiver| to the corresponding mojo interface.
+ // The service manager checks the policies and calling this if the requester
+ // is allowed. The |client_identity| is set by the service manager for
+ // identifying the requester process. This can be used for more detail ACLs if
+ // needed.
+ // Note: the implementations can reset |receiver| to return errors. They
+ // should use the error codes defined in |ErrorCode| enum when returning
+ // errors.
+ Request@0(ProcessIdentity client_identity,
+ handle<message_pipe> receiver);
+};
+
+// Observes the service events. Requester processes implement this and register
+// it to the service manager.
+//
+// Next MinVersion: 1
+// Next Method ID: 1
+interface ServiceObserver {
+ // Is called when service events occur.
+ OnServiceEvent@0(ServiceEvent event);
+};
+
+// The identity information about a process.
+//
+// Next MinVersion: 1
+// Next Field ID: 4
+struct ProcessIdentity {
+ // The SELinux security context.
+ string security_context@0;
+ // The process id.
+ uint32 pid@1;
+ // The user / group id.
+ uint32 uid@2;
+ uint32 gid@3;
+};
+
+// The result of ServiceManager::Query.
+//
+// Next MinVersion: 1
+// Next Field ID: 3
+[Extensible]
+union ErrorOrServiceState {
+ // The default value for forward compatibility. All the unknown type will be
+ // mapped to this.
+ [Default] uint8 default_type@0;
+ // The result if succeeds.
+ ServiceState state@1;
+ // The error if fails.
+ Error error@2;
+};
+
+// The state of a service.
+//
+// Next MinVersion: 1
+// Next Field ID: 3
+[Extensible]
+union ServiceState {
+ // The default value for forward compatibility. All the unknown type will be
+ // mapped to this.
+ [Default] uint8 default_type@0;
+ // The state of a registered service.
+ RegisteredServiceState registered_state;
+ // The state of a unregistered service.
+ UnregisteredServiceState unregistered_state;
+};
+
+// The state of a registered service.
+//
+// Next MinVersion: 1
+// Next Field ID: 1
+struct RegisteredServiceState {
+ // The identity of the owner of the service.
+ ProcessIdentity owner@0;
+};
+
+// The state of a unregistered service.
+//
+// Next MinVersion: 1
+// Next Field ID: 0
+struct UnregisteredServiceState {
+};
+
+// The event about a service.
+//
+// Next MinVersion: 1
+// Next Field ID: 3
+struct ServiceEvent {
+ [Extensible]
+ enum Type {
+ // The default value for forward compatibility. All the unknown value will
+ // be mapped to this.
+ [Default] kUnknown,
+ // The service is registered.
+ kRegistered,
+ // The service is not registered.
+ kUnRegistered,
+ };
+
+ Type type@0;
+ // The name of the service which triggers the event.
+ string service_name@1;
+ // The dispatcher of the event. It is the process which registered or
+ // unregistered the service.
+ ProcessIdentity dispatcher@2;
+};
+
+// A generic error type for functions to return error.
+//
+// Next MinVersion: 1
+// Next Field ID: 2
+struct Error {
+ ErrorCode code@0;
+ string message@1;
+};
+
+// The error code for |struct Error| and the disconnect handlers. This is used
+// in the disconnect reason of all the mojo handles (namely, message pipe,
+// receiver and remote) which are sent to |ServiceManager|.
+// Note that in the disconnect handlers, this is casted to |uint32| and has no
+// guarantee that the value can be casted back to this. Use
+// |mojo::ConvertIntToMojoEnum()| for casting.
+//
+// NextMinVersion: 1
+[Extensible]
+enum ErrorCode {
+ // The default value for forward compatibility. In struct |Error|, all the
+ // unknown value will be mapped to this.
+ // In disconnect handlers, if the handle is reset without a reason, the error
+ // code is 0. So this enum starts from 1 to be distinguish from that.
+ [Default] kUnknown = 1,
+ // Timeout is reached.
+ kTimeout,
+ // The caller is not permit to perform the operation.
+ kPermissionDenied,
+ // The service has already been registered.
+ kServiceAlreadyRegistered,
+ // The service cannot be found.
+ kServiceNotFound,
+ // Unexpected os error.
+ kUnexpectedOsError,
+};
diff --git a/chromium/chromeos/components/quick_answers/BUILD.gn b/chromium/chromeos/components/quick_answers/BUILD.gn
index 4481212fa6d..f4c358fab74 100644
--- a/chromium/chromeos/components/quick_answers/BUILD.gn
+++ b/chromium/chromeos/components/quick_answers/BUILD.gn
@@ -62,6 +62,7 @@ source_set("quick_answers") {
"//components/signin/public/identity_manager",
"//components/spellcheck/common",
"//content/public/browser",
+ "//google_apis",
"//net:net",
"//services/data_decoder/public/cpp",
"//services/network/public/cpp:cpp",
@@ -105,6 +106,7 @@ source_set("unit_tests") {
"//chromeos/services/assistant/public/shared",
"//chromeos/services/machine_learning/public/cpp:stub",
"//chromeos/services/machine_learning/public/mojom",
+ "//google_apis",
"//services/data_decoder/public/cpp:test_support",
"//services/network:test_support",
"//testing/gmock",
diff --git a/chromium/chromeos/components/remote_apps/mojom/remote_apps.mojom b/chromium/chromeos/components/remote_apps/mojom/remote_apps.mojom
index d4b1d9d65d1..0ab31db28fa 100644
--- a/chromium/chromeos/components/remote_apps/mojom/remote_apps.mojom
+++ b/chromium/chromeos/components/remote_apps/mojom/remote_apps.mojom
@@ -6,22 +6,42 @@ module chromeos.remote_apps.mojom;
import "url/mojom/url.mojom";
+[Stable]
+union AddFolderResult {
+ // The ID of the added folder. Implies success.
+ string folder_id;
+
+ // Implies failure.
+ string error;
+};
+
+[Stable]
+union AddAppResult {
+ // The ID of the added app. Implies success.
+ string app_id;
+
+ // Implies failure.
+ string error;
+};
+
// Interface for communication between an extension and the Remote Apps
-// Manager.
+// Manager or |RemoteAppsProxyLacros|.
+[Stable]
interface RemoteApps {
// Adds a Remote Apps folder to the launcher. Empty folders are not shown in
// the launcher.
//
// Input parameters:
// - |name|: the name of the folder.
- //
- // Output parameters:
- // - |folder_id|: the ID of the newly added folder.
- // - |error|: A string describing the error if any.
// - |add_to_front|: true if the folder should be added to the front of the
// app list.
- AddFolder(string name,
- bool add_to_front) => (string? folder_id, string? error);
+ //
+ // Output parameters:
+ // - |result|: A union with |folder_id| representing the ID of the added
+ // folder on success, and |error| representing the error message
+ // on failure.
+ AddFolder@0(string name,
+ bool add_to_front) => (AddFolderResult result);
// Adds a Remote Apps app to the launcher.
//
@@ -36,13 +56,14 @@ interface RemoteApps {
// list. Has no effect if the app has a parent folder.
//
// Output parameters:
- // - |app_id|: the ID of the newly added app.
- // - |error|: A string describing the error if any.
- AddApp(string source_id,
+ // - |result|: A union with |app_id| representing the ID of the added app on
+ // success, and |error| representing the error message on
+ // failure.
+ AddApp@1(string source_id,
string name,
string folder_id,
url.mojom.Url icon_url,
- bool add_to_front) => (string? app_id, string? error);
+ bool add_to_front) => (AddAppResult result);
// Deletes a Remote App added by |AddApp()|.
//
@@ -51,22 +72,35 @@ interface RemoteApps {
//
// Output parameters:
// - |error|: A string describing the error if any.
- DeleteApp(string app_id) => (string? error);
+ DeleteApp@2(string app_id) => (string? error);
};
-// Factory for creating an instance of RemoteApps.
+// Factory for creating an instance of |RemoteApps|.
+[Stable]
interface RemoteAppsFactory {
- // Creates an instance of RemoteApps. The JS bindings manages |source_id|
- // and passes the extension ID.
- Create(string source_id,
+ // Binds to the Profile's |RemoteApps| implementation. The
+ // |OnRemoteAppLaunched| event is only dispatched to the observer associated
+ // with the source which added the app.
+ BindRemoteAppsAndAppLaunchObserver@0(string source_id,
+ pending_receiver<RemoteApps> remote_apps,
+ pending_remote<RemoteAppLaunchObserver> observer);
+};
+
+// Bridge for binding the |RemoteApps| interfaces from Lacros to Ash. Used by
+// |RemoteAppsProxyLacros|.
+[Stable, Uuid="80d5b638-317b-4e9c-b8fc-5ecfa7ec5f30"]
+interface RemoteAppsLacrosBridge {
+ // Binds to the |RemoteApps| implementation in Ash. All |OnRemoteAppLaunched|
+ // events will be dispatched to the observer.
+ BindRemoteAppsAndAppLaunchObserverForLacros@0(
pending_receiver<RemoteApps> remote_apps,
pending_remote<RemoteAppLaunchObserver> observer);
};
// A RemoteAppLaunchObserver gets notifications when a remote app is launched.
+[Stable]
interface RemoteAppLaunchObserver {
- // Invoked when a remote app is launched. |app_id| is the ID of the app
- // which was launched. The event is only dispatched to the extension which
- // added the app.
- OnRemoteAppLaunched(string app_id);
+ // Invoked when a remote app is launched. |app_id| is the ID of the app which
+ // was launched. |source_id| is the same ID passed to the |AddApp()| method.
+ OnRemoteAppLaunched@0(string app_id, string source_id);
};
diff --git a/chromium/chromeos/components/security_token_pin/BUILD.gn b/chromium/chromeos/components/security_token_pin/BUILD.gn
new file mode 100644
index 00000000000..c07f7b46254
--- /dev/null
+++ b/chromium/chromeos/components/security_token_pin/BUILD.gn
@@ -0,0 +1,35 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+component("security_token_pin") {
+ sources = [
+ "constants.h",
+ "error_generator.cc",
+ "error_generator.h",
+ ]
+
+ defines = [ "IS_SECURITY_TOKEN_PIN_IMPL" ]
+
+ deps = [
+ "//base",
+ "//base:i18n",
+ "//chromeos/strings",
+ "//ui/base",
+ ]
+}
+
+source_set("unit_tests") {
+ testonly = true
+ sources = [ "error_generator_unittest.cc" ]
+
+ deps = [
+ ":security_token_pin",
+ "//base",
+ "//base:i18n",
+ "//testing/gtest",
+ "//ui/base",
+ ]
+}
diff --git a/chromium/chromeos/constants/BUILD.gn b/chromium/chromeos/constants/BUILD.gn
index d43e59ca81c..d13693f39a2 100644
--- a/chromium/chromeos/constants/BUILD.gn
+++ b/chromium/chromeos/constants/BUILD.gn
@@ -20,7 +20,7 @@ component("constants") {
if (is_chromeos_lacros) {
deps += [
"//chromeos/crosapi/mojom",
- "//chromeos/lacros:lacros",
+ "//chromeos/startup",
]
}
}
@@ -39,6 +39,7 @@ source_set("unit_tests") {
deps += [
"//chromeos/lacros:lacros",
"//chromeos/lacros:test_support",
+ "//chromeos/startup",
]
}
}
diff --git a/chromium/chromeos/crosapi/cpp/BUILD.gn b/chromium/chromeos/crosapi/cpp/BUILD.gn
index d6124283baf..9fad9e7bf1f 100644
--- a/chromium/chromeos/crosapi/cpp/BUILD.gn
+++ b/chromium/chromeos/crosapi/cpp/BUILD.gn
@@ -12,8 +12,6 @@ config("crosapi_implementation") {
component("cpp") {
output_name = "crosapi_public_cpp"
sources = [
- "crosapi_constants.cc",
- "crosapi_constants.h",
"gurl_os_handler_utils.cc",
"gurl_os_handler_utils.h",
"keystore_service_util.cc",
@@ -23,6 +21,7 @@ component("cpp") {
]
configs += [ ":crosapi_implementation" ]
deps = [
+ ":crosapi_constants",
"//base",
"//chromeos/crosapi/mojom",
"//mojo/public/cpp/bindings",
@@ -36,6 +35,14 @@ component("cpp") {
}
}
+static_library("crosapi_constants") {
+ sources = [
+ "crosapi_constants.cc",
+ "crosapi_constants.h",
+ ]
+ deps = [ "//base" ]
+}
+
source_set("unit_tests") {
testonly = true
deps = [
diff --git a/chromium/chromeos/crosapi/mojom/BUILD.gn b/chromium/chromeos/crosapi/mojom/BUILD.gn
index a0990048743..b1bbf5ffc23 100644
--- a/chromium/chromeos/crosapi/mojom/BUILD.gn
+++ b/chromium/chromeos/crosapi/mojom/BUILD.gn
@@ -18,6 +18,7 @@ mojom("mojom") {
"browser_app_instance_registry.mojom",
"browser_version.mojom",
"cert_database.mojom",
+ "chrome_app_kiosk_service.mojom",
"clipboard.mojom",
"clipboard_history.mojom",
"content_protection.mojom",
@@ -25,12 +26,17 @@ mojom("mojom") {
"desk_template.mojom",
"device_attributes.mojom",
"device_settings_service.mojom",
+ "digital_goods.mojom",
"dlp.mojom",
+ "document_scan.mojom",
"download_controller.mojom",
"drive_integration_service.mojom",
+ "echo_private.mojom",
+ "extension_info_private.mojom",
"feedback.mojom",
"field_trial.mojom",
"file_manager.mojom",
+ "file_system_provider.mojom",
"force_installed_tracker.mojom",
"geolocation.mojom",
"holding_space_service.mojom",
@@ -50,6 +56,7 @@ mojom("mojom") {
"native_theme.mojom",
"network_settings_service.mojom",
"networking_attributes.mojom",
+ "networking_private.mojom",
"notification.mojom",
"policy_namespace.mojom",
"policy_service.mojom",
@@ -60,6 +67,7 @@ mojom("mojom") {
"screen_manager.mojom",
"select_file.mojom",
"sharesheet.mojom",
+ "speech_recognition.mojom",
"structured_metrics_service.mojom",
"sync.mojom",
"system_display.mojom",
@@ -69,6 +77,9 @@ mojom("mojom") {
"tts.mojom",
"url_handler.mojom",
"video_capture.mojom",
+ "vpn_extension_observer.mojom",
+ "vpn_service.mojom",
+ "wallpaper.mojom",
"web_app_service.mojom",
"web_app_types.mojom",
"web_page_info.mojom",
@@ -76,12 +87,15 @@ mojom("mojom") {
disable_variants = true
public_deps = [
+ "//chromeos/components/remote_apps/mojom",
"//chromeos/components/sensors/mojom",
"//chromeos/services/machine_learning/public/mojom",
+ "//components/digital_goods/mojom:mojom",
"//components/metrics/structured/mojom",
"//components/services/app_service/public/mojom:mojom",
"//media/capture/mojom:image_capture",
"//media/capture/mojom:video_capture_types",
+ "//media/mojo/mojom:speech_recognition",
"//mojo/public/mojom/base",
"//printing/backend/mojom",
"//printing/mojom",
@@ -182,12 +196,12 @@ mojom("mojom") {
},
{
mojom = "crosapi.mojom.PreferredApp"
- cpp = "::apps::mojom::PreferredAppPtr"
+ cpp = "::apps::PreferredAppPtr"
move_only = true
},
{
mojom = "crosapi.mojom.PreferredAppChanges"
- cpp = "::apps::mojom::PreferredAppChangesPtr"
+ cpp = "::apps::PreferredAppChangesPtr"
move_only = true
},
{
@@ -211,6 +225,7 @@ mojom("mojom") {
"//chromeos/crosapi/mojom/web_app_types_mojom_traits.h",
"//chromeos/crosapi/mojom/browser_app_instance_registry_mojom_traits.h",
"//components/services/app_service/public/cpp/app_types.h",
+ "//components/services/app_service/public/cpp/preferred_app.h",
"//chromeos/crosapi/mojom/sharesheet_mojom_traits.h",
"//components/services/app_service/public/cpp/icon_types.h",
"//components/services/app_service/public/mojom/types.mojom.h",
@@ -228,6 +243,7 @@ mojom("mojom") {
"//components/services/app_service/public/cpp:app_types",
"//components/services/app_service/public/cpp:browser_app_instance_registry_update",
"//components/services/app_service/public/cpp:icon_types",
+ "//components/services/app_service/public/cpp:preferred_app",
"//components/services/app_service/public/mojom:mojom",
"//components/webapps/browser:constants",
]
diff --git a/chromium/chromeos/crosapi/mojom/arc.mojom b/chromium/chromeos/crosapi/mojom/arc.mojom
index edac26a0533..58e2397dac0 100644
--- a/chromium/chromeos/crosapi/mojom/arc.mojom
+++ b/chromium/chromeos/crosapi/mojom/arc.mojom
@@ -11,31 +11,31 @@ import "ui/gfx/image/mojom/image.mojom";
// TODO(crbug.com/1268687): It should be migrated to AppService in the future.
// The status in ash-chrome side. Return with the result.
-[Stable]
+[Stable, Extensible]
enum RequestActivityIconsStatus {
// Connection established successfully in ash-chrome.
kSuccess,
// Ended with error to connect to ARC in ash-chrome.
- kArcNotAvailable,
+ [Default] kArcNotAvailable,
};
-[Stable]
+[Stable, Extensible]
enum RequestTextSelectionActionsStatus {
// Connection established successfully in ash-chrome.
kSuccess,
// Ended with error to connect to ARC in ash-chrome.
- kArcNotAvailable,
+ [Default] kArcNotAvailable,
};
-[Stable]
+[Stable, Extensible]
enum RequestUrlHandlerListStatus {
// Connection established successfully in ash-chrome.
kSuccess,
// Ended with error to connect to ARC in ash-chrome.
- kArcNotAvailable,
+ [Default]kArcNotAvailable,
};
[Stable, Extensible]
diff --git a/chromium/chromeos/crosapi/mojom/cert_database.mojom b/chromium/chromeos/crosapi/mojom/cert_database.mojom
index 4f828d81d07..dd9f3c8d84c 100644
--- a/chromium/chromeos/crosapi/mojom/cert_database.mojom
+++ b/chromium/chromeos/crosapi/mojom/cert_database.mojom
@@ -4,7 +4,7 @@
module crosapi.mojom;
-[Stable, Extensible]
+[Stable]
struct GetCertDatabaseInfoResult {
// Deprecated on 10/2021. Use `user_nss_database` from
// crosapi.BrowserInitParams instead.
diff --git a/chromium/chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom b/chromium/chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom
new file mode 100644
index 00000000000..ee2dd9d4e87
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom
@@ -0,0 +1,80 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+// Set of parameters required to install the kiosk app from a cached location.
+[Stable]
+struct AppInstallParams {
+ // Id of the primary kiosk app.
+ string id@0;
+ // Location of the crx file in local cache.
+ string crx_file_location@1;
+ // Version of the app to be installed.
+ string version@2;
+ // Indicates whether the app should be downloaded from Chrome Web Store.
+ bool is_store_app@3;
+};
+
+[Stable, Extensible]
+enum ChromeKioskInstallResult {
+ [Default] kUnknown = 0,
+ // Installation completed successfully, kiosk is ready to launch.
+ kSuccess = 1,
+ // Primary app is not cached yet, network is required to rectify.
+ kPrimaryAppNotCached = 2,
+ // Install of primary app failed
+ kPrimaryAppInstallFailed = 3,
+ // Install of a secondary app failed
+ kSecondaryAppInstallFailed = 4,
+ // The primary app does not have kiosk support in the manifest
+ kPrimaryAppNotKioskEnabled = 5,
+};
+
+[Stable, Extensible]
+enum ChromeKioskLaunchResult {
+ [Default] kUnknown = 0,
+ // Launch of kiosk app was successful.
+ kSuccess = 1,
+ // Primary or secondary apps are not ready for launch
+ kUnableToLaunch = 2,
+ // The primary app is not offline enabled, but network is not ready
+ kNetworkMissing = 3,
+};
+
+// A client implemented in lacros-chrome for the DownloadController which is
+// implemented in ash-chrome.
+//
+// Next MinVersion: 1
+// Next ID: 1
+[Stable]
+interface ChromeKioskLaunchController {
+ // Trigger a full install of the kiosk app into Lacros chrome.
+ // Note that this contains the finalization below, so the caller is expected
+ // to only call one of the two methods.
+ // |is_network_ready| indicates whether the device has network connectivity.
+ InstallKioskApp@0(AppInstallParams params)
+ => (ChromeKioskInstallResult result);
+
+ // Only finalize the app installation. This performs the last steps of
+ // verifying that the kiosk app and its dependencies are installed and
+ // enabled.
+ // |is_network_ready| indicates whether the device has network connectivity.
+ LaunchKioskApp@1(string app_id, bool is_network_ready)
+ => (ChromeKioskLaunchResult result);
+};
+
+// Service used to register a ChromeAppKioskInstaller into ash.
+// Implemented in ash-chrome.
+//
+// Next MinVersion: 1
+// Next ID: 1
+[Stable, Uuid="7aca9ca3-6d25-450d-83ee-1a0069df0eb3"]
+interface ChromeAppKioskService{
+ // Binds the ChromeAppKioskInstaller interface, which allows the
+ // Kiosk startup process running in ash-chrome to trigger the installation of
+ // the kiosk app into lacros-chrome.
+ BindLaunchController@0(
+ pending_remote<ChromeKioskLaunchController> controller);
+};
diff --git a/chromium/chromeos/crosapi/mojom/clipboard_history.mojom b/chromium/chromeos/crosapi/mojom/clipboard_history.mojom
index cf735619727..6ddc69a3f47 100644
--- a/chromium/chromeos/crosapi/mojom/clipboard_history.mojom
+++ b/chromium/chromeos/crosapi/mojom/clipboard_history.mojom
@@ -11,7 +11,7 @@ import "ui/base/mojom/ui_base_types.mojom";
// written to logs. New enum values can be added, but existing enums must
// never be renumbered, deleted, or reused. If adding an enum, add it at the
// bottom.
-[Stable, Extensible, Default=kUnknown]
+[Stable, Extensible]
enum ClipboardHistoryControllerShowSource {
// Shown by the accelerator(search + v).
kAccelerator,
@@ -22,7 +22,7 @@ enum ClipboardHistoryControllerShowSource {
// Shown by the virtual keyboard.
kVirtualKeyboard,
// Used as a default value in case of version skew.
- kUnknown
+ [Default] kUnknown
};
// This interface is implemented by Ash-Chrome.
diff --git a/chromium/chromeos/crosapi/mojom/crosapi.mojom b/chromium/chromeos/crosapi/mojom/crosapi.mojom
index 931df8d67b3..7330560f290 100644
--- a/chromium/chromeos/crosapi/mojom/crosapi.mojom
+++ b/chromium/chromeos/crosapi/mojom/crosapi.mojom
@@ -4,6 +4,7 @@
module crosapi.mojom;
+import "chromeos/components/remote_apps/mojom/remote_apps.mojom";
import "chromeos/components/sensors/mojom/cros_sensor_service.mojom";
import "chromeos/crosapi/mojom/account_manager.mojom";
import "chromeos/crosapi/mojom/app_service.mojom";
@@ -14,18 +15,24 @@ import "chromeos/crosapi/mojom/automation.mojom";
import "chromeos/crosapi/mojom/browser_app_instance_registry.mojom";
import "chromeos/crosapi/mojom/browser_version.mojom";
import "chromeos/crosapi/mojom/cert_database.mojom";
+import "chromeos/crosapi/mojom/chrome_app_kiosk_service.mojom";
import "chromeos/crosapi/mojom/clipboard.mojom";
import "chromeos/crosapi/mojom/clipboard_history.mojom";
import "chromeos/crosapi/mojom/content_protection.mojom";
import "chromeos/crosapi/mojom/desk_template.mojom";
import "chromeos/crosapi/mojom/device_attributes.mojom";
import "chromeos/crosapi/mojom/device_settings_service.mojom";
+import "chromeos/crosapi/mojom/digital_goods.mojom";
import "chromeos/crosapi/mojom/dlp.mojom";
+import "chromeos/crosapi/mojom/document_scan.mojom";
import "chromeos/crosapi/mojom/download_controller.mojom";
import "chromeos/crosapi/mojom/drive_integration_service.mojom";
+import "chromeos/crosapi/mojom/echo_private.mojom";
+import "chromeos/crosapi/mojom/extension_info_private.mojom";
import "chromeos/crosapi/mojom/feedback.mojom";
import "chromeos/crosapi/mojom/field_trial.mojom";
import "chromeos/crosapi/mojom/file_manager.mojom";
+import "chromeos/crosapi/mojom/file_system_provider.mojom";
import "chromeos/crosapi/mojom/force_installed_tracker.mojom";
import "chromeos/crosapi/mojom/geolocation.mojom";
import "chromeos/crosapi/mojom/holding_space_service.mojom";
@@ -44,6 +51,7 @@ import "chromeos/crosapi/mojom/message_center.mojom";
import "chromeos/crosapi/mojom/metrics_reporting.mojom";
import "chromeos/crosapi/mojom/native_theme.mojom";
import "chromeos/crosapi/mojom/networking_attributes.mojom";
+import "chromeos/crosapi/mojom/networking_private.mojom";
import "chromeos/crosapi/mojom/power.mojom";
import "chromeos/crosapi/mojom/network_settings_service.mojom";
import "chromeos/crosapi/mojom/prefs.mojom";
@@ -52,6 +60,7 @@ import "chromeos/crosapi/mojom/resource_manager.mojom";
import "chromeos/crosapi/mojom/screen_manager.mojom";
import "chromeos/crosapi/mojom/select_file.mojom";
import "chromeos/crosapi/mojom/sharesheet.mojom";
+import "chromeos/crosapi/mojom/speech_recognition.mojom";
import "chromeos/crosapi/mojom/structured_metrics_service.mojom";
import "chromeos/crosapi/mojom/sync.mojom";
import "chromeos/crosapi/mojom/system_display.mojom";
@@ -60,9 +69,12 @@ import "chromeos/crosapi/mojom/test_controller.mojom";
import "chromeos/crosapi/mojom/timezone.mojom";
import "chromeos/crosapi/mojom/tts.mojom";
import "chromeos/crosapi/mojom/url_handler.mojom";
+import "chromeos/crosapi/mojom/vpn_service.mojom";
import "chromeos/services/machine_learning/public/mojom/machine_learning_service.mojom";
import "chromeos/crosapi/mojom/video_capture.mojom";
import "chromeos/crosapi/mojom/kiosk_session_service.mojom";
+import "chromeos/crosapi/mojom/vpn_extension_observer.mojom";
+import "chromeos/crosapi/mojom/wallpaper.mojom";
import "chromeos/crosapi/mojom/web_app_service.mojom";
import "chromeos/crosapi/mojom/web_page_info.mojom";
import "mojo/public/mojom/base/big_string.mojom";
@@ -101,8 +113,8 @@ struct BrowserInfo {
// please note the milestone when you added it, to help us reason about
// compatibility between the client applications and older ash-chrome binaries.
//
-// Next version: 71
-// Next method id: 74
+// Next version: 83
+// Next method id: 86
[Stable, Uuid="8b79c34f-2bf8-4499-979a-b17cac522c1e",
RenamedFrom="crosapi.mojom.AshChromeService"]
interface Crosapi {
@@ -215,11 +227,20 @@ interface Crosapi {
[MinVersion=55] BindDeviceSettingsService@59(
pending_receiver<DeviceSettingsService> receiver);
+ // Added in M104.
+ [MinVersion=76] BindDigitalGoodsFactory@79(
+ pending_receiver<DigitalGoodsFactory> receiver);
+
// Binds the DLP (Data Leak Prevention) interface for notifying Ash about
// content restrictions applied to web content in Lacros.
// Added in M98.
[MinVersion=60] BindDlp@64(pending_receiver<Dlp> receiver);
+ // Binds the DocumentScan interface, which allows Lacros to get scanner access
+ // via Ash Chrome.
+ // Added in M104.
+ [MinVersion=77] BindDocumentScan@80(pending_receiver<DocumentScan> receiver);
+
// Binds the DownloadController interface, which allows Lacros download
// information to be passed into Ash Chrome.
// Added in M92.
@@ -232,6 +253,21 @@ interface Crosapi {
[MinVersion=29] BindDriveIntegrationService@34(
pending_receiver<DriveIntegrationService> receiver);
+ // EchoPrivate is a service used to provide trusted websites a mechanism to
+ // confirm the device is a ChromeOS device.
+ [MinVersion=71] BindEchoPrivate@74(
+ pending_receiver<EchoPrivate> receiver);
+
+ // ExtensionInfoPrivate is a service that allows trusted extensions in Lacros
+ // to get and set system properties. Implemented in Ash.
+ [MinVersion=72] BindExtensionInfoPrivate@75(
+ pending_receiver<ExtensionInfoPrivate> receiver);
+
+ // NetworkingPrivate is a service that allows users to modify
+ // network settings in Lacros. Implemented in Ash.
+ [MinVersion=80] BindNetworkingPrivate@83(
+ pending_receiver<NetworkingPrivate> receiver);
+
// Binds the extension publisher service, which allows Lacros to connect its
// extensions to the app service.
// Added in M93.
@@ -243,6 +279,12 @@ interface Crosapi {
[MinVersion=5]
BindFileManager@8(pending_receiver<FileManager> receiver);
+ // This interface allows Lacros extensions to implement file systems.
+ // Added in M104.
+ [MinVersion=78]
+ BindFileSystemProviderService@81(
+ pending_receiver<FileSystemProviderService> receiver);
+
// Binds the ForceInstalledTracker interface for track the status of
// force-installed extensions.
// Added in M96.
@@ -335,6 +377,12 @@ interface Crosapi {
// Added in M89.
[MinVersion=11] BindPrefs@16(pending_receiver<Prefs> receiver);
+ // Binds the RemoteAppsLacrosBridge for the Remote Apps private Mojo API.
+ // Added in M103.
+ [MinVersion=74] BindRemoteAppsLacrosBridge@77(
+ pending_receiver<chromeos.remote_apps.mojom.RemoteAppsLacrosBridge>
+ receiver);
+
// Binds the Remoting service to allow websites running in Lacros to interact
// with Chrome Remote Desktop functionality available in ash-chrome.
// Added in M93.
@@ -361,6 +409,12 @@ interface Crosapi {
BindSharesheet@70(
pending_receiver<Sharesheet> receiver);
+ // Binds the SpeechRecognition interface to access on-device speech
+ // recognition.
+ // Added in M104.
+ [MinVersion=81]
+ BindSpeechRecognition@84(pending_receiver<SpeechRecognition> receiver);
+
// Binds the StableVideoDecoderFactory, which allows lacros-chrome to request
// hardware accelerated video decoding. We need to use a
// GenericPendingReceiver to avoid dependency circularities.
@@ -461,11 +515,30 @@ interface Crosapi {
[MinVersion=20] BindVideoCaptureDeviceFactory@25(
pending_receiver<crosapi.mojom.VideoCaptureDeviceFactory> receiver);
+ // Binds the vpn extension observer so that lacros can inform ash about
+ // Vpn extension events.
+ [MinVersion=75] BindVpnExtensionObserver@78(
+ pending_receiver<VpnExtensionObserver> receiver);
+
// Binds the Kiosk session service which sends session status changes from
// lacros to ash.
// Added in M96.
[MinVersion=49] BindKioskSessionService@53(
- pending_receiver<KioskSessionService> receiver);
+ pending_receiver<KioskSessionService> receiver);
+
+ // Binds the chrome app kiosk service. This service is used to install and
+ // launch the chrome app inside lacros.
+ [MinVersion=73] BindChromeAppKioskService@76(
+ pending_receiver<ChromeAppKioskService> receiver);
+
+ // Binds the vpn service. This service is used to facilirate
+ // communication between chrome.vpnProvider extension in lacros and the
+ // network services in ash.
+ [MinVersion=79] BindVpnService@82(
+ pending_receiver<VpnService> receiver);
+
+ // Binds the service to allow lacros-chrome to set the chromeos wallpaper.
+ [MinVersion=82] BindWallpaper@85(pending_receiver<Wallpaper> receiver);
// Binds the web page info factory interface which allows ash to request web
// page info from Lacros.
@@ -490,6 +563,8 @@ interface Crosapi {
// |browser_info| during startup.
// Added in M87.
[MinVersion=3] OnBrowserStartup@6(BrowserInfo browser_info);
+
+
};
[Stable, Extensible]
@@ -536,8 +611,8 @@ enum MetricsReportingManaged {
// future compatibility, to avoid assumptions about where on disk the directory
// is located.
//
-// Next version: 34
-// Next id: 9
+// Next version: 35
+// Next id: 11
[Stable]
struct DefaultPaths {
// The default (non-configurable) directory for documents. For example,
@@ -575,13 +650,19 @@ struct DefaultPaths {
// The default (non-configurable) directory for shared files. For example,
// /home/chronos/u-<hash>/ShareCache.
[MinVersion=33] mojo_base.mojom.FilePath? share_cache@8;
+
+ // The directory where default web app configs are stored.
+ [MinVersion=34] mojo_base.mojom.FilePath? preinstalled_web_app_config@9;
+
+ // The directory where additional web app configs are stored.
+ [MinVersion=34] mojo_base.mojom.FilePath?
+ preinstalled_web_app_extra_config@10;
};
// The device specific data needed in Lacros.
-// Next version: 2
-// Next id: 2
-// TODO(igorcov): Include DeviceAttributes here.
-[Stable, Extensible]
+// Next version: 4
+// Next id: 9
+[Stable]
struct DeviceProperties {
// The value of device DM token. It is the raw data from the policy, not
// encrypted.
@@ -592,6 +673,31 @@ struct DeviceProperties {
// determined. It is non-encrypted data corresponding to
// PolicyData::device_affiliation_ids.
[MinVersion=1] array<string>? device_affiliation_ids@1;
+
+ // Whether ARC is installed and the current device is officially supported to
+ // run ARC.
+ [MinVersion=2] bool is_arc_available@2;
+
+ // Whether the device is of tablet form factor.
+ [MinVersion=2] bool is_tablet_form_factor@3;
+
+ // The value of the device identifier of the directory API that is
+ // generated by the server and identifies the cloud record of the device for
+ // querying in the cloud directory API. See
+ // https://developers.google.com/admin-sdk/directory/v1/guides/manage-chrome-devices.
+ [MinVersion=3] string? directory_device_id@4;
+
+ // The device's serial number.
+ [MinVersion=3] string? serial_number@5;
+
+ // The administrator-annotated Asset Id.
+ [MinVersion=3] string? annotated_asset_id@6;
+
+ // The administrator-annotated location.
+ [MinVersion=3] string? annotated_location@7;
+
+ // The device's hostname as set by DeviceHostnameTemplate policy.
+ [MinVersion=3] string? hostname@8;
};
[Stable, Extensible]
@@ -646,7 +752,7 @@ enum InitialBrowserAction {
// Whether / how mlservice on-device handwriting is supported.
[Stable, Extensible]
-enum OndeviceHandwritingSupport{
+enum OndeviceHandwritingSupport {
kUnsupported = 0,
kUseRootfs = 1,
kUseDlc = 2,
@@ -703,8 +809,8 @@ enum OpenUrlFrom {
// If ash-chrome is newer than the browser, then some fields may not be
// processed by the browser.
//
-// Next version: 42
-// Next id: 42
+// Next version: 44
+// Next id: 44
[Stable, RenamedFrom="crosapi.mojom.LacrosInitParams"]
struct BrowserInitParams {
// This is ash-chrome's version of the Crosapi interface. This is used by
@@ -782,6 +888,11 @@ struct BrowserInitParams {
[MinVersion=11]
array<uint8>? device_account_policy@11;
+ // Timestamp (seconds since epoch in UTC) at which last device account policy
+ // fetch was attempted.
+ [MinVersion=42]
+ uint64 last_policy_fetch_attempt_timestamp@42;
+
// System idle info to initialize SystemIdleCache.
[MinVersion=12]
IdleInfo? idle_info@12;
@@ -816,10 +927,8 @@ struct BrowserInitParams {
[MinVersion=17]
bool web_apps_enabled@17;
- // TODO(crbug/1198528): remove use_new_account_manager parameter.
- // Specifies whether lacros-chrome should use new account manager logic.
[MinVersion=18]
- bool use_new_account_manager@18;
+ bool REMOVED_18@18;
// When this flag is |true|, Lacros is the primary browser and Ash is the
// secondary backup.
@@ -881,7 +990,7 @@ struct BrowserInitParams {
[MinVersion=28]
bool publish_chrome_apps@28;
-// When this flag is set, lacros will publish hosted apps to the app service.
+ // When this flag is set, lacros will publish hosted apps to the app service.
[MinVersion=39]
bool publish_hosted_apps@39;
@@ -969,7 +1078,13 @@ struct BrowserInitParams {
// the map are serialized PolicyFetchResponse proto messages from
// components/policy/proto/device_management_backend.proto.
[MinVersion=41]
- map<crosapi.mojom.PolicyNamespace, array<uint8>>? device_account_component_policy@41;
+ map<crosapi.mojom.PolicyNamespace, array<uint8>>? REMOVED_41@41;
+
+ // Component (i.e. chrome extensions) policy for the device account.
+ // Maps `PolicyNamespace` representing an extension to the JSON policy
+ // value for that extension.
+ [MinVersion=43]
+ map<crosapi.mojom.PolicyNamespace, mojo_base.mojom.Value>? device_account_component_policy@43;
};
// Parameters to specify OpenUrl behavior.
@@ -995,6 +1110,19 @@ struct OpenUrlParams {
WindowOpenDisposition disposition@0;
[MinVersion=1] OpenUrlFrom from@1;
+
+ // Decides how the URL's path is to be considered when WindowOpenDisposition
+ // is kSwitchToTab, i.e. a search is performed for an existing tab that
+ // matches a given URL.
+ [Stable, Extensible]
+ enum SwitchToTabPathBehavior {
+ // If the two paths are different, the URLs do not match.
+ [Default] kRespect = 0,
+
+ // Path is ignored when testing two URLs for a match.
+ kIgnore = 1,
+ };
+ [MinVersion=2] SwitchToTabPathBehavior path_behavior@2;
};
// BrowserService defines the APIs that live in a browser (such as
@@ -1004,8 +1132,8 @@ struct OpenUrlParams {
// has accidentally become a kitchen sink for different features. This was not
// intentional.
//
-// Next MinVersion: 66.
-// Next ID: 17
+// Next MinVersion: 69.
+// Next ID: 19
//
[Stable, Uuid="4e04dc16-b34c-40fd-9e3f-3c55c2c6cf91",
RenamedFrom="crosapi.mojom.LacrosChromeService"]
@@ -1049,14 +1177,17 @@ interface BrowserService {
NewGuestWindow@14() => ();
// Opens a new tab in the browser with, currently, the last used profile.
- // This may open a new window, if there's no window. Please see also
- // the Chrome's NewTab command for details.
+ // This may open a new window, if there's no window. If a new browser is
+ // opened and `should_trigger_session_restore` is set, the new browser will
+ // open with the profile's session startup pref. If this is not set the
+ // browser will open without considering the user's session startup pref.
+ // Please see also the Chrome's NewTab command for details.
// The callback is called on the command execution.
// This is designed to be equivalent of CTRL+T behavior. By default, this
// opens a new-tab-page, but extensions may override the behavior.
// Added in M91.
[MinVersion=10]
- NewTab@7() => ();
+ NewTab@7([MinVersion=68] bool should_trigger_session_restore) => ();
// Opens the specified URL in the browser. This opens a new tab and loads
// the page at specified URL.
@@ -1105,6 +1236,10 @@ interface BrowserService {
[MinVersion=9]
UpdateDeviceAccountPolicy@6(array<uint8> policy);
+ // Notifies Lacros about an attempt to update device account policy.
+ [MinVersion=66]
+ NotifyPolicyFetchAttempt@17();
+
// Updates keep-alive instance to maintain the browser lifetime.
// Note: there is always timing issue. If the browser is in the process of
// termination, this may not work. To fully implement keep-alive, ash-chrome
@@ -1119,11 +1254,16 @@ interface BrowserService {
[MinVersion=64]
OpenForFullRestore@15();
+ // The old UpdateComponentPolicy method.
+ [MinVersion=67]
+ REMOVED_16@16(map<crosapi.mojom.PolicyNamespace, array<uint8>> policy);
+
// Notifies Lacros to update the component policy data. The values of the map
- // are serialized PolicyFetchResponse proto messages from
- // components/policy/proto/device_management_backend.proto.
- [MinVersion=65]
- UpdateComponentPolicy@16(map<crosapi.mojom.PolicyNamespace, array<uint8>> policy);
+ // are JSON policy data downloaded by Ash. The `component_policy` argument
+ // maps `PolicyNamespace` representing an extension to the JSON policy value
+ // for that extension.
+ [MinVersion=67]
+ UpdateComponentPolicy@18(map<crosapi.mojom.PolicyNamespace, mojo_base.mojom.Value> component_policy);
};
// TODO(crbug.com/1180712): move to its own file. Currently due to circular
diff --git a/chromium/chromeos/crosapi/mojom/desk_template.mojom b/chromium/chromeos/crosapi/mojom/desk_template.mojom
index d09436556e2..a3621ab3ad3 100644
--- a/chromium/chromeos/crosapi/mojom/desk_template.mojom
+++ b/chromium/chromeos/crosapi/mojom/desk_template.mojom
@@ -7,6 +7,7 @@ module crosapi.mojom;
import "ui/base/mojom/ui_base_types.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
import "url/mojom/url.mojom";
+import "ui/gfx/image/mojom/image.mojom";
// Additional state of the browser in the single Lacros window for saving in the
// desk template.
@@ -22,8 +23,8 @@ struct DeskTemplateState {
};
// Interface for desk template clients. Implemented by lacros-chrome.
-// Next version: 3
-// Next method id: 2
+// Next version: 4
+// Next method id: 3
[Stable]
interface DeskTemplateClient {
// Creates a browser from the desk template data.
@@ -36,6 +37,11 @@ interface DeskTemplateClient {
// |window_unique_id|.
GetTabStripModelUrls@0(uint32 serial, string window_unique_id) => (
uint32 serial, string window_unique_id, DeskTemplateState? state);
+
+ // Gets the image of the favicon associated with `url`. Returns an empty
+ // image if the favicon cannot be found.
+ [MinVersion=3]
+ GetFaviconImage@2(url.mojom.Url url) => (gfx.mojom.ImageSkia? image);
};
// Interface for desk template. Implemented by ash-chrome.
diff --git a/chromium/chromeos/crosapi/mojom/device_settings_service.mojom b/chromium/chromeos/crosapi/mojom/device_settings_service.mojom
index 406ee4e6710..21fbacd5c9e 100644
--- a/chromium/chromeos/crosapi/mojom/device_settings_service.mojom
+++ b/chromium/chromeos/crosapi/mojom/device_settings_service.mojom
@@ -7,13 +7,13 @@ module crosapi.mojom;
import "mojo/public/mojom/base/values.mojom";
// Copy of UsbDetachableAllowlistProto from chrome_device_policy.proto.
-[Stable, Extensible]
+[Stable]
struct UsbDetachableAllowlist {
array<UsbDeviceId> usb_device_ids@0;
};
// Copy of UsbDeviceIdInclusiveProto from chrome_device_policy.proto.
-[Stable, Extensible]
+[Stable]
struct UsbDeviceId {
// USB Vendor Identifier (aka idVendor).
bool has_vendor_id@0;
@@ -24,7 +24,7 @@ struct UsbDeviceId {
};
// All the device settings data that are needed in Lacros should be here.
-[Stable, Extensible]
+[Stable]
struct DeviceSettings {
// The value of AttestationForContentProtectionEnabled device setting.
OptionalBool attestation_for_content_protection_enabled@0;
@@ -35,6 +35,9 @@ struct DeviceSettings {
// The value of UsbDetachableAllowlist device policy.
UsbDetachableAllowlist? usb_detachable_allow_list@2;
+ // The value of DeviceEphemeralUsersEnabled device policy.
+ [MinVersion=1] OptionalBool device_ephemeral_users_enabled@3;
+
[Stable]
enum OptionalBool {
kUnset,
diff --git a/chromium/chromeos/crosapi/mojom/digital_goods.mojom b/chromium/chromeos/crosapi/mojom/digital_goods.mojom
new file mode 100644
index 00000000000..c066e1dc5eb
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/digital_goods.mojom
@@ -0,0 +1,47 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "components/digital_goods/mojom/digital_goods.mojom";
+import "url/mojom/url.mojom";
+
+// Implemented in ash-chrome. Allows lacros-chrome to perform Digital Goods
+// operations (forwarded to ARC).
+[Stable, Uuid="6f2fbc9e-2ff1-47bd-a15d-08e12c226f61"]
+interface DigitalGoods {
+ // Queries the associated backend for information about one or more items.
+ GetDetails@0(string web_app_id, url.mojom.Url scope, array<string> item_ids)
+ => (payments.mojom.BillingResponseCode code,
+ array<payments.mojom.ItemDetails> item_details_list);
+
+ // Queries the associated backend for information on all items that are
+ // currently owned by the user. May include unconfirmed purchases.
+ ListPurchases@1(string web_app_id, url.mojom.Url scope)
+ => (payments.mojom.BillingResponseCode code,
+ array<payments.mojom.PurchaseReference> purchase_reference_list);
+
+ // Queries the associated backend for information on the latest purchase for
+ // each item type ever purchased by the user. May include expired or consumed
+ // purchases.
+ ListPurchaseHistory@2(string web_app_id, url.mojom.Url scope)
+ => (payments.mojom.BillingResponseCode code,
+ array<payments.mojom.PurchaseReference> purchase_reference_list);
+
+ // Informs the associated backend that the purchase identified by
+ // |purchase_token| was used up.
+ Consume@3(string web_app_id, url.mojom.Url scope, string purchase_token)
+ => (payments.mojom.BillingResponseCode code);
+};
+
+// Implemented in ash-chrome. Allows lacros-chrome to create a |DigitalGoods|
+// instance.
+[Stable, Uuid="1197d2ad-0f33-49e4-b6d6-370e255a9896"]
+interface DigitalGoodsFactory {
+ // Creates a DigitalGoods instance. The |digital_goods| is non-null iff
+ // |code| == kOk.
+ CreateDigitalGoods@0(string payment_method, string web_app_id)
+ => (payments.mojom.CreateDigitalGoodsResponseCode code,
+ pending_remote<DigitalGoods>? digital_goods);
+}; \ No newline at end of file
diff --git a/chromium/chromeos/crosapi/mojom/dlp.mojom b/chromium/chromeos/crosapi/mojom/dlp.mojom
index d7246e6a20d..51f2c263a8e 100644
--- a/chromium/chromeos/crosapi/mojom/dlp.mojom
+++ b/chromium/chromeos/crosapi/mojom/dlp.mojom
@@ -18,14 +18,14 @@ enum DlpRestrictionLevel {
};
// Corresponds to RestrictionLevelAndUrl struct.
-[Stable, Extensible]
+[Stable]
struct DlpRestrictionLevelAndUrl {
DlpRestrictionLevel level@0;
url.mojom.Url url@1;
};
// Corresponds to DlpContentRestrictionSet class.
-[Stable, Extensible]
+[Stable]
struct DlpRestrictionSet {
DlpRestrictionLevelAndUrl screenshot@0;
DlpRestrictionLevelAndUrl privacy_screen@1;
@@ -34,7 +34,7 @@ struct DlpRestrictionSet {
};
// Captured area.
-[Stable, Extensible]
+[Stable]
struct ScreenShareArea {
// All root windows if |window_id| is null.
string? window_id@0;
diff --git a/chromium/chromeos/crosapi/mojom/document_scan.mojom b/chromium/chromeos/crosapi/mojom/document_scan.mojom
new file mode 100644
index 00000000000..d920379d2d6
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/document_scan.mojom
@@ -0,0 +1,56 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "ui/gfx/geometry/mojom/geometry.mojom";
+
+// The enum below is exactly the same as its counterpart in
+// third_party/cros_system_api/dbus/lorgnette/lorgnette_service.proto
+
+// The failure mode of a scan job.
+[Stable, Extensible]
+enum ScanFailureMode {
+ // No failure occurred.
+ [Default] kNoFailure = 0,
+
+ // An unknown or generic failure occurred.
+ kUnknown = 1,
+
+ // The device is busy.
+ kDeviceBusy = 2,
+
+ // The document feeder is jammed.
+ kAdfJammed = 3,
+
+ // The document feeder is empty.
+ kAdfEmpty = 4,
+
+ // The flatbed cover is open.
+ kFlatbedOpen = 5,
+
+ // An error occurred while communicating with the device.
+ kIoError = 6,
+};
+
+// This interface is used to access scanners.
+[Stable, Uuid="f0c77c02-b5c1-4919-8218-3076ecad58db"]
+interface DocumentScan {
+ // Returns the names of all available, de-duplicated scanners.
+ GetScannerNames@0() => (array<string> scanner_names);
+
+ // Performs a simple scan of the first page with a given scanner name. There
+ // are no settings and the actual scanner settings will be hard coded to use
+ // color mode.
+ //
+ // Returns the failure mode (which may be `kNoFailure` on success) and the
+ // data for the first page. The callback that receives `scan_data` must check
+ // it is non-null, in addition to checking `failure_mode`, in order to
+ // determine if the call succeeded.
+ //
+ // This API is intentionally designed this way for backwards compatibility
+ // with the documentScan.scan API that exists as of this writing.
+ ScanFirstPage@1(string scanner_name)
+ => (ScanFailureMode failure_mode, string? scan_data);
+};
diff --git a/chromium/chromeos/crosapi/mojom/echo_private.mojom b/chromium/chromeos/crosapi/mojom/echo_private.mojom
new file mode 100644
index 00000000000..e40a87d5fa1
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/echo_private.mojom
@@ -0,0 +1,33 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+[Stable, Extensible]
+enum RegistrationCodeType {
+ kCoupon,
+ kGroup,
+};
+
+// EchoPrivate is a service used to provide trusted websites a mechanism to
+// confirm the device is a ChromeOS device. Allowed users may then receive
+// offers. Implemented in Ash.
+[Stable, Uuid="021dafa4-ff41-42ad-9158-98d8e7f1ad6a"]
+interface EchoPrivate {
+ // Checks TPM state to ensure the device is allowed to redeem offers. If it
+ // is, the user is then prompted to confirm. Returns true only if all checks
+ // pass.
+ CheckRedeemOffersAllowed@0(
+ string window_id, string service_name, string origin) => (bool allowed);
+
+ // Returns the contents of the oobe timestamp file in string format. The
+ // result should be considered an opaque value that is directly passed to the
+ // extension. Failure is reported as empty string.
+ [MinVersion=1]
+ GetOobeTimestamp@1() => (string timestamp);
+
+ // Returns an opaque string associated with the coupon or group type.
+ [MinVersion=2]
+ GetRegistrationCode@2(RegistrationCodeType type) => (string result);
+};
diff --git a/chromium/chromeos/crosapi/mojom/extension_info_private.mojom b/chromium/chromeos/crosapi/mojom/extension_info_private.mojom
new file mode 100644
index 00000000000..9ee85c093e2
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/extension_info_private.mojom
@@ -0,0 +1,28 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "mojo/public/mojom/base/values.mojom";
+
+// ExtensionInfoPrivate is a service that allows trusted extensions in Lacros to
+// get and set system properties. Implemented in Ash.
+[Stable, Uuid="97236d3f-848a-4365-8c7e-f4133e0c79ff"]
+interface ExtensionInfoPrivate {
+ // Returns a Dictionary-type base::Value that contains all results. This is
+ // considered an opaque value that is directly passed to the extension.
+ GetSystemProperties@0(array<string> property_names) =>
+ (mojo_base.mojom.Value properties);
+
+ // Sets the system timezone. There is no validation that the value is valid.
+ // This matches pre-existing behavior.
+ SetTimezone@1(string value);
+
+ // Sets a system property. Validation happens in ash. If the property is not
+ // found, returns |false| and has no effect.
+ SetBool@2(string property_name, bool value) => (bool found);
+
+ // Returns whether tablet mode is enabled.
+ IsTabletModeEnabled@3() => (bool enabled);
+};
diff --git a/chromium/chromeos/crosapi/mojom/field_trial.mojom b/chromium/chromeos/crosapi/mojom/field_trial.mojom
index 608eb750872..f8ddca59ddb 100644
--- a/chromium/chromeos/crosapi/mojom/field_trial.mojom
+++ b/chromium/chromeos/crosapi/mojom/field_trial.mojom
@@ -5,7 +5,7 @@
module crosapi.mojom;
// Information about Ash's field trial group to be propagated to lacros.
-[Stable, Extensible]
+[Stable]
struct FieldTrialGroupInfo {
string trial_name;
string group_name;
diff --git a/chromium/chromeos/crosapi/mojom/file_system_provider.mojom b/chromium/chromeos/crosapi/mojom/file_system_provider.mojom
new file mode 100644
index 00000000000..ff195b5d759
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/file_system_provider.mojom
@@ -0,0 +1,214 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "mojo/public/mojom/base/big_buffer.mojom";
+import "mojo/public/mojom/base/file_path.mojom";
+import "mojo/public/mojom/base/values.mojom";
+
+// A file system is uniquely identified by an opaque string (consisting of at
+// least the extension id + profile unique identifier) and a file_system_id.
+[Stable]
+struct FileSystemId {
+ // At a minimum, identifies the extension. May also need to identify profiles
+ // in the future.
+ string provider@0;
+
+ // A unique id (for a particular |provider|) provided by the extension.
+ string id@1;
+};
+
+// The primary data source for the file system.
+[Stable, Extensible]
+enum FileSystemSource {
+ [Default] kFile,
+ kNetwork,
+ kDevice
+};
+
+// Provides immutable metadata about a file system.
+[Stable]
+struct FileSystemMetadata {
+ // The identifier of the file system.
+ FileSystemId file_system_id@0;
+
+ // A human-readable name for the file system.
+ string display_name@1;
+
+ // Whether the file system supports operations which may change contents of
+ // the file system (such as creating, deleting or writing to files).
+ bool writable@2;
+
+ // The maximum number of files that can be opened at once. If 0, then not
+ // limited.
+ uint32 opened_files_limit@3;
+
+ // Whether the file system supports the tag field for observing directories.
+ bool supports_notify@4;
+};
+
+// Files can be opened either for reading or writing.
+[Stable, Extensible]
+enum OpenFileMode {
+ [Default] kRead,
+ kWrite,
+};
+
+[Stable]
+struct OpenedFile {
+ // A request ID to be be used by consecutive read/write and close requests.
+ int64 open_request_id@0;
+
+ // The path of the opened file. While it seems like it would make sense to use
+ // a base::Path, both the extension API and the ash FileSystemProvider API
+ // pass strings.
+ string file_path@1;
+
+ // Whether the file was opened for reading or writing.
+ OpenFileMode mode@2;
+};
+
+// Represents a watcher.
+[Stable]
+struct FSPWatcher {
+ // The path of the entry being observed.
+ mojo_base.mojom.FilePath entry_path@0;
+
+ // Whether watching should include all child entries recursively. It can be
+ // true for directories only.
+ bool recursive@1;
+
+ // Tag used by the last notification for the watcher.
+ string last_tag@2;
+};
+
+[Stable]
+struct FileSystemInfo {
+ // Fixed metadata about the file system.
+ FileSystemMetadata metadata@0;
+
+ // List of currently opened files.
+ array<OpenedFile> opened_files@1;
+
+ // List of watchers.
+ array<FSPWatcher> watchers@2;
+};
+
+[Stable, Extensible]
+enum FSPChangeType {
+ [Default] kChanged,
+ kDeleted
+};
+
+[Stable]
+struct FSPChange {
+ FSPChangeType type@0;
+ mojo_base.mojom.FilePath path@1;
+};
+
+[Stable, Extensible]
+enum FSPOperationResponse {
+ [Default] kUnknown,
+ kUnmountSuccess,
+ kGetEntryMetadataSuccess,
+ kGetActionsSuccess,
+ kReadDirectorySuccess,
+ kReadFileSuccess,
+ kGenericSuccess,
+ kGenericFailure,
+};
+
+// Implemented by Lacros.
+[Stable, Uuid="8cbcf151-c189-4fe9-90ff-892c7f5637a9"]
+interface FileSystemProvider {
+ // Allows Ash file system to forward an operation to Lacros extension
+ // providers.
+ // We use mojo_base.mojom.Value as the type because:
+ // * The extension API is stable.
+ // * Both the supplier and consumer of this information uses a type
+ // interchangeable with mojo_base.mojom.Value. While we could add a
+ // translation layer to a strongly typed mojom struct, this adds a
+ // overhead and the potential for errors with no benefit.
+ // Similarly, histogram_value is an int32 instead of the native enum
+ // HistogramValue because the enum is stable, has hundreds of entries, and
+ // cannot be type-mapped due to build-time dependency inversions.
+ // Provider will typically be an extension_id but is intentionally left
+ // abstract to support multi-profile in the future.
+ // |delivery_failure| is set to true if the operation could not be forwarded
+ // to the extension for any reason.
+ [MinVersion=1]
+ DeprecatedForwardOperation@0(
+ string provider, int32 histogram_value, string event_name,
+ array<mojo_base.mojom.Value> args);
+ [MinVersion=2]
+ ForwardOperation@1(
+ string provider, int32 histogram_value, string event_name,
+ array<mojo_base.mojom.Value> args) => (bool delivery_failure);
+};
+
+// Implemented by Ash. Extensions in Lacros can register themselves as file
+// system providers. As the underlying system in Ash already supports
+// multiplexing, we refrain from introducing a second layer of multiplexing at
+// the crosapi layer. Lacros registers itself as a FileSystemProvider at
+// startup. Extensions will call the "mount" method to make themselves known to
+// Ash. At that point, Ash will send operations via FileSystemProvider, which
+// Lacros will fulfill by calling methods in FileSystemProviderService. This
+// creates a state machine with state spread between Ash and Lacros. This is
+// dispreferred but unfortunately impossible to avoid given the design of the
+// fileSystemProvider extension API.
+[Stable, Uuid="82db93f7-e0a5-4a9c-a09f-db92f9e45348"]
+interface FileSystemProviderService {
+ // File system providers use this interface to receive operation requests.
+ RegisterFileSystemProvider@0(pending_remote<FileSystemProvider> provider);
+
+ // Makes a filesystem provided by an extension visible to the operating system
+ // and other consumers.
+ Mount@1(FileSystemMetadata metadata, bool persistent) => (string error);
+
+ // Makes a filesystem provided by an extension unavailable.
+ Unmount@2(FileSystemId file_system_id) => (string error);
+
+ // Returns all file systems mounted by the extension.
+ GetAll@3(string provider) => (array<FileSystemInfo> infos);
+
+ // Returns information about a file system with the passed file_system_id.
+ Get@4(FileSystemId file_system_id) => (FileSystemInfo? info);
+
+ // Called by the extension to notify watchers of changes.
+ // |file_system_id| is the identifier of the file system related to this
+ // change.
+ // |watcher| gives information about the path being observed, including the
+ // tag.
+ // |type| provides information about the observed entry.
+ // |changes| provides information about the observed directory.
+ // Note: for backwards compatibility with the existing extension API, both
+ // |type| and |changes| are necessary even though they appear mutually
+ // exclusive.
+ Notify@5(FileSystemId file_system_id, FSPWatcher watcher,
+ FSPChangeType type, array<FSPChange> changes) => (string error);
+
+ // The following function represents responses from the Extension after
+ // handling an operation. We use mojo_base.mojom.Value as the type because:
+ // * The extension API is stable.
+ // * Both the supplier and consumer of this information uses a type
+ // interchangeable with mojo_base.mojom.Value. While we could add a
+ // translation layer to a strongly typed mojom struct, this adds a
+ // overhead and the potential for errors with no benefit.
+ // |request_id| corresponds to ids passed in via methods on interface
+ // FileSystemProvider.
+ [MinVersion=1]
+ OperationFinished@6(FSPOperationResponse response,
+ FileSystemId file_system_id, int64 request_id,
+ array<mojo_base.mojom.Value> args) => (string error);
+
+ // Called by Lacros when a filesystem providing extension is loaded.
+ [MinVersion=2]
+ ExtensionLoaded@7(bool configurable, bool watchable, bool multiple_mounts,
+ FileSystemSource source, string extension_name, string extension_id);
+
+ // Called by Lacros when a filesystem providing extension is unloaded.
+ [MinVersion=2]
+ ExtensionUnloaded@8(string id, bool due_to_shutdown);
+};
diff --git a/chromium/chromeos/crosapi/mojom/keystore_error.mojom b/chromium/chromeos/crosapi/mojom/keystore_error.mojom
index b89bbbe439e..79aebbb8c68 100644
--- a/chromium/chromeos/crosapi/mojom/keystore_error.mojom
+++ b/chromium/chromeos/crosapi/mojom/keystore_error.mojom
@@ -6,10 +6,10 @@ module crosapi.mojom;
// Status codes for KeystoreService methods.
// Mostly mirrors platform_keys::Status enum.
-[Stable, Extensible, Default=kUnknown]
+[Stable, Extensible]
enum KeystoreError {
// platform_keys errors.
- kUnknown,
+ [Default] kUnknown,
kAlgorithmNotSupported,
kAlgorithmNotPermittedByCertificate,
kCertificateNotFound,
diff --git a/chromium/chromeos/crosapi/mojom/keystore_service.mojom b/chromium/chromeos/crosapi/mojom/keystore_service.mojom
index 22a1678f3f2..a97c59c2152 100644
--- a/chromium/chromeos/crosapi/mojom/keystore_service.mojom
+++ b/chromium/chromeos/crosapi/mojom/keystore_service.mojom
@@ -34,7 +34,7 @@ enum KeystoreType {
// Input parameters for RSASSA-PKCS1-v1_5. Parameters other than modulus_length
// and sw_backed are currently not supported when used as inputs to
// GenerateKey().
-[Stable, Extensible]
+[Stable]
struct KeystorePKCS115Params {
[MinVersion=0]
uint32 modulus_length@0;
@@ -47,13 +47,13 @@ struct KeystorePKCS115Params {
// Input parameters for ECDSA. |named_curve| uses WebCrypto nomenclature.
// Currently "P-256" is the only supported curve.
-[Stable, Extensible]
+[Stable]
struct KeystoreECDSAParams {
string named_curve;
};
// A signing algorithm is fully described by choice of algorithm and parameters.
-[Stable, Extensible]
+[Stable]
union KeystoreSigningAlgorithm {
KeystorePKCS115Params pkcs115;
KeystoreECDSAParams ecdsa;
@@ -68,9 +68,9 @@ enum KeystoreSigningAlgorithmName {
};
// Recognized WebCrypto signing schemes.
-[Stable, Extensible, Default=kUnknown]
+[Stable, Extensible]
enum KeystoreSigningScheme {
- kUnknown = 0,
+ [Default] kUnknown = 0,
kRsassaPkcs1V15None = 1, // The data is PKCS#1 v1.5 padded but not hashed.
kRsassaPkcs1V15Sha1 = 2,
kRsassaPkcs1V15Sha256 = 3,
@@ -371,7 +371,7 @@ interface KeystoreService {
// DEPRECATED, use `GetCertificates` instead.
// Returns the certificates in the indicated keystore. The result is an array
// of DER encoded X.509 certificates.
- [MinVersion=2, RenamedFrom="crosapi.mojom.GetCertificates"]
+ [MinVersion=2]
DEPRECATED_GetCertificates@2(KeystoreType keystore) =>
(DEPRECATED_GetCertificatesResult result);
diff --git a/chromium/chromeos/crosapi/mojom/launcher_search.mojom b/chromium/chromeos/crosapi/mojom/launcher_search.mojom
index 42d65ea0949..0835af40c9c 100644
--- a/chromium/chromeos/crosapi/mojom/launcher_search.mojom
+++ b/chromium/chromeos/crosapi/mojom/launcher_search.mojom
@@ -157,13 +157,17 @@ interface SearchResultsPublisher {
OnSearchResultsReceived@0(SearchStatus status, array<SearchResult>? result);
};
-// Interface to send query from ash to lacros. Implemented in lacros.
+// Interface to send search queries from ash to lacros. Implemented in lacros.
// Next min method ID: 2
[Stable, Uuid="c2d77467-b04d-4b10-8f54-de52c3cbe30d"]
interface SearchController {
// Sends search queries from ash to lacros. If a search query is called while
// there is an in-flight search query, the in-flight search query will be
- // cancelled before the new search query being executed.
+ // cancelled before the new search query is executed.
+ //
+ // Returns the pipe to bind to the implementation of `SearchResultsPublisher`
+ // that should receive the results of this search. Returns a new pipe each
+ // invocation so that each pipe conceptually represents a single search.
Search@0(mojo_base.mojom.String16 query) =>
(pending_associated_receiver<SearchResultsPublisher> publisher);
};
diff --git a/chromium/chromeos/crosapi/mojom/login.mojom b/chromium/chromeos/crosapi/mojom/login.mojom
index 473cf439a4d..7bb1d7d6aed 100644
--- a/chromium/chromeos/crosapi/mojom/login.mojom
+++ b/chromium/chromeos/crosapi/mojom/login.mojom
@@ -38,14 +38,6 @@ interface ExternalLogoutRequestObserver {
// Next MinVersion: 4
[Stable, Uuid="639e9f04-981f-46d1-91da-583c2958265b"]
interface Login {
- // Launches a managed guest session if one is set up via the admin console.
- // If there are several managed guest sessions set up, it will launch the
- // first available one.
- // If a password is provided, the Managed Guest Session will be lockable and
- // can be unlocked by providing the same password to
- // |UnlockManagedGuestSession()|.
- LaunchManagedGuestSession@0(string? password) => (string? error);
-
// Exits the current session. If |data_for_next_login_attempt| is provided,
// stores data which can be read by |FetchDataForNextLoginAttempt()|.
ExitCurrentSession@1(string? data_for_next_login_attempt) => (string? error);
@@ -58,29 +50,6 @@ interface Login {
// Deprecated. Use |LockCurrentSession()| below.
LockManagedGuestSession@3() => (string? error);
- // Deprecated. Use |UnlockCurrentSession()| below.
- UnlockManagedGuestSession@4(string password) => (string? error);
-
- // Starts a ChromeOS Managed Guest Session which will host the shared user
- // sessions. An initial shared session is entered with |password| as the
- // password. When this shared session is locked, it can only be unlocked by
- // calling |UnlockSharedSession()| with the same password.
- LaunchSharedManagedGuestSession@5(string password) => (string? error);
-
- // Enters the shared session with the given password. If the session is
- // locked, it can only be unlocked by calling |UnlockSharedSession()| with
- // the same password.
- // Fails if there is already a shared session running. Can only be called
- // from the lock screen.
- EnterSharedSession@6(string password) => (string? error);
-
- // Unlocks the shared session with the provided password. Fails if the
- // password does not match the one provided to
- // |LaunchSharedManagedGuestSession()| or |EnterSharedSession()|.
- // Fails if there is no existing shared session. Can only be called from the
- // lock screen.
- UnlockSharedSession@7(string password) => (string? error);
-
// Ends the shared session. Security- and privacy-sensitive data in the
// session will be cleaned up on a best effort basis.
// Can be called from both the lock screen or in session.
@@ -91,25 +60,12 @@ interface Login {
// calling |FetchDataForNextLoginAttempt()|.
SetDataForNextLoginAttempt@9(string data_for_next_login_attempt) => ();
- // Launches a SAML user session with the provided email, gaiaId, password
- // and oauth_code cookie.
- [MinVersion=1]
- LaunchSamlUserSession@10(SamlUserSessionProperties properties) =>
- (string? error);
-
// Locks the current session. The session has to be either a user session or a
// Managed Guest Session launched by |LaunchManagedGuestSession()| with a
// password.
[MinVersion=1]
LockCurrentSession@11() => (string? error);
- // Unlocks the current session. The session has to be either a user session or
- // a Managed Guest Session launched by |LaunchManagedGuestSession()| with a
- // password. The session will unlock if |password| matches the one provided
- // to at launch.
- [MinVersion=1]
- UnlockCurrentSession@12(string password) => (string? error);
-
// Adds an observer for the cleanup triggered event.
[MinVersion=2]
AddLacrosCleanupTriggeredObserver@13(
@@ -126,4 +82,16 @@ interface Login {
// lock screen (ash-chrome) listens for the dispatched event.
[MinVersion=3]
NotifyOnExternalLogoutDone@16();
+
+ // Removed methods.
+ REMOVED_0@0(string? password) => (string? error);
+ REMOVED_4@4(string password) => (string? error);
+ REMOVED_5@5(string password) => (string? error);
+ REMOVED_6@6(string password) => (string? error);
+ REMOVED_7@7(string password) => (string? error);
+ [MinVersion=1]
+ REMOVED_10@10(SamlUserSessionProperties properties) =>
+ (string? error);
+ [MinVersion=1]
+ REMOVED_12@12(string password) => (string? error);
};
diff --git a/chromium/chromeos/crosapi/mojom/login_screen_storage.mojom b/chromium/chromeos/crosapi/mojom/login_screen_storage.mojom
index dc65f314efc..1f7b5730537 100644
--- a/chromium/chromeos/crosapi/mojom/login_screen_storage.mojom
+++ b/chromium/chromeos/crosapi/mojom/login_screen_storage.mojom
@@ -14,7 +14,7 @@ union LoginScreenStorageRetrieveResult {
};
// Copy of LoginScreenStorageMetadata from login_screen_storage.proto.
-[Stable, Extensible]
+[Stable]
struct LoginScreenStorageMetadata {
// Whether the saved key/value pair should be deleted on session exit.
bool clear_on_session_exit@0;
diff --git a/chromium/chromeos/crosapi/mojom/metrics_reporting.mojom b/chromium/chromeos/crosapi/mojom/metrics_reporting.mojom
index 3667a617545..5b444df789f 100644
--- a/chromium/chromeos/crosapi/mojom/metrics_reporting.mojom
+++ b/chromium/chromeos/crosapi/mojom/metrics_reporting.mojom
@@ -6,10 +6,12 @@ module crosapi.mojom;
// Interface for observers of metrics reporting consent. Implemented by
// lacros-chrome. Used by ash-chrome to send update notifications.
+// Next version: 2
[Stable, Uuid="3bfcacbc-ab16-4731-9e11-3523983915d0"]
interface MetricsReportingObserver {
// Called when the metrics reporting state changes.
- OnMetricsReportingChanged@0(bool enabled);
+ // If enabled is set to true, the client_id must be provided.
+ OnMetricsReportingChanged@0(bool enabled, [MinVersion=1] string? client_id);
};
// Interface for metrics reporting consent. Implemented by ash-chrome.
diff --git a/chromium/chromeos/crosapi/mojom/networking_private.mojom b/chromium/chromeos/crosapi/mojom/networking_private.mojom
new file mode 100644
index 00000000000..6867f534ed4
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/networking_private.mojom
@@ -0,0 +1,162 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "mojo/public/mojom/base/values.mojom";
+
+[Stable]
+union StringSuccessOrErrorReturn {
+ // If provided, an error has occurred.
+ string error;
+
+ // If provided, the call was a success and the result is this string.
+ string success_result;
+};
+
+[Stable]
+union DictionarySuccessOrErrorReturn {
+ // If provided, an error has occurred.
+ string error;
+
+ // If provided, the call was a success and the result is this string.
+ mojo_base.mojom.DeprecatedDictionaryValue success_result;
+};
+
+[Stable]
+union ListValueSuccessOrErrorReturn {
+ // If provided, an error has occurred.
+ string error;
+
+ // If provided, the call was a success and the result is this string.
+ mojo_base.mojom.ListValue success_result;
+};
+
+[Stable]
+union PropertiesSuccessOrErrorReturn {
+ // If provided, an error has occurred.
+ string error;
+
+ // If provided, the call was a success and the result is this string.
+ mojo_base.mojom.Value success_result;
+};
+
+// This interface mirrors the NetworkingPrivateDelegate from Lacros to Ash to
+// allow the networking.private / networking.onc extensions to be used. Note
+// that this API is stable since years and will rather be deprecated than
+// changed. As such the API does reflect the state as is.
+// Furthermore this API will only be called for the primary profile user.
+[Stable, Uuid="30ea6c34-8a25-4fd5-86d5-887e166d2b01"]
+interface NetworkingPrivate {
+ // Called to retrieve a list of properties for the network identified by
+ // |guid| whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ GetProperties@0(string guid) => (PropertiesSuccessOrErrorReturn result);
+
+ // Called to retrieve a list of managed properties for the network identified
+ // by |guid| whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ GetManagedProperties@1(string guid)
+ => (PropertiesSuccessOrErrorReturn result);
+
+ // Called to retrieve the current state for the network identified by |guid|.
+ GetState@2(string guid) => (DictionarySuccessOrErrorReturn result);
+
+ // Called to set the |properties| for the network identified by |guid|
+ // accordingly. Whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ SetProperties@3(string guid,
+ mojo_base.mojom.DeprecatedDictionaryValue properties,
+ bool allow_set_shared_config)
+ => (string error_or_empty);
+
+ // Called to create a network with the given |properties|. If |shared| is
+ // true, it can be shared with all other users.
+ CreateNetwork@4(bool shared,
+ mojo_base.mojom.Value properties)
+ => (StringSuccessOrErrorReturn result);
+
+ // Called to forget the given network identified by |guid|
+ // whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ ForgetNetwork@5(string guid,
+ bool allow_forget_shared_config)
+ => (string error_or_empty);
+
+ // Call to get an enumeration of all the networks.
+ GetNetworks@6(string network_type,
+ bool configured_only,
+ bool visible_only,
+ int32 limit)
+ => (ListValueSuccessOrErrorReturn result);
+
+ // Start a network connection for the network identified by |guid|
+ // whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ StartConnect@7(string guid) => (string error_or_empty);
+
+ // Start to disconnect a network connection identified by |guid|
+ // whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ StartDisconnect@8(string guid) => (string error_or_empty);
+
+ // Start the activation process for the network identified by |guid| whereas
+ // |guid| gets returned by GetNetworks or CreateNetwork.
+ StartActivate@9(string guid,
+ string carrier)
+ => (string error_or_empty);
+
+ // Get the status of a captive portal for a network identified by |guid|
+ // whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ GetCaptivePortalStatus@10(string guid) => (StringSuccessOrErrorReturn result);
+
+ // Unlocks a cellular sim card. |Guid| is the cellular network to unlock. If
+ // null is passed, the default cellular device will be used.
+ // |pin| is the current SIM PIN, or the new PIN if |puk| is provided.
+ // |puk| is provided by the operator for unblocking a blocked SIM.
+ UnlockCellularSim@11(string guid,
+ string pin,
+ string puk)
+ => (string error_or_empty);
+
+ // Sets the state of the cellular SIM card. |Guid| is the cellular network to
+ // to set the SIM state of. If empty, the default cellular device will be
+ // used.
+ SetCellularSimState@12(string guid,
+ bool require_pin,
+ string current_pin,
+ string new_pin)
+ => (string error_or_empty);
+
+ // Selects the cellular network. |Guid| is the cellular network to select
+ // whereas |guid| gets returned by GetNetworks or CreateNetwork.
+ SelectCellularMobileNetwork@13(string guid,
+ string network_id)
+ => (string error_or_empty);
+
+ // Returns a list of ONC type strings.
+ GetEnabledNetworkTypes@14()
+ => (mojo_base.mojom.ListValue? network_types);
+
+ // Returns a list of DeviceStateProperties.
+ GetDeviceStateList@15()
+ => (array<mojo_base.mojom.DeprecatedDictionaryValue?>? device_list);
+
+ // Returns a dictionary of global policy values (may be empty). Note: the
+ // dictionary is expected to be a superset of the networkingPrivate
+ // GlobalPolicy dictionary. Any properties not in GlobalPolicy will be
+ // ignored.
+ GetGlobalPolicy@16() => (mojo_base.mojom.DeprecatedDictionaryValue? policies);
+
+ // Returns a dictionary of certificate lists.
+ GetCertificateLists@17()
+ => (mojo_base.mojom.DeprecatedDictionaryValue? certificates);
+
+ // Returns true if the ONC network type |type| is enabled.
+ EnableNetworkType@18(string type) => (bool enabled);
+
+ // Returns true if the ONC network type |type| is disabled.
+ DisableNetworkType@19(string type) => (bool disabled);
+
+ // Returns true if a scan was requested. It may take many seconds for a scan
+ // to complete. The scan may or may not trigger API events when complete.
+ // |type| is the type of network to request a scan for; if empty, scans for
+ // all supported network types except Cellular, which must be requested
+ // explicitly.
+ RequestScan@20(string type) => (bool scan_requested);
+};
diff --git a/chromium/chromeos/crosapi/mojom/prefs.mojom b/chromium/chromeos/crosapi/mojom/prefs.mojom
index 257c911bcc8..cf26430270c 100644
--- a/chromium/chromeos/crosapi/mojom/prefs.mojom
+++ b/chromium/chromeos/crosapi/mojom/prefs.mojom
@@ -85,6 +85,10 @@ enum PrefPath {
[MinVersion=4] kPreferredLanguages = 28,
// M100: language::prefs::kApplicationLocale (profile)
[MinVersion=4] kApplicationLocale = 29,
+ // M104: prefs::kSharedStorage (profile)
+ [MinVersion=5] kSharedStorage = 30,
+ // M104: prefs::kProtectedContentDefault (extension)
+ [MinVersion=6] kProtectedContentDefault = 31,
};
// Information about who or what is controlling a particular pref. This is used
@@ -93,9 +97,9 @@ enum PrefPath {
// Note that with respect to LevelOfControl, we do not consider extensions in
// ash as extensions. They are treated as a prefstore of higher precedence.
// However, no extensions in ash are expected to set these prefs.
-[Stable, Extensible, Default=kDefaultUnknown]
+[Stable, Extensible]
enum PrefControlState {
- kDefaultUnknown = 0,
+ [Default] kDefaultUnknown = 0,
// Controlled by an extension in lacros. Ash does not have enough information
// to know which extension in Lacros is controlling this pref.
kLacrosExtensionControlled = 1,
@@ -120,7 +124,7 @@ interface PrefObserver {
};
// Interface for prefs. Implemented by ash-chrome.
-// Next version: 3
+// Next version: 4
// Next method id: 5
[Stable, Uuid="815df607-0596-46f7-9ed9-14683b4826a3"]
interface Prefs {
@@ -130,7 +134,7 @@ interface Prefs {
// Gets the specified ash pref. Additionally returns the control state of the
// pref.
- [MinVersion=2]
+ [MinVersion=3]
GetExtensionPrefWithControl@3(PrefPath path) => (
mojo_base.mojom.Value? value, PrefControlState control);
diff --git a/chromium/chromeos/crosapi/mojom/speech_recognition.mojom b/chromium/chromeos/crosapi/mojom/speech_recognition.mojom
new file mode 100644
index 00000000000..20916411fd8
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/speech_recognition.mojom
@@ -0,0 +1,22 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "media/mojo/mojom/speech_recognition.mojom";
+
+// Allows LaCrOS to access speech recognition provided by Ash, to power features
+// such as Live Caption.
+[Stable, Uuid="c881b018-a0a5-4d2e-9bfe-1f0cc9bd78bd"]
+interface SpeechRecognition {
+ // Binds a speech recognition engine.
+ BindSpeechRecognitionContext@0(
+ pending_receiver<media.mojom.SpeechRecognitionContext> receiver);
+
+ // Binds a browser interface for renderers to use to react to changing
+ // availability of speech recognition.
+ BindSpeechRecognitionClientBrowserInterface@1(
+ pending_receiver<media.mojom.SpeechRecognitionClientBrowserInterface>
+ receiver);
+};
diff --git a/chromium/chromeos/crosapi/mojom/sync.mojom b/chromium/chromeos/crosapi/mojom/sync.mojom
index cb28175fc2e..b96080fbc14 100644
--- a/chromium/chromeos/crosapi/mojom/sync.mojom
+++ b/chromium/chromeos/crosapi/mojom/sync.mojom
@@ -59,13 +59,35 @@ interface SyncExplicitPassphraseClient {
NigoriKey decryption_key);
};
+// Allows lacros-chrome to observe ash-chrome user settings changes.
+[Stable, Uuid="925b02ff-cc06-44a1-a244-69e84259c1cf"]
+interface SyncUserSettingsClientObserver {
+ // Called when apps sync is enabled/disabled by the user.
+ OnAppsSyncEnabledChanged@0(bool enabled);
+};
+
+// Defines a Sync API related to sync user settings that lives in ash-chrome
+// and is accessed from lacros-chrome.
+[Stable, Uuid="a3466eae-955f-492f-9bc7-b4bfb57b6dca"]
+interface SyncUserSettingsClient {
+ // Adds a new observer.
+ AddObserver@0(pending_remote<SyncUserSettingsClientObserver> observer);
+
+ // Returns whether apps sync is currently enabled by the user.
+ IsAppsSyncEnabled@1() => (bool enabled);
+};
+
// Defines a Sync API that lives in ash-chrome and is accessed from
// lacros-chrome. To be extended in the future.
-// Next version: 1
-// Next ordinal value: 1
+// Next version: 2
+// Next ordinal value: 2
[Stable, Uuid="4499c528-4578-466d-a97d-d66217323f48"]
interface SyncService {
// Binds SyncExplicitPassphraseClient, that lives in ash-chrome.
BindExplicitPassphraseClient@0(
pending_receiver<SyncExplicitPassphraseClient> receiver);
+
+ // Binds SyncUserSettings, that lives in ash-chrome.
+ [MinVersion = 1]
+ BindUserSettingsClient@1(pending_receiver<SyncUserSettingsClient> receiver);
};
diff --git a/chromium/chromeos/crosapi/mojom/test_controller.mojom b/chromium/chromeos/crosapi/mojom/test_controller.mojom
index 98293f99a94..2853d21f767 100644
--- a/chromium/chromeos/crosapi/mojom/test_controller.mojom
+++ b/chromium/chromeos/crosapi/mojom/test_controller.mojom
@@ -31,19 +31,44 @@ enum OptionalBoolean {
// Implemented in lacros-chrome.
// Lets the Ash browser tests that require Lacros to send commands to this
// lacros-chrome instance.
+// Next version: 2
+// Next method id: 2
[Stable, Uuid="20e7f031-f4e1-4ad9-bd91-ad59eb8b1504"]
interface StandaloneBrowserTestController {
// Installs a test web app in lacros-chrome given a start URL and mode (open
// in a tab or window) and returns the ID of the installed app (see
// |web_app::GenerateAppId|).
InstallWebApp@0(string start_url, WindowMode mode) => (string app_id);
+
+ // Loads a fake extension in lacros-chrome, assigns it the given name and
+ // returns the ID of the loaded extension.
+ [MinVersion=1]
+ LoadVpnExtension@1(string extension_name) => (string extension_id);
+};
+
+// Allows callers running in lacros to trigger test events that are passed to
+// the active Vpn configuration.
+// See chrome/browser/lacros/vpn_provider_lacros_apitest.cc for details.
+// Next version: 1
+// Next method id: 2
+[Stable, Uuid="e2bca22e-32e9-40b3-a0bc-035b41534496"]
+interface TestShillController {
+ // Simulate |data| being received by the configuration determined by
+ // |extension_id| and |configuration_name|.
+ OnPacketReceived@0(string extension_id, string configuration_name,
+ array<uint8> data);
+
+ // Simulate |message| being received by the configuration determined by
+ // |extension_id| and |configuration_name|.
+ OnPlatformMessage@1(string extension_id, string configuration_name,
+ uint32 message);
};
// This interface is implemented by Ash-Chrome.
// This interface provides tests a mechanism to mutate or query ash.
// In the future, this interface may merge with an automation or a11y interface.
-// Next version: 13
-// Next method id: 22
+// Next version: 14
+// Next method id: 23
[Stable, Uuid="1f93f9d7-e466-466c-a675-c21b48cf30d3"]
interface TestController {
// Clicks the middle of the views element identified by |element_name|.
@@ -165,4 +190,19 @@ interface TestController {
// Sharesheets.
[MinVersion=12]
SetSelectedSharesheetApp@21(string app_id) => ();
+
+ // Returns the version of ash-chrome, e.g. "103.0.5029.0". The returned string
+ // is intended to be compatible with the base::Version(StringPiece)
+ // constructor.
+ // Consider using the convenience wrapper
+ // lacros_test_helper.h:IsAshVersionAtLeastForTesting instead.
+ // Introduced in M-103.
+ [MinVersion=13]
+ GetAshVersion@22() => (string ash_version);
+
+ // Binds |test_shill_controller| that can be used to simulate packet/message
+ // events.
+ [MinVersion=14]
+ BindTestShillController@23(
+ pending_receiver<TestShillController> test_shill_controller) => ();
};
diff --git a/chromium/chromeos/crosapi/mojom/vpn_extension_observer.mojom b/chromium/chromeos/crosapi/mojom/vpn_extension_observer.mojom
new file mode 100644
index 00000000000..cfaabf0894d
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/vpn_extension_observer.mojom
@@ -0,0 +1,19 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+// Receives updates from Lacros when Vpn extensions get loaded or unloaded.
+// Next version: 1
+// Next method id: 2
+[Stable, Uuid="e35782e4-76b4-4de1-b808-bb0fec852faa"]
+interface VpnExtensionObserver {
+ // Invoked when extension with |extension_id| and |extension_name| is loaded.
+ // See ExtensionRegistryObserver::OnExtensionLoaded(...) for details.
+ OnLacrosVpnExtensionLoaded@0(string extension_id, string extension_name);
+
+ // Invoked when extension with |extension_id| is unloaded.
+ // See ExtensionRegistryObserver::OnExtensionUnloaded(...) for details.
+ OnLacrosVpnExtensionUnloaded@1(string extension_id);
+}; \ No newline at end of file
diff --git a/chromium/chromeos/crosapi/mojom/vpn_service.mojom b/chromium/chromeos/crosapi/mojom/vpn_service.mojom
new file mode 100644
index 00000000000..e82d05d9c30
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/vpn_service.mojom
@@ -0,0 +1,135 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "mojo/public/mojom/base/values.mojom";
+
+[Stable]
+struct VpnErrorResponse {
+ string? name@0;
+ string? message@1;
+};
+
+// Adapter that allows packets received by ash to be routed through
+// PepperVpnProviderResourceHostProxy running in lacros.
+// See content/public/browser/pepper_vpn_provider_resource_host_proxy.h for
+// details.
+// Next version: 1
+// Next method id: 2
+[Stable, Uuid="abf3cd5e-a471-40a1-947b-3be9f8519da4"]
+interface PepperVpnProxyObserver {
+ // Invoked when the active Vpn configuration disconnects.
+ // Corresponds to
+ // PepperVpnProviderResourceHostProxy::SendOnUnbind().
+ OnUnbind@0();
+
+ // Invoked when the active Vpn configuration receives |data| packet.
+ // Corresponds to
+ // PepperVpnProviderResourceHostProxy::SendOnPacketReceived(...).
+ OnPacketReceived@1(array<uint8> data);
+};
+
+// Listens to events dispatched by VpnServiceForExtension.
+// See
+// * chrome.vpnProvider.onPlatformMessage
+// * chrome.vpnProvider.onPacketReceived
+// * chrome.vpnProvider.onConfigRemoved
+// * chrome.vpnProvider.onUIEvent
+// Next version: 1
+// Next method id: 1
+[Stable, Uuid="76ed414e-1710-4b5c-895d-181714376511"]
+interface EventObserverForExtension {
+ // Dispatches UI_EVENT_SHOWADDDIALOG.
+ OnAddDialog@0();
+
+ // Dispatches UI_EVENT_SHOWCONFIGUREDIALOG.
+ OnConfigureDialog@1(string configuration_name);
+
+ // Dispatches OnConfigRemoved event.
+ OnConfigRemoved@2(string configuration_name);
+
+ // Dispatches OnPlatformMessage event.
+ OnPlatformMessage@3(string configuration_name,
+ int32 platform_message, string? error);
+
+ // Dispatches OnPacketReceived event.
+ OnPacketReceived@4(array<uint8> data);
+};
+
+// VpnServiceForExtension manages VPN configurations for a specific extension.
+// Next version: 1
+// Next method id: 8
+[Stable, Uuid="6743d9c7-e6c1-4f12-8f6c-571264044dea"]
+interface VpnServiceForExtension {
+ // Creates a new VPN configuration with |configuration_name| as the name and
+ // attaches it to the extension.
+ // See chrome.vpnProvider.createConfiguration(...)
+ CreateConfiguration@0(string configuration_name)
+ => (VpnErrorResponse? error);
+
+ // Destroys the VPN configuration with |configuration_name| after verifying
+ // that it belongs to the extension.
+ // See chrome.vpnProvider.destroyConfiguration(...)
+ DestroyConfiguration@1(string configuration_name)
+ => (VpnErrorResponse? error);
+
+ // Set |parameters| for the active VPN configuration after verifying that it
+ // belongs to the extension.
+ // See chrome.vpnProvider.setParameters(...)
+ // We use mojo_base.mojom.DictionaryValue as the type because:
+ // * The shill counterpart is stable and expects base::Value with type=dict.
+ // * Both the supplier and consumer of this information uses a type
+ // interchangeable with mojo_base.mojom.DictionaryValue. While we could add
+ // a translation layer to a strongly typed mojom struct, this adds an
+ // overhead and the potential for errors with no benefit.
+ SetParameters@2(mojo_base.mojom.DictionaryValue parameters)
+ => (VpnErrorResponse? error);
+
+ // Sends an IP packet contained in |data| to the active VPN configuration
+ // after verifying that it belongs to the extension.
+ // See chrome.vpnProvider.sendPacket(...)
+ SendPacket@3(array<uint8> data)
+ => (VpnErrorResponse? error);
+
+ // Notifies new connection state to the active VPN configuration after
+ // verifying that it belongs to the extension.
+ // See chrome.vpnProvider.notifyConnectionStateChanged(...)
+ NotifyConnectionStateChanged@4(bool connection_success)
+ => (VpnErrorResponse? error);
+
+ // Binds |pepper_vpn_proxy_observer| to the active configuration if it belongs
+ // to the extension and has name equal to
+ // |configuration_name|. On success all packets will be routed through
+ // Pepper API.
+ BindPepperVpnProxyObserver@5(string configuration_name,
+ pending_remote<PepperVpnProxyObserver> pepper_vpn_proxy_observer)
+ => (VpnErrorResponse? error);
+
+ // Informs all connected clients that an ADD_DIALOG event should be dispatched
+ // to the extension.
+ DispatchAddDialogEvent@6();
+
+ // Informs all connected clients that a CONFIGURE_DIALOG event should be
+ // dispatched to the extension.
+ DispatchConfigureDialogEvent@7(string configuration_name);
+};
+
+// VpnService manages VPN connections on the ash side.
+// Next version: 1
+// Next method id: 2
+[Stable, Uuid="52659296-1b2a-4b8d-a219-0ca57710fe03"]
+interface VpnService {
+ // Registers a service for the given extension and allows ash to send events
+ // via |observer|.
+ RegisterVpnServiceForExtension@0(string extension_id,
+ pending_receiver<VpnServiceForExtension> receiver,
+ pending_remote<EventObserverForExtension> observer);
+
+ // Updates current Vpn connection state to FAILURE if the active configuration
+ // belongs to extension with id |extension_id|. If |destroy_configurations| is
+ // true, also destroys all configurations owned by this extension.
+ MaybeFailActiveConnectionAndDestroyConfigurations@1(string extension_id,
+ bool destroy_configurations);
+}; \ No newline at end of file
diff --git a/chromium/chromeos/crosapi/mojom/wallpaper.mojom b/chromium/chromeos/crosapi/mojom/wallpaper.mojom
new file mode 100644
index 00000000000..f6c066be707
--- /dev/null
+++ b/chromium/chromeos/crosapi/mojom/wallpaper.mojom
@@ -0,0 +1,35 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module crosapi.mojom;
+
+import "mojo/public/mojom/base/values.mojom";
+
+[Extensible, Stable]
+enum WallpaperLayout {
+ kNone = 0,
+ kStretch = 1,
+ kCenter = 2,
+ kCenterCropped = 3,
+};
+
+[Stable, Uuid="a2940756-55ef-4fc7-af10-f74a5bba6716"]
+struct WallpaperSettings {
+ array<uint8> data@0; // The jpeg or png encoded wallpaper image.
+ WallpaperLayout layout@1; // Layout of the wallpaper on the desktop.
+ string filename@2; // The file name of the saved wallpaper.
+};
+
+// Interface for wallpaper. Implemented by ash-chrome.
+// |extension_id| and |extension_name| are from the extension that is setting
+// the wallpaper (ie, using the wallpaper API). This information is used
+// internally to notify the Wallpaper Manager about the change.
+// Next version: 1
+// Next method id: 1
+[Stable, Uuid="e2529a0d-9b3d-4ca3-9cca-23bc94a709e9"]
+interface Wallpaper {
+ // Sets the wallpaper.
+ SetWallpaper@0(WallpaperSettings wallpaper, string extension_id,
+ string extension_name) => (array<uint8> thumbnail_data);
+};
diff --git a/chromium/chromeos/crosapi/mojom/web_app_service.mojom b/chromium/chromeos/crosapi/mojom/web_app_service.mojom
index cfd13c74e5f..535fe0f94f5 100644
--- a/chromium/chromeos/crosapi/mojom/web_app_service.mojom
+++ b/chromium/chromeos/crosapi/mojom/web_app_service.mojom
@@ -6,6 +6,16 @@ module crosapi.mojom;
import "chromeos/crosapi/mojom/web_app_types.mojom";
+// Describes an Android package associated with a web app.
+[Stable]
+struct WebAppAndroidPackage {
+ // Android package name.
+ string package_name@0;
+
+ // SHA256 fingerprint of the certificate of this Android app.
+ string sha256_fingerprint@1;
+};
+
// Implemented in lacros-chrome. Allows ash-chrome to modify web app state in
// lacros-chrome.
// Next version: 1
@@ -32,7 +42,7 @@ interface WebAppProviderBridge {
// 2) to register its own |crosapi::mojom::WebAppProviderBridge| to let
// ash-chrome to modify or query WebAppProvider in lacros-chrome.
//
-// Next version: 1
+// Next version: 2
// Next method id: 2
[Stable, Uuid="dfa7b3f8-236f-4706-861b-98068aa5fc8f"]
interface WebAppService {
@@ -40,4 +50,11 @@ interface WebAppService {
// WebAppProvider in lacros-chrome.
RegisterWebAppProviderBridge@0(
pending_remote<WebAppProviderBridge> web_app_provider_bridge);
+
+ // Gets the information about an Android package matching this web app, if
+ // this app was installed from the Play Store. Returns null if the app was not
+ // installed from the Play Store.
+ [MinVersion=1]
+ GetAssociatedAndroidPackage@1(string web_app_id)
+ => (WebAppAndroidPackage? package);
};
diff --git a/chromium/chromeos/crosapi/mojom/web_app_types.mojom b/chromium/chromeos/crosapi/mojom/web_app_types.mojom
index 30e2fd30b93..6f71513ea8b 100644
--- a/chromium/chromeos/crosapi/mojom/web_app_types.mojom
+++ b/chromium/chromeos/crosapi/mojom/web_app_types.mojom
@@ -36,6 +36,7 @@ enum WebAppInstallResultCode {
kInstallTaskDestroyed,
kUpdateTaskFailed,
[MinVersion=1] kAppNotInRegistrarAfterCommit,
+ [MinVersion=2] kHaltedBySyncUninstall,
};
// See |webapps::UninstallResultCode|.
diff --git a/chromium/chromeos/dbus/BUILD.gn b/chromium/chromeos/dbus/BUILD.gn
index 2dc1b11acad..74fb14b81ed 100644
--- a/chromium/chromeos/dbus/BUILD.gn
+++ b/chromium/chromeos/dbus/BUILD.gn
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")
@@ -13,14 +12,11 @@ component("dbus") {
defines = [ "IS_CHROMEOS_DBUS_IMPL" ]
public_deps = [
"//chromeos/dbus/arc",
- "//chromeos/dbus/cicerone",
"//chromeos/dbus/common",
- "//chromeos/dbus/concierge",
"//chromeos/dbus/constants",
"//chromeos/dbus/debug_daemon",
"//chromeos/dbus/init",
"//chromeos/dbus/lorgnette_manager",
- "//chromeos/dbus/seneschal",
"//chromeos/dbus/shill",
"//dbus",
]
@@ -67,11 +63,6 @@ component("dbus") {
"dbus_clients_browser.h",
"dbus_thread_manager.cc",
"dbus_thread_manager.h",
- "usb/fake_usbguard_client.cc",
- "usb/fake_usbguard_client.h",
- "usb/usbguard_client.cc",
- "usb/usbguard_client.h",
- "usb/usbguard_observer.h",
]
}
@@ -109,16 +100,11 @@ source_set("unit_tests") {
"//chromeos/dbus/fwupd:test_support",
"//chromeos/dbus/gnubby:unit_tests",
"//chromeos/dbus/hermes:test_support",
- "//chromeos/dbus/hiberman",
- "//chromeos/dbus/ip_peripheral:test_support",
"//chromeos/dbus/lorgnette_manager:test_support",
"//chromeos/dbus/oobe_config:unit_tests",
"//chromeos/dbus/power:power_manager_proto",
"//chromeos/dbus/power:test_support",
- "//chromeos/dbus/rmad:rmad_proto",
- "//chromeos/dbus/rmad:test_support",
"//chromeos/dbus/shill:test_support",
- "//chromeos/dbus/system_clock:unit_tests",
"//chromeos/dbus/tpm_manager",
"//chromeos/dbus/tpm_manager:tpm_manager_proto",
"//chromeos/dbus/u2f",
@@ -133,14 +119,10 @@ source_set("unit_tests") {
"//testing/gtest",
"//third_party/icu",
]
- if (is_cfm) {
- deps += [ "//chromeos/dbus/chromebox_for_meetings:unit_tests" ]
- }
sources = [
"audio/cras_audio_client_unittest.cc",
"blocking_method_caller_unittest.cc",
"dbus_thread_manager_unittest.cc",
- "hiberman/hiberman_client_unittest.cc",
"native_timer_unittest.cc",
"pipe_reader_unittest.cc",
"tpm_manager/tpm_manager_client_unittest.cc",
@@ -152,22 +134,6 @@ source_set("unit_tests") {
]
}
-proto_library("cicerone_proto") {
- sources = [
- "//third_party/cros_system_api/dbus/vm_cicerone/cicerone_service.proto",
- ]
-
- proto_out_dir = "chromeos/dbus/cicerone"
-}
-
-proto_library("concierge_proto") {
- sources = [
- "//third_party/cros_system_api/dbus/vm_concierge/concierge_service.proto",
- ]
-
- proto_out_dir = "chromeos/dbus/concierge"
-}
-
proto_library("metrics_event_proto") {
sources =
[ "//third_party/cros_system_api/dbus/metrics_event/metrics_event.proto" ]
@@ -181,13 +147,6 @@ proto_library("plugin_vm_service_proto") {
proto_out_dir = "chromeos/dbus/plugin_vm_service"
}
-proto_library("seneschal_proto") {
- sources =
- [ "//third_party/cros_system_api/dbus/seneschal/seneschal_service.proto" ]
-
- proto_out_dir = "chromeos/dbus/seneschal"
-}
-
proto_library("vm_applications_apps_proto") {
sources = [ "//third_party/cros_system_api/dbus/vm_applications/apps.proto" ]
diff --git a/chromium/chromeos/dbus/cicerone/BUILD.gn b/chromium/chromeos/dbus/cicerone/BUILD.gn
deleted file mode 100644
index 2c4821ad14e..00000000000
--- a/chromium/chromeos/dbus/cicerone/BUILD.gn
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
-
-component("cicerone") {
- defines = [ "IS_CHROMEOS_DBUS_IMPL" ]
- deps = [
- "//base",
- "//chromeos/dbus:cicerone_proto",
- "//chromeos/dbus/common",
- "//dbus",
- ]
-
- sources = [
- "cicerone_client.cc",
- "cicerone_client.h",
- "fake_cicerone_client.cc",
- "fake_cicerone_client.h",
- ]
-}
diff --git a/chromium/chromeos/dbus/concierge/BUILD.gn b/chromium/chromeos/dbus/concierge/BUILD.gn
deleted file mode 100644
index 9a454a6dd10..00000000000
--- a/chromium/chromeos/dbus/concierge/BUILD.gn
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
-
-component("concierge") {
- defines = [ "IS_CHROMEOS_DBUS_IMPL" ]
- deps = [
- "//base",
- "//chromeos/dbus:cicerone_proto",
- "//chromeos/dbus:concierge_proto",
- "//chromeos/dbus/cicerone",
- "//chromeos/dbus/common",
- "//dbus",
- ]
-
- sources = [
- "concierge_client.cc",
- "concierge_client.h",
- "fake_concierge_client.cc",
- "fake_concierge_client.h",
- ]
-}
diff --git a/chromium/chromeos/dbus/hermes/BUILD.gn b/chromium/chromeos/dbus/hermes/BUILD.gn
index 6d61c9c38d9..603e7da58cf 100644
--- a/chromium/chromeos/dbus/hermes/BUILD.gn
+++ b/chromium/chromeos/dbus/hermes/BUILD.gn
@@ -5,11 +5,14 @@
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
component("hermes") {
- public_deps = [ ":hermes_clients" ]
- deps = [ ":hermes_fakes" ]
+ public_deps = [
+ ":hermes_clients",
+ ":hermes_fakes",
+ ]
}
source_set("hermes_clients") {
+ visibility = [ ":*" ]
defines = [ "IS_HERMES_CLIENT_IMPL" ]
deps = [
"//base",
@@ -35,6 +38,7 @@ source_set("hermes_clients") {
}
source_set("hermes_fakes") {
+ visibility = [ ":*" ]
deps = [
":hermes_clients",
"//base",
diff --git a/chromium/chromeos/dbus/hps/BUILD.gn b/chromium/chromeos/dbus/human_presence/BUILD.gn
index 62943541690..80d26132897 100644
--- a/chromium/chromeos/dbus/hps/BUILD.gn
+++ b/chromium/chromeos/dbus/human_presence/BUILD.gn
@@ -6,7 +6,7 @@ import("//third_party/protobuf/proto_library.gni")
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
-component("hps") {
+component("human_presence") {
defines = [ "IS_HPS_IMPL" ]
public_deps = [ ":hps_proto" ]
deps = [
@@ -15,10 +15,10 @@ component("hps") {
]
sources = [
- "fake_hps_dbus_client.cc",
- "fake_hps_dbus_client.h",
- "hps_dbus_client.cc",
- "hps_dbus_client.h",
+ "fake_human_presence_dbus_client.cc",
+ "fake_human_presence_dbus_client.h",
+ "human_presence_dbus_client.cc",
+ "human_presence_dbus_client.h",
]
}
diff --git a/chromium/chromeos/dbus/seneschal/BUILD.gn b/chromium/chromeos/dbus/seneschal/BUILD.gn
deleted file mode 100644
index 89d6c33b628..00000000000
--- a/chromium/chromeos/dbus/seneschal/BUILD.gn
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
-
-component("seneschal") {
- defines = [ "IS_CHROMEOS_DBUS_IMPL" ]
- deps = [
- "//base",
- "//chromeos/dbus:seneschal_proto",
- "//chromeos/dbus/cicerone",
- "//chromeos/dbus/common",
- "//dbus",
- ]
-
- sources = [
- "fake_seneschal_client.cc",
- "fake_seneschal_client.h",
- "seneschal_client.cc",
- "seneschal_client.h",
- ]
-}
diff --git a/chromium/chromeos/dbus/userdataauth/BUILD.gn b/chromium/chromeos/dbus/userdataauth/BUILD.gn
index 3bf660ad1e7..7c6421c2f59 100644
--- a/chromium/chromeos/dbus/userdataauth/BUILD.gn
+++ b/chromium/chromeos/dbus/userdataauth/BUILD.gn
@@ -47,6 +47,21 @@ component("userdataauth") {
]
}
+static_library("test_support") {
+ testonly = true
+
+ sources = [
+ "mock_userdataauth_client.cc",
+ "mock_userdataauth_client.h",
+ ]
+ deps = [
+ ":userdataauth",
+ ":userdataauth_proto",
+ "//base",
+ "//testing/gmock",
+ ]
+}
+
proto_library("userdataauth_proto") {
deps = [ "//chromeos/dbus/cryptohome:cryptohome_proto" ]
diff --git a/chromium/chromeos/dbus/util/BUILD.gn b/chromium/chromeos/dbus/util/BUILD.gn
index bfef015ea7b..4380f7367ce 100644
--- a/chromium/chromeos/dbus/util/BUILD.gn
+++ b/chromium/chromeos/dbus/util/BUILD.gn
@@ -9,7 +9,11 @@ assert(is_chromeos_ash, "Non-Chrome-OS builds must not depend on //chromeos")
component("util") {
output_name = "chromeos_dbus_util"
defines = [ "IS_CHROMEOS_DBUS_UTIL_IMPL" ]
- deps = [ "//base" ]
+ deps = [
+ "//base",
+ "//chromeos/strings",
+ "//ui/base",
+ ]
sources = [
"version_loader.cc",
"version_loader.h",
diff --git a/chromium/chromeos/features.gni b/chromium/chromeos/features.gni
new file mode 100644
index 00000000000..02d342d734c
--- /dev/null
+++ b/chromium/chromeos/features.gni
@@ -0,0 +1,10 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//chromeos/dbus/config/use_real_dbus_clients.gni")
+
+declare_args() {
+ # TODO(crbug/1321052): Replace use_real_dbus_clients with this.
+ use_real_chromeos_services = use_real_dbus_clients
+}
diff --git a/chromium/chromeos/lacros/BUILD.gn b/chromium/chromeos/lacros/BUILD.gn
index 0c7688bdb42..bd02ab44bdb 100644
--- a/chromium/chromeos/lacros/BUILD.gn
+++ b/chromium/chromeos/lacros/BUILD.gn
@@ -18,9 +18,11 @@ assert(!use_gtk)
component("lacros") {
defines = [ "IS_CHROMEOS_LACROS_IMPL" ]
deps = [
+ ":lacros_paths",
"//base",
"//build:chromeos_buildflags",
"//chromeos/crosapi/cpp",
+ "//chromeos/crosapi/cpp:crosapi_constants",
"//chromeos/crosapi/mojom",
"//chromeos/process_proxy",
"//chromeos/startup",
@@ -42,12 +44,24 @@ component("lacros") {
]
}
+static_library("lacros_paths") {
+ deps = [
+ "//base",
+ "//chromeos/crosapi/cpp:crosapi_constants",
+ ]
+ sources = [
+ "lacros_paths.cc",
+ "lacros_paths.h",
+ ]
+}
+
source_set("test_support") {
testonly = true
deps = [
"//base",
"//chromeos/crosapi/mojom",
"//chromeos/lacros",
+ "//chromeos/startup",
]
sources = [
"lacros_test_helper.cc",
@@ -96,4 +110,8 @@ if (is_chromeos_device) {
"lacros.ShelfLaunch.unstable",
]
}
+
+ lacros_tast_tests("lacros_variations_tast_tests") {
+ tast_tests = [ "lacros.VariationSmoke" ]
+ }
}
diff --git a/chromium/chromeos/network/BUILD.gn b/chromium/chromeos/network/BUILD.gn
index ab85cdc2e26..bd4637204ce 100644
--- a/chromium/chromeos/network/BUILD.gn
+++ b/chromium/chromeos/network/BUILD.gn
@@ -2,14 +2,22 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")
assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")
-component("network") {
+config("network_config") {
defines = [ "IS_CHROMEOS_NETWORK_IMPL" ]
+}
+
+component("network") {
+ configs += [ ":network_config" ]
+ public_deps = [
+ "//chromeos/ash/components/network/metrics",
+ "//chromeos/ash/components/network/onc",
+ "//chromeos/ash/components/network/proxy",
+ ]
deps = [
"//ash/constants",
"//base",
@@ -23,13 +31,11 @@ component("network") {
"//chromeos/login/login_state",
"//chromeos/services/network_config/public/mojom",
"//components/account_id",
- "//components/certificate_matching",
"//components/crx_file",
"//components/device_event_log",
"//components/onc",
"//components/pref_registry",
"//components/prefs",
- "//components/proxy_config",
"//components/url_formatter",
"//components/user_manager",
"//crypto",
@@ -39,6 +45,14 @@ component("network") {
"//skia",
"//url",
]
+
+ # Allow circular dependency from sub-directories of
+ # chromeos/ash/components/network.
+ allow_circular_includes_from = [
+ "//chromeos/ash/components/network/metrics",
+ "//chromeos/ash/components/network/onc",
+ "//chromeos/ash/components/network/proxy",
+ ]
sources = [
"auto_connect_handler.cc",
"auto_connect_handler.h",
@@ -86,16 +100,6 @@ component("network") {
"managed_network_configuration_handler_impl.h",
"managed_state.cc",
"managed_state.h",
- "metrics/connection_info_metrics_logger.cc",
- "metrics/connection_info_metrics_logger.h",
- "metrics/connection_results.cc",
- "metrics/connection_results.h",
- "metrics/esim_policy_login_metrics_logger.cc",
- "metrics/esim_policy_login_metrics_logger.h",
- "metrics/network_metrics_helper.cc",
- "metrics/network_metrics_helper.h",
- "metrics/vpn_network_metrics_helper.cc",
- "metrics/vpn_network_metrics_helper.h",
"network_activation_handler.h",
"network_activation_handler_impl.cc",
"network_activation_handler_impl.h",
@@ -154,41 +158,15 @@ component("network") {
"network_ui_data.h",
"network_util.cc",
"network_util.h",
- "onc/network_onc_utils.cc",
- "onc/network_onc_utils.h",
- "onc/onc_certificate_importer.h",
- "onc/onc_certificate_importer_impl.cc",
- "onc/onc_certificate_importer_impl.h",
- "onc/onc_certificate_pattern.cc",
- "onc/onc_certificate_pattern.h",
- "onc/onc_merger.cc",
- "onc/onc_merger.h",
- "onc/onc_normalizer.cc",
- "onc/onc_normalizer.h",
- "onc/onc_translation_tables.cc",
- "onc/onc_translation_tables.h",
- "onc/onc_translator.h",
- "onc/onc_translator_onc_to_shill.cc",
- "onc/onc_translator_shill_to_onc.cc",
"policy_applicator.cc",
"policy_applicator.h",
"policy_certificate_provider.h",
"policy_util.cc",
"policy_util.h",
- "portal_detector/network_portal_detector.cc",
- "portal_detector/network_portal_detector.h",
- "portal_detector/network_portal_detector_strategy.cc",
- "portal_detector/network_portal_detector_strategy.h",
- "portal_detector/network_portal_detector_stub.cc",
- "portal_detector/network_portal_detector_stub.h",
+ "profile_policies.cc",
+ "profile_policies.h",
"prohibited_technologies_handler.cc",
"prohibited_technologies_handler.h",
- "proxy/proxy_config_handler.cc",
- "proxy/proxy_config_handler.h",
- "proxy/proxy_config_service_impl.cc",
- "proxy/proxy_config_service_impl.h",
- "proxy/ui_proxy_config_service.cc",
- "proxy/ui_proxy_config_service.h",
"shill_property_handler.cc",
"shill_property_handler.h",
"shill_property_util.cc",
@@ -207,7 +185,7 @@ source_set("test_support") {
public_deps = [
":network",
"//chromeos/components/onc",
- "//chromeos/dbus/hermes:hermes_fakes",
+ "//chromeos/dbus/hermes",
"//dbus",
]
deps = [
@@ -215,7 +193,6 @@ source_set("test_support") {
"//chromeos:test_utils",
"//chromeos/components/onc:test_support",
"//chromeos/dbus:test_support",
- "//chromeos/dbus/hermes:hermes_clients",
"//chromeos/services/network_config/public/cpp",
"//chromeos/services/network_config/public/mojom",
"//components/onc",
@@ -246,8 +223,6 @@ source_set("test_support") {
"network_state_test_helper.h",
"network_test_helper_base.cc",
"network_test_helper_base.h",
- "portal_detector/mock_network_portal_detector.cc",
- "portal_detector/mock_network_portal_detector.h",
"system_token_cert_db_storage_test_util.cc",
"system_token_cert_db_storage_test_util.h",
"test_cellular_esim_profile_handler.cc",
@@ -265,12 +240,14 @@ source_set("unit_tests") {
"//base:i18n",
"//base/test:test_support",
"//chromeos:test_utils",
+ "//chromeos/ash/components/network/metrics:unit_tests",
+ "//chromeos/ash/components/network/onc:unit_tests",
+ "//chromeos/ash/components/network/proxy:unit_tests",
"//chromeos/components/feature_usage",
"//chromeos/components/onc",
"//chromeos/components/onc:test_support",
"//chromeos/dbus:test_support",
- "//chromeos/dbus/hermes:hermes_clients",
- "//chromeos/dbus/hermes:hermes_fakes",
+ "//chromeos/dbus/hermes",
"//chromeos/dbus/permission_broker",
"//chromeos/login/login_state",
"//components/onc",
@@ -301,16 +278,13 @@ source_set("unit_tests") {
"cellular_utils_unittest.cc",
"certificate_helper_unittest.cc",
"client_cert_resolver_unittest.cc",
+ "client_cert_util_unittest.cc",
"device_state_unittest.cc",
"fast_transition_observer_unittest.cc",
"firewall_hole_unittest.cc",
"geolocation_handler_unittest.cc",
"managed_cellular_pref_handler_unittest.cc",
"managed_network_configuration_handler_unittest.cc",
- "metrics/connection_info_metrics_logger_unittest.cc",
- "metrics/esim_policy_login_metrics_logger_unittest.cc",
- "metrics/network_metrics_helper_unittest.cc",
- "metrics/vpn_network_metrics_helper_unittest.cc",
"network_cert_loader_unittest.cc",
"network_cert_migrator_unittest.cc",
"network_configuration_handler_unittest.cc",
@@ -326,27 +300,11 @@ source_set("unit_tests") {
"network_type_pattern_unittest.cc",
"network_ui_data_unittest.cc",
"network_util_unittest.cc",
- "onc/network_onc_utils_unittest.cc",
- "onc/onc_certificate_importer_impl_unittest.cc",
- "onc/onc_certificate_pattern_unittest.cc",
- "onc/onc_merger_unittest.cc",
- "onc/onc_normalizer_unittest.cc",
- "onc/onc_translator_unittest.cc",
+ "profile_policies_unittest.cc",
"prohibited_technologies_handler_unittest.cc",
- "proxy/proxy_config_service_impl_unittest.cc",
- "proxy/ui_proxy_config_service_unittest.cc",
"shill_property_handler_unittest.cc",
"shill_property_util_unittest.cc",
"stub_cellular_networks_provider_unittest.cc",
"system_token_cert_db_storage_unittest.cc",
]
}
-
-fuzzer_test("onc_normalizer_fuzzer") {
- sources = [ "onc/onc_normalizer_fuzzer.cc" ]
- deps = [
- ":network",
- "//base",
- "//chromeos/components/onc:onc",
- ]
-}
diff --git a/chromium/chromeos/resources/BUILD.gn b/chromium/chromeos/resources/BUILD.gn
index 7c2a4d40c15..f7f5687878f 100644
--- a/chromium/chromeos/resources/BUILD.gn
+++ b/chromium/chromeos/resources/BUILD.gn
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/assistant/assistant.gni")
import("//tools/grit/grit_rule.gni")
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
@@ -18,15 +17,12 @@ grit("resources") {
]
output_dir = "$root_gen_dir/chromeos"
- defines = [ "enable_cros_libassistant=$enable_cros_libassistant" ]
-
grit_flags = [
"-E",
"mojom_root=" + rebase_path(root_gen_dir, root_build_dir),
]
deps = [
- "//chromeos/components/hps:hps_internals_ts",
"//chromeos/language/public/mojom:mojom_js",
"//chromeos/services/bluetooth_config/public/mojom:mojom_js",
diff --git a/chromium/chromeos/services/BUILD.gn b/chromium/chromeos/services/BUILD.gn
index ca872f205bb..c177a0bd993 100644
--- a/chromium/chromeos/services/BUILD.gn
+++ b/chromium/chromeos/services/BUILD.gn
@@ -3,7 +3,7 @@
# found in the LICENSE file.
import("//build/config/ui.gni")
-import("//chromeos/assistant/assistant.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
import("//testing/test.gni")
@@ -19,7 +19,7 @@ assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
source_set("unit_tests") {
testonly = true
deps = [
- "//chromeos/services/assistant:tests",
+ "//chromeos/ash/services/assistant:tests",
"//chromeos/services/bluetooth_config:unit_tests",
"//chromeos/services/cros_healthd/private/cpp:unit_tests",
"//chromeos/services/cros_healthd/public/cpp:unit_tests",
diff --git a/chromium/chromeos/services/assistant/public/cpp/BUILD.gn b/chromium/chromeos/services/assistant/public/cpp/BUILD.gn
index cb5a4207c22..8480fb26d8c 100644
--- a/chromium/chromeos/services/assistant/public/cpp/BUILD.gn
+++ b/chromium/chromeos/services/assistant/public/cpp/BUILD.gn
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/assistant/assistant.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
# C++ headers and sources that can be used outside assistant.
component("cpp") {
@@ -45,11 +45,7 @@ component("cpp") {
]
deps = [
- "//chromeos/assistant:buildflags",
+ "//chromeos/ash/components/assistant:buildflags",
"//components/prefs",
]
-
- if (enable_cros_libassistant) {
- deps += [ "//chromeos/assistant/internal:buildflags" ]
- }
}
diff --git a/chromium/chromeos/services/assistant/public/shared/BUILD.gn b/chromium/chromeos/services/assistant/public/shared/BUILD.gn
index b4b767c47c4..a64f19b15b5 100644
--- a/chromium/chromeos/services/assistant/public/shared/BUILD.gn
+++ b/chromium/chromeos/services/assistant/public/shared/BUILD.gn
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/assistant/assistant.gni")
+import("//build/config/chrome_build.gni")
# C++ headers and sources that can be shared by assistant internal and
# external directories.
diff --git a/chromium/chromeos/services/bluetooth_config/public/mojom/BUILD.gn b/chromium/chromeos/services/bluetooth_config/public/mojom/BUILD.gn
index 82c0be8e812..a7fe24f5392 100644
--- a/chromium/chromeos/services/bluetooth_config/public/mojom/BUILD.gn
+++ b/chromium/chromeos/services/bluetooth_config/public/mojom/BUILD.gn
@@ -10,4 +10,6 @@ mojom("mojom") {
"//mojo/public/mojom/base",
"//url/mojom:url_mojom_gurl",
]
+ webui_module_path =
+ "chrome://resources/mojo/chromeos/services/bluetooth_config/public/mojom"
}
diff --git a/chromium/chromeos/services/cros_healthd/private/cpp/BUILD.gn b/chromium/chromeos/services/cros_healthd/private/cpp/BUILD.gn
index 9bf28ee5847..3714d2e3178 100644
--- a/chromium/chromeos/services/cros_healthd/private/cpp/BUILD.gn
+++ b/chromium/chromeos/services/cros_healthd/private/cpp/BUILD.gn
@@ -2,34 +2,42 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/chromeos/args.gni")
import("//build/config/chromeos/ui_mode.gni")
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
source_set("cpp") {
sources = [
- "internal_service_factory.cc",
- "internal_service_factory.h",
- "internal_service_factory_impl.cc",
- "internal_service_factory_impl.h",
+ "data_collector.cc",
+ "data_collector.h",
]
deps = [
"//base",
- "//chromeos/services/cros_healthd/private/mojom",
- "//chromeos/services/network_health/public/mojom",
+ "//content/public/browser:browser",
+ "//ui/events/devices",
+ "//ui/events/ozone/evdev:event_device_info",
]
+ public_deps = [ "//chromeos/services/cros_healthd/private/mojom" ]
+ defines = []
+ if (is_chromeos_device) {
+ defines += [ "USE_EVDEV_GESTURES" ]
+ }
+ if (use_libinput) {
+ defines += [ "USE_LIBINPUT" ]
+ }
}
source_set("unit_tests") {
testonly = true
- sources = [ "internal_service_factory_impl_unittest.cc" ]
+ sources = [ "data_collector_unittest.cc" ]
deps = [
":cpp",
"//base/test:test_support",
- "//chromeos/services/cros_healthd/private/mojom",
- "//mojo/core/embedder",
+ "//content/test:test_support",
"//mojo/public/cpp/bindings",
- "//testing/gmock",
"//testing/gtest",
+ "//ui/events/devices",
+ "//ui/events/devices:test_support",
]
}
diff --git a/chromium/chromeos/services/cros_healthd/private/mojom/BUILD.gn b/chromium/chromeos/services/cros_healthd/private/mojom/BUILD.gn
index 675fca466ed..ce983ef270d 100644
--- a/chromium/chromeos/services/cros_healthd/private/mojom/BUILD.gn
+++ b/chromium/chromeos/services/cros_healthd/private/mojom/BUILD.gn
@@ -6,9 +6,5 @@ import("//mojo/public/tools/bindings/mojom.gni")
mojom("mojom") {
sources = [ "cros_healthd_internal.mojom" ]
- public_deps = [
- "//chromeos/services/cros_healthd/public/mojom",
- "//chromeos/services/network_health/public/mojom",
- "//mojo/public/mojom/base",
- ]
+ public_deps = [ "//mojo/public/mojom/base" ]
}
diff --git a/chromium/chromeos/services/cros_healthd/private/mojom/cros_healthd_internal.mojom b/chromium/chromeos/services/cros_healthd/private/mojom/cros_healthd_internal.mojom
index 4b828f7710f..0959aabe831 100644
--- a/chromium/chromeos/services/cros_healthd/private/mojom/cros_healthd_internal.mojom
+++ b/chromium/chromeos/services/cros_healthd/private/mojom/cros_healthd_internal.mojom
@@ -11,40 +11,61 @@
module chromeos.cros_healthd.internal.mojom;
-import "chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom";
-import "chromeos/services/network_health/public/mojom/network_diagnostics.mojom";
-import "chromeos/services/network_health/public/mojom/network_health.mojom";
-
-// Interface for Chrome to bootstrap the connection between cros_healthd and
-// Chrome. Chrome uses this interface to obtain cros_healthd services and
-// to provide Chrome services.
+// Collects data from chromium to Healthd.
//
// NextMinVersion: 1, NextIndex: 2
-interface ServiceBootstrap {
- // Pass a receiver of service factory to cros_healthd to bind the services.
- GetCrosHealthdServiceFactory@0(pending_receiver<
- chromeos.cros_healthd.mojom.CrosHealthdServiceFactory> receiver);
- // Pass a remote of internal service factory to cros_healthd for it to
- // obtain the services in Chrome. This should be the only interface which
- // the connection is passed from the provider side. All the services in
- // Chrome should use internal service factory interface to provide services
- // to cros_healthd.
- // Should be called only once per connection.
- SetCrosHealthdInternalServiceFactory@1(pending_remote<
- CrosHealthdInternalServiceFactory> remote);
+interface ChromiumDataCollector {
+ // Get touchscreen devices info.
+ GetTouchscreenDevices@0() => (array<TouchscreenDevice> devices);
+ // Get the touchpad library name.
+ GetTouchpadLibraryName@1() => (string library_name);
};
-// Factory interface which allows remote ends (cros_healthd) to request
-// implementations of several services in Chrome.
+// Data of a touch screen device in chromium.
//
-// NextMinVersion: 1, NextIndex: 2
-interface CrosHealthdInternalServiceFactory {
- // NetworkHealthService provides network health information from chrome
- // network stack.
- GetNetworkHealthService@0(pending_receiver<
- chromeos.network_health.mojom.NetworkHealthService> receiver);
- // NetworkDiagnosticsRoutines provides network diagnostics routines to test
- // network.
- GetNetworkDiagnosticsRoutines@1(pending_receiver<
- chromeos.network_diagnostics.mojom.NetworkDiagnosticsRoutines> receiver);
+// NextMinVersion: 1, NextIndex: 4
+struct TouchscreenDevice {
+ // The input device of this touchscreen.
+ InputDevice input_device@0;
+ // Number of touch points this device supports (0 if unknown).
+ int32 touch_points@1;
+ // True if the specified touchscreen device is stylus capable.
+ bool has_stylus@2;
+ // True if there is a garage/dock switch associated with the stylus.
+ bool has_stylus_garage_switch@3;
+};
+
+// Data of a input device in chromium.
+//
+// NextMinVersion: 1, NextIndex: 5
+struct InputDevice {
+ // Name of the device.
+ string name@0;
+
+ // The connection type of the input device.
+ [Extensible]
+ enum ConnectionType {
+ // For mojo backward compatibility.
+ [Default] kUnmappedEnumField,
+ // Internally connected input device.
+ kInternal,
+ // Known externally connected usb input device.
+ kUSB,
+ // Known externally connected bluetooth input device.
+ kBluetooth,
+ // Device that may or may not be an external device.
+ kUnknown,
+ };
+
+ ConnectionType connection_type@1;
+ // The physical location(port) associated with the input device. This is
+ // (supposed to be) stable between reboots and hotplugs. However this may not
+ // always be set and will change when the device is connected via a different
+ // port.
+ string physical_location@2;
+ // If the device is enabled, and whether events should be dispatched to UI.
+ bool is_enabled@3;
+ // The path to the input device in the sysfs filesystem, this should be a path
+ // under /sys directory.
+ string sysfs_path@4;
};
diff --git a/chromium/chromeos/services/cros_healthd/public/cpp/BUILD.gn b/chromium/chromeos/services/cros_healthd/public/cpp/BUILD.gn
index 9c3445c617f..fac3481bb50 100644
--- a/chromium/chromeos/services/cros_healthd/public/cpp/BUILD.gn
+++ b/chromium/chromeos/services/cros_healthd/public/cpp/BUILD.gn
@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//build/config/chromeos/args.gni")
+import("//chromeos/dbus/config/use_real_dbus_clients.gni")
assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
@@ -20,10 +21,18 @@ source_set("cpp") {
]
deps = [
"//base",
- "//chromeos/dbus/cros_healthd",
+ "//chromeos/ash/components/dbus/cros_healthd",
"//chromeos/services/cros_healthd/public/mojom",
"//ui/events/ozone/evdev:event_device_info",
]
+ if (use_real_dbus_clients) {
+ defines += [ "USE_REAL_DBUS_CLIENTS" ]
+ } else {
+ sources += [
+ "fake_cros_healthd.cc",
+ "fake_cros_healthd.h",
+ ]
+ }
}
source_set("unit_tests") {
@@ -32,7 +41,6 @@ source_set("unit_tests") {
deps = [
":cpp",
"//base/test:test_support",
- "//chromeos/dbus/cros_healthd",
"//chromeos/services/cros_healthd/public/mojom",
"//mojo/core/embedder",
"//mojo/public/cpp/bindings",
diff --git a/chromium/chromeos/services/cros_healthd/public/mojom/BUILD.gn b/chromium/chromeos/services/cros_healthd/public/mojom/BUILD.gn
index a56c1d51fe0..1a86ab839b9 100644
--- a/chromium/chromeos/services/cros_healthd/public/mojom/BUILD.gn
+++ b/chromium/chromeos/services/cros_healthd/public/mojom/BUILD.gn
@@ -16,6 +16,7 @@ mojom("mojom") {
]
public_deps = [
+ "//chromeos/services/cros_healthd/private/mojom",
"//chromeos/services/network_health/public/mojom",
"//mojo/public/mojom/base",
]
diff --git a/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom b/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom
index 33167b5c462..73bdcaaf2c1 100644
--- a/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom
+++ b/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd.mojom
@@ -10,6 +10,7 @@
module chromeos.cros_healthd.mojom;
+import "chromeos/services/cros_healthd/private/mojom//cros_healthd_internal.mojom";
import "chromeos/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom";
import "chromeos/services/cros_healthd/public/mojom/cros_healthd_events.mojom";
import "chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom";
@@ -22,7 +23,7 @@ import "chromeos/services/network_health/public/mojom/network_health.mojom";
// probe, diagnostics, or event services. Additionally, the browser can send
// network-related implementations to the cros_healthd daemon.
//
-// NextMinVersion: 1, NextIndex: 6
+// NextMinVersion: 2, NextIndex: 7
interface CrosHealthdServiceFactory {
// Returns a bound interface to the diagnostics service.
GetDiagnosticsService@0(pending_receiver<CrosHealthdDiagnosticsService> service);
@@ -43,6 +44,11 @@ interface CrosHealthdServiceFactory {
// TODO(http://b/181133872): Move this service out of this interface
// Returns a bound interface to the system service.
GetSystemService@5(pending_receiver<CrosHealthdSystemService> service);
+ // Sends a NetworkDiagnosticsRoutines pending remote to the cros_healthd
+ // daemon.
+ [MinVersion=1] SendChromiumDataCollector@6(
+ pending_remote<
+ chromeos.cros_healthd.internal.mojom.ChromiumDataCollector> remote);
};
// Diagnostics interface exposed by the cros_healthd daemon.
diff --git a/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom b/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
index b838f1f057a..149bdba6877 100644
--- a/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
+++ b/chromium/chromeos/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
@@ -26,8 +26,8 @@ enum CpuArchitectureEnum {
// An enumeration of each category of information that cros_healthd can report.
//
-// NextMinVersion: 1, NextIndex: 19
-[Extensible]
+// NextMinVersion: 1, NextIndex: 20
+[Stable, Extensible]
enum ProbeCategoryEnum {
[Default] kUnknown = 16,
kBattery = 0,
@@ -48,6 +48,7 @@ enum ProbeCategoryEnum {
kGraphics = 15,
kDisplay = 17,
kNetworkInterface = 18,
+ kInput = 19,
// TODO(b/190459636): Rename it to kSystem after migration.
kSystem2 = 0x10000,
@@ -57,7 +58,7 @@ enum ProbeCategoryEnum {
// probing telemetry information.
//
// NextMinVersion: 1, NextIndex: 5
-[Extensible]
+[Stable, Extensible]
enum ErrorType {
[Default] kUnknown = 4,
// An error reading a system file.
@@ -73,6 +74,7 @@ enum ErrorType {
// Structure that contains error information for a telemetry probe.
//
// NextMinVersion: 1, NextIndex: 2
+[Stable]
struct ProbeError {
// The type of error that occurred.
ErrorType type@0;
@@ -84,7 +86,7 @@ struct ProbeError {
// An enumeration of states a process can be in.
//
// NextMinVersion: 1, NextIndex: 8
-[Extensible]
+[Stable, Extensible]
enum ProcessState {
[Default] kUnknown = 7,
// The process is running.
@@ -105,16 +107,23 @@ enum ProcessState {
// Process probe result. Can either be populated with the ProcessInfo or an
// error retrieving the information.
+//
+// NextMinVersion: 2, NextIndex: 3
+[Stable, Extensible]
union ProcessResult {
+ // The required field for backwards compatibility. The unrecognized Mojo
+ // field will deserialize to this field. It should not be used.
+ [MinVersion=1, Default] bool unmapped_field@2;
// Valid ProcessInfo.
- ProcessInfo process_info;
+ ProcessInfo process_info@0;
// The error that occurred attempting to retrieve the ProcessInfo.
- ProbeError error;
+ ProbeError error@1;
};
// Information related to a particular process.
//
// NextMinVersion: 1, NextIndex: 16
+[Stable]
struct ProcessInfo {
// Command which started the process.
string command@0;
@@ -548,7 +557,7 @@ union BluetoothResult {
// Information related to one of a device's Bluetooth adapters.
//
-// NextMinVersion: 1, NextIndex: 4
+// NextMinVersion: 3, NextIndex: 11
struct BluetoothAdapterInfo {
// The name of the adapter.
string name@0;
@@ -558,6 +567,76 @@ struct BluetoothAdapterInfo {
bool powered@2;
// The number of devices connected to this adapter.
uint32 num_connected_devices@3;
+ // The info of connected devices to this adapter.
+ [MinVersion=1] array<BluetoothDeviceInfo>? connected_devices@4;
+ // The adapter is visible or not.
+ [MinVersion=1] bool discoverable@5;
+ // The device discovery procedure is active or not.
+ [MinVersion=1] bool discovering@6;
+ // The list of the available local services.
+ [MinVersion=1] array<string>? uuids@7;
+ // Local Device ID information.
+ [MinVersion=1] string? modalias@8;
+ // List of allowed system devices.
+ [MinVersion=2] array<string>? service_allow_list@9;
+ // A dictionary of supported capabilities.
+ [MinVersion=2] SupportedCapabilities? supported_capabilities@10;
+};
+
+
+// Information related to one of a adapter's Bluetooth connected devices.
+//
+// NextMinVersion: 2, NextIndex: 9
+struct BluetoothDeviceInfo {
+ // The MAC address of the device.
+ string address@0;
+ // The name of the device.
+ string? name@1;
+ // The carriers supported by this remote device ("BR/EDR", "LE", or "DUAL").
+ BluetoothDeviceType type@2;
+ // The external appearance of the device.
+ NullableUint16 appearance@3;
+ // Remote Device ID information.
+ string? modalias@4;
+ // Received Signal Strength Indicator.
+ NullableInt16 rssi@5;
+ // The Maximum Transmission Unit used in ATT communication.
+ NullableUint16 mtu@6;
+ // The list of the available remote services.
+ array<string>? uuids@7;
+ // The battery percentage of the device.
+ [MinVersion=1] NullableUint8? battery_percentage@8;
+};
+
+// An enumeration of type in Bluetooth device info.
+//
+// NextMinVersion: 1, NextIndex: 4
+[Extensible]
+enum BluetoothDeviceType {
+ // An enum value not defined in this version of the enum definition.
+ [Default] kUnmappedEnumField = 0,
+ // Unfound type.
+ kUnfound = 1,
+ // BR/EDR.
+ kBrEdr = 2,
+ // LE.
+ kLe = 3,
+ // DUAL.
+ kDual = 4,
+};
+
+// Supported Capabilities related information.
+//
+// NextMinVersion: 1, NextIndex: 4
+struct SupportedCapabilities {
+ // Max advertising data length.
+ uint8 max_adv_len@0;
+ // Max advertising scan response length.
+ uint8 max_scn_rsp_len@1;
+ // Min advertising tx power (dBm).
+ int16 min_tx_power@2;
+ // Max advertising tx power (dBm).
+ int16 max_tx_power@3;
};
// System probe result. Can either be populated with the SystemInfo or an error
@@ -669,7 +748,7 @@ struct OsVersion {
[Extensible]
enum BootMode {
[Default] kUnknown = 0,
- // Boot with Chrome OS firmware.
+ // Boot with ChromeOS firmware.
kCrosSecure = 1,
// Boot with EFI
kCrosEfi = 2,
@@ -911,7 +990,7 @@ struct PciBusInfo {
// The info related to usb.
//
-// NextMinVersion: 1, NextIndex: 6
+// NextMinVersion: 2, NextIndex: 7
struct UsbBusInfo {
// These fields can be used to classify / identify the usb devices. See the
// usb.ids database for the values. (https://github.com/gentoo/hwids)
@@ -925,6 +1004,54 @@ struct UsbBusInfo {
// device. This allows a usb device to provide multiple features.
// The interfaces are sorted by the |interface_number| field.
array<UsbBusInterfaceInfo> interfaces@5;
+ // The firmware version obtained from fwupd.
+ [MinVersion=1] FwupdFirmwareVersionInfo? fwupd_firmware_version_info@6;
+};
+
+// The info related to firmware version obtained from fwupd.
+//
+// NextMinVersion: 1, NextIndex: 2
+struct FwupdFirmwareVersionInfo {
+ // The string form of the firmware version.
+ string version@0;
+ // The format for parsing the version string.
+ FwupdVersionFormat version_format@1;
+};
+
+// An enumeration of the formats of firmware version in fwpud. See the fwupd
+// repo for the values. (https://github.com/fwupd/fwupd)
+//
+// NextMinVersion: 1, NextIndex: 14
+[Extensible]
+enum FwupdVersionFormat {
+ // An enum value not defined in this version of the enum definition.
+ [Default] kUnmappedEnumField = 0,
+ // Unknown version format.
+ kUnknown = 1,
+ // An unidentified format text string.
+ kPlain = 2,
+ // A single integer version number.
+ kNumber = 3,
+ // Two AABB.CCDD version numbers.
+ kPair = 4,
+ // Microsoft-style AA.BB.CCDD version numbers.
+ kTriplet = 5,
+ // UEFI-style AA.BB.CC.DD version numbers.
+ kQuad = 6,
+ // Binary coded decimal notation.
+ kBcd = 7,
+ // Intel ME-style bitshifted notation.
+ kIntelMe = 8,
+ // Intel ME-style A.B.CC.DDDD notation.
+ kIntelMe2 = 9,
+ // Legacy Microsoft Surface 10b.12b.10b.
+ kSurfaceLegacy = 10,
+ // Microsoft Surface 8b.16b.8b.
+ kSurface = 11,
+ // Dell BIOS BB.CC.DD style.
+ kDellBios = 12,
+ // Hexadecimal 0xAABCCDD style.
+ kHex = 13,
};
// The info related to usb interfaces.
@@ -1121,7 +1248,7 @@ struct DisplayInfo {
[MinVersion=1] array<ExternalDisplayInfo>? dp_infos@1;
};
-// NextMinVersion: 2, NextIndex: 7
+// NextMinVersion: 3, NextIndex: 15
struct EmbeddedDisplayInfo {
// Privacy screen is supported or not.
bool privacy_screen_supported@0;
@@ -1137,9 +1264,25 @@ struct EmbeddedDisplayInfo {
[MinVersion=1] NullableUint32? resolution_vertical@5;
// Refresh rate.
[MinVersion=1] NullableDouble? refresh_rate@6;
-};
-
-// NextMinVersion: 1, NextIndex: 5
+ // Three letter manufacturer ID.
+ [MinVersion=2] string? manufacturer@7;
+ // Manufacturer product code.
+ [MinVersion=2] NullableUint16? model_id@8;
+ // 32 bits serial number.
+ [MinVersion=2] NullableUint32? serial_number@9;
+ // Week of manufacture.
+ [MinVersion=2] NullableUint8? manufacture_week@10;
+ // Year of manufacture.
+ [MinVersion=2] NullableUint16? manufacture_year@11;
+ // EDID version.
+ [MinVersion=2] string? edid_version@12;
+ // Digital or analog input.
+ [MinVersion=2] DisplayInputType input_type@13;
+ // Name of display product.
+ [MinVersion=2] string? display_name@14;
+};
+
+// NextMinVersion: 2, NextIndex: 13
struct ExternalDisplayInfo {
// Display width in millimeters.
NullableUint32? display_width@0;
@@ -1151,6 +1294,35 @@ struct ExternalDisplayInfo {
NullableUint32? resolution_vertical@3;
// Refresh rate.
NullableDouble? refresh_rate@4;
+ // Three letter manufacturer ID.
+ [MinVersion=1] string? manufacturer@5;
+ // Manufacturer product code.
+ [MinVersion=1] NullableUint16? model_id@6;
+ // 32 bits serial number.
+ [MinVersion=1] NullableUint32? serial_number@7;
+ // Week of manufacture.
+ [MinVersion=1] NullableUint8? manufacture_week@8;
+ // Year of manufacture.
+ [MinVersion=1] NullableUint16? manufacture_year@9;
+ // EDID version.
+ [MinVersion=1] string? edid_version@10;
+ // Digital or analog input.
+ [MinVersion=1] DisplayInputType input_type@11;
+ // Name of display product.
+ [MinVersion=1] string? display_name@12;
+};
+
+// An enumeration of display input type.
+//
+// NextMinVersion: 1, NextIndex: 3
+[Extensible]
+enum DisplayInputType {
+ // An enum value not defined in this version of the enum definition.
+ [Default] kUnmappedEnumField = 0,
+ // Digital input.
+ kDigital = 1,
+ // Analog input.
+ kAnalog = 2,
};
// Information related to a Thunderbolt device.
@@ -1194,6 +1366,70 @@ struct ThunderboltBusInfo {
array<ThunderboltBusInterfaceInfo> thunderbolt_interfaces@1;
};
+// Input result.
+union InputResult {
+ // Valid InputInfo.
+ InputInfo input_info;
+ // The error that occurred attempting to retrieve the InputInfo.
+ ProbeError error;
+};
+
+// Input software and hardware information.
+//
+// NextMinVersion: 1, NextIndex: 2
+struct InputInfo {
+ // The touchpad library name used by the input stack.
+ string touchpad_library_name@0;
+ // The touchscreen devices.
+ array<TouchscreenDevice> touchscreen_devices@1;
+};
+
+// Data of a touch screen device.
+//
+// NextMinVersion: 1, NextIndex: 4
+struct TouchscreenDevice {
+ // The input device of this touchscreen.
+ InputDevice input_device@0;
+ // Number of touch points this device supports (0 if unknown).
+ int32 touch_points@1;
+ // True if the specified touchscreen device is stylus capable.
+ bool has_stylus@2;
+ // True if there is a garage/dock switch associated with the stylus.
+ bool has_stylus_garage_switch@3;
+};
+
+// Data of a input device.
+//
+// NextMinVersion: 1, NextIndex: 4
+struct InputDevice {
+ // Name of the device.
+ string name@0;
+
+ // The connection type of the input device.
+ [Extensible]
+ enum ConnectionType {
+ // For mojo backward compatibility.
+ [Default] kUnmappedEnumField,
+ // Internally connected input device.
+ kInternal,
+ // Known externally connected usb input device.
+ kUSB,
+ // Known externally connected bluetooth input device.
+ kBluetooth,
+ // Device that may or may not be an external device.
+ kUnknown,
+ };
+
+ ConnectionType connection_type@1;
+ // The physical location(port) associated with the input device. This is
+ // (supposed to be) stable between reboots and hotplugs. However this may not
+ // always be set and will change when the device is connected via a different
+ // port.
+ string physical_location@2;
+ // If the device is enabled, and whether events should be dispatched to UI.
+ bool is_enabled@3;
+};
+
// A collection of all the device's telemetry information that cros_healthd is
// capable of reporting. Note that every field in TelemetryInfo is nullable, and
// the response for a particular ProbeTelemetryInfo request will only contain
@@ -1202,7 +1438,7 @@ struct ThunderboltBusInfo {
// attempt to fetch that information, and size zero if cros_healthd did attempt
// to fetch that information, but was unable to.
//
-// NextMinVersion: 3, NextIndex: 19
+// NextMinVersion: 4, NextIndex: 20
struct TelemetryInfo {
// Information about the device's main battery. Only present when kBattery was
// included in the categories input to ProbeTelemetryInfo.
@@ -1266,4 +1502,7 @@ struct TelemetryInfo {
// kNetworkInterface was included in the categories input to
// ProbeTelemetryInfo.
[MinVersion=2] NetworkInterfaceResult? network_interface_result@18;
+ // Information about the input software and hardware. Only present when
+ // kInput was included in the categories input to ProbeTelemetryInfo.
+ [MinVersion=3] InputResult? input_result@19;
};
diff --git a/chromium/chromeos/services/cros_healthd/public/mojom/nullable_primitives.mojom b/chromium/chromeos/services/cros_healthd/public/mojom/nullable_primitives.mojom
index 5976230da55..9e7d46de59b 100644
--- a/chromium/chromeos/services/cros_healthd/public/mojom/nullable_primitives.mojom
+++ b/chromium/chromeos/services/cros_healthd/public/mojom/nullable_primitives.mojom
@@ -13,6 +13,24 @@
module chromeos.cros_healthd.mojom;
+// Optional uint8 field.
+struct NullableUint8 {
+ // The value of the uint8.
+ uint8 value;
+};
+
+// Optional int16 field.
+struct NullableInt16 {
+ // The value of the int16.
+ int16 value;
+};
+
+// Optional uint16 field.
+struct NullableUint16 {
+ // The value of the uint16.
+ uint16 value;
+};
+
// Optional uint32 field.
struct NullableUint32 {
// The value of the uint32.
diff --git a/chromium/chromeos/services/libassistant/BUILD.gn b/chromium/chromeos/services/libassistant/BUILD.gn
index deee603532e..562468af21d 100644
--- a/chromium/chromeos/services/libassistant/BUILD.gn
+++ b/chromium/chromeos/services/libassistant/BUILD.gn
@@ -3,7 +3,7 @@
# found in the LICENSE file.
import("//build/buildflag_header.gni")
-import("//chromeos/assistant/assistant.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
assert(enable_cros_libassistant)
@@ -40,7 +40,7 @@ component("libassistant") {
defines = [ "IS_LIBASSISTANT_SERVICE_IMPL" ]
# The default output name of this service, `libassistant_service.so`, already
- # exists (as build target of //chromeos/services/assistant), so we have to
+ # exists (as build target of //chromeos/ash/services/assistant), so we have to
# use `lib_libassistant_service.so`.
output_name = "lib_libassistant_service"
}
@@ -125,9 +125,9 @@ source_set("internal") {
"./grpc/external_services:grpc_services_initializer",
"./grpc/external_services:grpc_services_observer",
"//build/util:chromium_git_revision",
- "//chromeos/assistant:buildflags",
+ "//chromeos/ash/components/assistant:buildflags",
+ "//chromeos/ash/resources",
"//chromeos/assistant/internal",
- "//chromeos/assistant/internal:buildflags",
"//chromeos/assistant/internal:libassistant",
"//chromeos/assistant/internal:libassistant_shared_headers",
"//chromeos/assistant/internal:support",
@@ -135,7 +135,6 @@ source_set("internal") {
"//chromeos/dbus",
"//chromeos/dbus/power",
"//chromeos/dbus/util:util",
- "//chromeos/resources:resources_grit",
"//chromeos/services/assistant/public/cpp",
"//chromeos/services/assistant/public/proto",
"//chromeos/services/libassistant/public/mojom",
@@ -256,11 +255,11 @@ source_set("unit_tests") {
":test_support",
"//base",
"//base/test:test_support",
+ "//chromeos/ash/components/assistant/test_support:test_support",
"//chromeos/assistant/internal",
"//chromeos/assistant/internal:libassistant_shared_headers",
"//chromeos/assistant/internal:support",
"//chromeos/assistant/internal:test_support",
- "//chromeos/assistant/test_support:test_support",
"//chromeos/dbus/power",
"//chromeos/services/assistant/public/cpp",
"//chromeos/services/libassistant/grpc:assistant_client",
diff --git a/chromium/chromeos/services/libassistant/grpc/BUILD.gn b/chromium/chromeos/services/libassistant/grpc/BUILD.gn
index 5692fe2aca0..15aed86fa21 100644
--- a/chromium/chromeos/services/libassistant/grpc/BUILD.gn
+++ b/chromium/chromeos/services/libassistant/grpc/BUILD.gn
@@ -34,7 +34,6 @@ source_set("assistant_client") {
source_set("grpc_client") {
sources = [
- "grpc_client_cq_tag.h",
"grpc_client_thread.cc",
"grpc_client_thread.h",
"grpc_state.h",
@@ -47,6 +46,7 @@ source_set("grpc_client") {
deps = [
"//base",
+ "//chromeos/assistant/internal",
"//third_party/protobuf:protobuf_lite",
]
@@ -112,16 +112,44 @@ source_set("libassistant_client") {
all_dependent_configs = [ "//third_party/grpc:grpc_config" ]
}
+source_set("http_connection_client") {
+ sources = [
+ "grpc_http_connection_client.cc",
+ "grpc_http_connection_client.h",
+ "grpc_http_connection_delegate.cc",
+ "grpc_http_connection_delegate.h",
+ ]
+
+ public_deps = [
+ "//chromeos/assistant/internal/proto:assistant",
+ "//chromeos/assistant/internal/proto:assistant_grpc",
+ ]
+
+ deps = [
+ ":grpc_client",
+ "//base",
+ "//chromeos/assistant/internal",
+ "//chromeos/assistant/internal:libassistant_shared_headers",
+ ]
+}
+
source_set("unit_tests") {
testonly = true
- sources = [ "assistant_client_v1_unittests.cc" ]
+ sources = [
+ "assistant_client_v1_unittests.cc",
+ "grpc_http_connection_client_unittests.cc",
+ ]
deps = [
":assistant_client",
":grpc_service",
+ ":http_connection_client",
"//base/test:test_support",
+ "//chromeos/assistant/internal",
+ "//chromeos/assistant/internal:libassistant_shared_headers",
"//chromeos/assistant/internal:test_support",
"//chromeos/assistant/internal/proto:assistant",
+ "//chromeos/assistant/internal/proto:assistant_grpc",
"//testing/gmock",
"//testing/gtest",
]
diff --git a/chromium/chromeos/services/libassistant/grpc/external_services/BUILD.gn b/chromium/chromeos/services/libassistant/grpc/external_services/BUILD.gn
index c787d26955e..1402847823d 100644
--- a/chromium/chromeos/services/libassistant/grpc/external_services/BUILD.gn
+++ b/chromium/chromeos/services/libassistant/grpc/external_services/BUILD.gn
@@ -25,6 +25,7 @@ source_set("grpc_services_initializer") {
"//chromeos/services/libassistant/grpc:grpc_client",
"//chromeos/services/libassistant/grpc:grpc_service",
"//chromeos/services/libassistant/grpc:grpc_util",
+ "//chromeos/services/libassistant/grpc:http_connection_client",
"//chromeos/services/libassistant/grpc:libassistant_client",
"//third_party/grpc:grpc++",
]
diff --git a/chromium/chromeos/services/libassistant/public/mojom/BUILD.gn b/chromium/chromeos/services/libassistant/public/mojom/BUILD.gn
index f44799967eb..b5005f4fd5e 100644
--- a/chromium/chromeos/services/libassistant/public/mojom/BUILD.gn
+++ b/chromium/chromeos/services/libassistant/public/mojom/BUILD.gn
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//chromeos/assistant/assistant.gni")
+import("//chromeos/ash/components/assistant/assistant.gni")
import("//mojo/public/tools/bindings/mojom.gni")
mojom("mojom") {
diff --git a/chromium/chromeos/services/libassistant/public/mojom/service_controller.mojom b/chromium/chromeos/services/libassistant/public/mojom/service_controller.mojom
index 50cf2b39e7e..0128d0b58b0 100644
--- a/chromium/chromeos/services/libassistant/public/mojom/service_controller.mojom
+++ b/chromium/chromeos/services/libassistant/public/mojom/service_controller.mojom
@@ -65,4 +65,7 @@ struct BootupConfig {
bool spoken_feedback_enabled;
bool dark_mode_enabled;
bool hotword_enabled;
+
+ // Optional root path where the DLC library mounted.
+ string? dlc_path;
};
diff --git a/chromium/chromeos/services/machine_learning/public/mojom/handwriting_recognizer.mojom b/chromium/chromeos/services/machine_learning/public/mojom/handwriting_recognizer.mojom
index 3e0a3d1abd2..990581ed75d 100644
--- a/chromium/chromeos/services/machine_learning/public/mojom/handwriting_recognizer.mojom
+++ b/chromium/chromeos/services/machine_learning/public/mojom/handwriting_recognizer.mojom
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Next MinVersion: 2
+// Next MinVersion: 3
// Datatypes and interfaces of handwriting recognition API.
@@ -139,7 +139,13 @@ struct HandwritingRecognizerSpec {
string language;
// Path to the language pack to use (downloaded by Chrome via DLC).
+ // If unset, ml-service will try to find the model from rootfs.
[MinVersion=1] string? language_pack_path;
+
+ // Path to already-installed handwriting recognition library (downloaded by
+ // chrome via DLC).
+ // If unset, ml-service will try to find the library from rootfs.
+ [MinVersion=2] string? library_dlc_path;
};
// The mojom interface for performing the recognition of handwritten text.
diff --git a/chromium/chromeos/services/machine_learning/public/mojom/text_suggester.mojom b/chromium/chromeos/services/machine_learning/public/mojom/text_suggester.mojom
index d8c7842935d..6b7702005f9 100644
--- a/chromium/chromeos/services/machine_learning/public/mojom/text_suggester.mojom
+++ b/chromium/chromeos/services/machine_learning/public/mojom/text_suggester.mojom
@@ -72,11 +72,12 @@ struct MultiWordSuggestionCandidate {
// Represents all types of suggestion candidates generated by the service.
//
-// TODO(crbug/1201949): Note that the Extensible keyword is not supported for
-// union types. We may need to revisit this type in the future.
+// TODO(crbug.com/1261313): Note that this type must be marked [Extensible] in all
+// deployed versions before new ordinals can be introduced, and [Extensible]
+// requires establishing a [Default] field.
//
// Next ordinal: 1
-[Stable, Extensible]
+[Stable]
union TextSuggestionCandidate {
MultiWordSuggestionCandidate multi_word@0;
};
@@ -86,13 +87,13 @@ union TextSuggestionCandidate {
[Stable]
struct TextSuggesterResult {
// Status of the response
- [Stable, Extensible, Default=ERROR]
+ [Stable, Extensible]
enum Status {
// Text suggestions generated successfully
OK = 0,
// There was an error while generating candidates, no candidates will be
// returned with this result.
- ERROR = 1,
+ [Default] ERROR = 1,
};
Status status@0;
diff --git a/chromium/chromeos/services/network_config/public/mojom/cros_network_config.mojom b/chromium/chromeos/services/network_config/public/mojom/cros_network_config.mojom
index f71f4d3d822..d3b1f2dfe64 100644
--- a/chromium/chromeos/services/network_config/public/mojom/cros_network_config.mojom
+++ b/chromium/chromeos/services/network_config/public/mojom/cros_network_config.mojom
@@ -191,6 +191,8 @@ struct CellularStateProperties {
bool roaming = false;
// The signal strength of the cellular connection.
int32 signal_strength;
+ // True when a SIM is present and has locking enabled.
+ bool sim_lock_enabled = false;
// True when a SIM is present and locked.
bool sim_locked = false;
};
@@ -738,9 +740,9 @@ struct ManagedProperties {
// Properties for SetProperties and ConfigureNetwork. All of the top level
// properties and many nested properties are optional so that sparse
// configurations can be provided, e.g. just the |auto_connect| property can
-// be changed. The ONC validation code (chromeos/network/onc/onc_validator.cc)
-// ensures that configurations are valid before translating and passing them to
-// Shill.
+// be changed. The ONC validation code
+// (chromeos/ash/components/network/onc/onc_validator.cc) ensures that
+// configurations are valid before translating and passing them to Shill.
// Wrapper to allow optional auto_connect configuration.
struct AutoConnectConfig {
@@ -934,6 +936,10 @@ struct CellularSimState {
// Properties provided by GetGlobalPolicy. These properties affect network
// configuration as a whole instead of individual network configurations.
struct GlobalPolicy {
+ // If true, allow PIN locking of SIMs attached to the device.
+ // If false, PIN locking is prohibited.
+ bool allow_cellular_sim_lock = true;
+
// If true, only cellular networks present in policy may be connected to and
// no new networks may be added or configured.
bool allow_only_policy_cellular_networks = false;
diff --git a/chromium/chromeos/services/network_health/public/mojom/BUILD.gn b/chromium/chromeos/services/network_health/public/mojom/BUILD.gn
index 0b8abc04bdc..94cd08a781a 100644
--- a/chromium/chromeos/services/network_health/public/mojom/BUILD.gn
+++ b/chromium/chromeos/services/network_health/public/mojom/BUILD.gn
@@ -14,4 +14,7 @@ mojom("mojom") {
"//chromeos/services/network_config/public/mojom:network_types",
"//mojo/public/mojom/base",
]
+
+ webui_module_path =
+ "chrome://resources/mojo/chromeos/services/network_health/public/mojom"
}
diff --git a/chromium/chromeos/services/network_health/public/mojom/network_health.mojom b/chromium/chromeos/services/network_health/public/mojom/network_health.mojom
index ee00894897e..afca3b22b93 100644
--- a/chromium/chromeos/services/network_health/public/mojom/network_health.mojom
+++ b/chromium/chromeos/services/network_health/public/mojom/network_health.mojom
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Next MinVersion: 2
+// Next MinVersion: 3
// API intended for retrieving a snapshot of the network health state. Returns
// properties of any available network technologies and any connected or
@@ -11,6 +11,7 @@
module chromeos.network_health.mojom;
import "chromeos/services/network_config/public/mojom/network_types.mojom";
+import "mojo/public/mojom/base/time.mojom";
[Stable, Extensible]
enum NetworkState {
@@ -117,7 +118,7 @@ interface NetworkEventsObserver {
// Interface for retrieving aggregated information about the current network
// state and health from the browser process.
-// Next Method ID: 3
+// Next Method ID: 4
[Stable]
interface NetworkHealthService {
// Adds an observer to be notified on network events. The caller can remove
@@ -133,4 +134,10 @@ interface NetworkHealthService {
// This is currently the same information provided by GetNetworkList. More
// information will be added over time.
GetHealthSnapshot@2() => (NetworkHealthState state);
+
+ // Returns the list of network guids we want traffic counters for. This
+ // includes currently active networks as well as networks that were active
+ // within the last hour.
+ [MinVersion=2]
+ GetRecentlyActiveNetworks@3() => (array<string> guids);
};
diff --git a/chromium/chromeos/startup/BUILD.gn b/chromium/chromeos/startup/BUILD.gn
index 103570c92c2..abd7291ad52 100644
--- a/chromium/chromeos/startup/BUILD.gn
+++ b/chromium/chromeos/startup/BUILD.gn
@@ -2,9 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/chromeos/ui_mode.gni")
+
component("startup") {
output_name = "chromeos_startup"
defines = [ "IS_CHROMEOS_STARTUP_IMPL" ]
+ public_deps = [ "//chromeos/crosapi/mojom" ]
deps = [
":constants",
"//base",
@@ -13,6 +16,13 @@ component("startup") {
"startup.cc",
"startup.h",
]
+
+ if (is_chromeos_lacros) {
+ sources += [
+ "browser_init_params.cc",
+ "browser_init_params.h",
+ ]
+ }
}
component("constants") {
diff --git a/chromium/chromeos/tast_control.gni b/chromium/chromeos/tast_control.gni
index 491f46034d5..ee0cc312aec 100644
--- a/chromium/chromeos/tast_control.gni
+++ b/chromium/chromeos/tast_control.gni
@@ -29,14 +29,6 @@ tast_disabled_tests_from_chrome_all = [
"apps.SystemWebAppsReinstall.default_enabled_apps_stable",
"camera.EncodeAccelJPEG",
- # crbug.com/1247485
- "inputs.PhysicalKeyboardInputFields.us_en",
- "inputs.VirtualKeyboardAccent",
-
- # crbug.com/1247177
- "inputs.PhysicalKeyboardEnglishTyping",
- "inputs.PhysicalKeyboardEmoji",
-
# https://crbug.com/1252352
"quicksettings.SignInScreen.battery",
"quicksettings.SignInScreen.noaudio_nobattery",
@@ -45,21 +37,9 @@ tast_disabled_tests_from_chrome_all = [
# crbug.com/1263234
"quicksettings.ManagedDeviceInfo",
- # crbug.com/1273743
- "crostini.Launcher.local_wayland_bullseye_stable",
- "crostini.Launcher.local_wayland_buster_stable",
- "crostini.Launcher.local_x11_bullseye_stable",
- "crostini.Launcher.system_wayland_bullseye_stable",
- "crostini.Launcher.system_wayland_buster_stable",
- "crostini.Launcher.system_x11_bullseye_stable",
- "crostini.Launcher.system_x11_buster_stable",
-
# crbug.com/1259127
"ui.TabletOperations",
- # crbug.com/1257474
- "shelf.OpenCloseSwitchApps",
-
# crbug.com/1239838
"graphics.FPS",
@@ -75,9 +55,6 @@ tast_disabled_tests_from_chrome_all = [
"ui.ChromeCrashReporterMetrics.success_breakpad",
"ui.ChromeCrashReporterMetrics.miss_breakpad",
- # https://crbug.com/1269075: Flaky.
- "shelf.AutoHideSmoke.clamshell_mode",
-
# https://crbug.com/1269124: Flaky.
"quicksettings.LockScreen.no_battery",
@@ -105,17 +82,6 @@ tast_disabled_tests_from_chrome_all = [
# https://crbug.com/1282369
"apps.LaunchHelpAppOffline",
- # https://crbug.com/1282366 and https://crbug.com/1311184
- "inputs.VirtualKeyboardChangeInput.a11y",
- "inputs.VirtualKeyboardDeadKeys.french",
- "inputs.VirtualKeyboardFloat.clamshell",
- "inputs.VirtualKeyboardGlideTyping.clamshell_a11y_floating",
- "inputs.VirtualKeyboardHandwriting.docked",
- "inputs.VirtualKeyboardHandwriting.floating",
- "inputs.VirtualKeyboardMultipaste",
- "inputs.VirtualKeyboardOOBE",
- "inputs.VirtualKeyboardSystemLanguages.es",
-
# https://crbug.com/1282370
"arc.Boot.vm_with_per_vcpu_core_scheduling",
@@ -125,12 +91,6 @@ tast_disabled_tests_from_chrome_all = [
# http://b/212644512
"security.SELinuxFilesDataDir",
- # https://crbug.com/1283300 (http://b/212637568)
- "inputs.PhysicalKeyboardCapsLock",
- "inputs.PhysicalKeyboardChangeInput",
- "inputs.PhysicalKeyboardAutocorrect.en_us_1",
- "inputs.PhysicalKeyboardDeadKeys.us_intl_acute",
-
# https://crbug.com/1260046
"wmp.WindowCycle",
@@ -222,26 +182,130 @@ tast_disabled_tests_from_chrome_all = [
# https://crbug.com/1314935
"dlp.DataLeakPreventionRulesListClipboardShelf",
+ # https://crbug.com/1322973
+ "dlp.DataLeakPreventionRulesListClipboardShelf.ash",
+
# https://crbug.com/1314923
"dlp.DataLeakPreventionRulesListScreenshot.ash_allowed",
- "dlp.DataLeakPreventionRulesListClipboardOmni",
# https://crbug.com/1315123
"dlp.DataLeakPreventionRulesListScreenshot.ash_blocked",
- # https://crbug.com/1312069
- "apps.LaunchHelpAppFromSettings.stable",
- "apps.LaunchReleaseNotesFromSettings.stable",
- "arc.Clipboard",
- "arc.Gamepad",
- "arc.IMESwitchShortcut",
- "arc.StandardizedKeyboardCopyPaste",
- "arc.StandardizedKeyboardCopyPaste.tablet_mode",
- "arc.StandardizedKeyboardTyping",
- "arc.StandardizedKeyboardTyping.tablet_mode",
-
- # https://crbug.com/1315880
- "u2fd.WebauthnUsingPassword.tpm1",
+ # https://crbug.com/1318989
+ "assistant.StartupInSignedOutMode",
+ "login.ChangePassword",
+
+ # https://crbug.com/1322572
+ "policy.NotificationsAllowedForUrls",
+ "policy.NotificationsBlockedForUrls",
+ "policy.PolicyRefreshRate",
+ "policy.PopupsForURLCheck.allowlist",
+
+ # https://crbug.com/1323628
+ "crostini.AppVscode",
+ "crostini.AppGeditFilesharing",
+
+ # https://crbug.com/1326279
+ "policy.AccessibilityPolicies.focus_highlight",
+
+ # https://crbug.com/1326331
+ "policy.AccessibilityPolicies.high_contrast",
+
+ # https://crbug.com/1326403
+ "policy.AccessibilityPolicies.large_cursor",
+
+ # https://crbug.com/1327171
+ "policy.PopupsForURLCheck.default",
+
+ # https://crbug.com/1327345
+ "policy.ChromePolicyPageStatusTimestamps.ash",
+
+ # https://crbug.com/1327361
+ "policy.FullscreenAllowed",
+
+ # https://crbug.com/1328128
+ "policy.PopupsForURLCheck.blocklist",
+
+ # https://crbug.com/1329734
+ "health.DiagnosticsList",
+ "health.DiagnosticsCancel.urandom",
+
+ # https://crbug.com/1329761
+ "policy.DefaultSerialGuardSetting",
+
+ # https://crbug.com/1335176
+ "policy.ScreenBrightnessPercent",
+
+ # https://crbug.com/1334354
+ "arc.Boot.vm",
+ "arc.ChromeCrash.vm_logged_in",
+ "arc.Drivefs.vm",
+ "arc.OptinManaged.vm",
+ "arc.OptinNetworkError.vm",
+ "arc.RemovableMedia.vm",
+ "security.NetworkListenersARC.vm",
+ "security.SELinuxFilesDataDir.vm",
+
+ # b/233264555
+ "inputs.PhysicalKeyboardEmojiSuggestion",
+ "inputs.PhysicalKeyboardEmojiSuggestion.guest",
+ "inputs.PhysicalKeyboardEmojiSuggestion.incognito",
+
+ # http://b/229032436
+ "health.DiagnosticsRun.captive_portal",
+ "health.DiagnosticsRun.cpu_cache",
+ "health.DiagnosticsRun.cpu_stress",
+ "health.DiagnosticsRun.dns_latency",
+ "health.DiagnosticsRun.dns_resolution",
+ "health.DiagnosticsRun.dns_resolver_present",
+
+ # This is effectively the mirror of the crrev.com/c/3691078 in CrOS.
+ # Although the change is made, because CrOS SDK is not yet ready
+ # we're still blocked by the test failures. This is the short term
+ # mitigation. We can remove this when CrOS SDK 14903 gets ready
+ # and started to be used.
+ "crostini.LaunchTerminal.buster_stable",
+ "crostini.Notify.buster_stable",
+ "crostini.PackageInfo.buster_stable",
+ "crostini.NoSharedFolder.buster_stable",
+ "crostini.LaunchBrowser.buster_stable",
+ "crostini.SecureCopyPaste.copy_wayland_buster_stable",
+ "crostini.SecureCopyPaste.copy_x11_buster_stable",
+ "crostini.PackageInstallUninstall.buster_stable",
+ "crostini.Xattrs.buster_stable",
+ "crostini.SSHFSMount.buster_stable",
+ "crostini.SecureCopyPaste.paste_wayland_buster_stable",
+ "crostini.UninstallInvalidApp.buster_stable",
+ "crostini.SecureCopyPaste.paste_x11_buster_stable",
+ "crostini.SharedFontFiles.buster_stable",
+ "crostini.CrashReporter.buster_stable",
+ "crostini.HomeDirectoryCreateFile.buster_stable",
+ "crostini.Basic.buster_stable",
+ "crostini.GPUEnabled.gpu_buster_stable",
+ "crostini.GPUEnabled.gpu_bullseye_stable",
+ "crostini.CrashReporter.bullseye_stable",
+ "crostini.Basic.bullseye_stable",
+ "crostini.HomeDirectoryCreateFile.bullseye_stable",
+ "crostini.LaunchBrowser.bullseye_stable",
+ "crostini.SecureCopyPaste.copy_wayland_bullseye_stable",
+ "crostini.SharedFontFiles.bullseye_stable",
+ "crostini.SecureCopyPaste.paste_x11_bullseye_stable",
+ "crostini.PackageInfo.bullseye_stable",
+ "crostini.Notify.bullseye_stable",
+ "crostini.UninstallInvalidApp.bullseye_stable",
+ "crostini.LaunchTerminal.bullseye_stable",
+ "crostini.NoSharedFolder.bullseye_stable",
+ "crostini.Xattrs.bullseye_stable",
+ "crostini.PackageInstallUninstall.bullseye_stable",
+ "crostini.SecureCopyPaste.paste_wayland_bullseye_stable",
+ "crostini.SSHFSMount.bullseye_stable",
+ "crostini.SecureCopyPaste.copy_x11_bullseye_stable",
+
+ # http://b234699971
+ "crostini.AppGeditUnshareFolder",
+
+ # b/235279574
+ "wmp.DragAndDropWindow",
]
# To create filters to be used on specific builders add them like this:
@@ -250,4 +314,7 @@ tast_disabled_tests_from_chrome_all = [
# test config as 'tast_expr_key'
# To disable a specific test in lacros_all_tast_tests, add it the following
# list and cite a bug.
-tast_disabled_tests_from_lacros_all = []
+tast_disabled_tests_from_lacros_all = [
+ # https://crbug.com/1329764
+ "policy.HistoryClustersVisible",
+]
diff --git a/chromium/chromeos/ui/frame/BUILD.gn b/chromium/chromeos/ui/frame/BUILD.gn
index 5c6a80847ff..16a88baa8e2 100644
--- a/chromium/chromeos/ui/frame/BUILD.gn
+++ b/chromium/chromeos/ui/frame/BUILD.gn
@@ -45,6 +45,8 @@ source_set("frame") {
"immersive/immersive_revealed_lock.h",
"interior_resize_handler_targeter.cc",
"interior_resize_handler_targeter.h",
+ "multitask_menu/multitask_menu.cc",
+ "multitask_menu/multitask_menu.h",
]
deps = [