-
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