OLD | NEW |
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 | 9 |
10 #include <utility> | 10 #include <utility> |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 // Persisted versions of ui::WindowShowState that are written to disk and can | 106 // Persisted versions of ui::WindowShowState that are written to disk and can |
107 // never change. | 107 // never change. |
108 enum PersistedWindowShowState { | 108 enum PersistedWindowShowState { |
109 // SHOW_STATE_DEFAULT (0) never persisted. | 109 // SHOW_STATE_DEFAULT (0) never persisted. |
110 PERSISTED_SHOW_STATE_NORMAL = 1, | 110 PERSISTED_SHOW_STATE_NORMAL = 1, |
111 PERSISTED_SHOW_STATE_MINIMIZED = 2, | 111 PERSISTED_SHOW_STATE_MINIMIZED = 2, |
112 PERSISTED_SHOW_STATE_MAXIMIZED = 3, | 112 PERSISTED_SHOW_STATE_MAXIMIZED = 3, |
113 // SHOW_STATE_INACTIVE (4) never persisted. | 113 // SHOW_STATE_INACTIVE (4) never persisted. |
114 PERSISTED_SHOW_STATE_FULLSCREEN = 5, | 114 PERSISTED_SHOW_STATE_FULLSCREEN = 5, |
115 PERSISTED_SHOW_STATE_DETACHED_DEPRECATED = 6, | 115 PERSISTED_SHOW_STATE_DETACHED_DEPRECATED = 6, |
| 116 PERSISTED_SHOW_STATE_END = 6, |
| 117 |
| 118 // This doesn't have a corresponding ui::WindowShowState anymore, hence we |
| 119 // list it here below PERSISTED_SHOW_STATE_END. |
116 PERSISTED_SHOW_STATE_DOCKED_DEPRECATED = 7, | 120 PERSISTED_SHOW_STATE_DOCKED_DEPRECATED = 7, |
117 PERSISTED_SHOW_STATE_END = 7 | |
118 }; | 121 }; |
119 | 122 |
120 using IdToSessionTab = | 123 using IdToSessionTab = |
121 std::map<SessionID::id_type, std::unique_ptr<SessionTab>>; | 124 std::map<SessionID::id_type, std::unique_ptr<SessionTab>>; |
122 using IdToSessionWindow = | 125 using IdToSessionWindow = |
123 std::map<SessionID::id_type, std::unique_ptr<SessionWindow>>; | 126 std::map<SessionID::id_type, std::unique_ptr<SessionWindow>>; |
124 | 127 |
125 // Assert to ensure PersistedWindowShowState is updated if ui::WindowShowState | 128 // Assert to ensure PersistedWindowShowState is updated if ui::WindowShowState |
126 // is changed. | 129 // is changed. |
127 static_assert(ui::SHOW_STATE_END == | 130 static_assert(ui::SHOW_STATE_END == |
128 static_cast<ui::WindowShowState>(PERSISTED_SHOW_STATE_END), | 131 static_cast<ui::WindowShowState>(PERSISTED_SHOW_STATE_END), |
129 "SHOW_STATE_END must equal PERSISTED_SHOW_STATE_END"); | 132 "SHOW_STATE_END must equal PERSISTED_SHOW_STATE_END"); |
130 | 133 |
131 // Returns the show state to store to disk based |state|. | 134 // Returns the show state to store to disk based |state|. |
132 PersistedWindowShowState ShowStateToPersistedShowState( | 135 PersistedWindowShowState ShowStateToPersistedShowState( |
133 ui::WindowShowState state) { | 136 ui::WindowShowState state) { |
134 switch (state) { | 137 switch (state) { |
135 case ui::SHOW_STATE_NORMAL: | 138 case ui::SHOW_STATE_NORMAL: |
136 return PERSISTED_SHOW_STATE_NORMAL; | 139 return PERSISTED_SHOW_STATE_NORMAL; |
137 case ui::SHOW_STATE_MINIMIZED: | 140 case ui::SHOW_STATE_MINIMIZED: |
138 return PERSISTED_SHOW_STATE_MINIMIZED; | 141 return PERSISTED_SHOW_STATE_MINIMIZED; |
139 case ui::SHOW_STATE_MAXIMIZED: | 142 case ui::SHOW_STATE_MAXIMIZED: |
140 return PERSISTED_SHOW_STATE_MAXIMIZED; | 143 return PERSISTED_SHOW_STATE_MAXIMIZED; |
141 case ui::SHOW_STATE_FULLSCREEN: | 144 case ui::SHOW_STATE_FULLSCREEN: |
142 return PERSISTED_SHOW_STATE_FULLSCREEN; | 145 return PERSISTED_SHOW_STATE_FULLSCREEN; |
143 | |
144 // TODO(afakhry): Remove Docked Windows in M58. | |
145 case ui::SHOW_STATE_DOCKED: | |
146 return PERSISTED_SHOW_STATE_DOCKED_DEPRECATED; | |
147 | |
148 case ui::SHOW_STATE_DEFAULT: | 146 case ui::SHOW_STATE_DEFAULT: |
149 case ui::SHOW_STATE_INACTIVE: | 147 case ui::SHOW_STATE_INACTIVE: |
150 return PERSISTED_SHOW_STATE_NORMAL; | 148 return PERSISTED_SHOW_STATE_NORMAL; |
151 | 149 |
152 case ui::SHOW_STATE_END: | 150 case ui::SHOW_STATE_END: |
153 break; | 151 break; |
154 } | 152 } |
155 NOTREACHED(); | 153 NOTREACHED(); |
156 return PERSISTED_SHOW_STATE_NORMAL; | 154 return PERSISTED_SHOW_STATE_NORMAL; |
157 } | 155 } |
158 | 156 |
159 // Lints show state values when read back from persited disk. | 157 // Lints show state values when read back from persited disk. |
160 ui::WindowShowState PersistedShowStateToShowState(int state) { | 158 ui::WindowShowState PersistedShowStateToShowState(int state) { |
161 switch (state) { | 159 switch (state) { |
162 case PERSISTED_SHOW_STATE_NORMAL: | 160 case PERSISTED_SHOW_STATE_NORMAL: |
163 return ui::SHOW_STATE_NORMAL; | 161 return ui::SHOW_STATE_NORMAL; |
164 case PERSISTED_SHOW_STATE_MINIMIZED: | 162 case PERSISTED_SHOW_STATE_MINIMIZED: |
165 return ui::SHOW_STATE_MINIMIZED; | 163 return ui::SHOW_STATE_MINIMIZED; |
166 case PERSISTED_SHOW_STATE_MAXIMIZED: | 164 case PERSISTED_SHOW_STATE_MAXIMIZED: |
167 return ui::SHOW_STATE_MAXIMIZED; | 165 return ui::SHOW_STATE_MAXIMIZED; |
168 case PERSISTED_SHOW_STATE_FULLSCREEN: | 166 case PERSISTED_SHOW_STATE_FULLSCREEN: |
169 return ui::SHOW_STATE_FULLSCREEN; | 167 return ui::SHOW_STATE_FULLSCREEN; |
| 168 case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED: |
170 case PERSISTED_SHOW_STATE_DOCKED_DEPRECATED: | 169 case PERSISTED_SHOW_STATE_DOCKED_DEPRECATED: |
171 return ui::SHOW_STATE_DOCKED; | |
172 case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED: | |
173 return ui::SHOW_STATE_NORMAL; | 170 return ui::SHOW_STATE_NORMAL; |
174 } | 171 } |
175 NOTREACHED(); | 172 NOTREACHED(); |
176 return ui::SHOW_STATE_NORMAL; | 173 return ui::SHOW_STATE_NORMAL; |
177 } | 174 } |
178 | 175 |
179 // Iterates through the vector updating the selected_tab_index of each | 176 // Iterates through the vector updating the selected_tab_index of each |
180 // SessionWindow based on the actual tabs that were restored. | 177 // SessionWindow based on the actual tabs that were restored. |
181 void UpdateSelectedTabIndex( | 178 void UpdateSelectedTabIndex( |
182 std::vector<std::unique_ptr<SessionWindow>>* windows) { | 179 std::vector<std::unique_ptr<SessionWindow>>* windows) { |
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
895 SortTabsBasedOnVisualOrderAndClear(&windows, valid_windows); | 892 SortTabsBasedOnVisualOrderAndClear(&windows, valid_windows); |
896 UpdateSelectedTabIndex(valid_windows); | 893 UpdateSelectedTabIndex(valid_windows); |
897 } | 894 } |
898 // AddTabsToWindows should have processed all the tabs. | 895 // AddTabsToWindows should have processed all the tabs. |
899 DCHECK_EQ(0u, tabs.size()); | 896 DCHECK_EQ(0u, tabs.size()); |
900 // SortTabsBasedOnVisualOrderAndClear should have processed all the windows. | 897 // SortTabsBasedOnVisualOrderAndClear should have processed all the windows. |
901 DCHECK_EQ(0u, windows.size()); | 898 DCHECK_EQ(0u, windows.size()); |
902 } | 899 } |
903 | 900 |
904 } // namespace sessions | 901 } // namespace sessions |
OLD | NEW |