summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-24 20:09:18 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-24 20:09:18 +0000
commitd2d2d0ca5d7669231c1d89e32ed84324c85921ff (patch)
treee434c47e591c93d2a07f75e9d0d8934fc388b879 /components
parent9899a159fa3f6b2b7f8598daf187cf6756ea2def (diff)
downloadchromium_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.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