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

Unified Diff: chrome/browser/sessions/base_session_service.cc

Issue 672083002: Refactoring of SessionService to get componentized. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First version 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sessions/base_session_service.cc
diff --git a/chrome/browser/sessions/base_session_service.cc b/chrome/browser/sessions/base_session_service.cc
index f85fc8f78faa8fb2a5c841eef7fcd03bd4b4ad76..05d61bf7213b1a55a42df2c457d4335db8df9d81 100644
--- a/chrome/browser/sessions/base_session_service.cc
+++ b/chrome/browser/sessions/base_session_service.cc
@@ -5,30 +5,14 @@
#include "chrome/browser/sessions/base_session_service.h"
#include "base/bind.h"
-#include "base/pickle.h"
#include "base/threading/thread.h"
#include "chrome/browser/sessions/base_session_service_delegate.h"
#include "chrome/browser/sessions/session_backend.h"
-#include "chrome/browser/sessions/session_types.h"
// BaseSessionService ---------------------------------------------------------
namespace {
-// Helper used by CreateUpdateTabNavigationCommand(). It writes |str| to
-// |pickle|, if and only if |str| fits within (|max_bytes| - |*bytes_written|).
-// |bytes_written| is incremented to reflect the data written.
-void WriteStringToPickle(Pickle& pickle, int* bytes_written, int max_bytes,
- const std::string& str) {
- int num_bytes = str.size() * sizeof(char);
- if (*bytes_written + num_bytes < max_bytes) {
- *bytes_written += num_bytes;
- pickle.WriteString(str);
- } else {
- pickle.WriteString(std::string());
- }
-}
-
// Helper used by ScheduleGetLastSessionCommands. It runs callback on TaskRunner
// thread if it's not canceled.
void RunIfNotCanceled(
@@ -122,132 +106,6 @@ void BaseSessionService::Save() {
}
}
-SessionCommand* BaseSessionService::CreateUpdateTabNavigationCommand(
- SessionID::id_type command_id,
- SessionID::id_type tab_id,
- const sessions::SerializedNavigationEntry& navigation) {
- // Use pickle to handle marshalling.
- Pickle pickle;
- pickle.WriteInt(tab_id);
- // We only allow navigations up to 63k (which should be completely
- // reasonable).
- static const size_t max_state_size =
- std::numeric_limits<SessionCommand::size_type>::max() - 1024;
- navigation.WriteToPickle(max_state_size, &pickle);
- return new SessionCommand(command_id, pickle);
-}
-
-SessionCommand* BaseSessionService::CreateSetTabExtensionAppIDCommand(
- SessionID::id_type command_id,
- SessionID::id_type tab_id,
- const std::string& extension_id) {
- // Use pickle to handle marshalling.
- Pickle pickle;
- pickle.WriteInt(tab_id);
-
- // Enforce a max for ids. They should never be anywhere near this size.
- static const SessionCommand::size_type max_id_size =
- std::numeric_limits<SessionCommand::size_type>::max() - 1024;
-
- int bytes_written = 0;
-
- WriteStringToPickle(pickle, &bytes_written, max_id_size, extension_id);
-
- return new SessionCommand(command_id, pickle);
-}
-
-SessionCommand* BaseSessionService::CreateSetTabUserAgentOverrideCommand(
- SessionID::id_type command_id,
- SessionID::id_type tab_id,
- const std::string& user_agent_override) {
- // Use pickle to handle marshalling.
- Pickle pickle;
- pickle.WriteInt(tab_id);
-
- // Enforce a max for the user agent length. They should never be anywhere
- // near this size.
- static const SessionCommand::size_type max_user_agent_size =
- std::numeric_limits<SessionCommand::size_type>::max() - 1024;
-
- int bytes_written = 0;
-
- WriteStringToPickle(pickle, &bytes_written, max_user_agent_size,
- user_agent_override);
-
- return new SessionCommand(command_id, pickle);
-}
-
-SessionCommand* BaseSessionService::CreateSetWindowAppNameCommand(
- SessionID::id_type command_id,
- SessionID::id_type window_id,
- const std::string& app_name) {
- // Use pickle to handle marshalling.
- Pickle pickle;
- pickle.WriteInt(window_id);
-
- // Enforce a max for ids. They should never be anywhere near this size.
- static const SessionCommand::size_type max_id_size =
- std::numeric_limits<SessionCommand::size_type>::max() - 1024;
-
- int bytes_written = 0;
-
- WriteStringToPickle(pickle, &bytes_written, max_id_size, app_name);
-
- return new SessionCommand(command_id, pickle);
-}
-
-bool BaseSessionService::RestoreUpdateTabNavigationCommand(
- const SessionCommand& command,
- sessions::SerializedNavigationEntry* navigation,
- SessionID::id_type* tab_id) {
- scoped_ptr<Pickle> pickle(command.PayloadAsPickle());
- if (!pickle.get())
- return false;
- PickleIterator iterator(*pickle);
- return
- pickle->ReadInt(&iterator, tab_id) &&
- navigation->ReadFromPickle(&iterator);
-}
-
-bool BaseSessionService::RestoreSetTabExtensionAppIDCommand(
- const SessionCommand& command,
- SessionID::id_type* tab_id,
- std::string* extension_app_id) {
- scoped_ptr<Pickle> pickle(command.PayloadAsPickle());
- if (!pickle.get())
- return false;
-
- PickleIterator iterator(*pickle);
- return pickle->ReadInt(&iterator, tab_id) &&
- pickle->ReadString(&iterator, extension_app_id);
-}
-
-bool BaseSessionService::RestoreSetTabUserAgentOverrideCommand(
- const SessionCommand& command,
- SessionID::id_type* tab_id,
- std::string* user_agent_override) {
- scoped_ptr<Pickle> pickle(command.PayloadAsPickle());
- if (!pickle.get())
- return false;
-
- PickleIterator iterator(*pickle);
- return pickle->ReadInt(&iterator, tab_id) &&
- pickle->ReadString(&iterator, user_agent_override);
-}
-
-bool BaseSessionService::RestoreSetWindowAppNameCommand(
- const SessionCommand& command,
- SessionID::id_type* window_id,
- std::string* app_name) {
- scoped_ptr<Pickle> pickle(command.PayloadAsPickle());
- if (!pickle.get())
- return false;
-
- PickleIterator iterator(*pickle);
- return pickle->ReadInt(&iterator, window_id) &&
- pickle->ReadString(&iterator, app_name);
-}
-
bool BaseSessionService::ShouldTrackEntry(const GURL& url) {
return url.is_valid() && delegate_->ShouldTrackEntry(url);
}

Powered by Google App Engine
This is Rietveld 408576698