0
Files
src/content/browser/navigation_transitions/progress_bar.h
David Bokan e8ff29ad90 Reapply "dnt: DAMPen BackForwardTransitionAnimationManager tests"
This relands commit 2931e7e8b0 which
was reverted in commit 4822abbbc7

Original CL in first uploaded patchset, diff from PS1 for changes.

The test would fail if the RFH is reused so the last render frame
metadata has a valid sequence number but not the one that's being
waited on.

Bug: 331778101
Change-Id: Ib57b8f07aa0063c334169cb3da4dd54ec995378b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5784917
Reviewed-by: William Liu <liuwilliam@chromium.org>
Commit-Queue: David Bokan <bokan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1341704}
2024-08-14 16:07:46 +00:00

55 lines
1.7 KiB
C++

// Copyright 2024 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_NAVIGATION_TRANSITIONS_PROGRESS_BAR_H_
#define CONTENT_BROWSER_NAVIGATION_TRANSITIONS_PROGRESS_BAR_H_
#include "cc/slim/solid_color_layer.h"
#include "content/common/content_export.h"
#include "ui/gfx/animation/keyframe/animation_curve.h"
#include "ui/gfx/animation/keyframe/keyframe_effect.h"
namespace ui {
struct ProgressBarConfig;
}
namespace content {
// Provides an indeterminate progress bar displayed between navigation start and
// commit.
class CONTENT_EXPORT ProgressBar : public gfx::FloatAnimationCurve::Target {
public:
ProgressBar(int width_physical, const ui::ProgressBarConfig& config);
~ProgressBar() override;
scoped_refptr<cc::slim::Layer> GetLayer() const;
void Animate(base::TimeTicks frame_begin_time);
private:
// gfx::FloatAnimationCurve::Target implementation.
void OnFloatAnimated(const float& value,
int target_property_id,
gfx::KeyframeModel* keyframe_model) override;
void SetupAnimation();
// The width of the complete progress bar.
const int width_physical_;
// The height of the pulses drawn within the progress bar.
const int height_physical_;
scoped_refptr<cc::slim::SolidColorLayer> background_layer_;
scoped_refptr<cc::slim::SolidColorLayer> first_pulse_layer_;
scoped_refptr<cc::slim::SolidColorLayer> second_pulse_layer_;
scoped_refptr<cc::slim::SolidColorLayer> hairline_layer_;
float current_value_ = 0.f;
gfx::KeyframeEffect effect_;
};
} // namespace content
#endif // CONTENT_BROWSER_NAVIGATION_TRANSITIONS_PROGRESS_BAR_H_