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

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

Issue 688993004: [chrome/browser/s*] Convert VLOGs to DVLOGs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing the patch and removing supervised_users related change Created 6 years, 1 month 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 "chrome/browser/sessions/session_service_commands.h" 5 #include "chrome/browser/sessions/session_service_commands.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/pickle.h" 9 #include "base/pickle.h"
10 #include "chrome/browser/sessions/base_session_service_commands.h" 10 #include "chrome/browser/sessions/base_session_service_commands.h"
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 } 260 }
261 ++i; 261 ++i;
262 } 262 }
263 } 263 }
264 } 264 }
265 265
266 // Adds tabs to their parent window based on the tab's window_id. This 266 // Adds tabs to their parent window based on the tab's window_id. This
267 // ignores tabs with no navigations. 267 // ignores tabs with no navigations.
268 void AddTabsToWindows(std::map<int, SessionTab*>* tabs, 268 void AddTabsToWindows(std::map<int, SessionTab*>* tabs,
269 std::map<int, SessionWindow*>* windows) { 269 std::map<int, SessionWindow*>* windows) {
270 VLOG(1) << "AddTabsToWindws"; 270 DVLOG(1) << "AddTabsToWindws";
271 VLOG(1) << "Tabs " << tabs->size() << ", windows " << windows->size(); 271 DVLOG(1) << "Tabs " << tabs->size() << ", windows " << windows->size();
272 std::map<int, SessionTab*>::iterator i = tabs->begin(); 272 std::map<int, SessionTab*>::iterator i = tabs->begin();
273 while (i != tabs->end()) { 273 while (i != tabs->end()) {
274 SessionTab* tab = i->second; 274 SessionTab* tab = i->second;
275 if (tab->window_id.id() && !tab->navigations.empty()) { 275 if (tab->window_id.id() && !tab->navigations.empty()) {
276 SessionWindow* window = GetWindow(tab->window_id.id(), windows); 276 SessionWindow* window = GetWindow(tab->window_id.id(), windows);
277 window->tabs.push_back(tab); 277 window->tabs.push_back(tab);
278 tabs->erase(i++); 278 tabs->erase(i++);
279 279
280 // See note in SessionTab as to why we do this. 280 // See note in SessionTab as to why we do this.
281 std::vector<sessions::SerializedNavigationEntry>::iterator j = 281 std::vector<sessions::SerializedNavigationEntry>::iterator j =
(...skipping 20 matching lines...) Expand all
302 // to delete the tabs and windows added to |tabs| and |windows|. 302 // to delete the tabs and windows added to |tabs| and |windows|.
303 // 303 //
304 // This does NOT add any created SessionTabs to SessionWindow.tabs, that is 304 // This does NOT add any created SessionTabs to SessionWindow.tabs, that is
305 // done by AddTabsToWindows. 305 // done by AddTabsToWindows.
306 bool CreateTabsAndWindows(const ScopedVector<SessionCommand>& data, 306 bool CreateTabsAndWindows(const ScopedVector<SessionCommand>& data,
307 std::map<int, SessionTab*>* tabs, 307 std::map<int, SessionTab*>* tabs,
308 std::map<int, SessionWindow*>* windows, 308 std::map<int, SessionWindow*>* windows,
309 SessionID::id_type* active_window_id) { 309 SessionID::id_type* active_window_id) {
310 // If the file is corrupt (command with wrong size, or unknown command), we 310 // If the file is corrupt (command with wrong size, or unknown command), we
311 // still return true and attempt to restore what we we can. 311 // still return true and attempt to restore what we we can.
312 VLOG(1) << "CreateTabsAndWindows"; 312 DVLOG(1) << "CreateTabsAndWindows";
313 313
314 for (std::vector<SessionCommand*>::const_iterator i = data.begin(); 314 for (std::vector<SessionCommand*>::const_iterator i = data.begin();
315 i != data.end(); ++i) { 315 i != data.end(); ++i) {
316 const SessionCommand::id_type kCommandSetWindowBounds2 = 10; 316 const SessionCommand::id_type kCommandSetWindowBounds2 = 10;
317 const SessionCommand* command = *i; 317 const SessionCommand* command = *i;
318 318
319 VLOG(1) << "Read command " << (int) command->id(); 319 DVLOG(1) << "Read command " << (int) command->id();
320 switch (command->id()) { 320 switch (command->id()) {
321 case kCommandSetTabWindow: { 321 case kCommandSetTabWindow: {
322 SessionID::id_type payload[2]; 322 SessionID::id_type payload[2];
323 if (!command->GetPayload(payload, sizeof(payload))) { 323 if (!command->GetPayload(payload, sizeof(payload))) {
324 VLOG(1) << "Failed reading command " << command->id(); 324 DVLOG(1) << "Failed reading command " << command->id();
325 return true; 325 return true;
326 } 326 }
327 GetTab(payload[1], tabs)->window_id.set_id(payload[0]); 327 GetTab(payload[1], tabs)->window_id.set_id(payload[0]);
328 break; 328 break;
329 } 329 }
330 330
331 // This is here for forward migration only. New data is saved with 331 // This is here for forward migration only. New data is saved with
332 // |kCommandSetWindowBounds3|. 332 // |kCommandSetWindowBounds3|.
333 case kCommandSetWindowBounds2: { 333 case kCommandSetWindowBounds2: {
334 WindowBoundsPayload2 payload; 334 WindowBoundsPayload2 payload;
335 if (!command->GetPayload(&payload, sizeof(payload))) { 335 if (!command->GetPayload(&payload, sizeof(payload))) {
336 VLOG(1) << "Failed reading command " << command->id(); 336 DVLOG(1) << "Failed reading command " << command->id();
337 return true; 337 return true;
338 } 338 }
339 GetWindow(payload.window_id, windows)->bounds.SetRect(payload.x, 339 GetWindow(payload.window_id, windows)->bounds.SetRect(payload.x,
340 payload.y, 340 payload.y,
341 payload.w, 341 payload.w,
342 payload.h); 342 payload.h);
343 GetWindow(payload.window_id, windows)->show_state = 343 GetWindow(payload.window_id, windows)->show_state =
344 payload.is_maximized ? 344 payload.is_maximized ?
345 ui::SHOW_STATE_MAXIMIZED : ui::SHOW_STATE_NORMAL; 345 ui::SHOW_STATE_MAXIMIZED : ui::SHOW_STATE_NORMAL;
346 break; 346 break;
347 } 347 }
348 348
349 case kCommandSetWindowBounds3: { 349 case kCommandSetWindowBounds3: {
350 WindowBoundsPayload3 payload; 350 WindowBoundsPayload3 payload;
351 if (!command->GetPayload(&payload, sizeof(payload))) { 351 if (!command->GetPayload(&payload, sizeof(payload))) {
352 VLOG(1) << "Failed reading command " << command->id(); 352 DVLOG(1) << "Failed reading command " << command->id();
353 return true; 353 return true;
354 } 354 }
355 GetWindow(payload.window_id, windows)->bounds.SetRect(payload.x, 355 GetWindow(payload.window_id, windows)->bounds.SetRect(payload.x,
356 payload.y, 356 payload.y,
357 payload.w, 357 payload.w,
358 payload.h); 358 payload.h);
359 GetWindow(payload.window_id, windows)->show_state = 359 GetWindow(payload.window_id, windows)->show_state =
360 PersistedShowStateToShowState(payload.show_state); 360 PersistedShowStateToShowState(payload.show_state);
361 break; 361 break;
362 } 362 }
363 363
364 case kCommandSetTabIndexInWindow: { 364 case kCommandSetTabIndexInWindow: {
365 TabIndexInWindowPayload payload; 365 TabIndexInWindowPayload payload;
366 if (!command->GetPayload(&payload, sizeof(payload))) { 366 if (!command->GetPayload(&payload, sizeof(payload))) {
367 VLOG(1) << "Failed reading command " << command->id(); 367 DVLOG(1) << "Failed reading command " << command->id();
368 return true; 368 return true;
369 } 369 }
370 GetTab(payload.id, tabs)->tab_visual_index = payload.index; 370 GetTab(payload.id, tabs)->tab_visual_index = payload.index;
371 break; 371 break;
372 } 372 }
373 373
374 case kCommandTabClosed: 374 case kCommandTabClosed:
375 case kCommandWindowClosed: { 375 case kCommandWindowClosed: {
376 ClosedPayload payload; 376 ClosedPayload payload;
377 if (!command->GetPayload(&payload, sizeof(payload))) { 377 if (!command->GetPayload(&payload, sizeof(payload))) {
378 VLOG(1) << "Failed reading command " << command->id(); 378 DVLOG(1) << "Failed reading command " << command->id();
379 return true; 379 return true;
380 } 380 }
381 if (command->id() == kCommandTabClosed) { 381 if (command->id() == kCommandTabClosed) {
382 delete GetTab(payload.id, tabs); 382 delete GetTab(payload.id, tabs);
383 tabs->erase(payload.id); 383 tabs->erase(payload.id);
384 } else { 384 } else {
385 delete GetWindow(payload.id, windows); 385 delete GetWindow(payload.id, windows);
386 windows->erase(payload.id); 386 windows->erase(payload.id);
387 } 387 }
388 break; 388 break;
389 } 389 }
390 390
391 case kCommandTabNavigationPathPrunedFromBack: { 391 case kCommandTabNavigationPathPrunedFromBack: {
392 TabNavigationPathPrunedFromBackPayload payload; 392 TabNavigationPathPrunedFromBackPayload payload;
393 if (!command->GetPayload(&payload, sizeof(payload))) { 393 if (!command->GetPayload(&payload, sizeof(payload))) {
394 VLOG(1) << "Failed reading command " << command->id(); 394 DVLOG(1) << "Failed reading command " << command->id();
395 return true; 395 return true;
396 } 396 }
397 SessionTab* tab = GetTab(payload.id, tabs); 397 SessionTab* tab = GetTab(payload.id, tabs);
398 tab->navigations.erase( 398 tab->navigations.erase(
399 FindClosestNavigationWithIndex(&(tab->navigations), payload.index), 399 FindClosestNavigationWithIndex(&(tab->navigations), payload.index),
400 tab->navigations.end()); 400 tab->navigations.end());
401 break; 401 break;
402 } 402 }
403 403
404 case kCommandTabNavigationPathPrunedFromFront: { 404 case kCommandTabNavigationPathPrunedFromFront: {
405 TabNavigationPathPrunedFromFrontPayload payload; 405 TabNavigationPathPrunedFromFrontPayload payload;
406 if (!command->GetPayload(&payload, sizeof(payload)) || 406 if (!command->GetPayload(&payload, sizeof(payload)) ||
407 payload.index <= 0) { 407 payload.index <= 0) {
408 VLOG(1) << "Failed reading command " << command->id(); 408 DVLOG(1) << "Failed reading command " << command->id();
409 return true; 409 return true;
410 } 410 }
411 SessionTab* tab = GetTab(payload.id, tabs); 411 SessionTab* tab = GetTab(payload.id, tabs);
412 412
413 // Update the selected navigation index. 413 // Update the selected navigation index.
414 tab->current_navigation_index = 414 tab->current_navigation_index =
415 std::max(-1, tab->current_navigation_index - payload.index); 415 std::max(-1, tab->current_navigation_index - payload.index);
416 416
417 // And update the index of existing navigations. 417 // And update the index of existing navigations.
418 for (std::vector<sessions::SerializedNavigationEntry>::iterator 418 for (std::vector<sessions::SerializedNavigationEntry>::iterator
419 i = tab->navigations.begin(); 419 i = tab->navigations.begin();
420 i != tab->navigations.end();) { 420 i != tab->navigations.end();) {
421 i->set_index(i->index() - payload.index); 421 i->set_index(i->index() - payload.index);
422 if (i->index() < 0) 422 if (i->index() < 0)
423 i = tab->navigations.erase(i); 423 i = tab->navigations.erase(i);
424 else 424 else
425 ++i; 425 ++i;
426 } 426 }
427 break; 427 break;
428 } 428 }
429 429
430 case kCommandUpdateTabNavigation: { 430 case kCommandUpdateTabNavigation: {
431 sessions::SerializedNavigationEntry navigation; 431 sessions::SerializedNavigationEntry navigation;
432 SessionID::id_type tab_id; 432 SessionID::id_type tab_id;
433 if (!RestoreUpdateTabNavigationCommand(*command, 433 if (!RestoreUpdateTabNavigationCommand(*command,
434 &navigation, 434 &navigation,
435 &tab_id)) { 435 &tab_id)) {
436 VLOG(1) << "Failed reading command " << command->id(); 436 DVLOG(1) << "Failed reading command " << command->id();
437 return true; 437 return true;
438 } 438 }
439 SessionTab* tab = GetTab(tab_id, tabs); 439 SessionTab* tab = GetTab(tab_id, tabs);
440 std::vector<sessions::SerializedNavigationEntry>::iterator i = 440 std::vector<sessions::SerializedNavigationEntry>::iterator i =
441 FindClosestNavigationWithIndex(&(tab->navigations), 441 FindClosestNavigationWithIndex(&(tab->navigations),
442 navigation.index()); 442 navigation.index());
443 if (i != tab->navigations.end() && i->index() == navigation.index()) 443 if (i != tab->navigations.end() && i->index() == navigation.index())
444 *i = navigation; 444 *i = navigation;
445 else 445 else
446 tab->navigations.insert(i, navigation); 446 tab->navigations.insert(i, navigation);
447 break; 447 break;
448 } 448 }
449 449
450 case kCommandSetSelectedNavigationIndex: { 450 case kCommandSetSelectedNavigationIndex: {
451 SelectedNavigationIndexPayload payload; 451 SelectedNavigationIndexPayload payload;
452 if (!command->GetPayload(&payload, sizeof(payload))) { 452 if (!command->GetPayload(&payload, sizeof(payload))) {
453 VLOG(1) << "Failed reading command " << command->id(); 453 DVLOG(1) << "Failed reading command " << command->id();
454 return true; 454 return true;
455 } 455 }
456 GetTab(payload.id, tabs)->current_navigation_index = payload.index; 456 GetTab(payload.id, tabs)->current_navigation_index = payload.index;
457 break; 457 break;
458 } 458 }
459 459
460 case kCommandSetSelectedTabInIndex: { 460 case kCommandSetSelectedTabInIndex: {
461 SelectedTabInIndexPayload payload; 461 SelectedTabInIndexPayload payload;
462 if (!command->GetPayload(&payload, sizeof(payload))) { 462 if (!command->GetPayload(&payload, sizeof(payload))) {
463 VLOG(1) << "Failed reading command " << command->id(); 463 DVLOG(1) << "Failed reading command " << command->id();
464 return true; 464 return true;
465 } 465 }
466 GetWindow(payload.id, windows)->selected_tab_index = payload.index; 466 GetWindow(payload.id, windows)->selected_tab_index = payload.index;
467 break; 467 break;
468 } 468 }
469 469
470 case kCommandSetWindowType: { 470 case kCommandSetWindowType: {
471 WindowTypePayload payload; 471 WindowTypePayload payload;
472 if (!command->GetPayload(&payload, sizeof(payload))) { 472 if (!command->GetPayload(&payload, sizeof(payload))) {
473 VLOG(1) << "Failed reading command " << command->id(); 473 DVLOG(1) << "Failed reading command " << command->id();
474 return true; 474 return true;
475 } 475 }
476 GetWindow(payload.id, windows)->is_constrained = false; 476 GetWindow(payload.id, windows)->is_constrained = false;
477 GetWindow(payload.id, windows)->type = 477 GetWindow(payload.id, windows)->type =
478 static_cast<SessionWindow::WindowType>(payload.index); 478 static_cast<SessionWindow::WindowType>(payload.index);
479 break; 479 break;
480 } 480 }
481 481
482 case kCommandSetPinnedState: { 482 case kCommandSetPinnedState: {
483 PinnedStatePayload payload; 483 PinnedStatePayload payload;
484 if (!command->GetPayload(&payload, sizeof(payload))) { 484 if (!command->GetPayload(&payload, sizeof(payload))) {
485 VLOG(1) << "Failed reading command " << command->id(); 485 DVLOG(1) << "Failed reading command " << command->id();
486 return true; 486 return true;
487 } 487 }
488 GetTab(payload.tab_id, tabs)->pinned = payload.pinned_state; 488 GetTab(payload.tab_id, tabs)->pinned = payload.pinned_state;
489 break; 489 break;
490 } 490 }
491 491
492 case kCommandSetWindowAppName: { 492 case kCommandSetWindowAppName: {
493 SessionID::id_type window_id; 493 SessionID::id_type window_id;
494 std::string app_name; 494 std::string app_name;
495 if (!RestoreSetWindowAppNameCommand(*command, &window_id, &app_name)) 495 if (!RestoreSetWindowAppNameCommand(*command, &window_id, &app_name))
496 return true; 496 return true;
497 497
498 GetWindow(window_id, windows)->app_name.swap(app_name); 498 GetWindow(window_id, windows)->app_name.swap(app_name);
499 break; 499 break;
500 } 500 }
501 501
502 case kCommandSetExtensionAppID: { 502 case kCommandSetExtensionAppID: {
503 SessionID::id_type tab_id; 503 SessionID::id_type tab_id;
504 std::string extension_app_id; 504 std::string extension_app_id;
505 if (!RestoreSetTabExtensionAppIDCommand(*command, 505 if (!RestoreSetTabExtensionAppIDCommand(*command,
506 &tab_id, 506 &tab_id,
507 &extension_app_id)) { 507 &extension_app_id)) {
508 VLOG(1) << "Failed reading command " << command->id(); 508 DVLOG(1) << "Failed reading command " << command->id();
509 return true; 509 return true;
510 } 510 }
511 511
512 GetTab(tab_id, tabs)->extension_app_id.swap(extension_app_id); 512 GetTab(tab_id, tabs)->extension_app_id.swap(extension_app_id);
513 break; 513 break;
514 } 514 }
515 515
516 case kCommandSetTabUserAgentOverride: { 516 case kCommandSetTabUserAgentOverride: {
517 SessionID::id_type tab_id; 517 SessionID::id_type tab_id;
518 std::string user_agent_override; 518 std::string user_agent_override;
(...skipping 18 matching lines...) Expand all
537 return true; 537 return true;
538 // Associate the session storage back. 538 // Associate the session storage back.
539 GetTab(command_tab_id, tabs)->session_storage_persistent_id = 539 GetTab(command_tab_id, tabs)->session_storage_persistent_id =
540 session_storage_persistent_id; 540 session_storage_persistent_id;
541 break; 541 break;
542 } 542 }
543 543
544 case kCommandSetActiveWindow: { 544 case kCommandSetActiveWindow: {
545 ActiveWindowPayload payload; 545 ActiveWindowPayload payload;
546 if (!command->GetPayload(&payload, sizeof(payload))) { 546 if (!command->GetPayload(&payload, sizeof(payload))) {
547 VLOG(1) << "Failed reading command " << command->id(); 547 DVLOG(1) << "Failed reading command " << command->id();
548 return true; 548 return true;
549 } 549 }
550 *active_window_id = payload; 550 *active_window_id = payload;
551 break; 551 break;
552 } 552 }
553 553
554 default: 554 default:
555 // TODO(skuhne): This might call back into a callback handler to extend 555 // TODO(skuhne): This might call back into a callback handler to extend
556 // the command set for specific implementations. 556 // the command set for specific implementations.
557 VLOG(1) << "Failed reading an unknown command " << command->id(); 557 DVLOG(1) << "Failed reading an unknown command " << command->id();
558 return true; 558 return true;
559 } 559 }
560 } 560 }
561 return true; 561 return true;
562 } 562 }
563 563
564 } // namespace 564 } // namespace
565 565
566 scoped_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand( 566 scoped_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand(
567 const SessionID& window_id, 567 const SessionID& window_id,
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 return command->id() == kCommandTabClosed || 814 return command->id() == kCommandTabClosed ||
815 command->id() == kCommandWindowClosed; 815 command->id() == kCommandWindowClosed;
816 } 816 }
817 817
818 void RestoreSessionFromCommands(const ScopedVector<SessionCommand>& commands, 818 void RestoreSessionFromCommands(const ScopedVector<SessionCommand>& commands,
819 std::vector<SessionWindow*>* valid_windows, 819 std::vector<SessionWindow*>* valid_windows,
820 SessionID::id_type* active_window_id) { 820 SessionID::id_type* active_window_id) {
821 std::map<int, SessionTab*> tabs; 821 std::map<int, SessionTab*> tabs;
822 std::map<int, SessionWindow*> windows; 822 std::map<int, SessionWindow*> windows;
823 823
824 VLOG(1) << "RestoreSessionFromCommands " << commands.size(); 824 DVLOG(1) << "RestoreSessionFromCommands " << commands.size();
825 if (CreateTabsAndWindows(commands, &tabs, &windows, active_window_id)) { 825 if (CreateTabsAndWindows(commands, &tabs, &windows, active_window_id)) {
826 AddTabsToWindows(&tabs, &windows); 826 AddTabsToWindows(&tabs, &windows);
827 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows); 827 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows);
828 UpdateSelectedTabIndex(valid_windows); 828 UpdateSelectedTabIndex(valid_windows);
829 } 829 }
830 STLDeleteValues(&tabs); 830 STLDeleteValues(&tabs);
831 // Don't delete contents of windows, that is done by the caller as all 831 // Don't delete contents of windows, that is done by the caller as all
832 // valid windows are added to valid_windows. 832 // valid windows are added to valid_windows.
833 } 833 }
OLDNEW
« no previous file with comments | « chrome/browser/sessions/session_restore.cc ('k') | chrome/browser/signin/android_profile_oauth2_token_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698