summaryrefslogtreecommitdiffstats
path: root/components/sessions
diff options
context:
space:
mode:
Diffstat (limited to 'components/sessions')
-rw-r--r--components/sessions/serialized_navigation_entry.cc22
-rw-r--r--components/sessions/serialized_navigation_entry.h23
2 files changed, 44 insertions, 1 deletions
diff --git a/components/sessions/serialized_navigation_entry.cc b/components/sessions/serialized_navigation_entry.cc
index 7d151a0..6ba7533 100644
--- a/components/sessions/serialized_navigation_entry.cc
+++ b/components/sessions/serialized_navigation_entry.cc
@@ -26,7 +26,8 @@ SerializedNavigationEntry::SerializedNavigationEntry()
transition_type_(content::PAGE_TRANSITION_TYPED),
has_post_data_(false),
post_id_(-1),
- is_overriding_user_agent_(false) {}
+ is_overriding_user_agent_(false),
+ blocked_state_(STATE_INVALID) {}
SerializedNavigationEntry::~SerializedNavigationEntry() {}
@@ -142,6 +143,10 @@ SerializedNavigationEntry SerializedNavigationEntry::FromSyncData(
if (sync_data.has_favicon_url())
navigation.favicon_url_ = GURL(sync_data.favicon_url());
+ // We shouldn't sync session data for managed users down at the moment.
+ DCHECK(!sync_data.has_blocked_state());
+ DCHECK_EQ(0, sync_data.content_pack_categories_size());
+
return navigation;
}
@@ -337,6 +342,10 @@ scoped_ptr<NavigationEntry> SerializedNavigationEntry::ToNavigationEntry(
entry->SetTimestamp(timestamp_);
entry->SetExtraData(kSearchTermsKey, search_terms_);
+ // These fields should have default values.
+ DCHECK_EQ(STATE_INVALID, blocked_state_);
+ DCHECK_EQ(0u, content_pack_categories_.size());
+
return entry.Pass();
}
@@ -433,6 +442,17 @@ sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const {
if (favicon_url_.is_valid())
sync_data.set_favicon_url(favicon_url_.spec());
+ if (blocked_state_ != STATE_INVALID) {
+ sync_data.set_blocked_state(
+ static_cast<sync_pb::TabNavigation_BlockedState>(blocked_state_));
+ }
+
+ for (std::set<std::string>::const_iterator it =
+ content_pack_categories_.begin();
+ it != content_pack_categories_.end(); ++it) {
+ sync_data.add_content_pack_categories(*it);
+ }
+
return sync_data;
}
diff --git a/components/sessions/serialized_navigation_entry.h b/components/sessions/serialized_navigation_entry.h
index dbde6d7..bc72700 100644
--- a/components/sessions/serialized_navigation_entry.h
+++ b/components/sessions/serialized_navigation_entry.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SESSIONS_SERIALIZED_NAVIGATION_ENTRY_H_
#define COMPONENTS_SESSIONS_SERIALIZED_NAVIGATION_ENTRY_H_
+#include <set>
#include <string>
#include <vector>
@@ -44,6 +45,12 @@ SESSIONS_EXPORT extern const char kSearchTermsKey[];
// Default copy constructor and assignment operator welcome.
class SESSIONS_EXPORT SerializedNavigationEntry {
public:
+ enum BlockedState {
+ STATE_INVALID = 0,
+ STATE_ALLOWED = 1,
+ STATE_BLOCKED = 2,
+ };
+
// Creates an invalid (index < 0) SerializedNavigationEntry.
SerializedNavigationEntry();
~SerializedNavigationEntry();
@@ -102,6 +109,18 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
bool is_overriding_user_agent() const { return is_overriding_user_agent_; }
base::Time timestamp() const { return timestamp_; }
+ BlockedState blocked_state() { return blocked_state_; }
+ void set_blocked_state(BlockedState blocked_state) {
+ blocked_state_ = blocked_state;
+ }
+ std::set<std::string> content_pack_categories() {
+ return content_pack_categories_;
+ }
+ void set_content_pack_categories(
+ const std::set<std::string>& content_pack_categories) {
+ content_pack_categories_ = content_pack_categories;
+ }
+
// Converts a set of SerializedNavigationEntrys into a list of
// NavigationEntrys with sequential page IDs and the given context. The caller
// owns the returned NavigationEntrys.
@@ -129,6 +148,10 @@ class SESSIONS_EXPORT SerializedNavigationEntry {
base::Time timestamp_;
string16 search_terms_;
GURL favicon_url_;
+
+ // Additional information.
+ BlockedState blocked_state_;
+ std::set<std::string> content_pack_categories_;
};
} // namespace sessions