// Copyright (c) 2011 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 CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_ #define CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_ #include "base/logging.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" namespace blink { class WebFrame; } namespace content { class RenderViewImpl; class LoadProgressTracker { public: explicit LoadProgressTracker(RenderViewImpl* render_view); ~LoadProgressTracker(); void DidStopLoading(); void DidChangeLoadProgress(blink::WebFrame* frame, double progress); private: void ResetStates(); void SendChangeLoadProgress(); RenderViewImpl* render_view_; blink::WebFrame* tracked_frame_; double progress_; base::TimeTicks last_time_progress_sent_; base::WeakPtrFactory weak_factory_; DISALLOW_COPY_AND_ASSIGN(LoadProgressTracker); }; } // namespace content #endif // CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_