Skip to content

Commit

Permalink
device: Export UdevLoader and UdevWatcher using COMPONENT_EXPORT
Browse files Browse the repository at this point in the history
UdevLoader and UdevWatcher were previously not being exported. This
caused some unittests to be unable to find the proper global instance
when calling UdevLoader::Get() when built with `is_component_build`.

Fixed: b/277091598
Change-Id: I4f7f05c92c33a428214b0ed03312ad5ccc76fa66
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4408544
Commit-Queue: David Padlipsky <dpad@google.com>
Reviewed-by: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/main@{#1128251}
  • Loading branch information
dpadlipsky authored and Chromium LUCI CQ committed Apr 10, 2023
1 parent 240956b commit 403391f
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 20 deletions.
3 changes: 1 addition & 2 deletions ash/accelerators/accelerator_alias_converter_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -355,8 +355,7 @@ INSTANTIATE_TEST_SUITE_P(
ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN}}},
}));

// TODO(crbug.com/1430899): Re-enable this test.
TEST_P(TopRowAliasTest, DISABLED_CheckTopRowAlias) {
TEST_P(TopRowAliasTest, CheckTopRowAlias) {
// Add fake keyboards based on layout type.
fake_keyboard_manager_->RemoveAllDevices();
for (int i = 0; const std::string& layout : keyboard_layout_types_) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,9 +587,7 @@ TEST_F(AcceleratorConfigurationProviderTest, FilterOutHiddenAccelerators) {
expected_test_data, mojo_observer.config());
}

// TODO(crbug.com/1430899): Re-enable this test.
TEST_F(AcceleratorConfigurationProviderTest,
DISABLED_TopRowKeyAcceleratorRemapped) {
TEST_F(AcceleratorConfigurationProviderTest, TopRowKeyAcceleratorRemapped) {
// Add a fake layout2 keyboard.
ui::InputDevice fake_keyboard(
/*id=*/1, /*type=*/ui::InputDeviceType::INPUT_DEVICE_BLUETOOTH,
Expand Down
4 changes: 3 additions & 1 deletion device/udev_linux/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import("//build/config/features.gni")

if (use_udev) {
source_set("udev_linux") {
component("udev_linux") {
sources = [
"scoped_udev.h",
"udev.cc",
Expand All @@ -20,6 +20,8 @@ if (use_udev) {
"udev_watcher.h",
]

defines = [ "IS_DEVICE_UDEV_LINUX_IMPL" ]

deps = [
"//base",
"//build/linux/libudev",
Expand Down
58 changes: 48 additions & 10 deletions device/udev_linux/udev.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <sys/stat.h>

#include <string>
#include "base/component_export.h"

#if !defined(USE_UDEV)
#error "USE_UDEV not defined"
Expand All @@ -29,70 +30,107 @@ struct udev_monitor;

namespace device {

COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_action(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_devnode(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_devtype(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_device_get_parent(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_device_get_parent_with_subsystem_devtype(
udev_device* udev_device,
const char* subsystem,
const char* devtype);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_list_entry* udev_device_get_properties_list_entry(
struct udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_property_value(udev_device* udev_device,
const char* key);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_subsystem(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_sysattr_value(udev_device* udev_device,
const char* sysattr);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_sysname(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_device_get_syspath(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_device_new_from_devnum(udev* udev, char type, dev_t devnum);
udev_device* udev_device_new_from_subsystem_sysname(
udev* udev,
const char* subsystem,
const char* sysname);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_device_new_from_subsystem_sysname(udev* udev,
const char* subsystem,
const char* sysname);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_device_new_from_syspath(udev* udev, const char* syspath);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
void udev_device_unref(udev_device* udev_device);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
int udev_enumerate_add_match_subsystem(udev_enumerate* udev_enumerate,
const char* subsystem);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_list_entry* udev_enumerate_get_list_entry(udev_enumerate* udev_enumerate);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_enumerate* udev_enumerate_new(udev* udev);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
int udev_enumerate_scan_devices(udev_enumerate* udev_enumerate);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
void udev_enumerate_unref(udev_enumerate* udev_enumerate);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_list_entry* udev_list_entry_get_next(udev_list_entry* list_entry);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
const char* udev_list_entry_get_name(udev_list_entry* list_entry);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
int udev_monitor_enable_receiving(udev_monitor* udev_monitor);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
int udev_monitor_filter_add_match_subsystem_devtype(udev_monitor* udev_monitor,
const char* subsystem,
const char* devtype);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
int udev_monitor_get_fd(udev_monitor* udev_monitor);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_monitor* udev_monitor_new_from_netlink(udev* udev, const char* name);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
udev_device* udev_monitor_receive_device(udev_monitor* udev_monitor);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
void udev_monitor_unref(udev_monitor* udev_monitor);
udev* udev_new();
void udev_set_log_fn(
struct udev* udev,
void (*log_fn)(struct udev* udev, int priority, const char* file, int line,
const char* fn, const char* format, va_list args));
COMPONENT_EXPORT(DEVICE_UDEV_LINUX) udev* udev_new();
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
void udev_set_log_fn(struct udev* udev,
void (*log_fn)(struct udev* udev,
int priority,
const char* file,
int line,
const char* fn,
const char* format,
va_list args));
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
void udev_set_log_priority(struct udev* udev, int priority);
void udev_unref(udev* udev);
COMPONENT_EXPORT(DEVICE_UDEV_LINUX) void udev_unref(udev* udev);

// Calls udev_device_get_property_value() and replaces missing values with
// the empty string.
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
std::string UdevDeviceGetPropertyValue(udev_device* udev_device,
const char* key);

// Calls udev_device_get_sysattr_value() and replaces missing values with
// the empty string.
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
std::string UdevDeviceGetSysattrValue(udev_device* udev_device,
const char* key);

// Walks up the chain of parent devices calling udev_device_get_sysattr_value()
// until a value is found. If no value is found, an empty string is returned.
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
std::string UdevDeviceRecursiveGetSysattrValue(udev_device* udev_device,
const char* key);

// Decodes udev-encoded string. Useful for decoding "*_ENC" udev properties.
COMPONENT_EXPORT(DEVICE_UDEV_LINUX)
std::string UdevDecodeString(const std::string& encoded);

} // namespace device
Expand Down
2 changes: 1 addition & 1 deletion device/udev_linux/udev0_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class LibUdev0Loader;

namespace device {

class Udev0Loader : public UdevLoader {
class COMPONENT_EXPORT(DEVICE_UDEV_LINUX) Udev0Loader : public UdevLoader {
public:
Udev0Loader();

Expand Down
2 changes: 1 addition & 1 deletion device/udev_linux/udev1_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class LibUdev1Loader;

namespace device {

class Udev1Loader : public UdevLoader {
class COMPONENT_EXPORT(DEVICE_UDEV_LINUX) Udev1Loader : public UdevLoader {
public:
Udev1Loader();

Expand Down
4 changes: 3 additions & 1 deletion device/udev_linux/udev_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include <sys/types.h>
#include <sys/stat.h>

#include "base/component_export.h"

#if !defined(USE_UDEV)
#error "USE_UDEV not defined"
#endif
Expand All @@ -27,7 +29,7 @@ namespace device {
//
// All the methods have the same signatures as libudev's functions. e.g.
// udev_monitor_get_fd(mon) simply becomes device::udev_monitor_get_fd(mon).
class UdevLoader {
class COMPONENT_EXPORT(DEVICE_UDEV_LINUX) UdevLoader {
public:
static UdevLoader* Get();

Expand Down
3 changes: 2 additions & 1 deletion device/udev_linux/udev_watcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <string>
#include <vector>

#include "base/component_export.h"
#include "base/files/file_descriptor_watcher_posix.h"
#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
Expand All @@ -20,7 +21,7 @@ namespace device {

// This class wraps an instance of udev_monitor, watching for devices that are
// added and removed from the system. This class has sequence affinity.
class UdevWatcher {
class COMPONENT_EXPORT(DEVICE_UDEV_LINUX) UdevWatcher {
public:
class Observer {
public:
Expand Down

0 comments on commit 403391f

Please sign in to comment.