summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/timing/layout_shift.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/timing/layout_shift.h')
-rw-r--r--chromium/third_party/blink/renderer/core/timing/layout_shift.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/timing/layout_shift.h b/chromium/third_party/blink/renderer/core/timing/layout_shift.h
index 65479493b8b..d5d29f59659 100644
--- a/chromium/third_party/blink/renderer/core/timing/layout_shift.h
+++ b/chromium/third_party/blink/renderer/core/timing/layout_shift.h
@@ -7,6 +7,7 @@
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h"
+#include "third_party/blink/renderer/core/timing/layout_shift_attribution.h"
#include "third_party/blink/renderer/core/timing/performance_entry.h"
namespace blink {
@@ -17,10 +18,24 @@ class CORE_EXPORT LayoutShift final : public PerformanceEntry {
DEFINE_WRAPPERTYPEINFO();
public:
- LayoutShift(double start_time,
- double value,
- bool input_detected,
- double input_timestamp);
+ // Maximum number of attributions (shifted elements) to record in any single
+ // animation frame.
+ static constexpr int kMaxAttributions = 5;
+ typedef HeapVector<Member<LayoutShiftAttribution>, kMaxAttributions>
+ AttributionList;
+
+ static LayoutShift* Create(double start_time,
+ double value,
+ bool input_detected,
+ double input_timestamp,
+ AttributionList sources);
+
+ explicit LayoutShift(double start_time,
+ double value,
+ bool input_detected,
+ double input_timestamp,
+ AttributionList sources);
+
~LayoutShift() override;
AtomicString entryType() const override;
@@ -30,6 +45,8 @@ class CORE_EXPORT LayoutShift final : public PerformanceEntry {
bool hadRecentInput() const { return had_recent_input_; }
double lastInputTime() const { return most_recent_input_timestamp_; }
+ AttributionList sources() const { return sources_; }
+
void Trace(Visitor*) override;
private:
@@ -38,6 +55,7 @@ class CORE_EXPORT LayoutShift final : public PerformanceEntry {
double value_;
bool had_recent_input_;
DOMHighResTimeStamp most_recent_input_timestamp_;
+ AttributionList sources_;
};
} // namespace blink