Home | History | Annotate | Download | only in renderer
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_
      6 #define CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_
      7 
      8 #include "base/logging.h"
      9 #include "base/memory/weak_ptr.h"
     10 #include "base/time/time.h"
     11 
     12 namespace WebKit {
     13 class WebFrame;
     14 }
     15 
     16 namespace content {
     17 class RenderViewImpl;
     18 
     19 class LoadProgressTracker {
     20  public:
     21   explicit LoadProgressTracker(RenderViewImpl* render_view);
     22   ~LoadProgressTracker();
     23 
     24   void DidStopLoading();
     25 
     26   void DidChangeLoadProgress(WebKit::WebFrame* frame, double progress);
     27 
     28  private:
     29   void ResetStates();
     30 
     31   void SendChangeLoadProgress();
     32 
     33   RenderViewImpl* render_view_;
     34 
     35   WebKit::WebFrame* tracked_frame_;
     36 
     37   double progress_;
     38 
     39   base::TimeTicks last_time_progress_sent_;
     40 
     41   base::WeakPtrFactory<LoadProgressTracker> weak_factory_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(LoadProgressTracker);
     44 };
     45 
     46 }  // namespace content
     47 
     48 #endif  // CONTENT_RENDERER_LOAD_PROGRESS_TRACKER_H_
     49