InputTracer: Use PackageManagerNative to get package UID
... instead of plumbing the call through InputManagerService via JNI.
Bug: 330360505
Test: manual
Test: atest inputflinger_tests
Change-Id: Ie763733d8dba442afcaea7560e6d997c06ca3877
diff --git a/services/inputflinger/dispatcher/trace/InputTracingPerfettoBackend.h b/services/inputflinger/dispatcher/trace/InputTracingPerfettoBackend.h
index fdfe495..d0bab06 100644
--- a/services/inputflinger/dispatcher/trace/InputTracingPerfettoBackend.h
+++ b/services/inputflinger/dispatcher/trace/InputTracingPerfettoBackend.h
@@ -20,6 +20,7 @@
#include "InputTracingPerfettoBackendConfig.h"
+#include <android/content/pm/IPackageManagerNative.h>
#include <ftl/flags.h>
#include <perfetto/tracing.h>
#include <mutex>
@@ -49,11 +50,10 @@
*/
class PerfettoBackend : public InputTracingBackendInterface {
public:
- using GetPackageUid = std::function<gui::Uid(std::string)>;
-
static bool sUseInProcessBackendForTest;
+ static std::function<sp<content::pm::IPackageManagerNative>()> sPackageManagerProvider;
- explicit PerfettoBackend(GetPackageUid);
+ explicit PerfettoBackend();
~PerfettoBackend() override = default;
void traceKeyEvent(const TracedKeyEvent&, const TracedEventMetadata&) override;
@@ -72,7 +72,7 @@
void OnStart(const StartArgs&) override;
void OnStop(const StopArgs&) override;
- void initializeUidMap(GetPackageUid);
+ void initializeUidMap();
bool shouldIgnoreTracedInputEvent(const EventType&) const;
inline ftl::Flags<TraceFlag> getFlags() const { return mConfig.flags; }
TraceLevel resolveTraceLevel(const TracedEventMetadata&) const;
@@ -86,10 +86,6 @@
std::optional<std::map<std::string, gui::Uid>> mUidMap;
};
- // TODO(b/330360505): Query the native package manager directly from the data source,
- // and remove this.
- GetPackageUid mGetPackageUid;
-
static std::once_flag sDataSourceRegistrationFlag;
static std::atomic<int32_t> sNextInstanceId;
};