diff options
author | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-04 18:13:51 +0000 |
---|---|---|
committer | brettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-04 18:13:51 +0000 |
commit | 1fcffab820c3a870d0c1b2baa71184984c2c7cc2 (patch) | |
tree | 969c14ed55c824485d557ba1de14d8c70f24abbe /chrome | |
parent | 13ef73fa2247e0bd16b5a95c57e9cdbaef1aaba3 (diff) | |
download | chromium_src-1fcffab820c3a870d0c1b2baa71184984c2c7cc2.zip chromium_src-1fcffab820c3a870d0c1b2baa71184984c2c7cc2.tar.gz chromium_src-1fcffab820c3a870d0c1b2baa71184984c2c7cc2.tar.bz2 |
Evil wallpaper hack to hide a crash when going back from an interstitial and then renavigating very quickly.
BUG=2855
Review URL: http://codereview.chromium.org/9330
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4608 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/navigation_controller.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chrome/browser/navigation_controller.cc b/chrome/browser/navigation_controller.cc index 77d5269..cc05bc7d 100644 --- a/chrome/browser/navigation_controller.cc +++ b/chrome/browser/navigation_controller.cc @@ -929,6 +929,23 @@ void NavigationController::DiscardNonCommittedEntries() { NavigationEntry* last_entry = GetLastCommittedEntry(); if (last_entry && last_entry->tab_type() != active_contents_->type()) { TabContents* from_contents = active_contents_; + if (from_contents->type() == active_contents_->type()) { + // EVIL HACK ALERT! This condition is a wallpaper patch around bug + // http://code.google.com/p/chromium/issues/detail?id=2855 + // See the bug for more, but the short answer is that an old render view + // host's "cancel" message will get received by a newer one that happens + // to be navigated to the same URL, which will trigger improperly + // discarding the pending entry. This will in turn trigger tab contents + // collection and other bad things. + // + // This early return doesn't fix the problem at all, but does prevent the + + // immediate crash. There are very likely to be problems as a result of + // the confused state that this generates, so the underlying bug really + // needs to be fixed! + return; + } + from_contents->set_is_active(false); // Switch back to the previous tab contents. |