Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2847)

Unified Diff: chrome/browser/task_manager/task_manager_resource_providers.cc

Issue 12386019: Instant: Use only one hidden WebContents per profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/task_manager/task_manager_resource_providers.cc
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.cc b/chrome/browser/task_manager/task_manager_resource_providers.cc
index 99ef27871afde2f8656df20081d2da2a2b68814d..92d438597e803ecb80b34c1ce261a30818f519c9 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc
@@ -28,6 +28,10 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
+#include "chrome/browser/instant/instant_controller.h"
+#include "chrome/browser/instant/instant_preloader.h"
+#include "chrome/browser/instant/instant_service.h"
+#include "chrome/browser/instant/instant_service_factory.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/printing/background_printing_manager.h"
@@ -159,12 +163,19 @@ bool IsContentsPrerendering(WebContents* web_contents) {
}
bool IsContentsInstant(WebContents* web_contents) {
+ Profile* profile =
+ Profile::FromBrowserContext(web_contents->GetBrowserContext());
+ InstantService* instant_service =
+ InstantServiceFactory::GetForProfile(profile);
+ if (instant_service &&
+ instant_service->preloader()->contents() == web_contents)
+ return true;
+
for (chrome::BrowserIterator it; !it.done(); it.Next()) {
if (it->instant_controller() &&
- it->instant_controller()->instant()->
- GetOverlayContents() == web_contents) {
+ it->instant_controller()->instant()->GetOverlayContents() ==
+ web_contents)
return true;
- }
}
return false;
@@ -438,15 +449,14 @@ void TaskManagerTabContentsResourceProvider::StartUpdating() {
// Add all the Instant pages.
for (chrome::BrowserIterator it; !it.done(); it.Next()) {
if (it->instant_controller() &&
- it->instant_controller()->instant()->GetOverlayContents()) {
+ it->instant_controller()->instant()->GetOverlayContents())
Add(it->instant_controller()->instant()->GetOverlayContents());
- }
}
- // Add all the prerender pages.
std::vector<Profile*> profiles(
g_browser_process->profile_manager()->GetLoadedProfiles());
for (size_t i = 0; i < profiles.size(); ++i) {
+ // Add all the prerender pages.
prerender::PrerenderManager* prerender_manager =
prerender::PrerenderManagerFactory::GetForProfile(profiles[i]);
if (prerender_manager) {
@@ -455,6 +465,12 @@ void TaskManagerTabContentsResourceProvider::StartUpdating() {
for (size_t j = 0; j < contentses.size(); ++j)
Add(contentses[j]);
}
+
+ // Add the Instant per-profile preloaded page.
+ InstantService* instant_service =
+ InstantServiceFactory::GetForProfile(profiles[i]);
+ if (instant_service && instant_service->preloader()->contents())
+ Add(instant_service->preloader()->contents());
}
// Add all the pages being background printed.

Powered by Google App Engine
This is Rietveld 408576698