Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: components/sync_sessions/synced_session_tracker_unittest.cc

Issue 2499023004: [Sync] Introduce SyncedSessionWindow type. (Closed)
Patch Set: Address comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/sync_sessions/synced_session_tracker.h" 5 #include "components/sync_sessions/synced_session_tracker.h"
6 6
7 #include "base/rand_util.h" 7 #include "base/rand_util.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "components/sessions/core/serialized_navigation_entry_test_helper.h" 10 #include "components/sessions/core/serialized_navigation_entry_test_helper.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 SyncedSession* session = GetTracker()->GetSession(kTag); 62 SyncedSession* session = GetTracker()->GetSession(kTag);
63 ASSERT_EQ(1U, session->windows.size()); 63 ASSERT_EQ(1U, session->windows.size());
64 // Should clean up memory on its own. 64 // Should clean up memory on its own.
65 } 65 }
66 66
67 TEST_F(SyncedSessionTrackerTest, PutTabInWindow) { 67 TEST_F(SyncedSessionTrackerTest, PutTabInWindow) {
68 GetTracker()->PutWindowInSession(kTag, 10); 68 GetTracker()->PutWindowInSession(kTag, 10);
69 GetTracker()->PutTabInWindow(kTag, 10, 15); // win id 10, tab id 15 69 GetTracker()->PutTabInWindow(kTag, 10, 15); // win id 10, tab id 15
70 SyncedSession* session = GetTracker()->GetSession(kTag); 70 SyncedSession* session = GetTracker()->GetSession(kTag);
71 ASSERT_EQ(1U, session->windows.size()); 71 ASSERT_EQ(1U, session->windows.size());
72 ASSERT_EQ(1U, session->windows[10]->tabs.size()); 72 ASSERT_EQ(1U, session->windows[10]->wrapped_window.tabs.size());
73 ASSERT_EQ(GetTracker()->GetTab(kTag, 15), 73 ASSERT_EQ(GetTracker()->GetTab(kTag, 15),
74 session->windows[10]->tabs[0].get()); 74 session->windows[10]->wrapped_window.tabs[0].get());
75 // Should clean up memory on its own. 75 // Should clean up memory on its own.
76 } 76 }
77 77
78 TEST_F(SyncedSessionTrackerTest, LookupAllForeignSessions) { 78 TEST_F(SyncedSessionTrackerTest, LookupAllForeignSessions) {
79 std::vector<const SyncedSession*> sessions; 79 std::vector<const SyncedSession*> sessions;
80 ASSERT_FALSE(GetTracker()->LookupAllForeignSessions( 80 ASSERT_FALSE(GetTracker()->LookupAllForeignSessions(
81 &sessions, SyncedSessionTracker::PRESENTABLE)); 81 &sessions, SyncedSessionTracker::PRESENTABLE));
82 GetTracker()->GetSession(kTag); 82 GetTracker()->GetSession(kTag);
83 GetTracker()->PutWindowInSession(kTag, 0); 83 GetTracker()->PutWindowInSession(kTag, 0);
84 GetTracker()->PutTabInWindow(kTag, 0, 15); 84 GetTracker()->PutTabInWindow(kTag, 0, 15);
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 SyncedSession* session1 = GetTracker()->GetSession(kTag); 288 SyncedSession* session1 = GetTracker()->GetSession(kTag);
289 GetTracker()->PutWindowInSession(kTag, 0); 289 GetTracker()->PutWindowInSession(kTag, 0);
290 GetTracker()->PutTabInWindow(kTag, 0, 0); 290 GetTracker()->PutTabInWindow(kTag, 0, 0);
291 GetTracker()->PutTabInWindow(kTag, 0, 1); 291 GetTracker()->PutTabInWindow(kTag, 0, 1);
292 GetTracker()->GetTab(kTag, 2)->window_id.set_id(0); // Will be unmapped. 292 GetTracker()->GetTab(kTag, 2)->window_id.set_id(0); // Will be unmapped.
293 GetTracker()->GetTab(kTag, 3)->window_id.set_id(0); // Will be unmapped. 293 GetTracker()->GetTab(kTag, 3)->window_id.set_id(0); // Will be unmapped.
294 GetTracker()->PutWindowInSession(kTag, 1); 294 GetTracker()->PutWindowInSession(kTag, 1);
295 GetTracker()->PutTabInWindow(kTag, 1, 4); 295 GetTracker()->PutTabInWindow(kTag, 1, 4);
296 GetTracker()->PutTabInWindow(kTag, 1, 5); 296 GetTracker()->PutTabInWindow(kTag, 1, 5);
297 ASSERT_EQ(2U, session1->windows.size()); 297 ASSERT_EQ(2U, session1->windows.size());
298 ASSERT_EQ(2U, session1->windows[0]->tabs.size()); 298 ASSERT_EQ(2U, session1->windows[0]->wrapped_window.tabs.size());
299 ASSERT_EQ(2U, session1->windows[1]->tabs.size()); 299 ASSERT_EQ(2U, session1->windows[1]->wrapped_window.tabs.size());
300 ASSERT_EQ(6U, GetTracker()->num_synced_tabs(kTag)); 300 ASSERT_EQ(6U, GetTracker()->num_synced_tabs(kTag));
301 301
302 // Create a session that should not be affected. 302 // Create a session that should not be affected.
303 SyncedSession* session2 = GetTracker()->GetSession(kTag2); 303 SyncedSession* session2 = GetTracker()->GetSession(kTag2);
304 GetTracker()->PutWindowInSession(kTag2, 2); 304 GetTracker()->PutWindowInSession(kTag2, 2);
305 GetTracker()->PutTabInWindow(kTag2, 2, 1); 305 GetTracker()->PutTabInWindow(kTag2, 2, 1);
306 ASSERT_EQ(1U, session2->windows.size()); 306 ASSERT_EQ(1U, session2->windows.size());
307 ASSERT_EQ(1U, session2->windows[2]->tabs.size()); 307 ASSERT_EQ(1U, session2->windows[2]->wrapped_window.tabs.size());
308 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); 308 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2));
309 309
310 // Reset tracking and get the current windows/tabs. 310 // Reset tracking and get the current windows/tabs.
311 // We simulate moving a tab from one window to another, then closing the 311 // We simulate moving a tab from one window to another, then closing the
312 // first window (including its one remaining tab), and opening a new tab 312 // first window (including its one remaining tab), and opening a new tab
313 // on the remaining window. 313 // on the remaining window.
314 314
315 // New tab, arrived before meta node so unmapped. 315 // New tab, arrived before meta node so unmapped.
316 GetTracker()->GetTab(kTag, 6); 316 GetTracker()->GetTab(kTag, 6);
317 GetTracker()->ResetSessionTracking(kTag); 317 GetTracker()->ResetSessionTracking(kTag);
318 GetTracker()->PutWindowInSession(kTag, 0); 318 GetTracker()->PutWindowInSession(kTag, 0);
319 GetTracker()->PutTabInWindow(kTag, 0, 0); 319 GetTracker()->PutTabInWindow(kTag, 0, 0);
320 // Tab 1 is closed. 320 // Tab 1 is closed.
321 GetTracker()->PutTabInWindow(kTag, 0, 2); // No longer unmapped. 321 GetTracker()->PutTabInWindow(kTag, 0, 2); // No longer unmapped.
322 // Tab 3 was unmapped and does not get used. 322 // Tab 3 was unmapped and does not get used.
323 GetTracker()->PutTabInWindow(kTag, 0, 4); // Moved from window 1. 323 GetTracker()->PutTabInWindow(kTag, 0, 4); // Moved from window 1.
324 // Window 1 was closed, along with tab 5. 324 // Window 1 was closed, along with tab 5.
325 GetTracker()->PutTabInWindow(kTag, 0, 6); // No longer unmapped. 325 GetTracker()->PutTabInWindow(kTag, 0, 6); // No longer unmapped.
326 // Session 2 should not be affected. 326 // Session 2 should not be affected.
327 GetTracker()->CleanupForeignSession(kTag); 327 GetTracker()->CleanupForeignSession(kTag);
328 328
329 // Verify that only those parts of the session not owned have been removed. 329 // Verify that only those parts of the session not owned have been removed.
330 ASSERT_EQ(1U, session1->windows.size()); 330 ASSERT_EQ(1U, session1->windows.size());
331 ASSERT_EQ(4U, session1->windows[0]->tabs.size()); 331 ASSERT_EQ(4U, session1->windows[0]->wrapped_window.tabs.size());
332 ASSERT_EQ(1U, session2->windows.size()); 332 ASSERT_EQ(1U, session2->windows.size());
333 ASSERT_EQ(1U, session2->windows[2]->tabs.size()); 333 ASSERT_EQ(1U, session2->windows[2]->wrapped_window.tabs.size());
334 ASSERT_EQ(2U, GetTracker()->num_synced_sessions()); 334 ASSERT_EQ(2U, GetTracker()->num_synced_sessions());
335 ASSERT_EQ(4U, GetTracker()->num_synced_tabs(kTag)); 335 ASSERT_EQ(4U, GetTracker()->num_synced_tabs(kTag));
336 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); 336 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2));
337 337
338 // All memory should be properly deallocated by destructor for the 338 // All memory should be properly deallocated by destructor for the
339 // SyncedSessionTracker. 339 // SyncedSessionTracker.
340 } 340 }
341 341
342 TEST_F(SyncedSessionTrackerTest, DeleteForeignTab) { 342 TEST_F(SyncedSessionTrackerTest, DeleteForeignTab) {
343 int tab_node_id_1 = 1; 343 int tab_node_id_1 = 1;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 433 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1));
434 434
435 // Map it to a window with the same tab id as it was created with. 435 // Map it to a window with the same tab id as it was created with.
436 GetTracker()->ResetSessionTracking(kTag); 436 GetTracker()->ResetSessionTracking(kTag);
437 GetTracker()->PutWindowInSession(kTag, kWindow1); 437 GetTracker()->PutWindowInSession(kTag, kWindow1);
438 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); 438 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1);
439 GetTracker()->CleanupLocalTabs(&free_node_ids); 439 GetTracker()->CleanupLocalTabs(&free_node_ids);
440 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 440 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1));
441 SyncedSession* session = GetTracker()->GetSession(kTag); 441 SyncedSession* session = GetTracker()->GetSession(kTag);
442 ASSERT_EQ(1U, session->windows.size()); 442 ASSERT_EQ(1U, session->windows.size());
443 ASSERT_EQ(1U, session->windows[kWindow1]->tabs.size()); 443 ASSERT_EQ(1U, session->windows[kWindow1]->wrapped_window.tabs.size());
444 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab1), 444 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab1),
445 session->windows[kWindow1]->tabs[0].get()); 445 session->windows[kWindow1]->wrapped_window.tabs[0].get());
446 446
447 // Then reassociate with a new tab id. 447 // Then reassociate with a new tab id.
448 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); 448 GetTracker()->ReassociateLocalTab(kTabNode, kTab2);
449 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); 449 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode));
450 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 450 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2));
451 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 451 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1));
452 452
453 // Reset tracking, and put the new tab id into the window. 453 // Reset tracking, and put the new tab id into the window.
454 GetTracker()->ResetSessionTracking(kTag); 454 GetTracker()->ResetSessionTracking(kTag);
455 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 455 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2));
456 GetTracker()->PutWindowInSession(kTag, kWindow1); 456 GetTracker()->PutWindowInSession(kTag, kWindow1);
457 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); 457 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2);
458 GetTracker()->CleanupLocalTabs(&free_node_ids); 458 GetTracker()->CleanupLocalTabs(&free_node_ids);
459 EXPECT_TRUE(free_node_ids.empty()); 459 EXPECT_TRUE(free_node_ids.empty());
460 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 460 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2));
461 461
462 // Now that it's been mapped, it should be accessible both via the 462 // Now that it's been mapped, it should be accessible both via the
463 // GetSession as well as the GetTab. 463 // GetSession as well as the GetTab.
464 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), 464 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2),
465 session->windows[kWindow1]->tabs[0].get()); 465 session->windows[kWindow1]->wrapped_window.tabs[0].get());
466 ASSERT_EQ(session->tab_node_ids.size(), 466 ASSERT_EQ(session->tab_node_ids.size(),
467 session->tab_node_ids.count(kTabNode)); 467 session->tab_node_ids.count(kTabNode));
468 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); 468 ASSERT_EQ(1U, GetTabNodePool()->Capacity());
469 } 469 }
470 470
471 TEST_F(SyncedSessionTrackerTest, ReassociateTabMappedTwice) { 471 TEST_F(SyncedSessionTrackerTest, ReassociateTabMappedTwice) {
472 std::set<int> free_node_ids; 472 std::set<int> free_node_ids;
473 473
474 // First create the tab normally. 474 // First create the tab normally.
475 GetTracker()->SetLocalSessionTag(kTag); 475 GetTracker()->SetLocalSessionTag(kTag);
476 EXPECT_FALSE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); 476 EXPECT_FALSE(GetTracker()->IsLocalTabNodeAssociated(kTabNode));
477 GetTracker()->ReassociateLocalTab(kTabNode, kTab1); 477 GetTracker()->ReassociateLocalTab(kTabNode, kTab1);
478 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); 478 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode));
479 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 479 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1));
480 480
481 // Map it to a window with the same tab id as it was created with. 481 // Map it to a window with the same tab id as it was created with.
482 GetTracker()->ResetSessionTracking(kTag); 482 GetTracker()->ResetSessionTracking(kTag);
483 GetTracker()->PutWindowInSession(kTag, kWindow1); 483 GetTracker()->PutWindowInSession(kTag, kWindow1);
484 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); 484 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1);
485 GetTracker()->CleanupLocalTabs(&free_node_ids); 485 GetTracker()->CleanupLocalTabs(&free_node_ids);
486 EXPECT_TRUE(free_node_ids.empty()); 486 EXPECT_TRUE(free_node_ids.empty());
487 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 487 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1));
488 SyncedSession* session = GetTracker()->GetSession(kTag); 488 SyncedSession* session = GetTracker()->GetSession(kTag);
489 ASSERT_EQ(1U, session->windows.size()); 489 ASSERT_EQ(1U, session->windows.size());
490 ASSERT_EQ(1U, session->windows[kWindow1]->tabs.size()); 490 ASSERT_EQ(1U, session->windows[kWindow1]->wrapped_window.tabs.size());
491 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab1), 491 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab1),
492 session->windows[kWindow1]->tabs[0].get()); 492 session->windows[kWindow1]->wrapped_window.tabs[0].get());
493 493
494 // Then reassociate with a new tab id. 494 // Then reassociate with a new tab id.
495 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); 495 GetTracker()->ReassociateLocalTab(kTabNode, kTab2);
496 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); 496 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode));
497 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 497 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2));
498 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); 498 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1));
499 499
500 // Tab 1 should no longer be associated with any SessionTab object. At this 500 // Tab 1 should no longer be associated with any SessionTab object. At this
501 // point there's no need to verify it's unmapped state. 501 // point there's no need to verify it's unmapped state.
502 const sessions::SessionTab* tab_ptr = nullptr; 502 const sessions::SessionTab* tab_ptr = nullptr;
503 EXPECT_FALSE(GetTracker()->LookupSessionTab(kTag, kTab1, &tab_ptr)); 503 EXPECT_FALSE(GetTracker()->LookupSessionTab(kTag, kTab1, &tab_ptr));
504 504
505 // Reset tracking and add back both the old tab and the new tab (both of which 505 // Reset tracking and add back both the old tab and the new tab (both of which
506 // refer to the same tab node id). 506 // refer to the same tab node id).
507 GetTracker()->ResetSessionTracking(kTag); 507 GetTracker()->ResetSessionTracking(kTag);
508 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 508 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2));
509 GetTracker()->PutWindowInSession(kTag, kWindow1); 509 GetTracker()->PutWindowInSession(kTag, kWindow1);
510 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); 510 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1);
511 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); 511 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2);
512 GetTracker()->CleanupLocalTabs(&free_node_ids); 512 GetTracker()->CleanupLocalTabs(&free_node_ids);
513 EXPECT_TRUE(free_node_ids.empty()); 513 EXPECT_TRUE(free_node_ids.empty());
514 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 514 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2));
515 515
516 // Now that it's been mapped, it should be accessible both via the 516 // Now that it's been mapped, it should be accessible both via the
517 // GetSession as well as the GetTab. 517 // GetSession as well as the GetTab.
518 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab2), 518 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab2),
519 session->windows[kWindow1]->tabs[1].get()); 519 session->windows[kWindow1]->wrapped_window.tabs[1].get());
520 EXPECT_EQ(session->tab_node_ids.size(), 520 EXPECT_EQ(session->tab_node_ids.size(),
521 session->tab_node_ids.count(kTabNode)); 521 session->tab_node_ids.count(kTabNode));
522 EXPECT_EQ(1U, GetTabNodePool()->Capacity()); 522 EXPECT_EQ(1U, GetTabNodePool()->Capacity());
523 523
524 // Attempting to access the original tab will create a new SessionTab object. 524 // Attempting to access the original tab will create a new SessionTab object.
525 EXPECT_NE(GetTracker()->GetTab(kTag, kTab1), 525 EXPECT_NE(GetTracker()->GetTab(kTag, kTab1),
526 GetTracker()->GetTab(kTag, kTab2)); 526 GetTracker()->GetTab(kTag, kTab2));
527 int tab_node_id = -1; 527 int tab_node_id = -1;
528 EXPECT_FALSE(GetTracker()->GetTabNodeFromLocalTabId(kTab1, &tab_node_id)); 528 EXPECT_FALSE(GetTracker()->GetTabNodeFromLocalTabId(kTab1, &tab_node_id));
529 } 529 }
(...skipping 17 matching lines...) Expand all
547 GetTracker()->PutWindowInSession(kTag, kWindow1); 547 GetTracker()->PutWindowInSession(kTag, kWindow1);
548 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); 548 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2);
549 GetTracker()->CleanupLocalTabs(&free_node_ids); 549 GetTracker()->CleanupLocalTabs(&free_node_ids);
550 EXPECT_TRUE(free_node_ids.empty()); 550 EXPECT_TRUE(free_node_ids.empty());
551 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); 551 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2));
552 552
553 // Now that it's been mapped, it should be accessible both via the 553 // Now that it's been mapped, it should be accessible both via the
554 // GetSession as well as GetTab. 554 // GetSession as well as GetTab.
555 SyncedSession* session = GetTracker()->GetSession(kTag); 555 SyncedSession* session = GetTracker()->GetSession(kTag);
556 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), 556 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2),
557 session->windows[kWindow1]->tabs[0].get()); 557 session->windows[kWindow1]->wrapped_window.tabs[0].get());
558 ASSERT_EQ(session->tab_node_ids.size(), 558 ASSERT_EQ(session->tab_node_ids.size(),
559 session->tab_node_ids.count(kTabNode)); 559 session->tab_node_ids.count(kTabNode));
560 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); 560 ASSERT_EQ(1U, GetTabNodePool()->Capacity());
561 } 561 }
562 562
563 } // namespace sync_sessions 563 } // namespace sync_sessions
OLDNEW
« no previous file with comments | « components/sync_sessions/synced_session_tracker.cc ('k') | ios/chrome/browser/ui/ntp/recent_tabs/synced_sessions.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698