diff --git a/src/access_api_handler_unittest.cc b/src/access_api_handler_unittest.cc
index 3e7f5d7..3c22eaa 100644
--- a/src/access_api_handler_unittest.cc
+++ b/src/access_api_handler_unittest.cc
@@ -24,6 +24,7 @@
 
 class MockAccessBlackListManager : public AccessBlackListManager {
  public:
+  MOCK_METHOD1(AddEntryAddedCallback, void(const base::Closure&));
   MOCK_METHOD4(Block,
                void(const std::vector<uint8_t>&,
                     const std::vector<uint8_t>&,
diff --git a/src/access_black_list_manager.h b/src/access_black_list_manager.h
index b56226a..1184f16 100644
--- a/src/access_black_list_manager.h
+++ b/src/access_black_list_manager.h
@@ -26,6 +26,7 @@
   };
   virtual ~AccessBlackListManager() = default;
 
+  virtual void AddEntryAddedCallback(const base::Closure& callback) = 0;
   virtual void Block(const std::vector<uint8_t>& user_id,
                      const std::vector<uint8_t>& app_id,
                      const base::Time& expiration,
diff --git a/src/access_black_list_manager_impl.cc b/src/access_black_list_manager_impl.cc
index 992a680..a57ca36 100644
--- a/src/access_black_list_manager_impl.cc
+++ b/src/access_black_list_manager_impl.cc
@@ -86,6 +86,11 @@
   }
 }
 
+void AccessBlackListManagerImpl::AddEntryAddedCallback(
+    const base::Closure& callback) {
+  on_entry_added_callbacks_.push_back(callback);
+}
+
 void AccessBlackListManagerImpl::Block(const std::vector<uint8_t>& user_id,
                                        const std::vector<uint8_t>& app_id,
                                        const base::Time& expiration,
@@ -110,8 +115,12 @@
     }
     return;
   }
+
   auto& value = entries_[std::make_pair(user_id, app_id)];
   value = std::max(value, expiration);
+  for (const auto& cb : on_entry_added_callbacks_)
+    cb.Run();
+
   Save(callback);
 }
 
diff --git a/src/access_black_list_manager_impl.h b/src/access_black_list_manager_impl.h
index 1c175db..646d748 100644
--- a/src/access_black_list_manager_impl.h
+++ b/src/access_black_list_manager_impl.h
@@ -24,6 +24,7 @@
                                       base::Clock* clock = nullptr);
 
   // AccessBlackListManager implementation.
+  void AddEntryAddedCallback(const base::Closure& callback) override;
   void Block(const std::vector<uint8_t>& user_id,
              const std::vector<uint8_t>& app_id,
              const base::Time& expiration,
@@ -49,6 +50,7 @@
   provider::ConfigStore* store_{nullptr};
   std::map<std::pair<std::vector<uint8_t>, std::vector<uint8_t>>, base::Time>
       entries_;
+  std::vector<base::Closure> on_entry_added_callbacks_;
 
   DISALLOW_COPY_AND_ASSIGN(AccessBlackListManagerImpl);
 };
diff --git a/src/access_black_list_manager_impl_unittest.cc b/src/access_black_list_manager_impl_unittest.cc
index fd9f226..0e7c0e0 100644
--- a/src/access_black_list_manager_impl_unittest.cc
+++ b/src/access_black_list_manager_impl_unittest.cc
@@ -66,6 +66,9 @@
 }
 
 TEST_F(AccessBlackListManagerImplTest, Block) {
+  bool callback_called = false;
+  manager_->AddEntryAddedCallback(
+      base::Bind([&callback_called]() { callback_called = true; }));
   EXPECT_CALL(config_store_, SaveSettings("black_list", _, _))
       .WillOnce(testing::WithArgs<1, 2>(testing::Invoke(
           [](const std::string& json, const DoneCallback& callback) {
@@ -83,6 +86,7 @@
               callback.Run(nullptr);
           })));
   manager_->Block({7, 7, 7}, {8, 8, 8}, base::Time::FromTimeT(1419990000), {});
+  EXPECT_TRUE(callback_called);
 }
 
 TEST_F(AccessBlackListManagerImplTest, BlockExpired) {
