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

Side by Side Diff: components/sessions/core/session_service_commands.cc

Issue 1927203003: Add support for X11 workspaces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reverted ui/views/widget/desktop_aura/x11_desktop_handler.cc Created 4 years, 7 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
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 "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 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 24 matching lines...) Expand all
35 static const SessionCommand::id_type kCommandSetPinnedState = 12; 35 static const SessionCommand::id_type kCommandSetPinnedState = 12;
36 static const SessionCommand::id_type kCommandSetExtensionAppID = 13; 36 static const SessionCommand::id_type kCommandSetExtensionAppID = 13;
37 static const SessionCommand::id_type kCommandSetWindowBounds3 = 14; 37 static const SessionCommand::id_type kCommandSetWindowBounds3 = 14;
38 static const SessionCommand::id_type kCommandSetWindowAppName = 15; 38 static const SessionCommand::id_type kCommandSetWindowAppName = 15;
39 static const SessionCommand::id_type kCommandTabClosed = 16; 39 static const SessionCommand::id_type kCommandTabClosed = 16;
40 static const SessionCommand::id_type kCommandWindowClosed = 17; 40 static const SessionCommand::id_type kCommandWindowClosed = 17;
41 static const SessionCommand::id_type kCommandSetTabUserAgentOverride = 18; 41 static const SessionCommand::id_type kCommandSetTabUserAgentOverride = 18;
42 static const SessionCommand::id_type kCommandSessionStorageAssociated = 19; 42 static const SessionCommand::id_type kCommandSessionStorageAssociated = 19;
43 static const SessionCommand::id_type kCommandSetActiveWindow = 20; 43 static const SessionCommand::id_type kCommandSetActiveWindow = 20;
44 static const SessionCommand::id_type kCommandLastActiveTime = 21; 44 static const SessionCommand::id_type kCommandLastActiveTime = 21;
45 static const SessionCommand::id_type kCommandSetWindowWorkspace = 22;
45 46
46 namespace { 47 namespace {
47 48
48 // Various payload structures. 49 // Various payload structures.
49 struct ClosedPayload { 50 struct ClosedPayload {
50 SessionID::id_type id; 51 SessionID::id_type id;
51 int64_t close_time; 52 int64_t close_time;
52 }; 53 };
53 54
54 struct WindowBoundsPayload2 { 55 struct WindowBoundsPayload2 {
(...skipping 26 matching lines...) Expand all
81 typedef IDAndIndexPayload TabNavigationPathPrunedFromBackPayload; 82 typedef IDAndIndexPayload TabNavigationPathPrunedFromBackPayload;
82 83
83 typedef IDAndIndexPayload SelectedNavigationIndexPayload; 84 typedef IDAndIndexPayload SelectedNavigationIndexPayload;
84 85
85 typedef IDAndIndexPayload SelectedTabInIndexPayload; 86 typedef IDAndIndexPayload SelectedTabInIndexPayload;
86 87
87 typedef IDAndIndexPayload WindowTypePayload; 88 typedef IDAndIndexPayload WindowTypePayload;
88 89
89 typedef IDAndIndexPayload TabNavigationPathPrunedFromFrontPayload; 90 typedef IDAndIndexPayload TabNavigationPathPrunedFromFrontPayload;
90 91
92 typedef IDAndIndexPayload SetWindowWorkspacePayload;
93
91 struct PinnedStatePayload { 94 struct PinnedStatePayload {
92 SessionID::id_type tab_id; 95 SessionID::id_type tab_id;
93 bool pinned_state; 96 bool pinned_state;
94 }; 97 };
95 98
96 struct LastActiveTimePayload { 99 struct LastActiveTimePayload {
97 SessionID::id_type tab_id; 100 SessionID::id_type tab_id;
98 int64_t last_active_time; 101 int64_t last_active_time;
99 }; 102 };
100 103
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 if (!command->GetPayload(&payload, sizeof(payload))) { 576 if (!command->GetPayload(&payload, sizeof(payload))) {
574 DVLOG(1) << "Failed reading command " << command->id(); 577 DVLOG(1) << "Failed reading command " << command->id();
575 return true; 578 return true;
576 } 579 }
577 SessionTab* tab = GetTab(payload.tab_id, tabs); 580 SessionTab* tab = GetTab(payload.tab_id, tabs);
578 tab->last_active_time = 581 tab->last_active_time =
579 base::TimeTicks::FromInternalValue(payload.last_active_time); 582 base::TimeTicks::FromInternalValue(payload.last_active_time);
580 break; 583 break;
581 } 584 }
582 585
586 case kCommandSetWindowWorkspace: {
587 SetWindowWorkspacePayload payload;
588 if(!command->GetPayload(&payload, sizeof(payload))) {
sky 2016/04/29 17:05:45 nit: space between 'if' and '('.
Tom (Use chromium acct) 2016/04/29 19:14:03 Done.
589 DVLOG(1) << "Failed reading command " << command->id();
590 return true;
591 }
592 GetWindow(payload.id, windows)->workspace_id = payload.index;
593 break;
594 }
595
583 default: 596 default:
584 // TODO(skuhne): This might call back into a callback handler to extend 597 // TODO(skuhne): This might call back into a callback handler to extend
585 // the command set for specific implementations. 598 // the command set for specific implementations.
586 DVLOG(1) << "Failed reading an unknown command " << command->id(); 599 DVLOG(1) << "Failed reading an unknown command " << command->id();
587 return true; 600 return true;
588 } 601 }
589 } 602 }
590 return true; 603 return true;
591 } 604 }
592 605
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 base::TimeTicks last_active_time) { 745 base::TimeTicks last_active_time) {
733 LastActiveTimePayload payload = {0}; 746 LastActiveTimePayload payload = {0};
734 payload.tab_id = tab_id.id(); 747 payload.tab_id = tab_id.id();
735 payload.last_active_time = last_active_time.ToInternalValue(); 748 payload.last_active_time = last_active_time.ToInternalValue();
736 std::unique_ptr<SessionCommand> command( 749 std::unique_ptr<SessionCommand> command(
737 new SessionCommand(kCommandLastActiveTime, sizeof(payload))); 750 new SessionCommand(kCommandLastActiveTime, sizeof(payload)));
738 memcpy(command->contents(), &payload, sizeof(payload)); 751 memcpy(command->contents(), &payload, sizeof(payload));
739 return command; 752 return command;
740 } 753 }
741 754
755 std::unique_ptr<SessionCommand> CreateSetWindowWorkspaceCommand(
756 const SessionID& window_id,
757 int current_desktop) {
758 SetWindowWorkspacePayload payload = {0};
759 payload.id = window_id.id();
760 payload.index = current_desktop;
761 std::unique_ptr<SessionCommand> command(
762 new SessionCommand(kCommandSetWindowWorkspace, sizeof(payload)));
763 memcpy(command->contents(), &payload, sizeof(payload));
764 return command;
765 }
766
742 std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedFromBackCommand( 767 std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedFromBackCommand(
743 const SessionID& tab_id, 768 const SessionID& tab_id,
744 int count) { 769 int count) {
745 TabNavigationPathPrunedFromBackPayload payload = { 0 }; 770 TabNavigationPathPrunedFromBackPayload payload = { 0 };
746 payload.id = tab_id.id(); 771 payload.id = tab_id.id();
747 payload.index = count; 772 payload.index = count;
748 std::unique_ptr<SessionCommand> command(new SessionCommand( 773 std::unique_ptr<SessionCommand> command(new SessionCommand(
749 kCommandTabNavigationPathPrunedFromBack, sizeof(payload))); 774 kCommandTabNavigationPathPrunedFromBack, sizeof(payload)));
750 memcpy(command->contents(), &payload, sizeof(payload)); 775 memcpy(command->contents(), &payload, sizeof(payload));
751 return command; 776 return command;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
869 AddTabsToWindows(&tabs, &windows); 894 AddTabsToWindows(&tabs, &windows);
870 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows); 895 SortTabsBasedOnVisualOrderAndPrune(&windows, valid_windows);
871 UpdateSelectedTabIndex(valid_windows); 896 UpdateSelectedTabIndex(valid_windows);
872 } 897 }
873 STLDeleteValues(&tabs); 898 STLDeleteValues(&tabs);
874 // Don't delete contents of windows, that is done by the caller as all 899 // Don't delete contents of windows, that is done by the caller as all
875 // valid windows are added to valid_windows. 900 // valid windows are added to valid_windows.
876 } 901 }
877 902
878 } // namespace sessions 903 } // namespace sessions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698