Index: ios/shared/chrome/browser/tabs/web_state_list.h |
diff --git a/ios/shared/chrome/browser/tabs/web_state_list.h b/ios/shared/chrome/browser/tabs/web_state_list.h |
index 854e12778e13d81eae545f938a14caad565b165c..6cf8472bdbbb309f29bddb874ddb1fa52133561d 100644 |
--- a/ios/shared/chrome/browser/tabs/web_state_list.h |
+++ b/ios/shared/chrome/browser/tabs/web_state_list.h |
@@ -10,8 +10,10 @@ |
#include "base/macros.h" |
#include "base/observer_list.h" |
+#include "ui/base/page_transition_types.h" |
class WebStateListObserver; |
+class WebStateListOrderController; |
namespace web { |
class WebState; |
@@ -77,6 +79,13 @@ class WebStateList { |
web::WebState* web_state, |
web::WebState* opener); |
+ // Inserts the specified WebState at the best position in the WebStateList |
+ // given the specified transition, opener (optional, may be null), etc. It |
+ // defaults to inserting the WebState at the end of the list. |
+ void AppendWebState(ui::PageTransition transition, |
+ web::WebState* web_state, |
+ web::WebState* opener); |
+ |
// Moves the WebState at the specified index to another index. |
void MoveWebStateAt(int from_index, int to_index); |
@@ -118,6 +127,10 @@ class WebStateList { |
const WebStateOwnership web_state_ownership_; |
std::vector<std::unique_ptr<WebStateWrapper>> web_state_wrappers_; |
+ // An object that determines where new WebState should be inserted and where |
+ // selection should move when a WebState is detached. |
+ std::unique_ptr<WebStateListOrderController> order_controller_; |
+ |
// List of observers notified of changes to the model. |
base::ObserverList<WebStateListObserver, true> observers_; |