Skip to content
  • sdy's avatar
    Make TabRestoreService::Entry noncopyable and fix up surrounding code. · 7710d22c
    sdy authored
    Instances of TabRestoreService::Entry (Window and Tab) were managed by
    hand, and had special support for copying even though they never
    actually need to be copied.
    
    This refactor starts by making Entry noncopyable and branches out.
    
    Bigger changes:
    - Entry is noncopyable. PlatformSpecificTabData::Clone is gone.
    - Entry is usually wrapped in unique_ptr, including inside collections.
    - [Important] ValidateEntry/ValidateTab/ValidateWindow take const
      references and return a result. They don't try to fix damaged entries.
    
    Smaller changes:
    - Entry is taken by const reference whenever possible, not const pointer
      or non-const pointer/reference.
    - ifs that check if an entry is a Tab and assume it's a Window otherwise
      are now switch statements.
    - Loops that iterate over collections of Entry are range-based when
      appropriate.
    
    BUG=633689
    
    Review-Url: https://codereview.chromium.org/2200993004
    Cr-Commit-Position: refs/heads/master@{#410655}
    7710d22c