| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While a process is being destroyed by the kernel, it will loose
its IPC file descriptors which signals to the browser that the process is dead.
In that timeframe, doing a non blocking waitpid() is racy and
can indicate the process as still being running while the kernel is
still destroying it.
We unify Linux with OS X and use known_dead even in the non Zygote case.
BUG=332635
NOTRY=true
Review URL: https://codereview.chromium.org/130633002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244069 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let me know if you prefer to keep some of these as INFO or just delete
them.
R=jam@chromium.org
BUG=322805
Review URL: https://codereview.chromium.org/84293002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236936 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch employs base::TerminationStatus to communicate the state of the oom
bindings when a child process dies and exposes renderProcessGone() in
WebContentsObserverAndroid, removing the need for ContentViewCore to be
involved in the renderer crash codepath.
This allows to drop tracking the pid of the renderer process in ContentViewCore
and eliminates the need for the |tab_crashed_| flag in native
ContentViewCoreImpl.
BUG=314583
Review URL: https://codereview.chromium.org/58203002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233905 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using named shared memory.
This is required for to enable chrome://stats Android where there is no
/dev/shm. This also provides the added advantage of not requiring the
--no-sandbox command line flag with the --enable-stats-table on Posix.
BUG=None
Review URL: https://codereview.chromium.org/22911027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228903 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The determination of whether or not to put up a sad tab page is made
based on the termination status of the renderer process.
The termination status of the renderer process is checked when
the channel between the browser and the renderer stops working.
There is a race here because there is no reason to believe that the
renderer process has finished terminating at the time that the
browser detects that its channel to the renderer is dead.
If renderer process is believed to be still running at the moment when
the decision to put up the sad tab page is taken, then no sad tab will
be put up, the view of the renderer will be removed (eventually), and
a transparent window will result.
This bug was previously fixed on Linux with with
https://chromiumcodereview.appspot.com/11316261
this patch expands that fix to Mac.
In particular, if the renderer process is known to be dead, wait for the
process to terminate before taking its termination status. To be sure
that the browser does not wait forever on a renderer that is not exiting,
send a kill signal to the renderer before doing the wait.
BUG=167538
Review URL: https://chromiumcodereview.appspot.com/23866011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223526 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
Currently, zygote and sandbox ipc descriptors are defined in 3 places. This CL
defines them in one place.
Review URL: https://chromiumcodereview.appspot.com/23956010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222594 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
re-implements the Posix version to be more like the Windows version and to share some parsing code. The new version will be somewhat slower due to some extra mallocs, but is shorter and more clear. I didn't want to implement a super optimized version on Windows, and the alternative would be to keep the new Windows version and the old Posix version in parallel which seemed less desirable.
This changes the input from a vector to a map and just adds the map on the LaunchOptions rather than requiring the caller to set a pointer. This cleans up the callsites somewhat.
BUG=
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/22750002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220608 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also updates any stragglers that I missed, fixes mistakes I may have made,
and deletes the forwarding headers.
After this CL, the proces_util.h project is complete.
BUG=242290
TBR=brettw@chromium.org
Review URL: https://codereview.chromium.org/20265004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213702 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=242290
TBR=sky@chromium.org
Review URL: https://codereview.chromium.org/19495006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213225 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"operator T*"
Linux fixes
BUG=110610
TBR=darin
Review URL: https://chromiumcodereview.appspot.com/16294003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203624 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This restructures the way MachBroker parent-child communication happens. Now,
the MachBroker lock will be held for the duration of LaunchProcess until the
PID is returned and inserted into the MachMap. Since the lock must also be
acquired on the broker thread to insert the received task port into the
MachMap, this ensures that the placeholder is always inserted before the task
port.
MachBroker has also been rewritten to use Mach IPC directly, rather than the C++
wrappers in base/mach_ipc_mac.h. The wrappers are not flexible enough to allow
the use of an audit trailer. This trailer is used to verify the PID of the
sender of the check in message in the parent. Previously, this was done by
another kernel trap, pid_for_task.
BUG=179923
Originally Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=193486
Reverted: https://src.chromium.org/viewvc/chrome?view=rev&revision=193511
Review URL: https://codereview.chromium.org/13845008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193638 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> [Mac] Remove base::LaunchSynchronize and rewrite content::MachBroker.
>
> This restructures the way MachBroker parent-child communication happens. Now,
> the MachBroker lock will be held for the duration of LaunchProcess until the
> PID is returned and inserted into the MachMap. Since the lock must also be
> acquired on the broker thread to insert the received task port into the
> MachMap, this ensures that the placeholder is always inserted before the task
> port.
>
> MachBroker has also been rewritten to use Mach IPC directly, rather than the C++
> wrappers in base/mach_ipc_mac.h. The wrappers are not flexible enough to allow
> the use of an audit trailer. This trailer is used to verify the PID of the
> sender of the check in message in the parent. Previously, this was done by
> another kernel trap, pid_for_task.
>
> BUG=179923
>
>
> Review URL: https://chromiumcodereview.appspot.com/13845008
TBR=rsesek@chromium.org
Review URL: https://codereview.chromium.org/14120002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193511 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This restructures the way MachBroker parent-child communication happens. Now,
the MachBroker lock will be held for the duration of LaunchProcess until the
PID is returned and inserted into the MachMap. Since the lock must also be
acquired on the broker thread to insert the received task port into the
MachMap, this ensures that the placeholder is always inserted before the task
port.
MachBroker has also been rewritten to use Mach IPC directly, rather than the C++
wrappers in base/mach_ipc_mac.h. The wrappers are not flexible enough to allow
the use of an audit trailer. This trailer is used to verify the PID of the
sender of the check in message in the parent. Previously, this was done by
another kernel trap, pid_for_task.
BUG=179923
Review URL: https://chromiumcodereview.appspot.com/13845008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193486 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for all processes. Instead have whoever creates a sandboxed process set this data. This allows us to clean a few NaCl related changes in content:
-remove NaCl sandbox rules from content
-remove the hack for ifdef'ing out the GPU policy since it didn't link for nacl64.exe
-remove the 1GB memory reservation for the NaCl loader process out of content
Other cleanup:
-renamed sandbox_policy.* to sandbox_win.* to match the other platform-specific sandbox files
-moved BrokerGetFileHandleForProcess to internal content files since it's not called from outside
-remove AddGpuDllEvictionPolicy since it was redundant (the one dll it removed was already listed in the generic list)
There's still more cleanup to be done in the sandbox code (i.e. remove chrome frame switch, nacl process type switch etc). I will do that in future changes.
BUG=191682
Review URL: https://codereview.chromium.org/12805004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189175 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After https://chromiumcodereview.appspot.com/12321131/ there are two copies of child_process_launcher.cc
content/browser/android and in content/browser. Rename the former to avoid having duplicate basenames
which is a problem for some toolchains. This wasn't seen in chromium as there isn't coverage for x86.
BUG=178382
TBR=joth,jam
Review URL: https://chromiumcodereview.appspot.com/12575010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188970 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
sandbox, Sandboxed process is renamed to Child process
BUG=178382
Review URL: https://chromiumcodereview.appspot.com/12321131
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188907 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Revert 183407
> > Child process launch - Record process creation times.
> >
> > Added MPArch.ChildProcessLaunchFirst and MPArch.ChildProcessLaunchSubsequent
> > histograms to ltrack all child process creation times.
> >
> > This replaces MPArch.RendererLaunchFirst and MPArch.RendererLaunchSubsequent
> > histograms that were there earlier.
> > https://code.google.com/p/chrome-browser/source/browse/trunk/src/chrome/browser/renderer_host/browser_render_process_host.cc?spec=svn27589&r=27589
> >
> > BUG=167326
> > R=sky@chromium.org
> >
> > Review URL: https://chromiumcodereview.appspot.com/12255086
>
> TBR=rtenneti@chromium.org
> Review URL: https://codereview.chromium.org/12328066
TBR=rtenneti@chromium.org
Review URL: https://codereview.chromium.org/12328088
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184451 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
TBR=sky
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184344 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Child process launch - Record process creation times.
>
> Added MPArch.ChildProcessLaunchFirst and MPArch.ChildProcessLaunchSubsequent
> histograms to ltrack all child process creation times.
>
> This replaces MPArch.RendererLaunchFirst and MPArch.RendererLaunchSubsequent
> histograms that were there earlier.
> https://code.google.com/p/chrome-browser/source/browse/trunk/src/chrome/browser/renderer_host/browser_render_process_host.cc?spec=svn27589&r=27589
>
> BUG=167326
> R=sky@chromium.org
>
> Review URL: https://chromiumcodereview.appspot.com/12255086
TBR=rtenneti@chromium.org
Review URL: https://codereview.chromium.org/12328066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184213 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added MPArch.ChildProcessLaunchFirst and MPArch.ChildProcessLaunchSubsequent
histograms to ltrack all child process creation times.
This replaces MPArch.RendererLaunchFirst and MPArch.RendererLaunchSubsequent
histograms that were there earlier.
https://code.google.com/p/chrome-browser/source/browse/trunk/src/chrome/browser/renderer_host/browser_render_process_host.cc?spec=svn27589&r=27589
BUG=167326
R=sky@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12255086
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183407 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://codereview.chromium.org/12213066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181349 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Android WebView runs in single process mode, fail fast with a
CHECK if we try to start up a child process.
Review URL: https://chromiumcodereview.appspot.com/11826052
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176551 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TBR=jam@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11737002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174797 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the browser calls ProcessDied() and asks the Zygote to wait (without blocking)
on a dead process, the kernel might not be done destroying it and the Zygote may
mistakenly claim that the process is alive.
We now inform the Zygote over the IPC that the process is already dead so
that it can wait synchroneously.
BUG=157458
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/11316261
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171450 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This file represents a posix-only concept.
BUG=
Review URL: https://codereview.chromium.org/11293210
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167008 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in-process for renderers as well (as the browser cannot access all the
necessary states of the renderer process).
Breakpad has support for generating minidumps to a passed FD (as the renderer
process on Android does not have permission to create file), so the flow on
Android is:
- when a render process is created the browser creates a file and passes its FD
to the process
- the renderer process initializes Breakpad with that FD
- if there is a crash, Breakpad generates the minidump to that FD.
- when the browser process detects a renderer stopped it checks the minidump
file. If it's empty it deletes the file. If it's not empty, it means there
was a crasher in which case it moves it to the crash dump folder for it to be
picked up and uploaded by the Java side.
BUG=None
TEST=Test that minidumps are generated and uploaded when visiting about:crash
and about:crashbrowserforrealz on Android and desktop Chrome.
Review URL: https://chromiumcodereview.appspot.com/11189068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163917 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://codereview.chromium.org/11235068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163732 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://codereview.chromium.org/11228040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163656 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When starting a SandboxedProcess the resource file descriptors were leaked in
the browser process, eventually causing crashers.
BUG=None
TEST=When using the Android content shell for a long time, it should not crash.
Review URL: https://chromiumcodereview.appspot.com/10949027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158456 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
renderers.
On bots, seeing that sometimes child processes are hanging around after the browser process is gone. This confuses the sharding scripts.
BUG=90448
Review URL: https://chromiumcodereview.appspot.com/10834068
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149023 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10806076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148026 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Includes updates to SandboxedProcess* to support passing multiple FDs to child
processes.
Review URL: https://chromiumcodereview.appspot.com/10696025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144801 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enables us to pass more file descriptors down to the child process. This
will be used by the Android port.
As part of this, I cleaned up a
ChildProcessLauncher::Context::LaunchInternal to be a little more
generic. This can result in a little extra work but cleans up the
zygote/non-zygote code paths.
Review URL: https://chromiumcodereview.appspot.com/10584007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143574 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
content files. Fix the instances other sandbox stuff, which I'll do in a followup.
BUG=98716
Review URL: https://chromiumcodereview.appspot.com/10512010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140346 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code is only invoked when --renderer-clean-exit is passed to Chrome.
It does the following:
1. Makes the browser process not send a SIGTERM to its children.
2. Makes the renderer process not call _exit() in OnChannelError().
Why is this needed? The renderer process in Chrome does not exit cleanly
currently so when Chrome is profiled for optimization we do not get
representative data and miss out on optimization opportunities.
This CL addresses that problem by ensuring that exit handlers including
profile dumpers get run before the renderer exits.
BUG=107584
TEST=Rebuilt Chrome with -fprofile-generate. Verified that the renderer
process' profile is included when Chrome is closed.
Review URL: http://codereview.chromium.org/9936002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131625 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
content implementation.
BUG=98716
Review URL: https://chromiumcodereview.appspot.com/9463029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123604 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
base::file_handle_mapping_vector to StudlyCaps.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9429039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123438 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to get content_unittests linking. The full implementation will call into Android APIs
in subsequent CLs.
BUG=None
TEST=
Review URL: http://codereview.chromium.org/9357002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120992 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
base/process_util, alongside the other process methods.
The only non-trivial move change is to the Windows implementation, where I changed KillProcess to use an exit code of kProcessKilledExitCode instead of content::RESULT_CODE_HUNG. cpu said that the existing code was incorrect, since GetTerminationStatus() should be mapping that result to TERMINATION_STATUS_PROCESS_WAS_KILLED. So I changed the exit code to kProcessKilledExitCode. This might make the UMA stats for killed processes to go up (and crashed to go down), but that will be an accounting change and should be zero-sum.
BUG=98716
Review URL: http://codereview.chromium.org/8674003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111371 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=compiles and tests pass.
Review URL: http://codereview.chromium.org/8556001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110164 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
TBR=owners
BUG=98716
Review URL: http://codereview.chromium.org/8437002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108270 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only content/ now has the ability to create BrowserThread objects,
with the exception that tests can create the
content::TestBrowserThread subclass, and (temporarily) code in chrome/
can create the DeprecatedBrowserThread subclass.
A follow-up change will make content/ take care of its own thread
creation, remove DeprecatedBrowserThread, and move all state and
non-trivial constructors from BrowserThread down to BrowserThreadImpl.
Also moved BrowserProcessSubThread into content/ namespace. As part
of follow-up cleanup, chrome/ will stop using this class.
BUG=98716
TEST=existing
Review URL: http://codereview.chromium.org/8392042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107718 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
BUG=98716
Review URL: http://codereview.chromium.org/8382021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107061 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
window_container_type.h as well since it is included by
content_browser_client.h
BUG=98716
TEST=it builds + existing tests
Review URL: http://codereview.chromium.org/8346017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106323 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
BUG=98716
Review URL: http://codereview.chromium.org/8277018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105389 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
processes.
BUG=82226
TEST=none
Review URL: http://codereview.chromium.org/8228027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105111 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also move the --process=extension command line flag to --extension-process
BUG=89642
TEST=everything still works
Review URL: http://codereview.chromium.org/8113035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104173 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
move handle enumerator into common.
BUG=96488
TEST=N/A
Review URL: http://codereview.chromium.org/7888024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102004 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces a Sleep in automation with a wait for renderer crash. It turns out that our IPC on POSIX had one loophole that caused it not to notice very early crashes, so I also fixed that.
The problem was that when the child process died before connecting to the parent's IPC channel, the parent wouldn't notice the crash because the child end of the IPC pipe was kept open for too long. This change makes the code close the child end of the pipe right after forking the child.
This might also help with automation not noticing the browser crash during initial launch, or at least should be a good step toward fixing that problem.
BUG=38497,90489
Review URL: http://codereview.chromium.org/7870008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101760 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
CHILD_PROCESS_LAUNCHER thread, even though it's not thread safe. I switched it to pass the handle directly, and made all the methods that run on CHILD_PROCESS_LAUNCHER static to make this clearer.
This also makes BrowserRenderProcessHost handle the case where ChildProcessLauncher fails, which it should (just like BrowserChildProcessHost does). It's another error why the zygote is failing sometimes.
Review URL: http://codereview.chromium.org/7739003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100002 0039d316-1c4b-4281-b951-d872f2087c98
|