diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 20:09:18 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 20:09:18 +0000 |
commit | d2d2d0ca5d7669231c1d89e32ed84324c85921ff (patch) | |
tree | e434c47e591c93d2a07f75e9d0d8934fc388b879 /components | |
parent | 9899a159fa3f6b2b7f8598daf187cf6756ea2def (diff) | |
download | chromium_src-d2d2d0ca5d7669231c1d89e32ed84324c85921ff.zip chromium_src-d2d2d0ca5d7669231c1d89e32ed84324c85921ff.tar.gz chromium_src-d2d2d0ca5d7669231c1d89e32ed84324c85921ff.tar.bz2 |
Record blocked navigations for managed users.
Blocked navigations are stored in ManagedModeNavigationObserver and associated with Session Sync data.
BUG=229384
Review URL: https://chromiumcodereview.appspot.com/15740020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202157 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r-- | components/sessions/serialized_navigation_entry.cc | 22 | ||||
-rw-r--r-- | components/sessions/serialized_navigation_entry.h | 23 |
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 |