summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/browser_render_process_host.cc
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 23:54:37 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-11 23:54:37 +0000
commit4bae577ea5e80c18d50cbfbd69892412a960a617 (patch)
tree73992b88d7a13ba00cf4e1ec5497116938b98228 /content/browser/renderer_host/browser_render_process_host.cc
parent7acf63cef0c03ed87b5f9f389a6b2b1828039b87 (diff)
downloadchromium_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.cc29
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),