diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-11 23:54:37 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-11 23:54:37 +0000 |
commit | 4bae577ea5e80c18d50cbfbd69892412a960a617 (patch) | |
tree | 73992b88d7a13ba00cf4e1ec5497116938b98228 /content/browser/renderer_host/browser_render_process_host.cc | |
parent | 7acf63cef0c03ed87b5f9f389a6b2b1828039b87 (diff) | |
download | chromium_src-4bae577ea5e80c18d50cbfbd69892412a960a617.zip chromium_src-4bae577ea5e80c18d50cbfbd69892412a960a617.tar.gz chromium_src-4bae577ea5e80c18d50cbfbd69892412a960a617.tar.bz2 |
Re-land r84928: Move ExtensionFunctionDispatcher to
ExtensionTabHelper.
This reverts commit 89a6b9d9232949a01b8263779fa819ed4d5b3089.
TBR=mpcomplete@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85076 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/browser_render_process_host.cc')
-rw-r--r-- | content/browser/renderer_host/browser_render_process_host.cc | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/content/browser/renderer_host/browser_render_process_host.cc b/content/browser/renderer_host/browser_render_process_host.cc index aa5808f..4868e89 100644 --- a/content/browser/renderer_host/browser_render_process_host.cc +++ b/content/browser/renderer_host/browser_render_process_host.cc @@ -192,7 +192,7 @@ BrowserRenderProcessHost::BrowserRenderProcessHost(Profile* profile) base::TimeDelta::FromSeconds(5), this, &BrowserRenderProcessHost::ClearTransportDIBCache)), accessibility_enabled_(false), - extension_process_(false) { + is_initialized_(false) { widget_helper_ = new RenderWidgetHelper(); WebCacheManager::GetInstance()->Add(id()); @@ -239,8 +239,7 @@ BrowserRenderProcessHost::~BrowserRenderProcessHost() { ClearTransportDIBCache(); } -bool BrowserRenderProcessHost::Init( - bool is_accessibility_enabled, bool is_extensions_process) { +bool BrowserRenderProcessHost::Init(bool is_accessibility_enabled) { // calling Init() more than once does nothing, this makes it more convenient // for the view host which may not be sure in some cases if (channel_.get()) @@ -248,10 +247,6 @@ bool BrowserRenderProcessHost::Init( accessibility_enabled_ = is_accessibility_enabled; - // It is possible for an extension process to be reused for non-extension - // content, e.g. if an extension calls window.open. - extension_process_ = extension_process_ || is_extensions_process; - CommandLine::StringType renderer_prefix; #if defined(OS_POSIX) // A command prefix is something prepended to the command line of the spawned @@ -332,6 +327,7 @@ bool BrowserRenderProcessHost::Init( fast_shutdown_started_ = false; } + is_initialized_ = true; return true; } @@ -470,8 +466,8 @@ void BrowserRenderProcessHost::AppendRendererCommandLine( // Extensions use a special pseudo-process type to make them distinguishable, // even though they're just renderers. command_line->AppendSwitchASCII(switches::kProcessType, - extension_process_ ? switches::kExtensionProcess : - switches::kRendererProcess); + is_extension_process_ ? switches::kExtensionProcess : + switches::kRendererProcess); if (logging::DialogsAreSuppressed()) command_line->AppendSwitch(switches::kNoErrorDialogs); @@ -762,8 +758,13 @@ void BrowserRenderProcessHost::ClearTransportDIBCache() { bool BrowserRenderProcessHost::Send(IPC::Message* msg) { if (!channel_.get()) { - delete msg; - return false; + if (!is_initialized_) { + queued_messages_.push(msg); + return true; + } else { + delete msg; + return false; + } } if (child_process_launcher_.get() && child_process_launcher_->IsStarting()) { @@ -852,15 +853,15 @@ void BrowserRenderProcessHost::OnChannelError() { if (status == base::TERMINATION_STATUS_PROCESS_CRASHED || status == base::TERMINATION_STATUS_ABNORMAL_TERMINATION) { UMA_HISTOGRAM_PERCENTAGE("BrowserRenderProcessHost.ChildCrashes", - extension_process_ ? 2 : 1); + is_extension_process_ ? 2 : 1); } if (status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED) { UMA_HISTOGRAM_PERCENTAGE("BrowserRenderProcessHost.ChildKills", - extension_process_ ? 2 : 1); + is_extension_process_ ? 2 : 1); } - RendererClosedDetails details(status, exit_code, extension_process_); + RendererClosedDetails details(status, exit_code, is_extension_process_); NotificationService::current()->Notify( NotificationType::RENDERER_PROCESS_CLOSED, Source<RenderProcessHost>(this), |