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

Unified Diff: chrome/renderer/extensions/extension_dispatcher.cc

Issue 8574012: Schedule idle handler based on CPU usage. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: 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
Index: chrome/renderer/extensions/extension_dispatcher.cc
diff --git a/chrome/renderer/extensions/extension_dispatcher.cc b/chrome/renderer/extensions/extension_dispatcher.cc
index 32d6731bdaed83a0353e532272e204ccf89baa37..7b6ab651c40363b0a8722ee1b668ec8101fe0ecc 100644
--- a/chrome/renderer/extensions/extension_dispatcher.cc
+++ b/chrome/renderer/extensions/extension_dispatcher.cc
@@ -31,11 +31,6 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
#include "v8/include/v8.h"
-namespace {
-static const int64 kInitialExtensionIdleHandlerDelayMs = 5*1000;
-static const int64 kMaxExtensionIdleHandlerDelayMs = 5*60*1000;
-}
-
using extensions::MiscellaneousBindings;
using extensions::SchemaGeneratedBindings;
using WebKit::WebDataSource;
@@ -54,11 +49,6 @@ ExtensionDispatcher::ExtensionDispatcher()
command_line.HasSwitch(switches::kExtensionProcess) ||
command_line.HasSwitch(switches::kSingleProcess);
- if (is_extension_process_) {
- RenderThread::Get()->SetIdleNotificationDelayInMs(
- kInitialExtensionIdleHandlerDelayMs);
- }
-
user_script_slave_.reset(new UserScriptSlave(&extensions_));
}
@@ -88,14 +78,6 @@ bool ExtensionDispatcher::OnControlMessageReceived(
}
void ExtensionDispatcher::WebKitInitialized() {
- // For extensions, we want to ensure we call the IdleHandler every so often,
- // even if the extension keeps up activity.
- if (is_extension_process_) {
- forced_idle_timer_.Start(FROM_HERE,
- base::TimeDelta::FromMilliseconds(kMaxExtensionIdleHandlerDelayMs),
- RenderThread::Get(), &RenderThread::IdleHandler);
- }
-
RegisterExtension(new AppBindings(this), false);
RegisterExtension(ChromeWebstoreExtension::Get(), false);
@@ -121,20 +103,6 @@ void ExtensionDispatcher::WebKitInitialized() {
is_webkit_initialized_ = true;
}
-void ExtensionDispatcher::IdleNotification() {
- if (is_extension_process_) {
- // Dampen the forced delay as well if the extension stays idle for long
- // periods of time.
- int64 forced_delay_ms = std::max(
- RenderThread::Get()->GetIdleNotificationDelayInMs(),
- kMaxExtensionIdleHandlerDelayMs);
- forced_idle_timer_.Stop();
- forced_idle_timer_.Start(FROM_HERE,
- base::TimeDelta::FromMilliseconds(forced_delay_ms),
- RenderThread::Get(), &RenderThread::IdleHandler);
- }
-}
-
void ExtensionDispatcher::OnSetFunctionNames(
const std::vector<std::string>& names) {
function_names_.clear();
@@ -152,8 +120,7 @@ void ExtensionDispatcher::OnMessageInvoke(const std::string& extension_id,
// Reset the idle handler each time there's any activity like event or message
// dispatch, for which Invoke is the chokepoint.
if (is_extension_process_) {
Aaron Boodman 2011/11/23 22:52:20 Nit: the braces can go away now.
- RenderThread::Get()->ScheduleIdleHandler(
- kInitialExtensionIdleHandlerDelayMs);
Matt Perry 2011/11/15 23:44:33 The point of this code was to prevent the idle han
+ RenderThread::Get()->ResetIdleTimer();
}
// Tell the browser process that the event is dispatched and we're idle.
@@ -301,7 +268,7 @@ void ExtensionDispatcher::OnActivateExtension(
// This is called when starting a new extension page, so start the idle
// handler ticking.
- RenderThread::Get()->ScheduleIdleHandler(kInitialExtensionIdleHandlerDelayMs);
+ RenderThread::Get()->ResetIdleTimer();
UpdateActiveExtensions();

Powered by Google App Engine
This is Rietveld 408576698