diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-09 23:10:32 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-09 23:10:32 +0000 |
commit | 1c571ca94c8121957e326fbcd2b9c5c497cd5a12 (patch) | |
tree | 50ca98c111ea0e2a700cc3e2b8cbefe99df7bef4 | |
parent | c777de5b0773fad970c88b748c237120e5d6d563 (diff) | |
download | chromium_src-1c571ca94c8121957e326fbcd2b9c5c497cd5a12.zip chromium_src-1c571ca94c8121957e326fbcd2b9c5c497cd5a12.tar.gz chromium_src-1c571ca94c8121957e326fbcd2b9c5c497cd5a12.tar.bz2 |
Fix PrerenderBrowserTest.PrerenderInfiniteLoop flake due
to process destruction/prerender contents destruction race.
TEST=PrerenderBrowserTest.PrerenderInfiniteLoop
BUG=83170
Review URL: http://codereview.chromium.org/7866005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100529 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/prerender/prerender_browsertest.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index cdb5563..afc0929 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc @@ -152,8 +152,14 @@ class TestPrerenderContents : public PrerenderContents { // before the PrerenderManager is destroyed. As a result, it's possible to // get either FINAL_STATUS_APP_TERMINATING or FINAL_STATUS_RENDERER_CRASHED // on quit. - if (expected_final_status_ == FINAL_STATUS_APP_TERMINATING) + // + // It's also possible for this to be called after we've been notified of + // app termination, but before we've been deleted, which is why the second + // check is needed. + if (expected_final_status_ == FINAL_STATUS_APP_TERMINATING && + final_status() != expected_final_status_) { expected_final_status_ = FINAL_STATUS_RENDERER_CRASHED; + } PrerenderContents::RenderViewGone(); } |