| Index: content/renderer/load_progress_tracker.cc
|
| diff --git a/content/renderer/load_progress_tracker.cc b/content/renderer/load_progress_tracker.cc
|
| deleted file mode 100644
|
| index 5e7d07eb6cfeaa1f717227a1fb72f9f8acca5272..0000000000000000000000000000000000000000
|
| --- a/content/renderer/load_progress_tracker.cc
|
| +++ /dev/null
|
| @@ -1,110 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -#include "content/renderer/load_progress_tracker.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "content/common/view_messages.h"
|
| -#include "content/renderer/render_view_impl.h"
|
| -
|
| -namespace content {
|
| -namespace {
|
| -
|
| -const int kMinimumDelayBetweenUpdatesMS = 100;
|
| -
|
| -// This matches what blink's ProgrssTracker has traditionally used for a
|
| -// minimum progress value.
|
| -const double kMinimumProgress = 0.1;
|
| -
|
| -}
|
| -
|
| -LoadProgressTracker::LoadProgressTracker(RenderViewImpl* render_view)
|
| - : render_view_(render_view),
|
| - total_progress_(0.0),
|
| - weak_factory_(this) {
|
| -}
|
| -
|
| -LoadProgressTracker::~LoadProgressTracker() {
|
| -}
|
| -
|
| -void LoadProgressTracker::DidStartLoading(int frame_routing_id) {
|
| - progresses_[frame_routing_id] = kMinimumProgress;
|
| - SendChangeLoadProgress();
|
| -}
|
| -
|
| -void LoadProgressTracker::DidStopLoading(int frame_routing_id) {
|
| - if (progresses_.find(frame_routing_id) == progresses_.end())
|
| - return;
|
| -
|
| - // Load stopped while we were still tracking load. Make sure we update
|
| - // progress based on this frame's completion.
|
| - progresses_[frame_routing_id] = 1.0;
|
| - SendChangeLoadProgress();
|
| - // Then we clean-up our states.
|
| - if (total_progress_ == 1.0)
|
| - ResetStates();
|
| -}
|
| -
|
| -void LoadProgressTracker::DidChangeLoadProgress(int frame_routing_id,
|
| - double progress) {
|
| - progresses_[frame_routing_id] = progress;
|
| -
|
| - // We send the progress change to the browser immediately for the first and
|
| - // last updates. Also, since the message loop may be pretty busy when a page
|
| - // is loaded, it might not execute a posted task in a timely manner so we make
|
| - // sure to immediately send progress report if enough time has passed.
|
| - base::TimeDelta min_delay =
|
| - base::TimeDelta::FromMilliseconds(kMinimumDelayBetweenUpdatesMS);
|
| - if (progress == 1.0 || last_time_progress_sent_.is_null() ||
|
| - base::TimeTicks::Now() - last_time_progress_sent_ > min_delay) {
|
| - // If there is a pending task to send progress, it is now obsolete.
|
| - weak_factory_.InvalidateWeakPtrs();
|
| - SendChangeLoadProgress();
|
| - if (total_progress_ == 1.0)
|
| - ResetStates();
|
| - return;
|
| - }
|
| -
|
| - if (weak_factory_.HasWeakPtrs())
|
| - return;
|
| -
|
| - base::MessageLoop::current()->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&LoadProgressTracker::SendChangeLoadProgress,
|
| - weak_factory_.GetWeakPtr()),
|
| - min_delay);
|
| -}
|
| -
|
| -void LoadProgressTracker::SendChangeLoadProgress() {
|
| - last_time_progress_sent_ = base::TimeTicks::Now();
|
| - double progress = 0.0;
|
| - unsigned frameCount = 0;
|
| - ProgressMap::iterator end = progresses_.end();
|
| - for (ProgressMap::iterator it = progresses_.begin(); it != end; ++it) {
|
| - progress += it->second;
|
| - frameCount++;
|
| - }
|
| - if (frameCount == 0)
|
| - return;
|
| - progress /= frameCount;
|
| - DCHECK(progress <= 1.0);
|
| -
|
| - if (progress <= total_progress_)
|
| - return;
|
| - total_progress_ = progress;
|
| -
|
| - render_view_->Send(
|
| - new ViewHostMsg_DidChangeLoadProgress(render_view_->routing_id(),
|
| - progress));
|
| -}
|
| -
|
| -void LoadProgressTracker::ResetStates() {
|
| - progresses_.clear();
|
| - total_progress_ = 0.0;
|
| - weak_factory_.InvalidateWeakPtrs();
|
| - last_time_progress_sent_ = base::TimeTicks();
|
| -}
|
| -
|
| -} // namespace content
|
|
|