| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_PERFORMANCE_LAYOUT_JANK_H_ |
| #define THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_PERFORMANCE_LAYOUT_JANK_H_ |
| |
| #include "third_party/blink/renderer/core/core_export.h" |
| #include "third_party/blink/renderer/core/timing/performance_entry.h" |
| |
| namespace blink { |
| |
| // The PerformanceLayoutJank object exposes the jank fraction of an animation |
| // frame that does not occur close to some user input. The jank fraction |
| // approximates the fraction of the viewport affected by layout jank during that |
| // frame. More details can be found in this explainer: |
| // http://bit.ly/lsm-explainer. |
| class CORE_EXPORT PerformanceLayoutJank final : public PerformanceEntry { |
| DEFINE_WRAPPERTYPEINFO(); |
| |
| public: |
| static PerformanceLayoutJank* Create(double fraction); |
| |
| PerformanceLayoutJank(double fraction); |
| ~PerformanceLayoutJank() override; |
| |
| AtomicString entryType() const override; |
| PerformanceEntryType EntryTypeEnum() const override; |
| |
| double fraction() const { return fraction_; } |
| |
| void Trace(blink::Visitor*) override; |
| |
| private: |
| void BuildJSONValue(V8ObjectBuilder&) const override; |
| |
| double fraction_; |
| }; |
| |
| } // namespace blink |
| |
| #endif // THIRD_PARTY_BLINK_RENDERER_CORE_TIMING_PERFORMANCE_LAYOUT_JANK_H_ |