summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-09 23:10:32 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-09 23:10:32 +0000
commit1c571ca94c8121957e326fbcd2b9c5c497cd5a12 (patch)
tree50ca98c111ea0e2a700cc3e2b8cbefe99df7bef4
parentc777de5b0773fad970c88b748c237120e5d6d563 (diff)
downloadchromium_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.cc8
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();
}