diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 18:41:14 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-27 18:41:14 +0000 |
commit | 3bfd411d26d35f46fd0b2b11e0849f0acc174e39 (patch) | |
tree | 1003274432152d4e0c62c9b5c846d1ba551773d1 /chrome/common/chrome_plugin_lib.cc | |
parent | d075f3b8a0ef567e6486a7df4cfe9bd47edadf9f (diff) | |
download | chromium_src-3bfd411d26d35f46fd0b2b11e0849f0acc174e39.zip chromium_src-3bfd411d26d35f46fd0b2b11e0849f0acc174e39.tar.gz chromium_src-3bfd411d26d35f46fd0b2b11e0849f0acc174e39.tar.bz2 |
Fixes tab contents crash. This changes a number of things in dragged
tab controller:
. DraggedTabController now installs itself as the delegate of the
TabContents immediately. It needs to do this so that it can stay in
sync if the selected TabContents of the NavigationController
changes.
. DraggedTabController forwards changes to the selected TabContents to
the original delegate. This needs to be done so that the original
delegate can do any cleanup it needs to do. For example, Browser
needs to know if the tab contents changes so that it can remove
entries from its internal mapping of what TabContents need to be
updated. Similarly the TabStripModel needs to install a listener on
the new TabContents type.
. If the tab is destroyed while dragging we shouldn't set the
attached_tabstrip_ to NULL. Doing so results in invoking
source_tabstrip_->DestroyDraggedSourceTab(source_tab_), which is not
what should happen.
These changes are subtle, so give them a good think.
BUG=6369
TEST=this is covered by chrome bot tests. But be sure and exercise tab
dragging in as many permutations as you can to make sure this
doesn't break anything.
Review URL: http://codereview.chromium.org/19026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8731 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/chrome_plugin_lib.cc')
0 files changed, 0 insertions, 0 deletions