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

Unified Diff: chrome/browser/renderer_host/chrome_render_message_filter.cc

Issue 9958147: Fix some uses of global variables in transient pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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/renderer_host/chrome_render_message_filter.cc
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc
index b31e75a650d70108503ef9e5937e3ecc1c21552d..be30e8011d83b0e62963408693c09326a0adfe51 100644
--- a/chrome/browser/renderer_host/chrome_render_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc
@@ -17,6 +17,7 @@
#include "chrome/browser/extensions/extension_info_map.h"
#include "chrome/browser/extensions/extension_message_service.h"
#include "chrome/browser/extensions/extension_process_manager.h"
+#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/metrics/histogram_synchronizer.h"
@@ -98,6 +99,12 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message,
OnExtensionRequestForIOThread)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_ShouldUnloadAck,
OnExtensionShouldUnloadAck)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_IncrementLazyKeepaliveCount,
+ OnExtensionIncrementLazyKeepaliveCount)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_DecrementLazyKeepaliveCount,
+ OnExtensionDecrementLazyKeepaliveCount)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_GenerateUniqueID,
+ OnExtensionGenerateUniqueID)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_UnloadAck, OnExtensionUnloadAck)
#if defined(USE_TCMALLOC)
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_RendererTcmalloc, OnRendererTcmalloc)
@@ -149,6 +156,8 @@ void ChromeRenderMessageFilter::OverrideThreadForMessage(
case ExtensionHostMsg_CloseChannel::ID:
case ExtensionHostMsg_ShouldUnloadAck::ID:
case ExtensionHostMsg_UnloadAck::ID:
+ case ExtensionHostMsg_IncrementLazyKeepaliveCount::ID:
+ case ExtensionHostMsg_DecrementLazyKeepaliveCount::ID:
case ChromeViewHostMsg_UpdatedCacheStats::ID:
*thread = BrowserThread::UI;
break;
@@ -415,6 +424,35 @@ void ChromeRenderMessageFilter::OnExtensionUnloadAck(
profile_->GetExtensionProcessManager()->OnUnloadAck(extension_id);
}
+void ChromeRenderMessageFilter::OnExtensionIncrementLazyKeepaliveCount(
+ const std::string& extension_id) {
+ ExtensionService* service =
+ ExtensionSystemFactory::GetForProfile(profile_)->extension_service();
+ if (profile_->GetExtensionProcessManager() && service) {
Yoyo Zhou 2012/04/04 18:52:24 Use this instead: ExtensionProcessManager* process
Matt Perry 2012/04/04 19:21:44 Done.
+ const Extension* extension = service->extensions()->GetByID(extension_id);
+ if (extension)
+ profile_->GetExtensionProcessManager()->IncrementLazyKeepaliveCount(
+ extension);
+ }
+}
+
+void ChromeRenderMessageFilter::OnExtensionDecrementLazyKeepaliveCount(
+ const std::string& extension_id) {
+ ExtensionService* service =
+ ExtensionSystemFactory::GetForProfile(profile_)->extension_service();
+ if (profile_->GetExtensionProcessManager() && service) {
+ const Extension* extension = service->extensions()->GetByID(extension_id);
+ if (extension)
+ profile_->GetExtensionProcessManager()->DecrementLazyKeepaliveCount(
+ extension);
+ }
+}
+
+void ChromeRenderMessageFilter::OnExtensionGenerateUniqueID(int* unique_id) {
+ static int next_unique_id = 1;
+ *unique_id = next_unique_id++;
+}
+
#if defined(USE_TCMALLOC)
void ChromeRenderMessageFilter::OnRendererTcmalloc(const std::string& output) {
base::ProcessId pid = base::GetProcId(peer_handle());

Powered by Google App Engine
This is Rietveld 408576698