aboutsummaryrefslogtreecommitdiff
path: root/src/trace_redaction/trace_redaction_framework.h
diff options
context:
space:
mode:
authorSteve Golton <stevegolton@google.com>2024-05-01 18:27:21 +0100
committerSteve Golton <stevegolton@google.com>2024-05-01 18:27:21 +0100
commit6ebf16051501bd2fe77fe2e7705a7956077c638a (patch)
treeab871a4821b12af61cfc8d23f2d46d72d4987c9f /src/trace_redaction/trace_redaction_framework.h
parenta9b411b46dcbb0c08772b06f72eec7b8390210a6 (diff)
downloadperfetto-6ebf16051501bd2fe77fe2e7705a7956077c638a.tar.gz
ui: Release canary
Commands: $ git fetch origin $ git checkout -B ui-canary -t origin/ui-canary $ git merge --strategy=ours origin/main $ git diff --binary origin/main | git apply --reverse --index $ git commit --amend Check end state is correct: $ git diff ui-canary origin/main [no output] $ git rev-list --count ui-canary..origin/main 0 Change-Id: Id90d7499e500b964afe18dfcde66b3cb0fa51b4a
Diffstat (limited to 'src/trace_redaction/trace_redaction_framework.h')
-rw-r--r--src/trace_redaction/trace_redaction_framework.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/trace_redaction/trace_redaction_framework.h b/src/trace_redaction/trace_redaction_framework.h
index f741f9b6f..cc135a930 100644
--- a/src/trace_redaction/trace_redaction_framework.h
+++ b/src/trace_redaction/trace_redaction_framework.h
@@ -21,9 +21,12 @@
#include <memory>
#include <optional>
#include <string>
+#include <unordered_set>
+#include <vector>
#include "perfetto/base/flat_set.h"
#include "perfetto/base/status.h"
+#include "src/trace_redaction/frame_cookie.h"
#include "src/trace_redaction/process_thread_timeline.h"
#include "protos/perfetto/trace/trace_packet.pbzero.h"
@@ -186,6 +189,34 @@ class Context {
// After Sort(), Flatten() and Reduce() can be called (optional) to improve
// the practical look-up times (compared to theoretical look-up times).
std::unique_ptr<ProcessThreadTimeline> timeline;
+
+ // All frame events:
+ //
+ // - ActualDisplayFrame
+ // - ActualSurfaceFrame
+ // - ExpectedDisplayFrame
+ // - ExpectedSurfaceFrame
+ //
+ // Connect a time, a pid, and a cookie value. Cookies are unqiue within a
+ // trace, so if a cookie was connected to the target package, it can always be
+ // used.
+ //
+ // End events (i.e. FrameEnd) only have a time and cookie value. The cookie
+ // value connects it to its start time.
+ //
+ // In the collect phase, all start events are collected and converted to a
+ // simpler structure.
+ //
+ // In the build phase, the cookies are filtered to only include the ones that
+ // belong to the target package. This is down in the build phase, and not the
+ // collect phase, because the timeline is needed to determine if the cookie
+ // belongs to the target package.
+ std::vector<FrameCookie> global_frame_cookies;
+
+ // The collect of cookies that belong to the target package. Because cookie
+ // values are unique within the scope of the trace, pid and time are no longer
+ // needed and a set can be used for faster queries.
+ std::unordered_set<int64_t> package_frame_cookies;
};
// Extracts low-level data from the trace and writes it into the context. The