// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_RENDERER_HOST_VISIBLE_TIME_REQUEST_TRIGGER_H_ #define CONTENT_BROWSER_RENDERER_HOST_VISIBLE_TIME_REQUEST_TRIGGER_H_ #include "content/common/content_export.h" #include "third_party/blink/public/mojom/widget/record_content_to_visible_time_request.mojom.h" namespace base { class TimeTicks; } // namespace base namespace content { // Records the time of an event that will make a WebContents become visible, // and the reason it will become visible. This time will be passed to the // compositor and used to calculate the latency before the visible WebContents // appears. // // This class holds a single RecordContentToVisibleTimeRequestPtr that is // modified whenever UpdateRequest is called, and cleared whenever TakeRequest // is called. This means that calling UpdateRequest for multiple overlapping // events without calling TakeRequest in between will record metrics for all // events using the same timestamps instead of tracking each event separately. // // TODO(crbug.com/40203057): Stop doing that. There should be a separate start // time for each event. class CONTENT_EXPORT VisibleTimeRequestTrigger { … }; } // namespace content #endif // CONTENT_BROWSER_RENDERER_HOST_VISIBLE_TIME_REQUEST_TRIGGER_H_