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

Unified Diff: extensions/browser/process_manager.cc

Issue 547003002: Remove the --event-page-idle-time and --event-page-suspending-time switches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: 1s Created 6 years, 3 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
« no previous file with comments | « extensions/browser/process_manager.h ('k') | extensions/common/switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/process_manager.cc
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc
index c3bcd50ae425ff35c102616c72f73461c18ace31..1b6a45a2e65584557d1e78121f1236c45def0028 100644
--- a/extensions/browser/process_manager.cc
+++ b/extensions/browser/process_manager.cc
@@ -41,7 +41,6 @@
#include "extensions/common/manifest_handlers/background_info.h"
#include "extensions/common/manifest_handlers/incognito_info.h"
#include "extensions/common/one_shot_event.h"
-#include "extensions/common/switches.h"
using content::BrowserContext;
using content::RenderViewHost;
@@ -58,6 +57,16 @@ namespace extensions {
namespace {
+// The time to delay between an extension becoming idle and
+// sending a ShouldSuspend message.
+// Note: Must be sufficiently larger (e.g. 2x) than
+// kKeepaliveThrottleIntervalInSeconds in ppapi/proxy/plugin_globals.
+unsigned g_event_page_idle_time_msec = 10000;
+
+// The time to delay between sending a ShouldSuspend message and
+// sending a Suspend message.
+unsigned g_event_page_suspending_time_msec = 5000;
+
std::string GetExtensionID(RenderViewHost* render_view_host) {
// This works for both apps and extensions because the site has been
// normalized to the extension URL for hosted apps.
@@ -267,24 +276,6 @@ ProcessManager::ProcessManager(BrowserContext* context,
registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_CONNECTED,
content::NotificationService::AllSources());
- // Note: event_page_idle_time_ must be sufficiently larger (e.g. 2x) than
- // kKeepaliveThrottleIntervalInSeconds in ppapi/proxy/plugin_globals.
- event_page_idle_time_ = base::TimeDelta::FromSeconds(10);
- unsigned idle_time_msec = 0;
- if (base::StringToUint(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- extensions::switches::kEventPageIdleTime), &idle_time_msec)) {
- CHECK_GT(idle_time_msec, 0u); // OnKeepaliveImpulseCheck requires non zero.
- event_page_idle_time_ = base::TimeDelta::FromMilliseconds(idle_time_msec);
- }
- event_page_suspending_time_ = base::TimeDelta::FromSeconds(5);
- unsigned suspending_time_msec = 0;
- if (base::StringToUint(CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- extensions::switches::kEventPageSuspendingTime),
- &suspending_time_msec)) {
- event_page_suspending_time_ =
- base::TimeDelta::FromMilliseconds(suspending_time_msec);
- }
-
content::DevToolsAgentHost::AddAgentStateCallback(devtools_callback_);
OnKeepaliveImpulseCheck();
@@ -465,7 +456,7 @@ void ProcessManager::DecrementLazyKeepaliveCount(
weak_ptr_factory_.GetWeakPtr(),
extension_id,
last_background_close_sequence_id_),
- event_page_idle_time_);
+ base::TimeDelta::FromMilliseconds(g_event_page_idle_time_msec));
}
}
@@ -534,11 +525,12 @@ void ProcessManager::OnKeepaliveFromPlugin(int render_process_id,
}
// DecrementLazyKeepaliveCount is called when no calls to KeepaliveImpulse
-// have been made for at least event_page_idle_time_. In the best case an
+// have been made for at least g_event_page_idle_time_msec. In the best case an
// impulse was made just before being cleared, and the decrement will occur
-// event_page_idle_time_ later, causing a 2 * event_page_idle_time_ total time
-// for extension to be shut down based on impulses. Worst case is an impulse
-// just after a clear, adding one check cycle and resulting in 3x total time.
+// g_event_page_idle_time_msec later, causing a 2 * g_event_page_idle_time_msec
+// total time for extension to be shut down based on impulses. Worst case is
+// an impulse just after a clear, adding one check cycle and resulting in 3x
+// total time.
void ProcessManager::OnKeepaliveImpulseCheck() {
for (BackgroundPageDataMap::iterator i = background_page_data_.begin();
i != background_page_data_.end();
@@ -563,7 +555,7 @@ void ProcessManager::OnKeepaliveImpulseCheck() {
FROM_HERE,
base::Bind(&ProcessManager::OnKeepaliveImpulseCheck,
weak_ptr_factory_.GetWeakPtr()),
- event_page_idle_time_);
+ base::TimeDelta::FromMilliseconds(g_event_page_idle_time_msec));
}
}
@@ -608,8 +600,10 @@ void ProcessManager::OnSuspendAck(const std::string& extension_id) {
base::MessageLoop::current()->PostDelayedTask(
FROM_HERE,
base::Bind(&ProcessManager::CloseLazyBackgroundPageNow,
- weak_ptr_factory_.GetWeakPtr(), extension_id, sequence_id),
- event_page_suspending_time_);
+ weak_ptr_factory_.GetWeakPtr(),
+ extension_id,
+ sequence_id),
+ base::TimeDelta::FromMilliseconds(g_event_page_suspending_time_msec));
}
void ProcessManager::CloseLazyBackgroundPageNow(const std::string& extension_id,
@@ -677,6 +671,18 @@ void ProcessManager::SetKeepaliveImpulseDecrementCallbackForTesting(
keepalive_impulse_decrement_callback_for_testing_ = callback;
}
+// static
+void ProcessManager::SetEventPageIdleTimeForTesting(unsigned idle_time_msec) {
+ CHECK_GT(idle_time_msec, 0u); // OnKeepaliveImpulseCheck requires non zero.
+ g_event_page_idle_time_msec = idle_time_msec;
+}
+
+// static
+void ProcessManager::SetEventPageSuspendingTimeForTesting(
+ unsigned suspending_time_msec) {
+ g_event_page_suspending_time_msec = suspending_time_msec;
+}
+
void ProcessManager::Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
« no previous file with comments | « extensions/browser/process_manager.h ('k') | extensions/common/switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698