OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 5 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1243 InternalCloseTab(closing_contents, index, | 1243 InternalCloseTab(closing_contents, index, |
1244 (close_types & CLOSE_CREATE_HISTORICAL_TAB) != 0); | 1244 (close_types & CLOSE_CREATE_HISTORICAL_TAB) != 0); |
1245 } | 1245 } |
1246 | 1246 |
1247 return retval; | 1247 return retval; |
1248 } | 1248 } |
1249 | 1249 |
1250 void TabStripModel::InternalCloseTab(WebContents* contents, | 1250 void TabStripModel::InternalCloseTab(WebContents* contents, |
1251 int index, | 1251 int index, |
1252 bool create_historical_tabs) { | 1252 bool create_historical_tabs) { |
1253 // Reset the blocked state of the tab, and fire a notification if necessary. | |
1254 // <http://crbug.com/336386#c4> . TODO(avi): Remove all the "blocked" code and | |
1255 // the WebContentsModalDialogManager from TabStripModel, and move all that | |
1256 // tracking code to the modal dialog code, where it belongs. | |
1257 SetTabBlocked(index, false); | |
1258 | |
1259 FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 1253 FOR_EACH_OBSERVER(TabStripModelObserver, observers_, |
1260 TabClosingAt(this, contents, index)); | 1254 TabClosingAt(this, contents, index)); |
1261 | 1255 |
1262 // Ask the delegate to save an entry for this tab in the historical tab | 1256 // Ask the delegate to save an entry for this tab in the historical tab |
1263 // database if applicable. | 1257 // database if applicable. |
1264 if (create_historical_tabs) | 1258 if (create_historical_tabs) |
1265 delegate_->CreateHistoricalTab(contents); | 1259 delegate_->CreateHistoricalTab(contents); |
1266 | 1260 |
1267 // Deleting the WebContents will call back to us via | 1261 // Deleting the WebContents will call back to us via |
1268 // WebContentsData::WebContentsDestroyed and detach it. | 1262 // WebContentsData::WebContentsDestroyed and detach it. |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1403 void TabStripModel::ForgetOpenersAndGroupsReferencing( | 1397 void TabStripModel::ForgetOpenersAndGroupsReferencing( |
1404 const WebContents* tab) { | 1398 const WebContents* tab) { |
1405 for (WebContentsDataVector::const_iterator i = contents_data_.begin(); | 1399 for (WebContentsDataVector::const_iterator i = contents_data_.begin(); |
1406 i != contents_data_.end(); ++i) { | 1400 i != contents_data_.end(); ++i) { |
1407 if ((*i)->group() == tab) | 1401 if ((*i)->group() == tab) |
1408 (*i)->set_group(NULL); | 1402 (*i)->set_group(NULL); |
1409 if ((*i)->opener() == tab) | 1403 if ((*i)->opener() == tab) |
1410 (*i)->set_opener(NULL); | 1404 (*i)->set_opener(NULL); |
1411 } | 1405 } |
1412 } | 1406 } |
OLD | NEW |