Commit ade94af7 authored by Collin Baker's avatar Collin Baker Committed by Commit Bot

Extract duplicated sessions code to function

Most of the Create*Command() functions in session_service_commands.cc
have the same few lines at the end. These can easily be extracted into
a separate function.

Change-Id: Ie3275bd75f25c2abf171e18df5ea597fed4b02cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1610529Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Collin Baker <collinbaker@chromium.org>
Cr-Commit-Position: refs/heads/master@{#663881}
parent 0fe9ca37
...@@ -655,6 +655,15 @@ bool CreateTabsAndWindows( ...@@ -655,6 +655,15 @@ bool CreateTabsAndWindows(
return true; return true;
} }
template <typename Payload>
std::unique_ptr<SessionCommand> CreateSessionCommandForPayload(
SessionCommand::id_type id,
const Payload& payload) {
auto command = std::make_unique<SessionCommand>(id, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
}
} // namespace } // namespace
std::unique_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand( std::unique_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand(
...@@ -663,20 +672,14 @@ std::unique_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand( ...@@ -663,20 +672,14 @@ std::unique_ptr<SessionCommand> CreateSetSelectedTabInWindowCommand(
SelectedTabInIndexPayload payload = { 0 }; SelectedTabInIndexPayload payload = { 0 };
payload.id = window_id.id(); payload.id = window_id.id();
payload.index = index; payload.index = index;
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandSetSelectedTabInIndex, payload);
kCommandSetSelectedTabInIndex, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetTabWindowCommand( std::unique_ptr<SessionCommand> CreateSetTabWindowCommand(
const SessionID& window_id, const SessionID& window_id,
const SessionID& tab_id) { const SessionID& tab_id) {
SessionID::id_type payload[] = { window_id.id(), tab_id.id() }; SessionID::id_type payload[] = { window_id.id(), tab_id.id() };
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandSetTabWindow, payload);
std::make_unique<SessionCommand>(kCommandSetTabWindow, sizeof(payload));
memcpy(command->contents(), payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetWindowBoundsCommand( std::unique_ptr<SessionCommand> CreateSetWindowBoundsCommand(
...@@ -690,10 +693,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowBoundsCommand( ...@@ -690,10 +693,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowBoundsCommand(
payload.w = bounds.width(); payload.w = bounds.width();
payload.h = bounds.height(); payload.h = bounds.height();
payload.show_state = ShowStateToPersistedShowState(show_state); payload.show_state = ShowStateToPersistedShowState(show_state);
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandSetWindowBounds3, payload);
kCommandSetWindowBounds3, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetTabIndexInWindowCommand( std::unique_ptr<SessionCommand> CreateSetTabIndexInWindowCommand(
...@@ -702,10 +702,7 @@ std::unique_ptr<SessionCommand> CreateSetTabIndexInWindowCommand( ...@@ -702,10 +702,7 @@ std::unique_ptr<SessionCommand> CreateSetTabIndexInWindowCommand(
TabIndexInWindowPayload payload = { 0 }; TabIndexInWindowPayload payload = { 0 };
payload.id = tab_id.id(); payload.id = tab_id.id();
payload.index = new_index; payload.index = new_index;
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandSetTabIndexInWindow, payload);
kCommandSetTabIndexInWindow, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateTabClosedCommand(const SessionID tab_id) { std::unique_ptr<SessionCommand> CreateTabClosedCommand(const SessionID tab_id) {
...@@ -716,10 +713,7 @@ std::unique_ptr<SessionCommand> CreateTabClosedCommand(const SessionID tab_id) { ...@@ -716,10 +713,7 @@ std::unique_ptr<SessionCommand> CreateTabClosedCommand(const SessionID tab_id) {
memset(&payload, 0, sizeof(payload)); memset(&payload, 0, sizeof(payload));
payload.id = tab_id.id(); payload.id = tab_id.id();
payload.close_time = base::Time::Now().ToInternalValue(); payload.close_time = base::Time::Now().ToInternalValue();
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandTabClosed, payload);
std::make_unique<SessionCommand>(kCommandTabClosed, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateWindowClosedCommand( std::unique_ptr<SessionCommand> CreateWindowClosedCommand(
...@@ -729,10 +723,7 @@ std::unique_ptr<SessionCommand> CreateWindowClosedCommand( ...@@ -729,10 +723,7 @@ std::unique_ptr<SessionCommand> CreateWindowClosedCommand(
memset(&payload, 0, sizeof(payload)); memset(&payload, 0, sizeof(payload));
payload.id = window_id.id(); payload.id = window_id.id();
payload.close_time = base::Time::Now().ToInternalValue(); payload.close_time = base::Time::Now().ToInternalValue();
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandWindowClosed, payload);
std::make_unique<SessionCommand>(kCommandWindowClosed, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand( std::unique_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand(
...@@ -741,10 +732,8 @@ std::unique_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand( ...@@ -741,10 +732,8 @@ std::unique_ptr<SessionCommand> CreateSetSelectedNavigationIndexCommand(
SelectedNavigationIndexPayload payload = { 0 }; SelectedNavigationIndexPayload payload = { 0 };
payload.id = tab_id.id(); payload.id = tab_id.id();
payload.index = index; payload.index = index;
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandSetSelectedNavigationIndex,
kCommandSetSelectedNavigationIndex, sizeof(payload)); payload);
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetWindowTypeCommand( std::unique_ptr<SessionCommand> CreateSetWindowTypeCommand(
...@@ -753,10 +742,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowTypeCommand( ...@@ -753,10 +742,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowTypeCommand(
WindowTypePayload payload = { 0 }; WindowTypePayload payload = { 0 };
payload.id = window_id.id(); payload.id = window_id.id();
payload.index = static_cast<int32_t>(type); payload.index = static_cast<int32_t>(type);
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandSetWindowType, payload);
std::make_unique<SessionCommand>(kCommandSetWindowType, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreatePinnedStateCommand( std::unique_ptr<SessionCommand> CreatePinnedStateCommand(
...@@ -765,10 +751,7 @@ std::unique_ptr<SessionCommand> CreatePinnedStateCommand( ...@@ -765,10 +751,7 @@ std::unique_ptr<SessionCommand> CreatePinnedStateCommand(
PinnedStatePayload payload = { 0 }; PinnedStatePayload payload = { 0 };
payload.tab_id = tab_id.id(); payload.tab_id = tab_id.id();
payload.pinned_state = is_pinned; payload.pinned_state = is_pinned;
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandSetPinnedState, payload);
std::make_unique<SessionCommand>(kCommandSetPinnedState, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSessionStorageAssociatedCommand( std::unique_ptr<SessionCommand> CreateSessionStorageAssociatedCommand(
...@@ -777,18 +760,15 @@ std::unique_ptr<SessionCommand> CreateSessionStorageAssociatedCommand( ...@@ -777,18 +760,15 @@ std::unique_ptr<SessionCommand> CreateSessionStorageAssociatedCommand(
base::Pickle pickle; base::Pickle pickle;
pickle.WriteInt(tab_id.id()); pickle.WriteInt(tab_id.id());
pickle.WriteString(session_storage_persistent_id); pickle.WriteString(session_storage_persistent_id);
return std::unique_ptr<SessionCommand>(std::make_unique<SessionCommand>( return std::make_unique<SessionCommand>(kCommandSessionStorageAssociated,
kCommandSessionStorageAssociated, pickle)); pickle);
} }
std::unique_ptr<SessionCommand> CreateSetActiveWindowCommand( std::unique_ptr<SessionCommand> CreateSetActiveWindowCommand(
const SessionID& window_id) { const SessionID& window_id) {
ActiveWindowPayload payload = 0; ActiveWindowPayload payload = 0;
payload = window_id.id(); payload = window_id.id();
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandSetActiveWindow, payload);
kCommandSetActiveWindow, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateLastActiveTimeCommand( std::unique_ptr<SessionCommand> CreateLastActiveTimeCommand(
...@@ -797,10 +777,7 @@ std::unique_ptr<SessionCommand> CreateLastActiveTimeCommand( ...@@ -797,10 +777,7 @@ std::unique_ptr<SessionCommand> CreateLastActiveTimeCommand(
LastActiveTimePayload payload = {0}; LastActiveTimePayload payload = {0};
payload.tab_id = tab_id.id(); payload.tab_id = tab_id.id();
payload.last_active_time = last_active_time.ToInternalValue(); payload.last_active_time = last_active_time.ToInternalValue();
std::unique_ptr<SessionCommand> command = return CreateSessionCommandForPayload(kCommandLastActiveTime, payload);
std::make_unique<SessionCommand>(kCommandLastActiveTime, sizeof(payload));
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateSetWindowWorkspaceCommand( std::unique_ptr<SessionCommand> CreateSetWindowWorkspaceCommand(
...@@ -809,9 +786,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowWorkspaceCommand( ...@@ -809,9 +786,7 @@ std::unique_ptr<SessionCommand> CreateSetWindowWorkspaceCommand(
base::Pickle pickle; base::Pickle pickle;
pickle.WriteInt(window_id.id()); pickle.WriteInt(window_id.id());
pickle.WriteString(workspace); pickle.WriteString(workspace);
std::unique_ptr<SessionCommand> command = return std::make_unique<SessionCommand>(kCommandSetWindowWorkspace2, pickle);
std::make_unique<SessionCommand>(kCommandSetWindowWorkspace2, pickle);
return command;
} }
std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedCommand( std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedCommand(
...@@ -822,10 +797,8 @@ std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedCommand( ...@@ -822,10 +797,8 @@ std::unique_ptr<SessionCommand> CreateTabNavigationPathPrunedCommand(
payload.id = tab_id.id(); payload.id = tab_id.id();
payload.index = index; payload.index = index;
payload.count = count; payload.count = count;
std::unique_ptr<SessionCommand> command = std::make_unique<SessionCommand>( return CreateSessionCommandForPayload(kCommandTabNavigationPathPruned,
kCommandTabNavigationPathPruned, sizeof(payload)); payload);
memcpy(command->contents(), &payload, sizeof(payload));
return command;
} }
std::unique_ptr<SessionCommand> CreateUpdateTabNavigationCommand( std::unique_ptr<SessionCommand> CreateUpdateTabNavigationCommand(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment