diff options
author | yoz <yoz@chromium.org> | 2015-02-20 17:30:37 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-21 01:31:26 +0000 |
commit | d61dfe19ab3188101e511f633eeaaef3dc689e41 (patch) | |
tree | e83cbd14e9b041bdefb28fd7b746c268275d3477 /extensions/browser/serial_extension_host_queue.cc | |
parent | 5237cb89a8fc1a743b483bc2be5cdbe9669d9d86 (diff) | |
download | chromium_src-d61dfe19ab3188101e511f633eeaaef3dc689e41.zip chromium_src-d61dfe19ab3188101e511f633eeaaef3dc689e41.tar.gz chromium_src-d61dfe19ab3188101e511f633eeaaef3dc689e41.tar.bz2 |
Make BackgroundContentsService start up BackgroundContents with a delay, as for ExtensionHosts.
extensions::ProcessManager starts ExtensionHosts asynchronously with a queue to avoid using too much resources at startup; make BackgroundContentsService use the same queue implementation. (ExtensionHostQueue now accepts an interface that both BackgroundContentsService and ExtensionHost share.)
This significantly reduces the time BackgroundContentsService contributes to ExtensionService startup (75th percentile was ~300ms, according to Extensions.BackgroundContentsServiceStartupTime).
BUG=47236
Review URL: https://codereview.chromium.org/933423003
Cr-Commit-Position: refs/heads/master@{#317480}
Diffstat (limited to 'extensions/browser/serial_extension_host_queue.cc')
-rw-r--r-- | extensions/browser/serial_extension_host_queue.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/extensions/browser/serial_extension_host_queue.cc b/extensions/browser/serial_extension_host_queue.cc index 7c8df68..7986523 100644 --- a/extensions/browser/serial_extension_host_queue.cc +++ b/extensions/browser/serial_extension_host_queue.cc @@ -6,7 +6,7 @@ #include "base/bind.h" #include "base/message_loop/message_loop.h" -#include "extensions/browser/extension_host.h" +#include "extensions/browser/deferred_start_render_host.h" namespace extensions { @@ -17,13 +17,13 @@ SerialExtensionHostQueue::SerialExtensionHostQueue() SerialExtensionHostQueue::~SerialExtensionHostQueue() { } -void SerialExtensionHostQueue::Add(ExtensionHost* host) { +void SerialExtensionHostQueue::Add(DeferredStartRenderHost* host) { queue_.push_back(host); PostTask(); } -void SerialExtensionHostQueue::Remove(ExtensionHost* host) { - std::list<ExtensionHost*>::iterator it = +void SerialExtensionHostQueue::Remove(DeferredStartRenderHost* host) { + std::list<DeferredStartRenderHost*>::iterator it = std::find(queue_.begin(), queue_.end(), host); if (it != queue_.end()) queue_.erase(it); |