diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-04 22:24:10 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-04 22:24:10 +0000 |
commit | f4126df56211740e179d466a1a1af61c9002b2fb (patch) | |
tree | 9e4e3ae25d43068d2f75bd0627e9da16685e7f9e /chrome/browser/predictors | |
parent | 4cccde3ed333f9ed50c4b8fbe0cbad3ea03e4d08 (diff) | |
download | chromium_src-f4126df56211740e179d466a1a1af61c9002b2fb.zip chromium_src-f4126df56211740e179d466a1a1af61c9002b2fb.tar.gz chromium_src-f4126df56211740e179d466a1a1af61c9002b2fb.tar.bz2 |
Fix prerendering from the omnibox.
We were cancelling the existing prerender whenever a new
character was typed, rather than reusing the old prerender
when possible.
BUG=179885
Review URL: https://chromiumcodereview.appspot.com/12387088
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185995 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/predictors')
-rw-r--r-- | chrome/browser/predictors/autocomplete_action_predictor.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc index 0c9dd9a..c991975 100644 --- a/chrome/browser/predictors/autocomplete_action_predictor.cc +++ b/chrome/browser/predictors/autocomplete_action_predictor.cc @@ -140,8 +140,10 @@ void AutocompleteActionPredictor::StartPrerendering( const GURL& url, const content::SessionStorageNamespaceMap& session_storage_namespace_map, const gfx::Size& size) { - if (prerender_handle_) - prerender_handle_->OnCancel(); + // Only cancel the old prerender after starting the new one, so if the URLs + // are the same, the underlying prerender will be reused. + scoped_ptr<prerender::PrerenderHandle> old_prerender_handle( + prerender_handle_.release()); if (prerender::PrerenderManager* prerender_manager = prerender::PrerenderManagerFactory::GetForProfile(profile_)) { content::SessionStorageNamespace* session_storage_namespace = NULL; @@ -152,9 +154,9 @@ void AutocompleteActionPredictor::StartPrerendering( prerender_handle_.reset( prerender_manager->AddPrerenderFromOmnibox( url, session_storage_namespace, size)); - } else { - prerender_handle_.reset(); } + if (old_prerender_handle) + old_prerender_handle->OnCancel(); } // Given a match, return a recommended action. |