Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Issue 7693029: Deflake PrerenderExcessiveMemory, fix race (Closed)

Created:
9 years, 4 months ago by mmenke
Modified:
9 years, 3 months ago
CC:
chromium-reviews, tburkard+watch_chromium.org, cbentzel+watch_chromium.org, dominich+watch_chromium.org, mmenke
Visibility:
Public.

Description

Deflake PrerenderExcessiveMemory, fixing a race in setting the visibility state of prerendered RenderViews in the process. Also add some more visibility API tests that would have reliably failed when losing the fixed race. BUG=93081 TEST=PrerenderBrowserTest.PrerenderExcessiveMemory. PrerenderBrowserTest.PrerenderInfiniteLoop Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=98539

Patch Set 1 : '' #

Patch Set 2 : Remove extra logging, update comments #

Total comments: 4

Patch Set 3 : Response to dominich's comments #

Total comments: 2

Patch Set 4 : Response to Paweł's comments #

Patch Set 5 : Oops #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+131 lines, -52 lines) Patch
M chrome/browser/prerender/prerender_browsertest.cc View 1 2 3 4 11 chunks +51 lines, -28 lines 1 comment Download
M chrome/browser/prerender/prerender_contents.h View 1 2 3 4 2 chunks +5 lines, -1 line 0 comments Download
M chrome/browser/prerender/prerender_contents.cc View 1 2 3 4 6 chunks +10 lines, -23 lines 3 comments Download
A chrome/test/data/prerender/prerender_visibility_hidden_quick.html View 1 2 1 chunk +41 lines, -0 lines 0 comments Download
A chrome/test/data/prerender/prerender_visibility_quick.html View 1 1 chunk +24 lines, -0 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
mmenke
The NOTIFICATION_TAB_CONTENTS_CONNECTED notification has a race with loading the page. The flake we were seeing ...
9 years, 4 months ago (2011-08-25 21:12:37 UTC) #1
dominich
LGTM http://codereview.chromium.org/7693029/diff/9001/chrome/test/data/prerender/prerender_visibility_hidden_quick.html File chrome/test/data/prerender/prerender_visibility_hidden_quick.html (right): http://codereview.chromium.org/7693029/diff/9001/chrome/test/data/prerender/prerender_visibility_hidden_quick.html#newcode13 chrome/test/data/prerender/prerender_visibility_hidden_quick.html:13: (lastState == 'prerender' || lastState == 'hidden'); it ...
9 years, 4 months ago (2011-08-25 21:18:04 UTC) #2
mmenke
Thanks for the review. http://codereview.chromium.org/7693029/diff/9001/chrome/test/data/prerender/prerender_visibility_hidden_quick.html File chrome/test/data/prerender/prerender_visibility_hidden_quick.html (right): http://codereview.chromium.org/7693029/diff/9001/chrome/test/data/prerender/prerender_visibility_hidden_quick.html#newcode13 chrome/test/data/prerender/prerender_visibility_hidden_quick.html:13: (lastState == 'prerender' || lastState ...
9 years, 4 months ago (2011-08-25 21:36:53 UTC) #3
Paweł Hajdan Jr.
Drive-by with a testing comment. http://codereview.chromium.org/7693029/diff/7008/chrome/browser/prerender/prerender_browsertest.cc File chrome/browser/prerender/prerender_browsertest.cc (right): http://codereview.chromium.org/7693029/diff/7008/chrome/browser/prerender/prerender_browsertest.cc#newcode675 chrome/browser/prerender/prerender_browsertest.cc:675: if (tab_contents->IsLoading()) I think ...
9 years, 4 months ago (2011-08-25 23:32:51 UTC) #4
mmenke
http://codereview.chromium.org/7693029/diff/7008/chrome/browser/prerender/prerender_browsertest.cc File chrome/browser/prerender/prerender_browsertest.cc (right): http://codereview.chromium.org/7693029/diff/7008/chrome/browser/prerender/prerender_browsertest.cc#newcode675 chrome/browser/prerender/prerender_browsertest.cc:675: if (tab_contents->IsLoading()) On 2011/08/25 23:32:52, Paweł Hajdan Jr. wrote: ...
9 years, 4 months ago (2011-08-26 15:47:19 UTC) #5
tburkard
LGTM On Thu, Aug 25, 2011 at 2:12 PM, <mmenke@chromium.org> wrote: > Reviewers: dominich, tburkard, ...
9 years, 4 months ago (2011-08-26 17:54:47 UTC) #6
Paweł Hajdan Jr.
Code I commented in the drive-by LGTM, thanks!
9 years, 4 months ago (2011-08-26 22:10:06 UTC) #7
commit-bot: I haz the power
Change committed as 98539
9 years, 4 months ago (2011-08-27 02:40:29 UTC) #8
cbentzel
LGTM http://codereview.chromium.org/7693029/diff/4020/chrome/browser/prerender/prerender_browsertest.cc File chrome/browser/prerender/prerender_browsertest.cc (right): http://codereview.chromium.org/7693029/diff/4020/chrome/browser/prerender/prerender_browsertest.cc#newcode251 chrome/browser/prerender/prerender_browsertest.cc:251: : number_of_loads_(number_of_loads), Nit: should this change to expected_number_of_loads_ ...
9 years, 3 months ago (2011-08-29 12:26:18 UTC) #9
mmenke
9 years, 3 months ago (2011-08-29 12:30:35 UTC) #10
http://codereview.chromium.org/7693029/diff/4020/chrome/browser/prerender/pre...
File chrome/browser/prerender/prerender_contents.cc (right):

http://codereview.chromium.org/7693029/diff/4020/chrome/browser/prerender/pre...
chrome/browser/prerender/prerender_contents.cc:378:
prerender_contents_->view()->SizeContents(tab_bounds_.size());
On 2011/08/29 12:26:18, cbentzel wrote:
> Is the RenderWidgetHostView hidden at this point? It looks like this turns
into
> a no-op if done then, at least on Windows. Or does the Hide right below take
> care of that?

RenderWidgetHostViews start out as visible.  This results in the TabContents
window being resized, which also results in resizing the RenderViewHost and
sending the size message (Synchronously, at least on Windows, OSX, and non-Views
Linux).

Then it's hidden in the next line.  Still need to figure out why one of the
tests was failing on each of linux_views and linux_chromeos after I landed this.

Powered by Google App Engine
This is Rietveld 408576698