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

Side by Side Diff: chrome/browser/sessions/session_service.cc

Issue 665033003: Removing Migraction code from M17 in session restore (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "chrome/browser/sessions/session_service.h" 5 #include "chrome/browser/sessions/session_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 using base::Time; 53 using base::Time;
54 using content::NavigationEntry; 54 using content::NavigationEntry;
55 using content::WebContents; 55 using content::WebContents;
56 using sessions::SerializedNavigationEntry; 56 using sessions::SerializedNavigationEntry;
57 57
58 // Identifier for commands written to file. 58 // Identifier for commands written to file.
59 static const SessionCommand::id_type kCommandSetTabWindow = 0; 59 static const SessionCommand::id_type kCommandSetTabWindow = 0;
60 // OBSOLETE Superseded by kCommandSetWindowBounds3. 60 // OBSOLETE Superseded by kCommandSetWindowBounds3.
61 // static const SessionCommand::id_type kCommandSetWindowBounds = 1; 61 // static const SessionCommand::id_type kCommandSetWindowBounds = 1;
62 static const SessionCommand::id_type kCommandSetTabIndexInWindow = 2; 62 static const SessionCommand::id_type kCommandSetTabIndexInWindow = 2;
63 // Original kCommandTabClosed/kCommandWindowClosed. See comment in
sky 2014/10/20 22:27:32 Add a comment here indicating 3/4 were deprecated
64 // MigrateClosedPayload for details on why they were replaced.
65 static const SessionCommand::id_type kCommandTabClosedObsolete = 3;
66 static const SessionCommand::id_type kCommandWindowClosedObsolete = 4;
67 static const SessionCommand::id_type 63 static const SessionCommand::id_type
68 kCommandTabNavigationPathPrunedFromBack = 5; 64 kCommandTabNavigationPathPrunedFromBack = 5;
69 static const SessionCommand::id_type kCommandUpdateTabNavigation = 6; 65 static const SessionCommand::id_type kCommandUpdateTabNavigation = 6;
70 static const SessionCommand::id_type kCommandSetSelectedNavigationIndex = 7; 66 static const SessionCommand::id_type kCommandSetSelectedNavigationIndex = 7;
71 static const SessionCommand::id_type kCommandSetSelectedTabInIndex = 8; 67 static const SessionCommand::id_type kCommandSetSelectedTabInIndex = 8;
72 static const SessionCommand::id_type kCommandSetWindowType = 9; 68 static const SessionCommand::id_type kCommandSetWindowType = 9;
73 // OBSOLETE Superseded by kCommandSetWindowBounds3. Except for data migration. 69 // OBSOLETE Superseded by kCommandSetWindowBounds3. Except for data migration.
74 // static const SessionCommand::id_type kCommandSetWindowBounds2 = 10; 70 // static const SessionCommand::id_type kCommandSetWindowBounds2 = 10;
75 static const SessionCommand::id_type 71 static const SessionCommand::id_type
76 kCommandTabNavigationPathPrunedFromFront = 11; 72 kCommandTabNavigationPathPrunedFromFront = 11;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 return ui::SHOW_STATE_MAXIMIZED; 187 return ui::SHOW_STATE_MAXIMIZED;
192 case PERSISTED_SHOW_STATE_FULLSCREEN: 188 case PERSISTED_SHOW_STATE_FULLSCREEN:
193 return ui::SHOW_STATE_FULLSCREEN; 189 return ui::SHOW_STATE_FULLSCREEN;
194 case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED: 190 case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED:
195 return ui::SHOW_STATE_NORMAL; 191 return ui::SHOW_STATE_NORMAL;
196 } 192 }
197 NOTREACHED(); 193 NOTREACHED();
198 return ui::SHOW_STATE_NORMAL; 194 return ui::SHOW_STATE_NORMAL;
199 } 195 }
200 196
201 // Migrates a |ClosedPayload|, returning true on success (migration was
202 // necessary and happened), or false (migration was not necessary or was not
203 // successful).
204 bool MigrateClosedPayload(const SessionCommand& command,
205 ClosedPayload* payload) {
206 #if defined(OS_CHROMEOS)
207 // Pre M17 versions of chromeos were 32bit. Post M17 is 64 bit. Apparently the
208 // 32 bit versions of chrome on pre M17 resulted in a sizeof 12 for the
209 // ClosedPayload, where as post M17 64-bit gives a sizeof 16 (presumably the
210 // struct is padded).
211 if ((command.id() == kCommandWindowClosedObsolete ||
212 command.id() == kCommandTabClosedObsolete) &&
213 command.size() == 12 && sizeof(payload->id) == 4 &&
214 sizeof(payload->close_time) == 8) {
215 memcpy(&payload->id, command.contents(), 4);
216 memcpy(&payload->close_time, command.contents() + 4, 8);
217 return true;
218 } else {
219 return false;
220 }
221 #else
222 return false;
223 #endif
224 }
225
226 } // namespace 197 } // namespace
227 198
228 // SessionService ------------------------------------------------------------- 199 // SessionService -------------------------------------------------------------
229 200
230 SessionService::SessionService(Profile* profile) 201 SessionService::SessionService(Profile* profile)
231 : BaseSessionService(SESSION_RESTORE, profile, base::FilePath()), 202 : BaseSessionService(SESSION_RESTORE, profile, base::FilePath()),
232 has_open_trackable_browsers_(false), 203 has_open_trackable_browsers_(false),
233 move_on_new_browser_(false), 204 move_on_new_browser_(false),
234 save_delay_in_millis_(base::TimeDelta::FromMilliseconds(2500)), 205 save_delay_in_millis_(base::TimeDelta::FromMilliseconds(2500)),
235 save_delay_in_mins_(base::TimeDelta::FromMinutes(10)), 206 save_delay_in_mins_(base::TimeDelta::FromMinutes(10)),
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 case kCommandSetTabIndexInWindow: { 1107 case kCommandSetTabIndexInWindow: {
1137 TabIndexInWindowPayload payload; 1108 TabIndexInWindowPayload payload;
1138 if (!command->GetPayload(&payload, sizeof(payload))) { 1109 if (!command->GetPayload(&payload, sizeof(payload))) {
1139 VLOG(1) << "Failed reading command " << command->id(); 1110 VLOG(1) << "Failed reading command " << command->id();
1140 return true; 1111 return true;
1141 } 1112 }
1142 GetTab(payload.id, tabs)->tab_visual_index = payload.index; 1113 GetTab(payload.id, tabs)->tab_visual_index = payload.index;
1143 break; 1114 break;
1144 } 1115 }
1145 1116
1146 case kCommandTabClosedObsolete:
1147 case kCommandWindowClosedObsolete:
1148 case kCommandTabClosed: 1117 case kCommandTabClosed:
1149 case kCommandWindowClosed: { 1118 case kCommandWindowClosed: {
1150 ClosedPayload payload; 1119 ClosedPayload payload;
1151 if (!command->GetPayload(&payload, sizeof(payload)) && 1120 if (!command->GetPayload(&payload, sizeof(payload))) {
1152 !MigrateClosedPayload(*command, &payload)) {
1153 VLOG(1) << "Failed reading command " << command->id(); 1121 VLOG(1) << "Failed reading command " << command->id();
1154 return true; 1122 return true;
1155 } 1123 }
1156 if (command->id() == kCommandTabClosed || 1124 if (command->id() == kCommandTabClosed) {
1157 command->id() == kCommandTabClosedObsolete) {
1158 delete GetTab(payload.id, tabs); 1125 delete GetTab(payload.id, tabs);
1159 tabs->erase(payload.id); 1126 tabs->erase(payload.id);
1160 } else { 1127 } else {
1161 delete GetWindow(payload.id, windows); 1128 delete GetWindow(payload.id, windows);
1162 windows->erase(payload.id); 1129 windows->erase(payload.id);
1163 } 1130 }
1164 break; 1131 break;
1165 } 1132 }
1166 1133
1167 case kCommandTabNavigationPathPrunedFromBack: { 1134 case kCommandTabNavigationPathPrunedFromBack: {
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after
1849 return; 1816 return;
1850 } 1817 }
1851 1818
1852 // Check for any open windows for the current profile that we aren't tracking. 1819 // Check for any open windows for the current profile that we aren't tracking.
1853 for (chrome::BrowserIterator it; !it.done(); it.Next()) { 1820 for (chrome::BrowserIterator it; !it.done(); it.Next()) {
1854 if ((*it)->profile() == profile()) 1821 if ((*it)->profile() == profile())
1855 return; 1822 return;
1856 } 1823 }
1857 DeleteSessionOnlyData(profile()); 1824 DeleteSessionOnlyData(profile());
1858 } 1825 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698