| Index: chrome/browser/ui/browser.cc
|
| diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
|
| index 74ec6ee1281affc118048725c48db01be091ab92..48e60861affb71db38e05a5bfd948ef677993747 100644
|
| --- a/chrome/browser/ui/browser.cc
|
| +++ b/chrome/browser/ui/browser.cc
|
| @@ -206,7 +206,8 @@ Browser::Browser(Type type, Profile* profile)
|
| block_command_execution_(false),
|
| last_blocked_command_id_(-1),
|
| last_blocked_command_disposition_(CURRENT_TAB),
|
| - pending_web_app_action_(NONE) {
|
| + pending_web_app_action_(NONE),
|
| + tab_restore_service_delegate_(this) {
|
| registrar_.Add(this, NotificationType::SSL_VISIBLE_STATE_CHANGED,
|
| NotificationService::AllSources());
|
| registrar_.Add(this, NotificationType::EXTENSION_UPDATE_DISABLED,
|
| @@ -299,7 +300,7 @@ Browser::~Browser() {
|
|
|
| TabRestoreService* tab_restore_service = profile()->GetTabRestoreService();
|
| if (tab_restore_service)
|
| - tab_restore_service->BrowserClosed(this);
|
| + tab_restore_service->BrowserClosed(tab_restore_service_delegate());
|
|
|
| encoding_auto_detect_.Destroy();
|
| printing_enabled_.Destroy();
|
| @@ -894,8 +895,8 @@ void Browser::OnWindowClosing() {
|
| session_service->WindowClosing(session_id());
|
|
|
| TabRestoreService* tab_restore_service = profile()->GetTabRestoreService();
|
| - if (tab_restore_service)
|
| - tab_restore_service->BrowserClosing(this);
|
| + if (tab_restore_service && type() == TYPE_NORMAL && tab_count())
|
| + tab_restore_service->BrowserClosing(tab_restore_service_delegate());
|
|
|
| // TODO(sky): convert session/tab restore to use notification.
|
| NotificationService::current()->Notify(
|
| @@ -966,6 +967,10 @@ void Browser::SelectTabContentsAt(int index, bool user_gesture) {
|
| tab_handler_->GetTabStripModel()->SelectTabContentsAt(index, user_gesture);
|
| }
|
|
|
| +bool Browser::IsTabPinned(int index) const {
|
| + return tabstrip_model()->IsTabPinned(index);
|
| +}
|
| +
|
| void Browser::CloseAllTabs() {
|
| tab_handler_->GetTabStripModel()->CloseAllTabs();
|
| }
|
| @@ -1456,7 +1461,7 @@ void Browser::RestoreTab() {
|
| if (!service)
|
| return;
|
|
|
| - service->RestoreMostRecentEntry(this);
|
| + service->RestoreMostRecentEntry(tab_restore_service_delegate());
|
| }
|
|
|
| void Browser::WriteCurrentURLToClipboard() {
|
| @@ -2569,7 +2574,8 @@ void Browser::CreateHistoricalTab(TabContentsWrapper* contents) {
|
| // We only create historical tab entries for tabbed browser windows.
|
| if (CanSupportWindowFeature(FEATURE_TABSTRIP)) {
|
| profile()->GetTabRestoreService()->CreateHistoricalTab(
|
| - &contents->controller());
|
| + &contents->controller(),
|
| + tab_handler_->GetTabStripModel()->GetIndexOfTabContents(contents));
|
| }
|
| }
|
|
|
|
|