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

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

Issue 8759009: Add "Instant:" prefix to Instant preview tabs in the Task manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cache is_instant_preview Created 9 years, 1 month 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
« no previous file with comments | « chrome/browser/task_manager/task_manager_resource_providers.h ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1014a93dfe677474b27662159cddbb92cdb79f44..623820e98bd133b43dc15ad726e30b8c90c2b4ec 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc
@@ -25,6 +25,7 @@
#include "chrome/browser/extensions/extension_process_manager.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
+#include "chrome/browser/instant/instant_controller.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -70,8 +71,11 @@ namespace {
// Returns the appropriate message prefix ID for tabs and extensions,
// reflecting whether they are apps or in incognito mode.
-int GetMessagePrefixID(bool is_app, bool is_extension,
- bool is_incognito, bool is_prerender) {
+int GetMessagePrefixID(bool is_app,
+ bool is_extension,
+ bool is_incognito,
+ bool is_prerender,
+ bool is_instant_preview) {
if (is_app) {
if (is_incognito)
return IDS_TASK_MANAGER_APP_INCOGNITO_PREFIX;
@@ -84,6 +88,8 @@ int GetMessagePrefixID(bool is_app, bool is_extension,
return IDS_TASK_MANAGER_EXTENSION_PREFIX;
} else if (is_prerender) {
return IDS_TASK_MANAGER_PRERENDER_PREFIX;
+ } else if (is_instant_preview) {
+ return IDS_TASK_MANAGER_INSTANT_PREVIEW_PREFIX;
} else {
return IDS_TASK_MANAGER_TAB_PREFIX;
}
@@ -216,16 +222,30 @@ TaskManagerTabContentsResource::TaskManagerTabContentsResource(
: TaskManagerRendererResource(
tab_contents->tab_contents()->GetRenderProcessHost()->GetHandle(),
tab_contents->render_view_host()),
- tab_contents_(tab_contents) {
+ tab_contents_(tab_contents),
+ is_instant_preview_(false) {
if (!prerender_icon_) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
prerender_icon_ = rb.GetBitmapNamed(IDR_PRERENDER);
}
+ for (BrowserList::const_iterator i = BrowserList::begin();
+ i != BrowserList::end(); ++i) {
+ if ((*i)->instant() &&
+ (*i)->instant()->GetPreviewContents() == tab_contents_) {
+ is_instant_preview_ = true;
+ break;
+ }
+ }
}
TaskManagerTabContentsResource::~TaskManagerTabContentsResource() {
}
+void TaskManagerTabContentsResource::InstantCommitted() {
+ DCHECK(is_instant_preview_);
+ is_instant_preview_ = false;
+}
+
bool TaskManagerTabContentsResource::IsPrerendering() const {
prerender::PrerenderManager* prerender_manager =
prerender::PrerenderManagerFactory::GetForProfile(
@@ -279,7 +299,8 @@ string16 TaskManagerTabContentsResource::GetTitle() const {
is_app,
HostsExtension(),
tab_contents_->profile()->IsOffTheRecord(),
- IsPrerendering());
+ IsPrerendering(),
+ is_instant_preview_);
return l10n_util::GetStringFUTF16(message_id, tab_title);
}
@@ -376,6 +397,8 @@ void TaskManagerTabContentsResourceProvider::StartUpdating() {
// (http://crbug.com/7321).
registrar_.Add(this, content::NOTIFICATION_TAB_CONTENTS_DESTROYED,
content::NotificationService::AllBrowserContextsAndSources());
+ registrar_.Add(this, chrome::NOTIFICATION_INSTANT_COMMITTED,
+ content::NotificationService::AllBrowserContextsAndSources());
}
void TaskManagerTabContentsResourceProvider::StopUpdating() {
@@ -395,6 +418,9 @@ void TaskManagerTabContentsResourceProvider::StopUpdating() {
registrar_.Remove(
this, content::NOTIFICATION_TAB_CONTENTS_DESTROYED,
content::NotificationService::AllBrowserContextsAndSources());
+ registrar_.Remove(
+ this, chrome::NOTIFICATION_INSTANT_COMMITTED,
+ content::NotificationService::AllBrowserContextsAndSources());
// Delete all the resources.
STLDeleteContainerPairSecondPointers(resources_.begin(), resources_.end());
@@ -456,12 +482,27 @@ void TaskManagerTabContentsResourceProvider::Remove(
delete resource;
}
+void TaskManagerTabContentsResourceProvider::Update(
+ TabContentsWrapper* tab_contents) {
+ if (!updating_)
+ return;
+ std::map<TabContentsWrapper*, TaskManagerTabContentsResource*>::iterator
+ iter = resources_.find(tab_contents);
+ DCHECK(iter != resources_.end());
+ if (iter != resources_.end())
+ iter->second->InstantCommitted();
+}
+
void TaskManagerTabContentsResourceProvider::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
- TabContentsWrapper* tab_contents =
- TabContentsWrapper::GetCurrentWrapperForContents(
- content::Source<TabContents>(source).ptr());
+ TabContentsWrapper* tab_contents;
+ if (type == chrome::NOTIFICATION_INSTANT_COMMITTED) {
+ tab_contents = content::Source<TabContentsWrapper>(source).ptr();
+ } else {
+ tab_contents = TabContentsWrapper::GetCurrentWrapperForContents(
+ content::Source<TabContents>(source).ptr());
+ }
// A background page does not have a TabContentsWrapper.
if (!tab_contents)
return;
@@ -482,6 +523,9 @@ void TaskManagerTabContentsResourceProvider::Observe(int type,
case content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED:
Remove(tab_contents);
break;
+ case chrome::NOTIFICATION_INSTANT_COMMITTED:
+ Update(tab_contents);
+ break;
default:
NOTREACHED() << "Unexpected notification.";
return;
@@ -1068,7 +1112,7 @@ TaskManagerExtensionProcessResource::TaskManagerExtensionProcessResource(
DCHECK(!extension_name.empty());
int message_id = GetMessagePrefixID(GetExtension()->is_app(), true,
- extension_host_->profile()->IsOffTheRecord(), false);
+ extension_host_->profile()->IsOffTheRecord(), false, false);
title_ = l10n_util::GetStringFUTF16(message_id, extension_name);
}
« no previous file with comments | « chrome/browser/task_manager/task_manager_resource_providers.h ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698