Index: chrome/browser/instant/instant_loader.cc |
diff --git a/chrome/browser/instant/instant_loader.cc b/chrome/browser/instant/instant_loader.cc |
deleted file mode 100644 |
index b267e5b4d82696fedd400af023107e348a4ad2b7..0000000000000000000000000000000000000000 |
--- a/chrome/browser/instant/instant_loader.cc |
+++ /dev/null |
@@ -1,221 +0,0 @@ |
-// Copyright 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/instant/instant_loader.h" |
- |
-#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
-#include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" |
-#include "chrome/browser/favicon/favicon_tab_helper.h" |
-#include "chrome/browser/history/history_tab_helper.h" |
-#include "chrome/browser/safe_browsing/safe_browsing_tab_observer.h" |
-#include "chrome/browser/tab_contents/tab_util.h" |
-#include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" |
-#include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" |
-#include "chrome/browser/ui/search/search_tab_helper.h" |
-#include "chrome/browser/ui/tab_contents/core_tab_helper.h" |
-#include "content/public/browser/navigation_entry.h" |
-#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/notification_types.h" |
-#include "content/public/browser/render_widget_host_view.h" |
-#include "content/public/browser/site_instance.h" |
-#include "content/public/browser/web_contents_view.h" |
- |
-namespace { |
- |
-const int kStalePageTimeoutMS = 3 * 3600 * 1000; // 3 hours |
- |
-// This HTTP header and value are set on loads that originate from Instant. |
-const char kInstantHeader[] = "X-Purpose: Instant"; |
- |
-} // namespace |
- |
-InstantLoader::Delegate::~Delegate() { |
-} |
- |
-InstantLoader::InstantLoader(Delegate* delegate) |
- : delegate_(delegate), |
- contents_(NULL), |
- stale_page_timer_(false, false) { |
-} |
- |
-InstantLoader::~InstantLoader() { |
-} |
- |
-void InstantLoader::Init(const GURL& instant_url, |
- Profile* profile, |
- const content::WebContents* active_tab, |
- const base::Closure& on_stale_callback) { |
- content::WebContents::CreateParams create_params(profile); |
- create_params.site_instance = content::SiteInstance::CreateForURL( |
- profile, instant_url); |
- SetContents(scoped_ptr<content::WebContents>( |
- content::WebContents::Create(create_params))); |
- instant_url_ = instant_url; |
- on_stale_callback_ = on_stale_callback; |
-} |
- |
-void InstantLoader::Load() { |
- DVLOG(1) << "LoadURL: " << instant_url_; |
- contents_->GetController().LoadURL( |
- instant_url_, content::Referrer(), |
- content::PAGE_TRANSITION_GENERATED, kInstantHeader); |
- contents_->WasHidden(); |
- stale_page_timer_.Start( |
- FROM_HERE, |
- base::TimeDelta::FromMilliseconds(kStalePageTimeoutMS), |
- on_stale_callback_); |
-} |
- |
-void InstantLoader::SetContents(scoped_ptr<content::WebContents> new_contents) { |
- contents_.reset(new_contents.release()); |
- contents_->SetDelegate(this); |
- |
- // Set up various tab helpers. The rest will get attached when (if) the |
- // contents is added to the tab strip. |
- |
- // Tab helpers to control popups. |
- BlockedContentTabHelper::CreateForWebContents(contents()); |
- BlockedContentTabHelper::FromWebContents(contents())-> |
- SetAllContentsBlocked(true); |
- TabSpecificContentSettings::CreateForWebContents(contents()); |
- TabSpecificContentSettings::FromWebContents(contents())-> |
- SetPopupsBlocked(true); |
- |
- // Bookmarks (Users can bookmark the Instant NTP. This ensures the bookmarked |
- // state is correctly set when the contents are swapped into a tab.) |
- BookmarkTabHelper::CreateForWebContents(contents()); |
- |
- // A tab helper to catch prerender content swapping shenanigans. |
- CoreTabHelper::CreateForWebContents(contents()); |
- CoreTabHelper::FromWebContents(contents())->set_delegate(this); |
- |
- // Tab helpers used when committing an overlay. |
- chrome::search::SearchTabHelper::CreateForWebContents(contents()); |
- HistoryTabHelper::CreateForWebContents(contents()); |
- |
- // Observers. |
- extensions::WebNavigationTabObserver::CreateForWebContents(contents()); |
- |
- // Favicons, required by the Task Manager. |
- FaviconTabHelper::CreateForWebContents(contents()); |
- |
- // And some flat-out paranoia. |
- safe_browsing::SafeBrowsingTabObserver::CreateForWebContents(contents()); |
- |
-#if defined(OS_MACOSX) |
- // If |contents_| doesn't yet have a RWHV, SetTakesFocusOnlyOnMouseDown() will |
- // be called later, when NOTIFICATION_RENDER_VIEW_HOST_CHANGED is received. |
- if (content::RenderWidgetHostView* rwhv = |
- contents_->GetRenderWidgetHostView()) |
- rwhv->SetTakesFocusOnlyOnMouseDown(true); |
- registrar_.Add(this, content::NOTIFICATION_RENDER_VIEW_HOST_CHANGED, |
- content::Source<content::NavigationController>( |
- &contents_->GetController())); |
-#endif |
-} |
- |
-scoped_ptr<content::WebContents> InstantLoader::ReleaseContents() { |
- contents_->SetDelegate(NULL); |
- |
- // Undo tab helper work done in SetContents(). |
- |
- BlockedContentTabHelper::FromWebContents(contents())-> |
- SetAllContentsBlocked(false); |
- TabSpecificContentSettings::FromWebContents(contents())-> |
- SetPopupsBlocked(false); |
- |
- CoreTabHelper::FromWebContents(contents())->set_delegate(NULL); |
- |
-#if defined(OS_MACOSX) |
- if (content::RenderWidgetHostView* rwhv = |
- contents_->GetRenderWidgetHostView()) |
- rwhv->SetTakesFocusOnlyOnMouseDown(false); |
- registrar_.Remove(this, content::NOTIFICATION_RENDER_VIEW_HOST_CHANGED, |
- content::Source<content::NavigationController>( |
- &contents_->GetController())); |
-#endif |
- |
- return contents_.Pass(); |
-} |
- |
-void InstantLoader::Observe(int type, |
- const content::NotificationSource& /* source */, |
- const content::NotificationDetails& /* details */) { |
-#if defined(OS_MACOSX) |
- if (type == content::NOTIFICATION_RENDER_VIEW_HOST_CHANGED) { |
- if (content::RenderWidgetHostView* rwhv = |
- contents_->GetRenderWidgetHostView()) |
- rwhv->SetTakesFocusOnlyOnMouseDown(true); |
- return; |
- } |
- NOTREACHED(); |
-#endif |
-} |
- |
-void InstantLoader::SwapTabContents(content::WebContents* old_contents, |
- content::WebContents* new_contents) { |
- DCHECK_EQ(old_contents, contents()); |
- // We release here without deleting since the caller has the responsibility |
- // for deleting the old WebContents. |
- ignore_result(ReleaseContents().release()); |
- SetContents(scoped_ptr<content::WebContents>(new_contents)); |
- delegate_->OnSwappedContents(); |
-} |
- |
-bool InstantLoader::ShouldSuppressDialogs() { |
- // Messages shown during Instant cancel Instant, so we suppress them. |
- return true; |
-} |
- |
-bool InstantLoader::ShouldFocusPageAfterCrash() { |
- return false; |
-} |
- |
-void InstantLoader::LostCapture() { |
- delegate_->OnMouseUp(); |
-} |
- |
-void InstantLoader::WebContentsFocused(content::WebContents* /* contents */) { |
- delegate_->OnFocus(); |
-} |
- |
-bool InstantLoader::CanDownload(content::RenderViewHost* /* render_view_host */, |
- int /* request_id */, |
- const std::string& /* request_method */) { |
- // Downloads are disabled. |
- return false; |
-} |
- |
-void InstantLoader::HandleMouseDown() { |
- delegate_->OnMouseDown(); |
-} |
- |
-void InstantLoader::HandleMouseUp() { |
- delegate_->OnMouseUp(); |
-} |
- |
-void InstantLoader::HandlePointerActivate() { |
- delegate_->OnMouseDown(); |
-} |
- |
-void InstantLoader::HandleGestureEnd() { |
- delegate_->OnMouseUp(); |
-} |
- |
-void InstantLoader::DragEnded() { |
- // If the user drags, we won't get a mouse up (at least on Linux). Commit |
- // the Instant result when the drag ends, so that during the drag the page |
- // won't move around. |
- delegate_->OnMouseUp(); |
-} |
- |
-bool InstantLoader::OnGoToEntryOffset(int /* offset */) { |
- return false; |
-} |
- |
-content::WebContents* InstantLoader::OpenURLFromTab( |
- content::WebContents* source, |
- const content::OpenURLParams& params) { |
- return delegate_->OpenURLFromTab(source, params); |
-} |