OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ | 5 #ifndef CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ |
6 #define CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ | 6 #define CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
473 bool select_after_move); | 473 bool select_after_move); |
474 | 474 |
475 // Returns true if the tab represented by the specified data has an opener | 475 // Returns true if the tab represented by the specified data has an opener |
476 // that matches the specified one. If |use_group| is true, then this will | 476 // that matches the specified one. If |use_group| is true, then this will |
477 // fall back to check the group relationship as well. | 477 // fall back to check the group relationship as well. |
478 struct TabContentsData; | 478 struct TabContentsData; |
479 static bool OpenerMatches(const TabContentsData* data, | 479 static bool OpenerMatches(const TabContentsData* data, |
480 const NavigationController* opener, | 480 const NavigationController* opener, |
481 bool use_group); | 481 bool use_group); |
482 | 482 |
| 483 // Sets the group/opener of any tabs that reference |tab| to NULL. |
| 484 void ForgetOpenersAndGroupsReferencing(const NavigationController* tab); |
| 485 |
483 // Our delegate. | 486 // Our delegate. |
484 TabStripModelDelegate* delegate_; | 487 TabStripModelDelegate* delegate_; |
485 | 488 |
486 // A hunk of data representing a TabContents and (optionally) the | 489 // A hunk of data representing a TabContents and (optionally) the |
487 // NavigationController that spawned it. This memory only sticks around while | 490 // NavigationController that spawned it. This memory only sticks around while |
488 // the TabContents is in the current TabStripModel, unless otherwise | 491 // the TabContents is in the current TabStripModel, unless otherwise |
489 // specified in code. | 492 // specified in code. |
490 struct TabContentsData { | 493 struct TabContentsData { |
491 explicit TabContentsData(TabContentsWrapper* a_contents) | 494 explicit TabContentsData(TabContentsWrapper* a_contents) |
492 : contents(a_contents), | 495 : contents(a_contents), |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 typedef ObserverList<TabStripModelObserver> TabStripModelObservers; | 565 typedef ObserverList<TabStripModelObserver> TabStripModelObservers; |
563 TabStripModelObservers observers_; | 566 TabStripModelObservers observers_; |
564 | 567 |
565 // A scoped container for notification registries. | 568 // A scoped container for notification registries. |
566 NotificationRegistrar registrar_; | 569 NotificationRegistrar registrar_; |
567 | 570 |
568 DISALLOW_COPY_AND_ASSIGN(TabStripModel); | 571 DISALLOW_COPY_AND_ASSIGN(TabStripModel); |
569 }; | 572 }; |
570 | 573 |
571 #endif // CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ | 574 #endif // CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ |
OLD | NEW |