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

Side by Side Diff: components/sessions/core/session_service_commands.cc

Issue 1912843002: Convert //components/sessions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/session_service_commands.h" 5 #include "components/sessions/core/session_service_commands.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string.h> 8 #include <string.h>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 &tab_id, 537 &tab_id,
538 &user_agent_override)) { 538 &user_agent_override)) {
539 return true; 539 return true;
540 } 540 }
541 541
542 GetTab(tab_id, tabs)->user_agent_override.swap(user_agent_override); 542 GetTab(tab_id, tabs)->user_agent_override.swap(user_agent_override);
543 break; 543 break;
544 } 544 }
545 545
546 case kCommandSessionStorageAssociated: { 546 case kCommandSessionStorageAssociated: {
547 scoped_ptr<base::Pickle> command_pickle(command->PayloadAsPickle()); 547 std::unique_ptr<base::Pickle> command_pickle(
548 command->PayloadAsPickle());
548 SessionID::id_type command_tab_id; 549 SessionID::id_type command_tab_id;
549 std::string session_storage_persistent_id; 550 std::string session_storage_persistent_id;
550 base::PickleIterator iter(*command_pickle.get()); 551 base::PickleIterator iter(*command_pickle.get());
551 if (!iter.ReadInt(&command_tab_id) || 552 if (!iter.ReadInt(&command_tab_id) ||
552 !iter.ReadString(&session_storage_persistent_id)) 553 !iter.ReadString(&session_storage_persistent_id))
553 return true; 554 return true;
554 // Associate the session storage back. 555 // Associate the session storage back.
555 GetTab(command_tab_id, tabs)->session_storage_persistent_id = 556 GetTab(command_tab_id, tabs)->session_storage_persistent_id =
556 session_storage_persistent_id; 557 session_storage_persistent_id;
557 break; 558 break;
(...skipping 26 matching lines...) Expand all
584 // the command set for specific implementations. 585 // the command set for specific implementations.
585 DVLOG(1) << "Failed reading an unknown command " << command->id(); 586 DVLOG(1) << "Failed reading an unknown command " << command->id();
586 return true; 587 return true;
587 } 588 }
588 } 589 }
589 return true; 590 return true;
590 } 591 }
591 592
592 } // namespace 593 } // namespace
593 594
594 scoped_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand( 595 std::unique_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand(
595 const SessionID& window_id, 596 const SessionID& window_id,
596 int index) { 597 int index) {
597 SelectedTabInIndexPayload payload = { 0 }; 598 SelectedTabInIndexPayload payload = { 0 };
598 payload.id = window_id.id(); 599 payload.id = window_id.id();
599 payload.index = index; 600 payload.index = index;
600 scoped_ptr<SessionCommand> command( 601 std::unique_ptr<SessionCommand> command(
601 new SessionCommand(kCommandSetSelectedTabInIndex, sizeof(payload))); 602 new SessionCommand(kCommandSetSelectedTabInIndex, sizeof(payload)));
602 memcpy(command->contents(), &payload, sizeof(payload)); 603 memcpy(command->contents(), &payload, sizeof(payload));
603 return command; 604 return command;
604 } 605 }
605 606
606 scoped_ptr<SessionCommand> CreateSetTabWindowCommand(const SessionID& window_id, 607 std::unique_ptr<SessionCommand> CreateSetTabWindowCommand(
607 const SessionID& tab_id) { 608 const SessionID& window_id,
609 const SessionID& tab_id) {
608 SessionID::id_type payload[] = { window_id.id(), tab_id.id() }; 610 SessionID::id_type payload[] = { window_id.id(), tab_id.id() };
609 scoped_ptr<SessionCommand> command( 611 std::unique_ptr<SessionCommand> command(
610 new SessionCommand(kCommandSetTabWindow, sizeof(payload))); 612 new SessionCommand(kCommandSetTabWindow, sizeof(payload)));
611 memcpy(command->contents(), payload, sizeof(payload)); 613 memcpy(command->contents(), payload, sizeof(payload));
612 return command; 614 return command;
613 } 615 }
614 616
615 scoped_ptr<SessionCommand> CreateSetWindowBoundsCommand( 617 std::unique_ptr<SessionCommand> CreateSetWindowBoundsCommand(
616 const SessionID& window_id, 618 const SessionID& window_id,
617 const gfx::Rect& bounds, 619 const gfx::Rect& bounds,
618 ui::WindowShowState show_state) { 620 ui::WindowShowState show_state) {
619 WindowBoundsPayload3 payload = { 0 }; 621 WindowBoundsPayload3 payload = { 0 };
620 payload.window_id = window_id.id(); 622 payload.window_id = window_id.id();
621 payload.x = bounds.x(); 623 payload.x = bounds.x();
622 payload.y = bounds.y(); 624 payload.y = bounds.y();
623 payload.w = bounds.width(); 625 payload.w = bounds.width();
624 payload.h = bounds.height(); 626 payload.h = bounds.height();
625 payload.show_state = ShowStateToPersistedShowState(show_state); 627 payload.show_state = ShowStateToPersistedShowState(show_state);
626 scoped_ptr<SessionCommand> command( 628 std::unique_ptr<SessionCommand> command(
627 new SessionCommand(kCommandSetWindowBounds3, sizeof(payload))); 629 new SessionCommand(kCommandSetWindowBounds3, sizeof(payload)));
628 memcpy(command->contents(), &payload, sizeof(payload)); 630 memcpy(command->contents(), &payload, sizeof(payload));
629 return command; 631 return command;
630 } 632 }
631 633
632 scoped_ptr<SessionCommand> CreateSetTabIndexInWindowCommand( 634 std::unique_ptr<SessionCommand> CreateSetTabIndexInWindowCommand(
633 const SessionID& tab_id, 635 const SessionID& tab_id,
634 int new_index) { 636 int new_index) {
635 TabIndexInWindowPayload payload = { 0 }; 637 TabIndexInWindowPayload payload = { 0 };
636 payload.id = tab_id.id(); 638 payload.id = tab_id.id();
637 payload.index = new_index; 639 payload.index = new_index;
638 scoped_ptr<SessionCommand> command( 640 std::unique_ptr<SessionCommand> command(
639 new SessionCommand(kCommandSetTabIndexInWindow, sizeof(payload))); 641 new SessionCommand(kCommandSetTabIndexInWindow, sizeof(payload)));
640 memcpy(command->contents(), &payload, sizeof(payload)); 642 memcpy(command->contents(), &payload, sizeof(payload));
641 return command; 643 return command;
642 } 644 }
643 645
644 scoped_ptr<SessionCommand> CreateTabClosedCommand( 646 std::unique_ptr<SessionCommand> CreateTabClosedCommand(
645 const SessionID::id_type tab_id) { 647 const SessionID::id_type tab_id) {
646 ClosedPayload payload; 648 ClosedPayload payload;
647 // Because of what appears to be a compiler bug setting payload to {0} doesn't 649 // Because of what appears to be a compiler bug setting payload to {0} doesn't
648 // set the padding to 0, resulting in Purify reporting an UMR when we write 650 // set the padding to 0, resulting in Purify reporting an UMR when we write
649 // the structure to disk. To avoid this we explicitly memset the struct. 651 // the structure to disk. To avoid this we explicitly memset the struct.
650 memset(&payload, 0, sizeof(payload)); 652 memset(&payload, 0, sizeof(payload));
651 payload.id = tab_id; 653 payload.id = tab_id;
652 payload.close_time = base::Time::Now().ToInternalValue(); 654 payload.close_time = base::Time::Now().ToInternalValue();
653 scoped_ptr<SessionCommand> command( 655 std::unique_ptr<SessionCommand> command(
654 new SessionCommand(kCommandTabClosed, sizeof(payload))); 656 new SessionCommand(kCommandTabClosed, sizeof(payload)));
655 memcpy(command->contents(), &payload, sizeof(payload)); 657 memcpy(command->contents(), &payload, sizeof(payload));
656 return command; 658 return command;
657 } 659 }
658 660
659 scoped_ptr<SessionCommand> CreateWindowClosedCommand( 661 std::unique_ptr<SessionCommand> CreateWindowClosedCommand(
660 const SessionID::id_type window_id) { 662 const SessionID::id_type window_id) {
661 ClosedPayload payload; 663 ClosedPayload payload;
662 // See comment in CreateTabClosedCommand as to why we do this. 664 // See comment in CreateTabClosedCommand as to why we do this.
663 memset(&payload, 0, sizeof(payload)); 665 memset(&payload, 0, sizeof(payload));
664 payload.id = window_id; 666 payload.id = window_id;
665 payload.close_time = base::Time::Now().ToInternalValue(); 667 payload.close_time = base::Time::Now().ToInternalValue();
666 scoped_ptr<SessionCommand> command( 668 std::unique_ptr<SessionCommand> command(
667 new SessionCommand(kCommandWindowClosed, sizeof(payload))); 669 new SessionCommand(kCommandWindowClosed, sizeof(payload)));
668 memcpy(command->contents(), &payload, sizeof(payload)); 670 memcpy(command->contents(), &payload, sizeof(payload));
669 return command; 671 return command;
670 } 672 }
671 673
672 scoped_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand( 674 std::unique_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand(
673 const SessionID& tab_id, 675 const SessionID& tab_id,
674 int index) { 676 int index) {
675 SelectedNavigationIndexPayload payload = { 0 }; 677 SelectedNavigationIndexPayload payload = { 0 };
676 payload.id = tab_id.id(); 678 payload.id = tab_id.id();
677 payload.index = index; 679 payload.index = index;
678 scoped_ptr<SessionCommand> command( 680 std::unique_ptr<SessionCommand> command(
679 new SessionCommand(kCommandSetSelectedNavigationIndex, sizeof(payload))); 681 new SessionCommand(kCommandSetSelectedNavigationIndex, sizeof(payload)));
680 memcpy(command->contents(), &payload, sizeof(payload)); 682 memcpy(command->contents(), &payload, sizeof(payload));
681 return command; 683 return command;
682 } 684 }
683 685
684 scoped_ptr<SessionCommand> CreateSetWindowTypeCommand( 686 std::unique_ptr<SessionCommand> CreateSetWindowTypeCommand(
685 const SessionID& window_id, 687 const SessionID& window_id,
686 SessionWindow::WindowType type) { 688 SessionWindow::WindowType type) {
687 WindowTypePayload payload = { 0 }; 689 WindowTypePayload payload = { 0 };
688 payload.id = window_id.id(); 690 payload.id = window_id.id();
689 payload.index = static_cast<int32_t>(type); 691 payload.index = static_cast<int32_t>(type);
690 scoped_ptr<SessionCommand> command( 692 std::unique_ptr<SessionCommand> command(
691 new SessionCommand( kCommandSetWindowType, sizeof(payload))); 693 new SessionCommand(kCommandSetWindowType, sizeof(payload)));
692 memcpy(command->contents(), &payload, sizeof(payload)); 694 memcpy(command->contents(), &payload, sizeof(payload));
693 return command; 695 return command;
694 } 696 }
695 697
696 scoped_ptr<SessionCommand> CreatePinnedStateCommand( 698 std::unique_ptr<SessionCommand> CreatePinnedStateCommand(
697 const SessionID& tab_id, 699 const SessionID& tab_id,
698 bool is_pinned) { 700 bool is_pinned) {
699 PinnedStatePayload payload = { 0 }; 701 PinnedStatePayload payload = { 0 };
700 payload.tab_id = tab_id.id(); 702 payload.tab_id = tab_id.id();
701 payload.pinned_state = is_pinned; 703 payload.pinned_state = is_pinned;
702 scoped_ptr<SessionCommand> command( 704 std::unique_ptr<SessionCommand> command(
703 new SessionCommand(kCommandSetPinnedState, sizeof(payload))); 705 new SessionCommand(kCommandSetPinnedState, sizeof(payload)));
704 memcpy(command->contents(), &payload, sizeof(payload)); 706 memcpy(command->contents(), &payload, sizeof(payload));
705 return command; 707 return command;
706 } 708 }
707 709
708 scoped_ptr<SessionCommand> CreateSessionStorageAssociatedCommand( 710 std::unique_ptr<SessionCommand> CreateSessionStorageAssociatedCommand(
709 const SessionID& tab_id, 711 const SessionID& tab_id,
710 const std::string& session_storage_persistent_id) { 712 const std::string& session_storage_persistent_id) {
711 base::Pickle pickle; 713 base::Pickle pickle;
712 pickle.WriteInt(tab_id.id()); 714 pickle.WriteInt(tab_id.id());
713 pickle.WriteString(session_storage_persistent_id); 715 pickle.WriteString(session_storage_persistent_id);
714 return scoped_ptr<SessionCommand>( 716 return std::unique_ptr<SessionCommand>(
715 new SessionCommand(kCommandSessionStorageAssociated, pickle)); 717 new SessionCommand(kCommandSessionStorageAssociated, pickle));
716 } 718 }
717 719
718 scoped_ptr<SessionCommand> CreateSetActiveWindowCommand( 720 std::unique_ptr<SessionCommand> CreateSetActiveWindowCommand(
719 const SessionID& window_id) { 721 const SessionID& window_id) {
720 ActiveWindowPayload payload = 0; 722 ActiveWindowPayload payload = 0;
721 payload = window_id.id(); 723 payload = window_id.id();
722 scoped_ptr<SessionCommand> command( 724 std::unique_ptr<SessionCommand> command(
723 new SessionCommand(kCommandSetActiveWindow, sizeof(payload))); 725 new SessionCommand(kCommandSetActiveWindow, sizeof(payload)));
724 memcpy(command->contents(), &payload, sizeof(payload)); 726 memcpy(command->contents(), &payload, sizeof(payload));
725 return command; 727 return command;
726 } 728 }
727 729
728 scoped_ptr<SessionCommand> CreateLastActiveTimeCommand( 730 std::unique_ptr<SessionCommand> CreateLastActiveTimeCommand(
729 const SessionID& tab_id, 731 const SessionID& tab_id,
730 base::TimeTicks last_active_time) { 732 base::TimeTicks last_active_time) {
731 LastActiveTimePayload payload = {0}; 733 LastActiveTimePayload payload = {0};
732 payload.tab_id = tab_id.id(); 734 payload.tab_id = tab_id.id();
733 payload.last_active_time = last_active_time.ToInternalValue(); 735 payload.last_active_time = last_active_time.ToInternalValue();
734 scoped_ptr<SessionCommand> command( 736 std::unique_ptr<SessionCommand> command(
735 new SessionCommand(kCommandLastActiveTime, sizeof(payload))); 737 new SessionCommand(kCommandLastActiveTime, sizeof(payload)));
736 memcpy(command->contents(), &payload, sizeof(payload)); 738 memcpy(command->contents(), &payload, sizeof(payload));
737 return command; 739 return command;
738 } 740 }
739 741
740 scoped_ptr<SessionCommand> CreateTabNavigationPathPrunedFromBackCommand( 742 std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedFromBackCommand(
741 const SessionID& tab_id, 743 const SessionID& tab_id,
742 int count) { 744 int count) {
743 TabNavigationPathPrunedFromBackPayload payload = { 0 }; 745 TabNavigationPathPrunedFromBackPayload payload = { 0 };
744 payload.id = tab_id.id(); 746 payload.id = tab_id.id();
745 payload.index = count; 747 payload.index = count;
746 scoped_ptr<SessionCommand> command( 748 std::unique_ptr<SessionCommand> command(new SessionCommand(
747 new SessionCommand(kCommandTabNavigationPathPrunedFromBack, 749 kCommandTabNavigationPathPrunedFromBack, sizeof(payload)));
748 sizeof(payload)));
749 memcpy(command->contents(), &payload, sizeof(payload)); 750 memcpy(command->contents(), &payload, sizeof(payload));
750 return command; 751 return command;
751 } 752 }
752 753
753 scoped_ptr<SessionCommand> CreateTabNavigationPathPrunedFromFrontCommand( 754 std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedFromFrontCommand(
754 const SessionID& tab_id, 755 const SessionID& tab_id,
755 int count) { 756 int count) {
756 TabNavigationPathPrunedFromFrontPayload payload = { 0 }; 757 TabNavigationPathPrunedFromFrontPayload payload = { 0 };
757 payload.id = tab_id.id(); 758 payload.id = tab_id.id();
758 payload.index = count; 759 payload.index = count;
759 scoped_ptr<SessionCommand> command( 760 std::unique_ptr<SessionCommand> command(new SessionCommand(
760 new SessionCommand(kCommandTabNavigationPathPrunedFromFront, 761 kCommandTabNavigationPathPrunedFromFront, sizeof(payload)));
761 sizeof(payload)));
762 memcpy(command->contents(), &payload, sizeof(payload)); 762 memcpy(command->contents(), &payload, sizeof(payload));
763 return command; 763 return command;
764 } 764 }
765 765
766 scoped_ptr<SessionCommand> CreateUpdateTabNavigationCommand( 766 std::unique_ptr<SessionCommand> CreateUpdateTabNavigationCommand(
767 const SessionID& tab_id, 767 const SessionID& tab_id,
768 const sessions::SerializedNavigationEntry& navigation) { 768 const sessions::SerializedNavigationEntry& navigation) {
769 return CreateUpdateTabNavigationCommand(kCommandUpdateTabNavigation, 769 return CreateUpdateTabNavigationCommand(kCommandUpdateTabNavigation,
770 tab_id.id(), 770 tab_id.id(),
771 navigation); 771 navigation);
772 } 772 }
773 773
774 scoped_ptr<SessionCommand> CreateSetTabExtensionAppIDCommand( 774 std::unique_ptr<SessionCommand> CreateSetTabExtensionAppIDCommand(
775 const SessionID& tab_id, 775 const SessionID& tab_id,
776 const std::string& extension_id) { 776 const std::string& extension_id) {
777 return CreateSetTabExtensionAppIDCommand(kCommandSetExtensionAppID, 777 return CreateSetTabExtensionAppIDCommand(kCommandSetExtensionAppID,
778 tab_id.id(), 778 tab_id.id(),
779 extension_id); 779 extension_id);
780 } 780 }
781 781
782 scoped_ptr<SessionCommand> CreateSetTabUserAgentOverrideCommand( 782 std::unique_ptr<SessionCommand> CreateSetTabUserAgentOverrideCommand(
783 const SessionID& tab_id, 783 const SessionID& tab_id,
784 const std::string& user_agent_override) { 784 const std::string& user_agent_override) {
785 return CreateSetTabUserAgentOverrideCommand(kCommandSetTabUserAgentOverride, 785 return CreateSetTabUserAgentOverrideCommand(kCommandSetTabUserAgentOverride,
786 tab_id.id(), 786 tab_id.id(),
787 user_agent_override); 787 user_agent_override);
788 } 788 }
789 789
790 scoped_ptr<SessionCommand> CreateSetWindowAppNameCommand( 790 std::unique_ptr<SessionCommand> CreateSetWindowAppNameCommand(
791 const SessionID& window_id, 791 const SessionID& window_id,
792 const std::string& app_name) { 792 const std::string& app_name) {
793 return CreateSetWindowAppNameCommand(kCommandSetWindowAppName, 793 return CreateSetWindowAppNameCommand(kCommandSetWindowAppName,
794 window_id.id(), 794 window_id.id(),
795 app_name); 795 app_name);
796 } 796 }
797 797
798 bool ReplacePendingCommand(BaseSessionService* base_session_service, 798 bool ReplacePendingCommand(BaseSessionService* base_session_service,
799 scoped_ptr<SessionCommand>* command) { 799 std::unique_ptr<SessionCommand>* command) {
800 // We optimize page navigations, which can happen quite frequently and 800 // We optimize page navigations, which can happen quite frequently and
801 // is expensive. And activation is like Highlander, there can only be one! 801 // is expensive. And activation is like Highlander, there can only be one!
802 if ((*command)->id() != kCommandUpdateTabNavigation && 802 if ((*command)->id() != kCommandUpdateTabNavigation &&
803 (*command)->id() != kCommandSetActiveWindow) { 803 (*command)->id() != kCommandSetActiveWindow) {
804 return false; 804 return false;
805 } 805 }
806 for (ScopedVector<SessionCommand>::const_reverse_iterator i = 806 for (ScopedVector<SessionCommand>::const_reverse_iterator i =
807 base_session_service->pending_commands().rbegin(); 807 base_session_service->pending_commands().rbegin();
808 i != base_session_service->pending_commands().rend(); ++i) { 808 i != base_session_service->pending_commands().rend(); ++i) {
809 SessionCommand* existing_command = *i; 809 SessionCommand* existing_command = *i;
810 if ((*command)->id() == kCommandUpdateTabNavigation && 810 if ((*command)->id() == kCommandUpdateTabNavigation &&
811 existing_command->id() == kCommandUpdateTabNavigation) { 811 existing_command->id() == kCommandUpdateTabNavigation) {
812 scoped_ptr<base::Pickle> command_pickle((*command)->PayloadAsPickle()); 812 std::unique_ptr<base::Pickle> command_pickle(
813 (*command)->PayloadAsPickle());
813 base::PickleIterator iterator(*command_pickle); 814 base::PickleIterator iterator(*command_pickle);
814 SessionID::id_type command_tab_id; 815 SessionID::id_type command_tab_id;
815 int command_nav_index; 816 int command_nav_index;
816 if (!iterator.ReadInt(&command_tab_id) || 817 if (!iterator.ReadInt(&command_tab_id) ||
817 !iterator.ReadInt(&command_nav_index)) { 818 !iterator.ReadInt(&command_nav_index)) {
818 return false; 819 return false;
819 } 820 }
820 SessionID::id_type existing_tab_id; 821 SessionID::id_type existing_tab_id;
821 int existing_nav_index; 822 int existing_nav_index;
822 { 823 {
823 // Creating a pickle like this means the Pickle references the data from 824 // Creating a pickle like this means the Pickle references the data from
824 // the command. Make sure we delete the pickle before the command, else 825 // the command. Make sure we delete the pickle before the command, else
825 // the pickle references deleted memory. 826 // the pickle references deleted memory.
826 scoped_ptr<base::Pickle> existing_pickle( 827 std::unique_ptr<base::Pickle> existing_pickle(
827 existing_command->PayloadAsPickle()); 828 existing_command->PayloadAsPickle());
828 iterator = base::PickleIterator(*existing_pickle); 829 iterator = base::PickleIterator(*existing_pickle);
829 if (!iterator.ReadInt(&existing_tab_id) || 830 if (!iterator.ReadInt(&existing_tab_id) ||
830 !iterator.ReadInt(&existing_nav_index)) { 831 !iterator.ReadInt(&existing_nav_index)) {
831 return false; 832 return false;
832 } 833 }
833 } 834 }
834 if (existing_tab_id == command_tab_id && 835 if (existing_tab_id == command_tab_id &&
835 existing_nav_index == command_nav_index) { 836 existing_nav_index == command_nav_index) {
836 // existing_command is an update for the same tab/index pair. Replace 837 // existing_command is an update for the same tab/index pair. Replace
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 AddTabsToWindows(&tabs, &windows); 869 AddTabsToWindows(&tabs, &windows);
869 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows); 870 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows);
870 UpdateSelectedTabIndex(valid_windows); 871 UpdateSelectedTabIndex(valid_windows);
871 } 872 }
872 STLDeleteValues(&tabs); 873 STLDeleteValues(&tabs);
873 // Don't delete contents of windows, that is done by the caller as all 874 // Don't delete contents of windows, that is done by the caller as all
874 // valid windows are added to valid_windows. 875 // valid windows are added to valid_windows.
875 } 876 }
876 877
877 } // namespace sessions 878 } // namespace sessions
OLDNEW
« no previous file with comments | « components/sessions/core/session_service_commands.h ('k') | components/sessions/core/session_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698