// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_SUBRESOURCE_FILTER_OBSERVER_MANAGER_H_ #define COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_SUBRESOURCE_FILTER_OBSERVER_MANAGER_H_ #include "base/observer_list.h" #include "components/subresource_filter/content/browser/subresource_filter_observer.h" #include "components/subresource_filter/core/common/activation_decision.h" #include "components/subresource_filter/core/common/load_policy.h" #include "content/public/browser/web_contents_user_data.h" namespace content { class NavigationHandle; class RenderFrameHost; class WebContents; } // namespace content namespace subresource_filter { namespace mojom { class ActivationState; } // namespace mojom // Manages retaining the list of SubresourceFilterObservers and notifying them // of various filtering events. Scoped to the lifetime of a WebContents. // !!!WARNING!!!: This observer will receive notifications from all pages // within a WebContents. This includes non-primary pages like those that are // prerendering which is probably not what clients expect. Clients should // make sure they're manually scoping observations to the relevant page. // TODO(bokan): We should probably refactor this class to manage the // observations of a single Page/FrameTree. #MPArch class SubresourceFilterObserverManager : public content::WebContentsUserData<SubresourceFilterObserverManager> { … }; } // namespace subresource_filter #endif // COMPONENTS_SUBRESOURCE_FILTER_CONTENT_BROWSER_SUBRESOURCE_FILTER_OBSERVER_MANAGER_H_