Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / history / chrome_history_client.cc
index 8f359ab..ea979be 100644 (file)
@@ -5,15 +5,30 @@
 #include "chrome/browser/history/chrome_history_client.h"
 
 #include "base/logging.h"
+#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/history/history_notifications.h"
+#include "chrome/browser/history/top_sites.h"
 #include "chrome/browser/ui/profile_error_dialog.h"
 #include "chrome/common/chrome_version_info.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
 #include "components/bookmarks/browser/bookmark_model.h"
-#include "grit/chromium_strings.h"
-#include "grit/generated_resources.h"
+#include "content/public/browser/notification_service.h"
 
-ChromeHistoryClient::ChromeHistoryClient(BookmarkModel* bookmark_model)
-    : bookmark_model_(bookmark_model) {
+ChromeHistoryClient::ChromeHistoryClient(BookmarkModel* bookmark_model,
+                                         Profile* profile,
+                                         history::TopSites* top_sites)
+    : bookmark_model_(bookmark_model),
+      profile_(profile),
+      top_sites_(top_sites) {
   DCHECK(bookmark_model_);
+  if (top_sites_)
+    top_sites_->AddObserver(this);
+}
+
+ChromeHistoryClient::~ChromeHistoryClient() {
+  if (top_sites_)
+    top_sites_->RemoveObserver(this);
 }
 
 void ChromeHistoryClient::BlockUntilBookmarksLoaded() {
@@ -65,3 +80,17 @@ void ChromeHistoryClient::Shutdown() {
   // sees an incorrect view of bookmarks, but it's better than a deadlock.
   bookmark_model_->Shutdown();
 }
+
+void ChromeHistoryClient::TopSitesLoaded(history::TopSites* top_sites) {
+  content::NotificationService::current()->Notify(
+      chrome::NOTIFICATION_TOP_SITES_LOADED,
+      content::Source<Profile>(profile_),
+      content::Details<history::TopSites>(top_sites));
+}
+
+void ChromeHistoryClient::TopSitesChanged(history::TopSites* top_sites) {
+  content::NotificationService::current()->Notify(
+      chrome::NOTIFICATION_TOP_SITES_CHANGED,
+      content::Source<history::TopSites>(top_sites),
+      content::NotificationService::NoDetails());
+}