kiosk: Move KioskVision to chromeos/ash/components/kiosk
Bug: b:332685823
Test: testing/xvfb.py tools/autotest.py -C out_/Default chromeos/ash/components/kiosk/vision/kiosk_vision_unittest.cc
Change-Id: Ife5e87934456a674c3b66afb5bb3e4a073ed3e82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5424733
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Jeroen Dhollander <jeroendh@google.com>
Commit-Queue: Edman Anjos <edman@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1283201}
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index 4f71a1a..f87d8b76 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -3722,7 +3722,6 @@
"//chrome/app/vector_icons",
"//chrome/browser:browser_process",
"//chrome/browser/apps/almanac_api_client",
- "//chrome/browser/ash/app_mode/vision",
"//chrome/browser/ash/arc/input_overlay/db/proto",
"//chrome/browser/ash/borealis:borealis_installer_types_mojom",
"//chrome/browser/ash/crosapi",
@@ -4238,6 +4237,7 @@
"//chromeos/ash/components/game_mode",
"//chromeos/ash/components/growth",
"//chromeos/ash/components/growth:config_provider",
+ "//chromeos/ash/components/kiosk/vision",
"//chromeos/ash/components/language_packs",
"//chromeos/ash/components/local_search_service/public/cpp",
"//chromeos/ash/components/mojo_service_manager",
@@ -6305,7 +6305,6 @@
"//chrome/browser/ash/app_list/search/ranking:proto",
"//chrome/browser/ash/app_list/search/util:proto",
"//chrome/browser/ash/app_list/vector_icons",
- "//chrome/browser/ash/app_mode/vision:unit_test_sources",
"//chrome/browser/ash/arc/input_overlay/db/proto",
"//chrome/browser/ash/borealis:borealis_installer_types_mojom",
"//chrome/browser/ash/crosapi",
diff --git a/chrome/browser/ash/app_mode/kiosk_system_session.cc b/chrome/browser/ash/app_mode/kiosk_system_session.cc
index 3b159cb6..bd9f5fb6d 100644
--- a/chrome/browser/ash/app_mode/kiosk_system_session.cc
+++ b/chrome/browser/ash/app_mode/kiosk_system_session.cc
@@ -20,8 +20,6 @@
#include "chrome/browser/ash/app_mode/kiosk_mode_idle_app_name_notification.h"
#include "chrome/browser/ash/app_mode/metrics/network_connectivity_metrics_service.h"
#include "chrome/browser/ash/app_mode/metrics/periodic_metrics_service.h"
-#include "chrome/browser/ash/app_mode/vision/kiosk_vision.h"
-#include "chrome/browser/ash/app_mode/vision/pref_names.h"
#include "chrome/browser/ash/crosapi/browser_manager.h"
#include "chrome/browser/ash/crosapi/browser_manager_observer.h"
#include "chrome/browser/ash/crosapi/browser_util.h"
@@ -31,6 +29,7 @@
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/common/pref_names.h"
+#include "chromeos/ash/components/kiosk/vision/kiosk_vision.h"
#include "components/prefs/pref_service.h"
#include "components/user_manager/user.h"
#include "extensions/browser/extension_registry.h"
@@ -155,8 +154,7 @@
// static
void KioskSystemSession::RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
- registry->RegisterBooleanPref(prefs::kKioskVisionTelemetryEnabled,
- /*default_value=*/false);
+ kiosk_vision::RegisterLocalStatePrefs(registry);
policy::DeviceWeeklyScheduledSuspendPolicyHandler::RegisterLocalStatePrefs(
registry);
}
diff --git a/chrome/browser/ash/app_mode/kiosk_system_session.h b/chrome/browser/ash/app_mode/kiosk_system_session.h
index 07bf4181..6b221bd5 100644
--- a/chrome/browser/ash/app_mode/kiosk_system_session.h
+++ b/chrome/browser/ash/app_mode/kiosk_system_session.h
@@ -12,8 +12,8 @@
#include "chrome/browser/ash/app_mode/kiosk_app_types.h"
#include "chrome/browser/ash/app_mode/metrics/low_disk_metrics_service.h"
#include "chrome/browser/ash/app_mode/metrics/periodic_metrics_service.h"
-#include "chrome/browser/ash/app_mode/vision/kiosk_vision.h"
#include "chrome/browser/chromeos/app_mode/kiosk_browser_session.h"
+#include "chromeos/ash/components/kiosk/vision/kiosk_vision.h"
class PrefRegistrySimple;
diff --git a/chromeos/ash/components/BUILD.gn b/chromeos/ash/components/BUILD.gn
index d520d7fd..f495149 100644
--- a/chromeos/ash/components/BUILD.gn
+++ b/chromeos/ash/components/BUILD.gn
@@ -30,6 +30,7 @@
"//chromeos/ash/components/hid_detection:unit_tests",
"//chromeos/ash/components/human_presence:unit_tests",
"//chromeos/ash/components/install_attributes:unit_tests",
+ "//chromeos/ash/components/kiosk/vision:unit_tests",
"//chromeos/ash/components/language_packs:unit_tests",
"//chromeos/ash/components/local_search_service:unit_tests",
"//chromeos/ash/components/local_search_service/public/mojom:unit_tests",
diff --git a/chromeos/ash/components/kiosk/OWNERS b/chromeos/ash/components/kiosk/OWNERS
new file mode 100644
index 0000000..f782149
--- /dev/null
+++ b/chromeos/ash/components/kiosk/OWNERS
@@ -0,0 +1 @@
+file://chromeos/components/kiosk/OWNERS
diff --git a/chrome/browser/ash/app_mode/vision/BUILD.gn b/chromeos/ash/components/kiosk/vision/BUILD.gn
similarity index 65%
rename from chrome/browser/ash/app_mode/vision/BUILD.gn
rename to chromeos/ash/components/kiosk/vision/BUILD.gn
index d6c8397..c7359422 100644
--- a/chrome/browser/ash/app_mode/vision/BUILD.gn
+++ b/chromeos/ash/components/kiosk/vision/BUILD.gn
@@ -6,7 +6,8 @@
assert(is_chromeos_ash)
-source_set("vision") {
+component("vision") {
+ defines = [ "IS_KIOSK_VISION_IMPL" ]
sources = [
"kiosk_vision.cc",
"kiosk_vision.h",
@@ -15,8 +16,8 @@
deps = [
":internal",
"//base",
- "//chrome/browser:browser_process",
"//chromeos/ash/components/dbus/dlcservice",
+ "//chromeos/ash/components/dbus/dlcservice:dlcservice_proto",
"//components/prefs:prefs",
]
}
@@ -38,24 +39,31 @@
]
}
-source_set("unit_test_sources") {
+source_set("unit_tests") {
testonly = true
sources = [ "kiosk_vision_unittest.cc" ]
deps = [
":vision",
"//base",
- "//chrome/test:test_support",
+ "//base/test:test_support",
"//chromeos/ash/components/dbus/dlcservice",
+ "//chromeos/ash/components/dbus/dlcservice:dlcservice_proto",
+ "//components/prefs:prefs",
+ "//components/prefs:test_support",
"//testing/gtest",
]
}
test("kiosk_vision_unit_tests") {
testonly = true
+ sources = [ "//chromeos/test/run_all_unittests.cc" ]
deps = [
- ":unit_test_sources",
+ ":unit_tests",
":vision",
- "//chrome/test:test_support_unit",
+ "//base",
+ "//base/test:test_support",
+ "//chromeos/ash/components:test_support",
+ "//mojo/core/embedder",
"//testing/gtest",
]
}
diff --git a/chromeos/ash/components/kiosk/vision/DEPS b/chromeos/ash/components/kiosk/vision/DEPS
new file mode 100644
index 0000000..d171346
--- /dev/null
+++ b/chromeos/ash/components/kiosk/vision/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+ "+chromeos/ash/components/dbus/dlcservice",
+]
diff --git a/chrome/browser/ash/app_mode/vision/internal/pref_observer.cc b/chromeos/ash/components/kiosk/vision/internal/pref_observer.cc
similarity index 90%
rename from chrome/browser/ash/app_mode/vision/internal/pref_observer.cc
rename to chromeos/ash/components/kiosk/vision/internal/pref_observer.cc
index 139df109..75187cd 100644
--- a/chrome/browser/ash/app_mode/vision/internal/pref_observer.cc
+++ b/chromeos/ash/components/kiosk/vision/internal/pref_observer.cc
@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ash/app_mode/vision/internal/pref_observer.h"
+#include "chromeos/ash/components/kiosk/vision/internal/pref_observer.h"
#include <utility>
#include "base/check_deref.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
-#include "chrome/browser/ash/app_mode/vision/pref_names.h"
+#include "chromeos/ash/components/kiosk/vision/pref_names.h"
#include "components/prefs/pref_service.h"
namespace ash::kiosk_vision {
diff --git a/chrome/browser/ash/app_mode/vision/internal/pref_observer.h b/chromeos/ash/components/kiosk/vision/internal/pref_observer.h
similarity index 81%
rename from chrome/browser/ash/app_mode/vision/internal/pref_observer.h
rename to chromeos/ash/components/kiosk/vision/internal/pref_observer.h
index 0e2532d9..8dd0b1bc 100644
--- a/chrome/browser/ash/app_mode/vision/internal/pref_observer.h
+++ b/chromeos/ash/components/kiosk/vision/internal/pref_observer.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_ASH_APP_MODE_VISION_INTERNAL_PREF_OBSERVER_H_
-#define CHROME_BROWSER_ASH_APP_MODE_VISION_INTERNAL_PREF_OBSERVER_H_
+#ifndef CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_INTERNAL_PREF_OBSERVER_H_
+#define CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_INTERNAL_PREF_OBSERVER_H_
#include "base/functional/callback_forward.h"
#include "components/prefs/pref_change_registrar.h"
@@ -35,4 +35,4 @@
} // namespace ash::kiosk_vision
-#endif // CHROME_BROWSER_ASH_APP_MODE_VISION_INTERNAL_PREF_OBSERVER_H_
+#endif // CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_INTERNAL_PREF_OBSERVER_H_
diff --git a/chrome/browser/ash/app_mode/vision/kiosk_vision.cc b/chromeos/ash/components/kiosk/vision/kiosk_vision.cc
similarity index 84%
rename from chrome/browser/ash/app_mode/vision/kiosk_vision.cc
rename to chromeos/ash/components/kiosk/vision/kiosk_vision.cc
index 6abc705..9e51f28a 100644
--- a/chrome/browser/ash/app_mode/vision/kiosk_vision.cc
+++ b/chromeos/ash/components/kiosk/vision/kiosk_vision.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ash/app_mode/vision/kiosk_vision.h"
+#include "chromeos/ash/components/kiosk/vision/kiosk_vision.h"
#include <string>
#include <utility>
@@ -12,10 +12,11 @@
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "base/logging.h"
-#include "chrome/browser/ash/app_mode/vision/internal/pref_observer.h"
-#include "chrome/browser/browser_process.h"
#include "chromeos/ash/components/dbus/dlcservice/dlcservice.pb.h"
#include "chromeos/ash/components/dbus/dlcservice/dlcservice_client.h"
+#include "chromeos/ash/components/kiosk/vision/internal/pref_observer.h"
+#include "chromeos/ash/components/kiosk/vision/pref_names.h"
+#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "third_party/cros_system_api/dbus/dlcservice/dbus-constants.h"
#include "third_party/cros_system_api/mojo/service_constants.h"
@@ -67,6 +68,8 @@
}
}
+KioskVision::~KioskVision() = default;
+
void KioskVision::Enable() {
InstallDlc(base::BindOnce([](std::string dlc_path) {
// TODO(b/320450634) Subscribe to CrOSCameraService detections.
@@ -77,4 +80,9 @@
// TODO(b/320450634) Unsubscribe to CrOSCameraService.
}
+void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
+ registry->RegisterBooleanPref(prefs::kKioskVisionTelemetryEnabled,
+ /*default_value=*/false);
+}
+
} // namespace ash::kiosk_vision
diff --git a/chrome/browser/ash/app_mode/vision/kiosk_vision.h b/chromeos/ash/components/kiosk/vision/kiosk_vision.h
similarity index 63%
rename from chrome/browser/ash/app_mode/vision/kiosk_vision.h
rename to chromeos/ash/components/kiosk/vision/kiosk_vision.h
index f9cb83a..570fb606 100644
--- a/chrome/browser/ash/app_mode/vision/kiosk_vision.h
+++ b/chromeos/ash/components/kiosk/vision/kiosk_vision.h
@@ -2,11 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_ASH_APP_MODE_VISION_KIOSK_VISION_H_
-#define CHROME_BROWSER_ASH_APP_MODE_VISION_KIOSK_VISION_H_
+#ifndef CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_KIOSK_VISION_H_
+#define CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_KIOSK_VISION_H_
-#include "chrome/browser/ash/app_mode/vision/internal/pref_observer.h"
+#include "base/component_export.h"
+#include "chromeos/ash/components/kiosk/vision/internal/pref_observer.h"
#include "components/prefs/pref_change_registrar.h"
+#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
namespace ash::kiosk_vision {
@@ -17,12 +19,12 @@
// prefs; communicating with the CrOS camera service to retrieve ML model
// detections; and processing and forwarding detections to the backend telemetry
// API and the Kiosk web app.
-class KioskVision {
+class COMPONENT_EXPORT(KIOSK_VISION) KioskVision {
public:
explicit KioskVision(PrefService* pref_service);
KioskVision(const KioskVision&) = delete;
KioskVision& operator=(const KioskVision&) = delete;
- ~KioskVision() = default;
+ ~KioskVision();
private:
void Enable();
@@ -33,6 +35,10 @@
inline constexpr char kKioskVisionDlcId[] = "kiosk-vision";
+// Registers prefs used in Kiosk Vision.
+COMPONENT_EXPORT(KIOSK_VISION)
+void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
+
} // namespace ash::kiosk_vision
-#endif // CHROME_BROWSER_ASH_APP_MODE_VISION_KIOSK_VISION_H_
+#endif // CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_KIOSK_VISION_H_
diff --git a/chrome/browser/ash/app_mode/vision/kiosk_vision_unittest.cc b/chromeos/ash/components/kiosk/vision/kiosk_vision_unittest.cc
similarity index 84%
rename from chrome/browser/ash/app_mode/vision/kiosk_vision_unittest.cc
rename to chromeos/ash/components/kiosk/vision/kiosk_vision_unittest.cc
index 81752690..281415d 100644
--- a/chrome/browser/ash/app_mode/vision/kiosk_vision_unittest.cc
+++ b/chromeos/ash/components/kiosk/vision/kiosk_vision_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ash/app_mode/vision/kiosk_vision.h"
+#include "chromeos/ash/components/kiosk/vision/kiosk_vision.h"
#include <string>
@@ -10,15 +10,13 @@
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "base/ranges/algorithm.h"
+#include "base/test/task_environment.h"
#include "base/test/test_future.h"
-#include "chrome/browser/ash/app_mode/kiosk_system_session.h"
-#include "chrome/browser/ash/app_mode/vision/pref_names.h"
#include "chromeos/ash/components/dbus/dlcservice/dlcservice.pb.h"
#include "chromeos/ash/components/dbus/dlcservice/fake_dlcservice_client.h"
+#include "chromeos/ash/components/kiosk/vision/pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/testing_pref_service.h"
-#include "components/sync_preferences/testing_pref_service_syncable.h"
-#include "content/public/test/browser_task_environment.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/cros_system_api/dbus/dlcservice/dbus-constants.h"
@@ -27,8 +25,8 @@
namespace {
-void RegisterKioskVisionPrefs(TestingPrefServiceSimple& pref_service) {
- KioskSystemSession::RegisterLocalStatePrefs(pref_service.registry());
+void RegisterKioskVisionPrefs(TestingPrefServiceSimple& local_state) {
+ RegisterLocalStatePrefs(local_state.registry());
}
void EnableKioskVisionTelemetryPref(PrefService& pref_service) {
@@ -68,7 +66,7 @@
void SetUp() override { RegisterKioskVisionPrefs(local_state_); }
protected:
- content::BrowserTaskEnvironment task_environment_;
+ base::test::TaskEnvironment task_environment_;
TestingPrefServiceSimple local_state_;
FakeDlcserviceClient fake_dlcservice_;
};
diff --git a/chrome/browser/ash/app_mode/vision/pref_names.h b/chromeos/ash/components/kiosk/vision/pref_names.h
similarity index 65%
rename from chrome/browser/ash/app_mode/vision/pref_names.h
rename to chromeos/ash/components/kiosk/vision/pref_names.h
index 97849c7..9ec2ded 100644
--- a/chrome/browser/ash/app_mode/vision/pref_names.h
+++ b/chromeos/ash/components/kiosk/vision/pref_names.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_ASH_APP_MODE_VISION_PREF_NAMES_H_
-#define CHROME_BROWSER_ASH_APP_MODE_VISION_PREF_NAMES_H_
+#ifndef CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_PREF_NAMES_H_
+#define CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_PREF_NAMES_H_
namespace ash::prefs {
@@ -13,4 +13,4 @@
} // namespace ash::prefs
-#endif // CHROME_BROWSER_ASH_APP_MODE_VISION_PREF_NAMES_H_
+#endif // CHROMEOS_ASH_COMPONENTS_KIOSK_VISION_PREF_NAMES_H_