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

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: review 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..2e04e398b3ef8cc282a8844c0b165f23178d9ea5 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,37 @@ void ChromeRenderMessageFilter::OnExtensionUnloadAck(
profile_->GetExtensionProcessManager()->OnUnloadAck(extension_id);
}
+void ChromeRenderMessageFilter::OnExtensionIncrementLazyKeepaliveCount(
+ const std::string& extension_id) {
+ ExtensionService* service =
+ ExtensionSystemFactory::GetForProfile(profile_)->extension_service();
+ ExtensionProcessManager* process_manager =
+ ExtensionSystemFactory::GetForProfile(profile_)->process_manager();
+ if (process_manager && service) {
+ const Extension* extension = service->extensions()->GetByID(extension_id);
+ if (extension)
+ process_manager->IncrementLazyKeepaliveCount(extension);
+ }
+}
+
+void ChromeRenderMessageFilter::OnExtensionDecrementLazyKeepaliveCount(
+ const std::string& extension_id) {
+ ExtensionService* service =
+ ExtensionSystemFactory::GetForProfile(profile_)->extension_service();
+ ExtensionProcessManager* process_manager =
+ ExtensionSystemFactory::GetForProfile(profile_)->process_manager();
+ if (process_manager && service) {
+ const Extension* extension = service->extensions()->GetByID(extension_id);
+ if (extension)
+ process_manager->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());
« no previous file with comments | « chrome/browser/renderer_host/chrome_render_message_filter.h ('k') | chrome/common/extensions/extension_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698