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

Issue 11316311: Make PrerenderHandle an observer of PrerenderContents. (Closed)

Created:
8 years ago by gavinp
Modified:
8 years ago
Reviewers:
jschuh, Shishir, mmenke
CC:
chromium-reviews, cbentzel+watch_chromium.org, tburkard+watch_chromium.org, gavinp+prer_chromium.org, dominich+watch_chromium.org, darin-cc_chromium.org
Visibility:
Public.

Description

Make PrerenderHandle an observer of PrerenderContents. The big implication of this is that PrerenderLinkManager is an observer of PrerenderHandle, and so messaging to/from the browser process about prerenders ends up mostly in the same place. Interestingly, we basically can toss out the pending_prerenders_ list in the PrerenderManager; the only thing it bought us was tracking cancelation, which is now done with a bool in PrerenderHandle, just as easily. The earlier work on the lifetime of PrerenderContents and PrerenderHandle was building up to this. This CL depends on https://codereview.chromium.org/11348357/ , and can't land until after it. R=mmenke@chromium.org BUG=None Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=173322

Patch Set 1 #

Patch Set 2 : ... cleaner diff #

Patch Set 3 : passing browser tests #

Patch Set 4 : rebase only to the new observer remediation #

Patch Set 5 : cleanup, fix build. #

Patch Set 6 : moar cleanup #

Patch Set 7 : tests now pass #

Patch Set 8 : self review #

Patch Set 9 : rebase onto updated PrerenderContents::Observer #

Patch Set 10 : another rebase #

Patch Set 11 : fix windows build #

Total comments: 40

Patch Set 12 : rebase trunk & add upstream remediation #

Total comments: 6

Patch Set 13 : remediate to review #

Patch Set 14 : match complete confusion #

Patch Set 15 : prerender tracker test fix #

Total comments: 32

Patch Set 16 : rebase #

Patch Set 17 : partial remediation #

Patch Set 18 : signal stop on match complete #

Total comments: 29

Patch Set 19 : another remediation #

Total comments: 6

Patch Set 20 : fix leak! #

Total comments: 3

Patch Set 21 : clear to land #

Unified diffs Side-by-side diffs Delta from patch set Stats (+513 lines, -339 lines) Patch
M chrome/browser/prerender/prerender_contents.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +18 lines, -4 lines 0 comments Download
M chrome/browser/prerender/prerender_contents.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 14 chunks +39 lines, -47 lines 0 comments Download
M chrome/browser/prerender/prerender_handle.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +39 lines, -19 lines 0 comments Download
M chrome/browser/prerender/prerender_handle.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +81 lines, -29 lines 0 comments Download
M chrome/browser/prerender/prerender_link_manager.h View 3 chunks +12 lines, -1 line 0 comments Download
M chrome/browser/prerender/prerender_link_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 8 chunks +107 lines, -35 lines 0 comments Download
M chrome/browser/prerender/prerender_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +5 lines, -17 lines 0 comments Download
M chrome/browser/prerender/prerender_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 11 chunks +29 lines, -64 lines 0 comments Download
M chrome/browser/prerender/prerender_tracker_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/prerender/prerender_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 13 chunks +62 lines, -23 lines 0 comments Download
M chrome/common/prerender_messages.h View 1 chunk +10 lines, -5 lines 0 comments Download
M chrome/renderer/prerender/prerender_dispatcher.h View 1 2 3 4 2 chunks +12 lines, -4 lines 0 comments Download
M chrome/renderer/prerender/prerender_dispatcher.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 chunks +43 lines, -22 lines 0 comments Download
M chrome/renderer/prerender/prerender_dispatcher_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +55 lines, -69 lines 0 comments Download

Messages

Total messages: 31 (0 generated)
gavinp
Matt, WDYT? Notice I made eleven uploads before sending out the mail... That may be ...
8 years ago (2012-12-05 20:00:59 UTC) #1
mmenke
I haven't yet fully reviewed this CL - sorry about that. Know you prefer to ...
8 years ago (2012-12-06 22:22:15 UTC) #2
mmenke
On 2012/12/06 22:22:15, Matt Menke wrote: > I haven't yet fully reviewed this CL - ...
8 years ago (2012-12-07 15:44:49 UTC) #3
mmenke
https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_handle.h File chrome/browser/prerender/prerender_handle.h (right): https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_handle.h#newcode103 chrome/browser/prerender/prerender_handle.h:103: base::WeakPtr<PrerenderManager::PrerenderData> prerender_data_; This can *almost* be made a normal ...
8 years ago (2012-12-07 16:46:08 UTC) #4
mmenke
https://codereview.chromium.org/11316311/diff/36001/chrome/browser/prerender/prerender_handle.cc File chrome/browser/prerender/prerender_handle.cc (right): https://codereview.chromium.org/11316311/diff/36001/chrome/browser/prerender/prerender_handle.cc#newcode79 chrome/browser/prerender/prerender_handle.cc:79: if (prerender_data_ && prerender_data_->contents()) { Since we had a ...
8 years ago (2012-12-07 17:59:29 UTC) #5
gavinp
Matt, This should be closer. The WebKit side has landed, BTW. :D https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_contents.h File chrome/browser/prerender/prerender_contents.h ...
8 years ago (2012-12-10 17:55:10 UTC) #6
mmenke
I'll try to get to this by the end of the day, but it may ...
8 years ago (2012-12-10 18:04:02 UTC) #7
gavinp
On 2012/12/10 18:04:02, Matt Menke wrote: > I'll try to get to this by the ...
8 years ago (2012-12-10 18:34:24 UTC) #8
gavinp
Matt, This latest upload makes sure MatchComplete dummies are properly connected to PrerenderHandle for their ...
8 years ago (2012-12-11 15:50:45 UTC) #9
mmenke
https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_manager.h File chrome/browser/prerender/prerender_manager.h (right): https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_manager.h#newcode292 chrome/browser/prerender/prerender_manager.h:292: void OnCancelByHandle(PrerenderHandle* prerender_handle); On 2012/12/10 17:55:10, gavinp wrote: > ...
8 years ago (2012-12-11 19:53:45 UTC) #10
mmenke
https://codereview.chromium.org/11316311/diff/65002/chrome/browser/prerender/prerender_handle.cc File chrome/browser/prerender/prerender_handle.cc (right): https://codereview.chromium.org/11316311/diff/65002/chrome/browser/prerender/prerender_handle.cc#newcode107 chrome/browser/prerender/prerender_handle.cc:107: // notified of the prerender ending. This comment isn't ...
8 years ago (2012-12-12 16:54:12 UTC) #11
gavinp
How's this looking, Matt? https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_manager.cc File chrome/browser/prerender/prerender_manager.cc (right): https://codereview.chromium.org/11316311/diff/16001/chrome/browser/prerender/prerender_manager.cc#newcode942 chrome/browser/prerender/prerender_manager.cc:942: } On 2012/12/07 16:46:08, Matt ...
8 years ago (2012-12-13 13:38:03 UTC) #12
gavinp
Shishir: Can you look at my predictor changes?
8 years ago (2012-12-13 17:53:16 UTC) #13
Shishir
lgtm for predictors.
8 years ago (2012-12-13 18:12:02 UTC) #14
mmenke
Think we can get this in today - most of these comments should be pretty ...
8 years ago (2012-12-13 18:27:16 UTC) #15
gavinp
Matt, Please take a look. https://codereview.chromium.org/11316311/diff/87001/chrome/browser/predictors/autocomplete_action_predictor.cc File chrome/browser/predictors/autocomplete_action_predictor.cc (right): https://codereview.chromium.org/11316311/diff/87001/chrome/browser/predictors/autocomplete_action_predictor.cc#newcode103 chrome/browser/predictors/autocomplete_action_predictor.cc:103: prerender_handle_.reset(); On 2012/12/13 18:27:16, ...
8 years ago (2012-12-13 20:45:33 UTC) #16
gavinp
https://codereview.chromium.org/11316311/diff/87001/chrome/renderer/prerender/prerender_dispatcher.cc File chrome/renderer/prerender/prerender_dispatcher.cc (right): https://codereview.chromium.org/11316311/diff/87001/chrome/renderer/prerender/prerender_dispatcher.cc#newcode66 chrome/renderer/prerender/prerender_dispatcher.cc:66: to_delete.push(it); On 2012/12/13 18:27:16, Matt Menke wrote: > Think ...
8 years ago (2012-12-13 20:51:24 UTC) #17
mmenke
https://codereview.chromium.org/11316311/diff/87001/chrome/renderer/prerender/prerender_dispatcher.cc File chrome/renderer/prerender/prerender_dispatcher.cc (right): https://codereview.chromium.org/11316311/diff/87001/chrome/renderer/prerender/prerender_dispatcher.cc#newcode43 chrome/renderer/prerender/prerender_dispatcher.cc:43: std::multimap<GURL, int>::value_type(url, prerender_id)); On 2012/12/13 20:45:34, gavinp wrote: > ...
8 years ago (2012-12-13 21:39:42 UTC) #18
gavinp
https://codereview.chromium.org/11316311/diff/92004/chrome/browser/prerender/prerender_handle.cc File chrome/browser/prerender/prerender_handle.cc (right): https://codereview.chromium.org/11316311/diff/92004/chrome/browser/prerender/prerender_handle.cc#newcode9 chrome/browser/prerender/prerender_handle.cc:9: #include "chrome/browser/prerender/prerender_contents.h" On 2012/12/13 21:39:43, Matt Menke wrote: > ...
8 years ago (2012-12-13 22:01:55 UTC) #19
mmenke
LGTM https://codereview.chromium.org/11316311/diff/100004/chrome/browser/prerender/prerender_link_manager.cc File chrome/browser/prerender/prerender_link_manager.cc (right): https://codereview.chromium.org/11316311/diff/100004/chrome/browser/prerender/prerender_link_manager.cc#newcode143 chrome/browser/prerender/prerender_link_manager.cc:143: ids_to_handle_map_.erase(it); Replace last two with just: RemovePrerender(it);
8 years ago (2012-12-13 22:05:46 UTC) #20
gavinp
Thanks for all your time on this Matt. I know it was a tricky one. ...
8 years ago (2012-12-13 22:11:58 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/gavinp@chromium.org/11316311/97003
8 years ago (2012-12-13 22:24:48 UTC) #22
commit-bot: I haz the power
Presubmit check for 11316311-97003 failed and returned exit status 1. Running presubmit commit checks ...
8 years ago (2012-12-13 22:24:55 UTC) #23
gavinp
Justin, Please take a look at prerender_messages.h.
8 years ago (2012-12-13 23:25:40 UTC) #24
mmenke
On 2012/12/13 23:25:40, gavinp wrote: > Justin, > > Please take a look at prerender_messages.h. ...
8 years ago (2012-12-14 22:12:01 UTC) #25
jschuh
Rubberstamp lgtm since this is just browser-> renderer IPC changes.
8 years ago (2012-12-14 22:40:21 UTC) #26
jschuh
On 2012/12/14 22:12:01, Matt Menke wrote: > On 2012/12/13 23:25:40, gavinp wrote: > > Justin, ...
8 years ago (2012-12-14 22:41:22 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/gavinp@chromium.org/11316311/97003
8 years ago (2012-12-14 22:43:50 UTC) #28
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) browser_tests
8 years ago (2012-12-15 05:00:31 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/gavinp@chromium.org/11316311/97003
8 years ago (2012-12-15 15:13:34 UTC) #30
commit-bot: I haz the power
8 years ago (2012-12-15 21:45:20 UTC) #31
Message was sent while issue was closed.
Change committed as 173322

Powered by Google App Engine
This is Rietveld 408576698