123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // Copyright 2018 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_BLOCKED_CONTENT_URL_LIST_MANAGER_H_
- #define COMPONENTS_BLOCKED_CONTENT_URL_LIST_MANAGER_H_
- #include <stdint.h>
- #include "base/observer_list.h"
- class GURL;
- namespace blocked_content {
- // This class manages lists of blocked URLs in order to drive UI surfaces.
- // Currently it is used by the redirect / popup blocked UIs.
- //
- // TODO(csharrison): Currently this object is composed within the framebust /
- // popup tab helpers. Eventually those objects could be replaced almost entirely
- // by shared logic here.
- class UrlListManager {
- public:
- class Observer {
- public:
- virtual ~Observer() {}
- virtual void BlockedUrlAdded(int32_t id, const GURL& url) = 0;
- };
- UrlListManager();
- UrlListManager(const UrlListManager&) = delete;
- UrlListManager& operator=(const UrlListManager&) = delete;
- ~UrlListManager();
- void AddObserver(Observer* observer);
- void RemoveObserver(Observer* observer);
- void NotifyObservers(int32_t id, const GURL& url);
- private:
- base::ObserverList<Observer>::Unchecked observers_;
- };
- } // namespace blocked_content
- #endif // COMPONENTS_BLOCKED_CONTENT_URL_LIST_MANAGER_H_
|