summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_manager.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove WebContentsObservers dependencies on WebFrame::uniqueName().dcheng@chromium.org2014-07-011-8/+4
| | | | | | | | | | | | | | | This is step 1 towards removing the Blink API, since the unique name generation for frames should not be happening on a per-renderer basis. Also replaces the |frame_id| and |render_view_host| parameters of DidFailProvisionalLoadForFrame and DidCommitProvisionalLoadForFrame with a RenderFrameHost pointer. BUG=389738 Review URL: https://codereview.chromium.org/340423003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280711 0039d316-1c4b-4281-b951-d872f2087c98
* Add UMA metrics for Android Chrome Google Search.kmadhusu@chromium.org2014-06-201-3/+3
| | | | | | | | | | | | | | | To analyze the impact of prefetching high-confidence search suggestions in Android Chrome, this CL, - Adds a listener for counting Google searches from various search access points. No actual search query content is observed. - Records the search count based on the prerendering settings. (see trybot results in patchset #8). BUG=382694 R=asvitkine@chromium.org, davidben@chromium.org, jam@chromium.org, pkasting@chromium.org, samarth@chromium.org Review URL: https://codereview.chromium.org/342053002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278835 0039d316-1c4b-4281-b951-d872f2087c98
* Change HistoryService::QueryURL to use CancelableTaskTrackersdefresne@chromium.org2014-06-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | The callback no longer receive an HistoryService::Handle as first parameter and the caller should use the returned base::CancelableTaskTrasker::TaskId to cancel a request early. Instead of passing a CancelableRequestConsumer to the query, the caller pass a base::CancelableTaskTracker. The lifetime of the callback can be associated to the request by using base::Passed(). Remove unused types and fix usage of the values passed to the result callback (check success before using the URLRow or the VisitVector). BUG=371818 TBR=asargent@chromium.org TBR=bauerb@chromium.org TBR=blundell@chromium.org TBR=gavinp@chromium.org TBR=pkasting@chromium.org TBR=shess@chromium.org TBR=sky@chromium.org Review URL: https://codereview.chromium.org/333843003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277429 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Change HistoryService::QueryURL to use CancelableTaskTracker ↵feng@chromium.org2014-06-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/314293005/) Reason for revert: Break Clank ToT build: https://uberchromegw.corp.google.com/i/clank.tot/builders/instrumentation-yakju-clankium-tot/builds/29577/steps/compile/logs/stdio Original issue's description: > Change HistoryService::QueryURL to use CancelableTaskTracker > > The callback no longer receive an HistoryService::Handle as first parameter > and the caller should use the returned base::CancelableTaskTrasker::TaskId > to cancel a request early. > > Instead of passing a CancelableRequestConsumer to the query, the caller > pass a base::CancelableTaskTracker. The lifetime of the callback can be > associated to the request by using base::Passed(). > > Remove unused types and fix usage of the values passed to the result > callback (check success before using the URLRow or the VisitVector). > > BUG=371818 > TBR=bauerb,sky,asargent,gavinp,shess,pkasting > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=276739 TBR=blundell@chromium.org,bauerb@chromium.org,sky@chromium.org,asargent@chromium.org,gavinp@chromium.org,shess@chromium.org,pkasting@chromium.org,sdefresne@chromium.org NOTREECHECKS=true NOTRY=true BUG=371818 Review URL: https://codereview.chromium.org/330703005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276825 0039d316-1c4b-4281-b951-d872f2087c98
* Change HistoryService::QueryURL to use CancelableTaskTrackersdefresne@chromium.org2014-06-121-4/+4
| | | | | | | | | | | | | | | | | | | | The callback no longer receive an HistoryService::Handle as first parameter and the caller should use the returned base::CancelableTaskTrasker::TaskId to cancel a request early. Instead of passing a CancelableRequestConsumer to the query, the caller pass a base::CancelableTaskTracker. The lifetime of the callback can be associated to the request by using base::Passed(). Remove unused types and fix usage of the values passed to the result callback (check success before using the URLRow or the VisitVector). BUG=371818 TBR=bauerb,sky,asargent,gavinp,shess,pkasting Review URL: https://codereview.chromium.org/314293005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276739 0039d316-1c4b-4281-b951-d872f2087c98
* Add a field trial to disable deferred committing of cookie changestburkard@chromium.org2014-05-261-1/+4
| | | | | | | | | | | by prerender. This can be used to emergency disable the feature, or to do comparisons of other metrics. R=davidben@chromium.org Review URL: https://codereview.chromium.org/293123010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272824 0039d316-1c4b-4281-b951-d872f2087c98
* * Rename Prerender.NetworkBytes.* histograms to Prerender.NetworkBytes*jkarlin@chromium.org2014-05-151-1/+1
| | | | | | | | | | | | | | * Deprecate the old histogram names in histograms.xml * Add origin prefixes to Prerender.NetworkBytes histograms. * Stop recording prerenders of size 0. BUG= Review URL: https://codereview.chromium.org/283703005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270735 0039d316-1c4b-4281-b951-d872f2087c98
* Only commit cookie changes in prerenders after a prerender is showntburkard@chromium.org2014-05-131-0/+37
| | | | | | | | | | | | | | Will create a PrerenderCookieStore for each prerender, retaining all cookie operations of a prerender until the prerender is shown to the user. Forces prerenders to be in a new render process by themselves for this to work. This is a resubmission of https://codereview.chromium.org/233353003, which had to be reverted due to build breaks. See LGTM's there. BUG=371003 TBR=jam@chromium.org Review URL: https://codereview.chromium.org/280403002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270049 0039d316-1c4b-4281-b951-d872f2087c98
* Add to the prerender history when no PrerenderContents is created.mmenke@chromium.org2014-05-121-4/+5
| | | | | | | | | | | Without this, the net-internals prerendering tests fail when a cancel that creates a PrerenderContents is replaced with one that does not. BUG=372471 Review URL: https://codereview.chromium.org/286433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269900 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 269855 "Only commit cookie changes in prerenders after a ..."piman@chromium.org2014-05-121-37/+0
| | | | | | | | | | | | | | | | | | | | | This broke again - http://build.chromium.org/p/chromium.mac/buildstatus?builder=Mac%2010.7%20Tests%20%28dbg%29%281%29&number=23472 > Only commit cookie changes in prerenders after a prerender is shown > Will create a PrerenderCookieStore for each prerender, retaining all cookie > operations of a prerender until the prerender is shown to the user. > Forces prerenders to be in a new render process by themselves for this to work. > BUG=371003 > > This is a resubmission of https://codereview.chromium.org/233353003, which had > to be reverted due to build breaks. See LGTM's there. > > Review URL: https://codereview.chromium.org/278403003 TBR=tburkard@chromium.org Review URL: https://codereview.chromium.org/280383002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269879 0039d316-1c4b-4281-b951-d872f2087c98
* Only commit cookie changes in prerenders after a prerender is showntburkard@chromium.org2014-05-121-0/+37
| | | | | | | | | | | | | | Will create a PrerenderCookieStore for each prerender, retaining all cookie operations of a prerender until the prerender is shown to the user. Forces prerenders to be in a new render process by themselves for this to work. BUG=371003 This is a resubmission of https://codereview.chromium.org/233353003, which had to be reverted due to build breaks. See LGTM's there. Review URL: https://codereview.chromium.org/278403003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269855 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 269798 "Only commit cookie changes in prerenders after a ..."mmenke@chromium.org2014-05-121-37/+0
| | | | | | | | | | | | | | | | | | | | This broke prerender omnibox tests (Failing on tree, also failed on trybot runs for the CL). > Only commit cookie changes in prerenders after a prerender is shown > Will create a PrerenderCookieStore for each prerender, retaining all cookie > operations of a prerender until the prerender is shown to the user. > Forces prerenders to be in a new render process by themselves for this to work. > BUG=371003 > R=creis@chromium.org, davidben@chromium.org, erikwright@chromium.org, jam@chromium.org, jochen@chromium.org > > Review URL: https://codereview.chromium.org/233353003 TBR=tburkard@chromium.org Review URL: https://codereview.chromium.org/279173005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269812 0039d316-1c4b-4281-b951-d872f2087c98
* Only commit cookie changes in prerenders after a prerender is showntburkard@chromium.org2014-05-121-0/+37
| | | | | | | | | | | | Will create a PrerenderCookieStore for each prerender, retaining all cookie operations of a prerender until the prerender is shown to the user. Forces prerenders to be in a new render process by themselves for this to work. BUG=371003 R=creis@chromium.org, davidben@chromium.org, erikwright@chromium.org, jam@chromium.org, jochen@chromium.org Review URL: https://codereview.chromium.org/233353003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269798 0039d316-1c4b-4281-b951-d872f2087c98
* We have a problem in the process on destroying WebContentsImpl becausezverre@yandex-team.ru2014-05-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | each WebContentsObserver first NULLs its web_contents_ pointer and performs cleanup code after that. This could work if we guaranteed that every WebContentsObserver doesn't directly or indirectly affect any other WebContentsObserver. But actually WebContentsObservers can do anything and also affect each other. And if one WebContentsObserver already NULLed its web_contents_ pointer (e.g. ZoomController) other WebContentsObserver (e.g. InterstitialPageImpl) calls it (indirectly in this case) we have problems and result depends on ordering of WebContentsObservers in the list of observers. The solution splits that process into two phases. First we let each WebContentsObserver to perform their cleanup code and at that point they can freely call each other, we completely don't care about the ordering. We can call this phase as untrusted phase because we deal with some cleanup code that can do anything. After that we make second pass and NULL each web_contents_ pointer and this phase is trusted because we call only private implementation of WebContentsObserver that we definitely can trust. BUG=363564 Review URL: https://codereview.chromium.org/257153003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269264 0039d316-1c4b-4281-b951-d872f2087c98
* Gather Prerender.AbandonTimeUntilUsed.davidben@chromium.org2014-03-271-0/+5
| | | | | | | | | | | The time between use and abandon, to determine if we can cut down that length a bit. BUG=356290 Review URL: https://codereview.chromium.org/211213006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259889 0039d316-1c4b-4281-b951-d872f2087c98
* Add more stats about the use of cookies in prerenders.tburkard@chromium.org2014-03-191-0/+6
| | | | | | | | | | | For prerender cookie stats, also record whether cookie requests were for third party cookies, and whether those were for blocking resources. BUG=353678 R=asvitkine@chromium.org, davidben@chromium.org, jochen@chromium.org Review URL: https://codereview.chromium.org/203783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257969 0039d316-1c4b-4281-b951-d872f2087c98
* Move clients of BrowserContextKeyedService to use KeyedService (#4)blundell@chromium.org2014-03-141-3/+3
| | | | | | | | | | | | | This change covers: - //components - Roughly half of the remaining clients in //chrome BUG=351704 TBR=jochen Review URL: https://codereview.chromium.org/198193002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257067 0039d316-1c4b-4281-b951-d872f2087c98
* Reports UMA data for bytes fetched over the network for used andjkarlin@chromium.org2014-02-141-0/+15
| | | | | | | | | | | | | | | | unused prerenders. It also reports on the total number of bytes fetched for that profile since the last prerender report. This gives us insight into the balance of used vs wasted prerenders. Understanding the ratio of wasted prerender bytes to total bytes gives us a better understanding of whether we need an option to disable prerender on mobile networks. BUG=334602 Review URL: https://codereview.chromium.org/160513002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251316 0039d316-1c4b-4281-b951-d872f2087c98
* Add new prerender origin type for <link rel=next ...> launched prerenders.gavinp@chromium.org2014-02-131-0/+1
| | | | | | | | | | | | | | | | | | | | By adding rel=next as an origin, we get histogram reporting on many of our existing histograms. The one tricky decision is that a prerender can have multiple rel types (both next and prerender), and that by origin we currently distinguish samedomain vs crossdomain. In this CL we treat a prerender with both next and prerender rel types as rel=prerender, and we do not distinguish cross vs same domain on rel=next prerenders. R=tburkard,davidben,isherman@chromium.org BUG=329963 Review URL: https://codereview.chromium.org/121293002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251139 0039d316-1c4b-4281-b951-d872f2087c98
* Fix leak in PrerenderManager::MarkWebContentsAs*davidben@chromium.org2014-02-061-85/+9
| | | | | | | | | | | | | | | | | | | If a mark happens in the last navigation a WebContents ever does, we leak an entry in the hash table on PrerenderManager. Instead, move all the state machines and logic to PrerenderTabHelper. Remove prerender_manager_unittests.cc as they are no longer relevant. Instead, add tests to PrerenderBrowserTest which assert that the correct PPLT events get emitted in the relevant cases. BUG=334781 TEST=PrerenderBrowserTest.PrerenderPage PrerenderBrowserTest.PrerenderPageCrossDomain PrerenderBrowserTest.MatchCompleteDummy PrerenderBrowserTest.PrerenderDeferredImage PrerenderBrowserTest.PrerenderPPLTNormalNavigation Review URL: https://codereview.chromium.org/131613006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249441 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dead code from PrerenderManager.davidben@chromium.org2014-02-061-3/+0
| | | | | | | | | | FindPrerenderManagerUsingRenderProcessId isn't called anywhere. BUG=none Review URL: https://codereview.chromium.org/154553002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249429 0039d316-1c4b-4281-b951-d872f2087c98
* Move pending prerender logic into PrerenderLinkManager.davidben@chromium.org2014-02-041-12/+6
| | | | | | | | | | | | | | | | | Pending prerenders should not count towards max_link_concurrency. Fix and re-enable the tests accordingly. This also removes the last instances of unpaired content::RunMessageLoop() / base::MessageLoop::current()->Quit() calls in the browser tests. All waiting should now use the new base::RunLoop-based code. Also add a new test to check pending prerenders are canceled when their launching prerenders are. BUG=333276,167792,145248,307592 Review URL: https://codereview.chromium.org/146983002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248646 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure there is only one prerender PendingSwap per target WebContents.davidben@chromium.org2014-01-301-1/+10
| | | | | | | | | | | | | | | Add a test for this. Also add another test to further improve PendingSwap's test coverage. Restore the behavior where PendingSwaps get removed when they move to to_delete_prerenders_ and revise the long comment about the this-deleting consequences of this. BUG=338374 TEST=PrerenderBrowserTest.PrerenderPendingSwapNewNavigation, PrerenderBrowserTest.PrerenderDoublePendingSwap Review URL: https://codereview.chromium.org/146833013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248036 0039d316-1c4b-4281-b951-d872f2087c98
* Use AboutToNavigateRenderView in prerender PendingSwaps.davidben@chromium.org2014-01-271-3/+4
| | | | | | | | | | | | | | | | | Instead of attaching to all created RenderViewHosts, be more targetted and attach only to the RenderViewHost to be navigated in. This is not directly related to PrerenderPageNewTab flakiness or beforeunload, but having a more targetted throttle will making it easier to delay swaps until throttle is attached, which should resolve both problems. Tested manually by checking PrerenderPageNewTab* with print statements in PrerenderPendingSwapThrottle. The relevant tests themselves are still flaky. BUG=335835,304932 Review URL: https://codereview.chromium.org/144543008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247271 0039d316-1c4b-4281-b951-d872f2087c98
* Record stats whether a prerender has been visited before, based on thetburkard@chromium.org2014-01-221-0/+10
| | | | | | | | | | history database. R=asvitkine@chromium.org, davidben@chromium.org Review URL: https://codereview.chromium.org/145043002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246359 0039d316-1c4b-4281-b951-d872f2087c98
* A lot of plumbing to get render_frame_id to ↵jam@chromium.org2014-01-211-1/+1
| | | | | | | | | | | PrerenderManager::OnCreatingAudioStream. The goal is that PrerenderTracker (almost the last caller of the deprecated GetAssociatedRenderFrame) will keep track of RenderFrame IDs instead of RenderView IDs. BUG=304341 R=miu@chromium.org, nasko@chromium.org Review URL: https://codereview.chromium.org/106913004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246045 0039d316-1c4b-4281-b951-d872f2087c98
* Add back the code to PrerenderManager::PendingSwap to handle ↵jam@chromium.org2014-01-171-1/+3
| | | | | | | | | | | | | RenderViewCreated being called for a cross-site navigation. The two tests are from David's https://codereview.chromium.org/140073003. BUG=330735 R=davidben@chromium.org, tburkard@chromium.org Review URL: https://codereview.chromium.org/138583003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245386 0039d316-1c4b-4281-b951-d872f2087c98
* Remove Prerender.FractionalPixelsFinalAtSwap logic.davidben@chromium.org2014-01-151-5/+0
| | | | | | | | | | | It hasn't done anything for a year and a half now. BUG=none TEST=no behavior change. Review URL: https://codereview.chromium.org/131743003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244869 0039d316-1c4b-4281-b951-d872f2087c98
* Switch the prerendering pending swap code to use render frame IDs instead of ↵jam@chromium.org2014-01-151-3/+1
| | | | | | | | | | | render views. BUG=304341 R=tburkard@chromium.org Review URL: https://codereview.chromium.org/138613004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244841 0039d316-1c4b-4281-b951-d872f2087c98
* Fix prerenders firing external protocol prompts.davidben@chromium.org2014-01-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | This regressed in https://codereview.chromium.org/124393002 due to a race. It is possible for a PrerenderContents to be a doomed, but not yet destroyed, state. Handle this state accordingly. - If LaunchURL in ChromeRDHDelegate races with tab close and can't find a WebContents, don't launch the external protocol. - PrerenderManager::GetPrerenderContents no longer returns NULL for prerenders in the to_delete_prerenders_ list. - PrerenderBrowserTest.*UnsupportedScheme* no longer tries to navigate to the destination URL. - Re-enable PrerenderCancelSubresourceUnsupportedScheme in hopes this or other changes alleviate the flakiness. Otherwise it can be disabled again. - Assert that external protocol handlers do not run in prerender browsertests, so this regression is caught next time. BUG=333355,249179 TEST=PrerenderBrowserTest.*UnsupportedScheme* Review URL: https://codereview.chromium.org/134753002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244729 0039d316-1c4b-4281-b951-d872f2087c98
* Record histograms of the cookie status of a prerender:tburkard@chromium.org2014-01-141-0/+16
| | | | | | | | | | | | | | | | We record a bitmap of which of the four combinations (send cookies, change cookies) x (main frame http request, other resource) occur. To determine whether a cookie presented was created as part of the prerender or existed before, we check the cookie creation time relative to prerender start. This may be inaccurate if the user happens to browse the same domain while a prerender is in progress, but we will assume this is not very common. R=asvitkine@chromium.org, davidben@chromium.org, jochen@chromium.org Review URL: https://codereview.chromium.org/133913003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244662 0039d316-1c4b-4281-b951-d872f2087c98
* Move DidReceiveServerRedirectForProvisionalLoad from RenderView to RenderFramenasko@chromium.org2014-01-101-1/+1
| | | | | | | | | BUG=304341 R=jam@chromium.org Review URL: https://codereview.chromium.org/129813006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244265 0039d316-1c4b-4281-b951-d872f2087c98
* Remove PrerenderTracker::TryCancel* methods and associated ones, since ↵jam@chromium.org2014-01-101-6/+0
| | | | | | | | | | | destruction of prerender only happens on the UI thread through PrerenderContents now. BUG=304341 R=mmenke@chromium.org, tburkard@chromium.org Review URL: https://codereview.chromium.org/132613002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244196 0039d316-1c4b-4281-b951-d872f2087c98
* Handle should_replace_current_entry in prerender.davidben@chromium.org2013-12-131-3/+9
| | | | | | | | | | | | | | | This fixes calls to location.replace which trigger a prerender. History entries after the current one are incorrectly discarded (http://crbug.com/317872), but the current entry is correctly replaced. BUG=305400 TEST=PrerenderBrowserTest.PrerenderReplaceCurrentEntry NavigationControllerTest.CopyStateFromAndPruneReplaceEntry NavigationControllerTest.CopyStateFromAndPruneMaxEntriesReplaceEntry Review URL: https://codereview.chromium.org/49003011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240535 0039d316-1c4b-4281-b951-d872f2087c98
* Move prefetch into its own directory. This CL also separates thejkarlin@google.com2013-12-121-7/+0
| | | | | | | | | | field trial logic. Prefetch field trials are no longer hard-coded. BUG=327002 Review URL: https://codereview.chromium.org/111763002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240428 0039d316-1c4b-4281-b951-d872f2087c98
* Convert string16 to base::string16 in chrome/browserbrettw@chromium.org2013-12-111-3/+3
| | | | | | | | TBR=sky Review URL: https://codereview.chromium.org/112943002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240149 0039d316-1c4b-4281-b951-d872f2087c98
* Enable Instant Support - Part 1kmadhusu@chromium.org2013-12-111-0/+2
| | | | | | | | | | | | | This CL implements InstantSearchPrerenderer. InstantSearchPrerenderer is responsible for prerendering default search provider Instant search base page URL to prefetch high-confidence search suggestion. It manages the prerender handle associated with the prerendered contents. When the user commits the search query, InstantSearchPrerenderer submits query to the prerendered page and the Browser will swap the prerendered contents with active web contents. BUG=269186 TEST=none Review URL: https://codereview.chromium.org/51813002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239931 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor prerender pending swap logic.davidben@chromium.org2013-12-101-31/+22
| | | | | | | | | | | | | | | | | | Convert the timeout to a OneShotTimer. Also rearrange MaybeUsePrerenderedPage and SwapInternal so the latter only does the swap while the former looks up the PrerenderData. Move the merge and timeout callbacks into PendingData so we don't need to pass in callbacks solely for the purpose of cancelling them. This removes events PRERENDER_EVENT_MERGE_RESULT_TIMEOUT_CB and RERENDER_EVENT_MERGE_RESULT_RESULT_CB as they were redundant with TIMED_OUT and MERGE_DONE. BUG=none TEST=no behavior change; PrerenderBrowserTests.* Review URL: https://codereview.chromium.org/98373010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@239658 0039d316-1c4b-4281-b951-d872f2087c98
* Create prerender event histograms by origin & experiment.tburkard@chromium.org2013-12-031-1/+1
| | | | | | | | R=asvitkine@chromium.org, davidben@chromium.org Review URL: https://codereview.chromium.org/100133002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238440 0039d316-1c4b-4281-b951-d872f2087c98
* When there is a session storage namespace mismatch during prerender swap-in, ↵tburkard@chromium.org2013-11-261-1/+95
| | | | | | | | | | attempt merging namespaces. Re-submission of https://codereview.chromium.org/59823003/ see other lgtm's there Review URL: https://codereview.chromium.org/86593004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237203 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 237109 "When there is a session storage namespace mismatc..."rsleevi@chromium.org2013-11-251-95/+1
| | | | | | | | | | | | | | > When there is a session storage namespace mismatch during prerender swap-in, attempt merging namespaces. > > R=davidben@chromium.org, jam@chromium.org, michaeln@chromium.org, creis@chromium.org > > Review URL: https://codereview.chromium.org/59823003 TBR=tburkard@chromium.org Review URL: https://codereview.chromium.org/86393002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237132 0039d316-1c4b-4281-b951-d872f2087c98
* When there is a session storage namespace mismatch during prerender swap-in, ↵tburkard@chromium.org2013-11-251-1/+95
| | | | | | | | | | attempt merging namespaces. R=davidben@chromium.org, jam@chromium.org, michaeln@chromium.org, creis@chromium.org Review URL: https://codereview.chromium.org/59823003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237109 0039d316-1c4b-4281-b951-d872f2087c98
* To support Instant Search in InstantExtended mode, this CLkmadhusu@chromium.org2013-11-081-0/+9
| | | | | | | | | | | | | (1) Adds an interface in PrerenderManager to prerender Instant Search URL. (2) Adds a new origin type in prerender::Origin enum. (3) Adds an accessor function in PrerenderHandle to get PrerenderContents. BUG=269186 TEST=none Review URL: https://codereview.chromium.org/49783007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233757 0039d316-1c4b-4281-b951-d872f2087c98
* Add ExternalPrerenderRequestHandler and related APIyusufo@chromium.org2013-11-071-0/+10
| | | | | | | | | | | | This class will be used to handle prerender requests coming from external applications. For better tracking and also supportig referrer, a separate PrerenderManager API is added. BUG=297859 Review URL: https://codereview.chromium.org/45693002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233457 0039d316-1c4b-4281-b951-d872f2087c98
* Improve prerender handling of NavigateParams.davidben@chromium.org2013-10-211-5/+10
| | | | | | | | | | | | | | | | There aren't many uses of extra_headers and use_post, but we shouldn't trigger prerenders in those cases. Also update params->target_contents after swap and follow through with chrome::Navigate cleanup code, as SwapInInstantNTP does. Modify tests to assert the correct WebContents was returned out of Browser::OpenURL. BUG=none TEST=PrerenderBrowserTest.PrerenderExtraHeadersNoSwap PrerenderBrowserTest.PrerenderBrowserInitiatedPostNoSwap Review URL: https://codereview.chromium.org/26829003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229930 0039d316-1c4b-4281-b951-d872f2087c98
* Permit prerenders when subresources are about:blank.tburkard@chromium.org2013-08-031-0/+4
| | | | | | | | | R=cbentzel@chromium.org, thestig@chromium.org BUG=268084 Review URL: https://codereview.chromium.org/21653005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215515 0039d316-1c4b-4281-b951-d872f2087c98
* Prerender: Cancel prerender on creation of any Audio Streamshishir@chromium.org2013-07-181-1/+7
| | | | | | | | BUG=136262 Review URL: https://chromiumcodereview.appspot.com/19220003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212245 0039d316-1c4b-4281-b951-d872f2087c98
* chrome/browser: Migrate from googleurl/ includes to url/ ones. Part 1tfarina@chromium.org2013-07-021-1/+1
| | | | | | | | | BUG=229660 TBR=darin@chromium.org Review URL: https://chromiumcodereview.appspot.com/18054023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209705 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of time headers in chrome/browser/, part 6.avi@chromium.org2013-06-281-2/+2
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/18123004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209038 0039d316-1c4b-4281-b951-d872f2087c98
* Rename base/hash_tables to base/containers/hash_tables.brettw@chromium.org2013-06-111-1/+1
| | | | | | | | | | | Remove forwarding header BUG= R=avi@chromium.org Review URL: https://codereview.chromium.org/16667019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205584 0039d316-1c4b-4281-b951-d872f2087c98