diff options
author | mpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 16:38:46 +0000 |
---|---|---|
committer | mpearson@chromium.org <mpearson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 16:38:46 +0000 |
commit | d1e85efabceaba62186e9e839d76d424392adbc5 (patch) | |
tree | c06af82e0e5c38fb8513660758023f073e7136bc /chrome/browser/prerender/prerender_handle.cc | |
parent | b7259b68a9ecc222e18ed1875bdee4ff746365b6 (diff) | |
download | chromium_src-d1e85efabceaba62186e9e839d76d424392adbc5.zip chromium_src-d1e85efabceaba62186e9e839d76d424392adbc5.tar.gz chromium_src-d1e85efabceaba62186e9e839d76d424392adbc5.tar.bz2 |
Revert 146740 - Handle interface to prerenders.
The prerender_manager now returns a PrerenderHandle* when creating a prerender; this is a useful object for canceling the prerender, as well as signaling navigation, etc...
BUG=None
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=146735
Review URL: https://chromiumcodereview.appspot.com/10553029
TBR=gavinp@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10779007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146741 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_handle.cc')
-rw-r--r-- | chrome/browser/prerender/prerender_handle.cc | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/chrome/browser/prerender/prerender_handle.cc b/chrome/browser/prerender/prerender_handle.cc deleted file mode 100644 index 24de791..0000000 --- a/chrome/browser/prerender/prerender_handle.cc +++ /dev/null @@ -1,71 +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 "chrome/browser/prerender/prerender_handle.h" - -#include <algorithm> - -#include "chrome/browser/prerender/prerender_contents.h" - -namespace prerender { - -PrerenderHandle::~PrerenderHandle() { - DCHECK(!IsValid()); - // This shouldn't occur, but we also shouldn't leak if it does. - if (IsValid()) - OnCancel(); -} - -void PrerenderHandle::OnNavigateAway() { - DCHECK(CalledOnValidThread()); - if (!IsValid()) - return; - prerender_data_->OnNavigateAwayByHandle(); - prerender_data_.reset(); -} - -void PrerenderHandle::OnCancel() { - DCHECK(CalledOnValidThread()); - if (!IsValid()) - return; - prerender_data_->OnCancelByHandle(); - prerender_data_.reset(); -} - -bool PrerenderHandle::IsValid() const { - return prerender_data_ != NULL; -} - -bool PrerenderHandle::IsPending() const { - DCHECK(CalledOnValidThread()); - return prerender_data_ && !prerender_data_->contents(); -} - -bool PrerenderHandle::IsPrerendering() const { - DCHECK(CalledOnValidThread()); - return prerender_data_ && prerender_data_->contents(); -} - -bool PrerenderHandle::IsFinishedLoading() const { - DCHECK(CalledOnValidThread()); - if (!prerender_data_ || IsPending()) - return false; - return prerender_data_->contents()->has_finished_loading(); -} - -PrerenderHandle::PrerenderHandle( - PrerenderManager::PrerenderData* prerender_data) - : prerender_data_(prerender_data->AsWeakPtr()), - weak_ptr_factory_(this) { - prerender_data->OnNewHandle(); -} - -void PrerenderHandle::SwapPrerenderDataWith( - PrerenderHandle* other_prerender_handle) { - DCHECK(CalledOnValidThread()); - DCHECK(other_prerender_handle); - std::swap(prerender_data_, other_prerender_handle->prerender_data_); -} - -} // namespace prerender |