OLD | NEW |
---|---|
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "components/sessions/core/tab_restore_service_helper.h" | 5 #include "components/sessions/core/tab_restore_service_helper.h" |
6 | 6 |
7 #include <inttypes.h> | 7 #include <inttypes.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
403 return ValidateWindow(static_cast<const Window&>(entry)); | 403 return ValidateWindow(static_cast<const Window&>(entry)); |
404 } | 404 } |
405 NOTREACHED(); | 405 NOTREACHED(); |
406 return false; | 406 return false; |
407 } | 407 } |
408 | 408 |
409 void TabRestoreServiceHelper::PopulateTab(Tab* tab, | 409 void TabRestoreServiceHelper::PopulateTab(Tab* tab, |
410 int index, | 410 int index, |
411 LiveTabContext* context, | 411 LiveTabContext* context, |
412 LiveTab* live_tab) { | 412 LiveTab* live_tab) { |
413 const int pending_index = live_tab->GetPendingEntryIndex(); | |
414 int entry_count = | 413 int entry_count = |
415 live_tab->IsInitialBlankNavigation() ? 0 : live_tab->GetEntryCount(); | 414 live_tab->IsInitialBlankNavigation() ? 0 : live_tab->GetEntryCount(); |
416 if (entry_count == 0 && pending_index == 0) | |
Eugene But (OOO till 7-30)
2017/03/21 22:31:14
When entry_count is 0, then pending_index is alway
Charlie Reis
2017/03/22 22:49:49
Yes, I can't think of a case that both entry_count
| |
417 entry_count++; | |
418 tab->navigations.resize(static_cast<int>(entry_count)); | 415 tab->navigations.resize(static_cast<int>(entry_count)); |
419 for (int i = 0; i < entry_count; ++i) { | 416 for (int i = 0; i < entry_count; ++i) { |
420 SerializedNavigationEntry entry = (i == pending_index) | 417 SerializedNavigationEntry entry = live_tab->GetEntryAtIndex(i); |
Eugene But (OOO till 7-30)
2017/03/21 22:31:15
Because |entry_count| does not include pending ite
sky
2017/03/22 03:20:16
Are you sure about that? I thought reload and poss
Eugene But (OOO till 7-30)
2017/03/22 14:38:40
It is true that reload and back-forward navigation
Charlie Reis
2017/03/22 22:49:49
Yeah, pointing to an existing one is fine-- your C
| |
421 ? live_tab->GetPendingEntry() | |
422 : live_tab->GetEntryAtIndex(i); | |
423 tab->navigations[i] = entry; | 418 tab->navigations[i] = entry; |
424 } | 419 } |
425 tab->timestamp = TimeNow(); | 420 tab->timestamp = TimeNow(); |
426 tab->current_navigation_index = live_tab->GetCurrentEntryIndex(); | 421 tab->current_navigation_index = live_tab->GetCurrentEntryIndex(); |
427 tab->tabstrip_index = index; | 422 tab->tabstrip_index = index; |
428 | 423 |
429 tab->extension_app_id = client_->GetExtensionAppIDForTab(live_tab); | 424 tab->extension_app_id = client_->GetExtensionAppIDForTab(live_tab); |
430 | 425 |
431 tab->user_agent_override = live_tab->GetUserAgentOverride(); | 426 tab->user_agent_override = live_tab->GetUserAgentOverride(); |
432 | 427 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
554 tab.browser_id = new_id; | 549 tab.browser_id = new_id; |
555 } | 550 } |
556 } | 551 } |
557 } | 552 } |
558 | 553 |
559 base::Time TabRestoreServiceHelper::TimeNow() const { | 554 base::Time TabRestoreServiceHelper::TimeNow() const { |
560 return time_factory_ ? time_factory_->TimeNow() : base::Time::Now(); | 555 return time_factory_ ? time_factory_->TimeNow() : base::Time::Now(); |
561 } | 556 } |
562 | 557 |
563 } // namespace sessions | 558 } // namespace sessions |
OLD | NEW |